diff --git a/node_modules/.cache/.eslintcache b/node_modules/.cache/.eslintcache index 19bd7080..5078bf5f 100644 --- a/node_modules/.cache/.eslintcache +++ b/node_modules/.cache/.eslintcache @@ -1 +1 @@ -[{"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/index.js":"1","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js":"2","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/reportWebVitals.js":"3","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ContactUs/index.js":"4","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Homepage/index.js":"5","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/BoxNextToEachOther/index.js":"6","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/RoomCardInfo/index.js":"7","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/DistributedData/index.js":"8","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ContactUsInfoCard/index.js":"9","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ReligiousTimes/index.js":"10","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Button/index.js":"11","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js":"12","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/index.js":"13","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Login/index.js":"14","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/AnimatedInput/Input.js":"15","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/DateRangePicker/index.js":"16","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomSelectBox/index.js":"17","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomSwitch/index.js":"18","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/DateTime/index.js":"19","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/HorizontalTextDivider/index.js":"20","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/ProfileInfo/index.js":"21","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/AnimatedInput/fixNumbers.js":"22","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/CurrentTime/index.js":"23","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/CurrentDateShamsi/index.js":"24","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/LeafletMap/index.js":"25"},{"size":536,"mtime":1657014225919,"results":"26","hashOfConfig":"27"},{"size":467,"mtime":1659295582446,"results":"28","hashOfConfig":"27"},{"size":362,"mtime":1657010915301,"results":"29","hashOfConfig":"27"},{"size":550,"mtime":1659248415210,"results":"30","hashOfConfig":"27"},{"size":1914,"mtime":1659296213130,"results":"31","hashOfConfig":"27"},{"size":1565,"mtime":1659290521337,"results":"32","hashOfConfig":"27"},{"size":1466,"mtime":1659210452590,"results":"33","hashOfConfig":"27"},{"size":2448,"mtime":1659290797172,"results":"34","hashOfConfig":"27"},{"size":1909,"mtime":1659210437404,"results":"35","hashOfConfig":"27"},{"size":1141,"mtime":1659290786467,"results":"36","hashOfConfig":"27"},{"size":990,"mtime":1657432674268,"results":"37","hashOfConfig":"27"},{"size":3252,"mtime":1659296878221,"results":"38","hashOfConfig":"27"},{"size":441,"mtime":1659290777410,"results":"39","hashOfConfig":"27"},{"size":2953,"mtime":1659287041693,"results":"40","hashOfConfig":"27"},{"size":2587,"mtime":1659270739901,"results":"41","hashOfConfig":"27"},{"size":1788,"mtime":1657611566992,"results":"42","hashOfConfig":"27"},{"size":608,"mtime":1657613668288,"results":"43","hashOfConfig":"27"},{"size":1923,"mtime":1657440765149,"results":"44","hashOfConfig":"27"},{"size":522,"mtime":1657434962806,"results":"45","hashOfConfig":"27"},{"size":565,"mtime":1659271142385,"results":"46","hashOfConfig":"27"},{"size":1414,"mtime":1657434935090,"results":"47","hashOfConfig":"27"},{"size":474,"mtime":1657440246924,"results":"48","hashOfConfig":"27"},{"size":375,"mtime":1657434901885,"results":"49","hashOfConfig":"27"},{"size":667,"mtime":1657434876823,"results":"50","hashOfConfig":"27"},{"size":8011,"mtime":1659295124579,"results":"51","hashOfConfig":"27"},{"filePath":"52","messages":"53","suppressedMessages":"54","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},"chbpuq",{"filePath":"56","messages":"57","suppressedMessages":"58","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"59","messages":"60","suppressedMessages":"61","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"62","messages":"63","suppressedMessages":"64","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"65","messages":"66","suppressedMessages":"67","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"68","messages":"69","suppressedMessages":"70","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"71","messages":"72","suppressedMessages":"73","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"95","usedDeprecatedRules":"55"},{"filePath":"96","messages":"97","suppressedMessages":"98","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"99","messages":"100","suppressedMessages":"101","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"102","usedDeprecatedRules":"55"},{"filePath":"103","messages":"104","suppressedMessages":"105","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"106","messages":"107","suppressedMessages":"108","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"109","messages":"110","suppressedMessages":"111","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"112","messages":"113","suppressedMessages":"114","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"115","messages":"116","suppressedMessages":"117","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"118","usedDeprecatedRules":"55"},{"filePath":"119","messages":"120","suppressedMessages":"121","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"125","usedDeprecatedRules":"55"},{"filePath":"126","messages":"127","suppressedMessages":"128","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"55"},{"filePath":"129","messages":"130","suppressedMessages":"131","errorCount":0,"fatalErrorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"132","usedDeprecatedRules":"55"},"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/index.js",[],[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js",["133","134"],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/reportWebVitals.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ContactUs/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Homepage/index.js",["135","136","137"],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/BoxNextToEachOther/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/RoomCardInfo/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/DistributedData/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ContactUsInfoCard/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ReligiousTimes/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Button/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js",["138"],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Login/index.js",["139"],[],"import React from \"react\";\nimport Input from \"../AnimatedInput/Input\";\nimport { useForm } from \"react-hook-form\";\nimport Button from \"../Button\";\nimport HorizontalTextDivider from \"../HorizontalTextDivider\";\n\nconst Login = () => {\n const { register, getValues } = useForm();\n\n return (\n \n {/* right */}\n
\n {/* logo && site title */}\n
\n {/* logo */}\n \"logo\"\n {/* name */}\n
\n

رزرو

\n

\n سامانه رزرواسیون خدام و زوار موکب مرکز\n

\n
\n
\n {/* user logo && user title */}\n
\n {/* logo */}\n \"logo\"\n {/* divider */}\n
\n {/* name */}\n

ورود زوار و خادمین محترم

\n
\n {/* divider */}\n
\n \n \n \n {\" \"}\n \n
\n {/* divider */}\n
\n {/* left */}\n
\n \n
\n \n );\n};\n\nexport default Login;\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/AnimatedInput/Input.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/DateRangePicker/index.js",["140"],[],"// it has style inside index.scss ---> // Start DateRangePicker && end DateRangePicker\n\nimport React, { useEffect } from \"react\";\nimport DatePicker from \"react-multi-date-picker\";\nimport \"./index.scss\";\n\nimport persian from \"react-date-object/calendars/persian\";\nimport persian_fa from \"react-date-object/locales/persian_fa\";\n\nconst weekDays = [\n \"شنبه\",\n \"یکشنبه\",\n \"دوشنبه\",\n \"سشنبه\",\n \"چهارشنبه\",\n \"پنجشنبه\",\n \"جمعه\",\n];\n\nfunction CustomRangeInput({ openCalendar, value }) {\n useEffect(() => {\n openCalendar();\n }, []);\n\n return (\n
\n \n

تا

\n \n
\n );\n}\n\nconst DateRangePicker = () => {\n return (\n
\n false}\n arrow={false}\n minDate={new Date()}\n render={}\n weekDays={weekDays}\n />\n
\n );\n};\n\nexport default DateRangePicker;\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomSelectBox/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomSwitch/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/DateTime/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/HorizontalTextDivider/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/ProfileInfo/index.js",["141"],[],"import React from \"react\";\n\nconst ProfileInfo = ({ name, role }) => {\n return (\n
\n \n
\n

{name}

\n {role}\n
\n {/* dropdown */}\n \n \n \n \n \n
  • \n \n Dashboard\n \n
  • \n \n
    \n \n );\n};\n\nexport default ProfileInfo;\n\nProfileInfo.defaultProps = {\n name: \"سبحان قاسمی\",\n role: \"خادم محترم\",\n};\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/AnimatedInput/fixNumbers.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/CurrentTime/index.js",["142"],[],"import React from \"react\";\n\nconst CurrentTime = ({ className }) => {\n const today = new Date(),\n time =\n today.getHours() + \":\" + today.getMinutes() + \":\" + today.getSeconds();\n {\n console.log(time);\n }\n return

    {time}

    ;\n};\n\nexport default CurrentTime;\n\nCurrentTime.defaultProps = {\n className: \"text-sm\",\n};\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/CurrentDateShamsi/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/LeafletMap/index.js",["143","144","145","146","147","148"],[],"// it has style inside index.scss ---> // Start LeafletMap && end LeafletMap\n\nimport React, { useState, useRef, useMemo } from \"react\";\n\nimport {\n MapContainer,\n TileLayer,\n FeatureGroup,\n Rectangle,\n useMap,\n Popup,\n Marker,\n LayerGroup,\n ZoomControl,\n ScaleControl,\n} from \"react-leaflet\";\n\nimport \"leaflet/dist/leaflet.css\";\nimport \"leaflet-draw/dist/leaflet.draw.css\";\n\nimport { EditControl } from \"react-leaflet-draw\";\n\nimport \"leaflet-draw\";\n\nimport * as L from \"leaflet\";\n\nconst bedNumb = \"تخت شماره 33\";\n\nconst pinMB = L.icon({\n iconUrl: \"images/LeafletMapplaceholder.png\",\n iconSize: [24, 41],\n iconAnchor: [0, 44],\n popupAnchor: [12, -40],\n shadowUrl: null,\n shadowSize: null,\n shadowAnchor: null,\n});\n\n// const MyCustomMarker = L.icon({\n// iconUrl: placeholder,\n// iconSize: [24, 41],\n// iconAnchor: [0, 44],\n// popupAnchor: [12, -40],\n// shadowUrl: null,\n// shadowSize: null,\n// shadowAnchor: null,\n// });\n\nL.drawLocal = {\n draw: {\n toolbar: {\n actions: {\n title: \"لغو کردن رسم\",\n text: \"لغو\",\n },\n finish: {\n title: \"پایان رسم\",\n text: \"پایان رسم\",\n },\n undo: {\n title: \"پاک کردن آخرین نقطه رسم شده\",\n text: \"پاک کردن آخرین نقطه رسم شده\",\n },\n buttons: {\n polyline: \"موکب مورد نظر خود را رسم نمایید\",\n polygon: \"رسم پولیگان\",\n rectangle: \"رسم جای خواب\",\n circle: \"رسم دایره\",\n marker: \"رسم مارکر\",\n circlemarker: \"رسم دایره مارکر\",\n },\n },\n handlers: {\n circle: {\n tooltip: {\n start: \"کلیک کنید و سپس درگ کنید تا یک دایره بکشید.\",\n },\n radius: \"ردیوس\",\n },\n circlemarker: {\n tooltip: {\n start: \"با کلیک بر روی نقشه یک مارکر رسم کنید.\",\n },\n },\n marker: {\n icon: \"images/LeafletMapplaceholder.png\",\n tooltip: {\n start: \"با کلیک بر روی نقشه یک مارکر رسم کنید.\",\n },\n },\n polygon: {\n tooltip: {\n start: \"یک شکل رسم کنید.\",\n cont: \"ادامه رسم شکل.\",\n end: \"برای پایان رسم بر روی اولین نقظه کلیک کنید.\",\n },\n },\n polyline: {\n error: \"Error: shape edges cannot cross!\",\n tooltip: {\n start: \"با کلیک کردن یک خط رسم کنید.\",\n cont: \"با کلیک به رسم خود ادامه دهید.\",\n end: \"برای پایان رسم بر روی آخرین نقظ رسم شده کلیک کنید.\",\n },\n },\n rectangle: {\n tooltip: {\n start: \"با کلیک و درگ کردن یک جای خواب رسم کنید.\",\n },\n },\n simpleshape: {\n tooltip: {\n end: \"ماوس را رها کنید تا رسم تمام شود.\",\n },\n },\n },\n },\n edit: {\n toolbar: {\n actions: {\n save: {\n title: \"ذخیره تنظیمات\",\n text: \"ذخیره\",\n },\n cancel: {\n title: \"لغو کردن، ویرایش تمام تغییرات نادیده گرفته خواهند شد\",\n text: \"لغو\",\n },\n clearAll: {\n title: \"پاک کردن تمام لایه ها\",\n text: \"پاک کردن لایه ها\",\n },\n },\n buttons: {\n edit: \"ویرایش لایه ها\",\n editDisabled: \"لایه ای برای ویرایش وجود ندارد\",\n remove: \"پاک کردن لایه ها\",\n removeDisabled: \"لایه ای برای پاک کردن وجود ندارد\",\n },\n },\n handlers: {\n edit: {\n tooltip: {\n text: \"Drag handles or markers to edit features.\",\n subtext: \"با کلیک بر روی لغو تغییرات اعمال نخواهند شد.\",\n },\n },\n remove: {\n tooltip: {\n text: \"Click on a feature to remove.\",\n },\n },\n },\n },\n};\n\nconst icon = (val, zoom) =>\n L.divIcon({\n className: \"my-div-icon\",\n html: `
    \n

    \n

    ${val || 0}

    \n
    `,\n });\n\nfunction MyComponent({ setZoom }) {\n const map = useMap();\n\n return null;\n}\n\nconst LeafletMap = () => {\n // const map =\n const [zoom, setZoom] = useState(22);\n const outerBounds = [\n [50.505, -29.09],\n [52.505, 29.09],\n ];\n\n const leafEl = useRef(null);\n const mapRef = useRef(null);\n const onCreated = () => {\n console.log({ next, add });\n add(Math.floor(Math.random() * 10));\n // const drawnItems = leafEl.current._layers;\n // console.log({ drawnItems });\n };\n const [next, add] = useState(1);\n const location = [38.9072, -77.0369];\n console.log({ mapRef });\n if (mapRef.current) {\n console.log(mapRef.current);\n }\n return (\n
    \n {\n mapInstance.on(\"zoomend\", function () {\n console.log(mapRef.current);\n setZoom(mapRef.current._zoom);\n });\n mapRef.current = mapInstance;\n }}\n center={[49.505, -2.09]}\n zoom={zoom}\n maxZoom={24}\n minZoom={18}\n maxNativeZoom={22}\n style={{ height: \"100vh\" }}\n zoomControl={false}\n bounds={outerBounds}\n >\n {/* */}\n \n \n \n {/* */}\n {bedNumb}\n \n \n Oh snap! you can't draw that!\", // Message that will show when intersect\n },\n shapeOptions: {\n color: \"#bada55\",\n },\n },\n circle: false, // Turns off this drawing tool\n rectangle: {\n shapeOptions: {\n clickable: false,\n },\n },\n marker: {\n icon: icon(next, zoom),\n },\n }}\n position=\"topright\"\n count={next}\n onCreated={(e) => {\n console.log({ next, e });\n onCreated(next);\n }}\n allowIntersection={false}\n />\n \n \n \n \n \n
    \n );\n};\n\nexport default LeafletMap;\n",{"ruleId":"149","severity":1,"message":"150","line":3,"column":8,"nodeType":"151","messageId":"152","endLine":3,"endColumn":17},{"ruleId":"149","severity":1,"message":"153","line":4,"column":8,"nodeType":"151","messageId":"152","endLine":4,"endColumn":18},{"ruleId":"149","severity":1,"message":"154","line":4,"column":8,"nodeType":"151","messageId":"152","endLine":4,"endColumn":26},{"ruleId":"149","severity":1,"message":"155","line":5,"column":8,"nodeType":"151","messageId":"152","endLine":5,"endColumn":14},{"ruleId":"149","severity":1,"message":"156","line":10,"column":8,"nodeType":"151","messageId":"152","endLine":10,"endColumn":13},{"ruleId":"149","severity":1,"message":"157","line":12,"column":21,"nodeType":"151","messageId":"152","endLine":12,"endColumn":30},{"ruleId":"149","severity":1,"message":"157","line":8,"column":21,"nodeType":"151","messageId":"152","endLine":8,"endColumn":30},{"ruleId":"158","severity":1,"message":"159","line":23,"column":6,"nodeType":"160","endLine":23,"endColumn":8,"suggestions":"161"},{"ruleId":"162","severity":1,"message":"163","line":36,"column":13,"nodeType":"164","endLine":39,"endColumn":14},{"ruleId":"165","severity":1,"message":"166","line":7,"column":3,"nodeType":"167","messageId":"168","endLine":9,"endColumn":4},{"ruleId":"149","severity":1,"message":"169","line":3,"column":35,"nodeType":"151","messageId":"152","endLine":3,"endColumn":42},{"ruleId":"149","severity":1,"message":"170","line":9,"column":3,"nodeType":"151","messageId":"152","endLine":9,"endColumn":12},{"ruleId":"149","severity":1,"message":"171","line":29,"column":7,"nodeType":"151","messageId":"152","endLine":29,"endColumn":12},{"ruleId":"149","severity":1,"message":"172","line":168,"column":10,"nodeType":"151","messageId":"152","endLine":168,"endColumn":21},{"ruleId":"149","severity":1,"message":"173","line":169,"column":9,"nodeType":"151","messageId":"152","endLine":169,"endColumn":12},{"ruleId":"149","severity":1,"message":"174","line":191,"column":9,"nodeType":"151","messageId":"152","endLine":191,"endColumn":17},"no-unused-vars","'ContactUs' is defined but never used.","Identifier","unusedVar","'LeafletMap' is defined but never used.","'BoxNextToEachOther' is defined but never used.","'Button' is defined but never used.","'Login' is defined but never used.","'getValues' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'openCalendar'. Either include it or remove the dependency array. If 'openCalendar' changes too often, find the parent component that defines it and wrap that definition in useCallback.","ArrayExpression",["175"],"jsx-a11y/anchor-is-valid","The href attribute requires a valid value to be accessible. Provide a valid, navigable address as the href value. If you cannot provide a valid href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/docs/rules/anchor-is-valid.md","JSXOpeningElement","no-lone-blocks","Nested block is redundant.","BlockStatement","redundantNestedBlock","'useMemo' is defined but never used.","'Rectangle' is defined but never used.","'pinMB' is assigned a value but never used.","'MyComponent' is defined but never used.","'map' is assigned a value but never used.","'location' is assigned a value but never used.",{"desc":"176","fix":"177"},"Update the dependencies array to be: [openCalendar]",{"range":"178","text":"179"},[530,532],"[openCalendar]"] \ No newline at end of file +[{"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/index.js":"1","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js":"2","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/reportWebVitals.js":"3","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ContactUs/index.js":"4","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Homepage/index.js":"5","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/BoxNextToEachOther/index.js":"6","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/RoomCardInfo/index.js":"7","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/DistributedData/index.js":"8","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ContactUsInfoCard/index.js":"9","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ReligiousTimes/index.js":"10","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Button/index.js":"11","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js":"12","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/index.js":"13","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Login/index.js":"14","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/AnimatedInput/Input.js":"15","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/DateRangePicker/index.js":"16","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomSelectBox/index.js":"17","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomSwitch/index.js":"18","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/DateTime/index.js":"19","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/HorizontalTextDivider/index.js":"20","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/ProfileInfo/index.js":"21","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/AnimatedInput/fixNumbers.js":"22","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/CurrentTime/index.js":"23","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/CurrentDateShamsi/index.js":"24","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/LeafletMap/index.js":"25","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js":"26","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast/index.js":"27","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/IconText/index.js":"28","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/TitleSubtitle/index.js":"29","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js":"30","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast2/index.js":"31","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/SearchBox/index.js":"32","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign2/index.js":"33","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ButtonDivTag/index.js":"34"},{"size":487,"mtime":1659603603609,"results":"35","hashOfConfig":"36"},{"size":519,"mtime":1659614011957,"results":"37","hashOfConfig":"36"},{"size":362,"mtime":1657010915301,"results":"38","hashOfConfig":"36"},{"size":550,"mtime":1659248415210,"results":"39","hashOfConfig":"36"},{"size":1914,"mtime":1659296213130,"results":"40","hashOfConfig":"36"},{"size":1565,"mtime":1659290521337,"results":"41","hashOfConfig":"36"},{"size":1466,"mtime":1659210452590,"results":"42","hashOfConfig":"36"},{"size":2448,"mtime":1659290797172,"results":"43","hashOfConfig":"36"},{"size":1909,"mtime":1659210437404,"results":"44","hashOfConfig":"36"},{"size":1141,"mtime":1659290786467,"results":"45","hashOfConfig":"36"},{"size":990,"mtime":1657432674268,"results":"46","hashOfConfig":"36"},{"size":3649,"mtime":1659614529541,"results":"47","hashOfConfig":"36"},{"size":441,"mtime":1659290777410,"results":"48","hashOfConfig":"36"},{"size":2953,"mtime":1659287041693,"results":"49","hashOfConfig":"36"},{"size":2587,"mtime":1659270739901,"results":"50","hashOfConfig":"36"},{"size":1788,"mtime":1657611566992,"results":"51","hashOfConfig":"36"},{"size":608,"mtime":1657613668288,"results":"52","hashOfConfig":"36"},{"size":1923,"mtime":1657440765149,"results":"53","hashOfConfig":"36"},{"size":522,"mtime":1657434962806,"results":"54","hashOfConfig":"36"},{"size":565,"mtime":1659271142385,"results":"55","hashOfConfig":"36"},{"size":1414,"mtime":1657434935090,"results":"56","hashOfConfig":"36"},{"size":474,"mtime":1657440246924,"results":"57","hashOfConfig":"36"},{"size":375,"mtime":1657434901885,"results":"58","hashOfConfig":"36"},{"size":667,"mtime":1657434876823,"results":"59","hashOfConfig":"36"},{"size":8011,"mtime":1659295124579,"results":"60","hashOfConfig":"36"},{"size":580,"mtime":1659600132774,"results":"61","hashOfConfig":"36"},{"size":494,"mtime":1659600181493,"results":"62","hashOfConfig":"36"},{"size":643,"mtime":1659600158484,"results":"63","hashOfConfig":"36"},{"size":1213,"mtime":1659599668644,"results":"64","hashOfConfig":"36"},{"size":1050,"mtime":1659602857987,"results":"65","hashOfConfig":"36"},{"size":3575,"mtime":1659600462499,"results":"66","hashOfConfig":"36"},{"size":1382,"mtime":1659600474043,"results":"67","hashOfConfig":"36"},{"size":3143,"mtime":1659603477308,"results":"68","hashOfConfig":"36"},{"size":574,"mtime":1659603460996,"results":"69","hashOfConfig":"36"},{"filePath":"70","messages":"71","suppressedMessages":"72","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"chbpuq",{"filePath":"73","messages":"74","suppressedMessages":"75","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"76","messages":"77","suppressedMessages":"78","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"86","usedDeprecatedRules":"79"},{"filePath":"87","messages":"88","suppressedMessages":"89","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"90","messages":"91","suppressedMessages":"92","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"93","messages":"94","suppressedMessages":"95","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"96","messages":"97","suppressedMessages":"98","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"99","messages":"100","suppressedMessages":"101","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"102","messages":"103","suppressedMessages":"104","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"105","messages":"106","suppressedMessages":"107","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"108","messages":"109","suppressedMessages":"110","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"111","messages":"112","suppressedMessages":"113","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"114","usedDeprecatedRules":"79"},{"filePath":"115","messages":"116","suppressedMessages":"117","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"118","messages":"119","suppressedMessages":"120","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"121","usedDeprecatedRules":"79"},{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"125","messages":"126","suppressedMessages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"137","usedDeprecatedRules":"79"},{"filePath":"138","messages":"139","suppressedMessages":"140","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"141","messages":"142","suppressedMessages":"143","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"144","usedDeprecatedRules":"79"},{"filePath":"145","messages":"146","suppressedMessages":"147","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"148","messages":"149","suppressedMessages":"150","errorCount":0,"fatalErrorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"151","usedDeprecatedRules":"79"},{"filePath":"152","messages":"153","suppressedMessages":"154","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"155"},{"filePath":"156","messages":"157","suppressedMessages":"158","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"159","messages":"160","suppressedMessages":"161","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"162","messages":"163","suppressedMessages":"164","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"165","messages":"166","suppressedMessages":"167","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"168","messages":"169","suppressedMessages":"170","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"171","messages":"172","suppressedMessages":"173","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"174","messages":"175","suppressedMessages":"176","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},{"filePath":"177","messages":"178","suppressedMessages":"179","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"79"},"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js",["180","181","182"],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/reportWebVitals.js",[],[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ContactUs/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Homepage/index.js",["183","184","185"],[],"import React from \"react\";\nimport \"./index.scss\";\n\nimport BoxNextToEachOther from \"../BoxNextToEachOther\";\nimport Button from \"../Button\";\nimport UserProfileInfo from \"../UserProfileInfo\";\nimport ReligiousTimes from \"../ReligiousTimes\";\nimport DistributedData from \"../DistributedData\";\nimport FormInput from \"../FormInput\";\nimport Login from \"../Login\";\n\nconst Homepage = ({ title, subTitle }) => {\n return (\n
    \n
    \n {/* ? absolute items */}\n \n {/* title / subtitle */}\n

    \n {title}\n

    \n

    \n {subTitle}\n

    \n
    \n {/* form input اینجارو از کامنت در بیارید */}\n \n
    \n \n \n \n
    \n {/* BoxNextToEachOther */}\n {/* \n */}\n
    \n {/* */}\n
    \n );\n};\n\nexport default Homepage;\n\nHomepage.defaultProps = {\n title: \"سامانه رزرو زائرین محترم\",\n subTitle: \"موکب اصفهانی های مقیم مرکز\",\n};\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/BoxNextToEachOther/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/RoomCardInfo/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/DistributedData/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ContactUsInfoCard/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ReligiousTimes/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Button/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js",["186"],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/Login/index.js",["187"],[],"import React from \"react\";\nimport Input from \"../AnimatedInput/Input\";\nimport { useForm } from \"react-hook-form\";\nimport Button from \"../Button\";\nimport HorizontalTextDivider from \"../HorizontalTextDivider\";\n\nconst Login = () => {\n const { register, getValues } = useForm();\n\n return (\n \n {/* right */}\n
    \n {/* logo && site title */}\n
    \n {/* logo */}\n \"logo\"\n {/* name */}\n
    \n

    رزرو

    \n

    \n سامانه رزرواسیون خدام و زوار موکب مرکز\n

    \n
    \n
    \n {/* user logo && user title */}\n
    \n {/* logo */}\n \"logo\"\n {/* divider */}\n
    \n {/* name */}\n

    ورود زوار و خادمین محترم

    \n
    \n {/* divider */}\n
    \n \n \n \n {\" \"}\n \n
    \n {/* divider */}\n
    \n {/* left */}\n
    \n \n
    \n \n );\n};\n\nexport default Login;\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/AnimatedInput/Input.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/DateRangePicker/index.js",["188"],[],"// it has style inside index.scss ---> // Start DateRangePicker && end DateRangePicker\n\nimport React, { useEffect } from \"react\";\nimport DatePicker from \"react-multi-date-picker\";\nimport \"./index.scss\";\n\nimport persian from \"react-date-object/calendars/persian\";\nimport persian_fa from \"react-date-object/locales/persian_fa\";\n\nconst weekDays = [\n \"شنبه\",\n \"یکشنبه\",\n \"دوشنبه\",\n \"سشنبه\",\n \"چهارشنبه\",\n \"پنجشنبه\",\n \"جمعه\",\n];\n\nfunction CustomRangeInput({ openCalendar, value }) {\n useEffect(() => {\n openCalendar();\n }, []);\n\n return (\n
    \n \n

    تا

    \n \n
    \n );\n}\n\nconst DateRangePicker = () => {\n return (\n
    \n false}\n arrow={false}\n minDate={new Date()}\n render={}\n weekDays={weekDays}\n />\n
    \n );\n};\n\nexport default DateRangePicker;\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomSelectBox/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomSwitch/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/DateTime/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/HorizontalTextDivider/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/ProfileInfo/index.js",["189"],[],"import React from \"react\";\n\nconst ProfileInfo = ({ name, role }) => {\n return (\n
    \n \n
    \n

    {name}

    \n {role}\n
    \n {/* dropdown */}\n \n \n \n \n \n
  • \n \n Dashboard\n \n
  • \n \n
    \n \n );\n};\n\nexport default ProfileInfo;\n\nProfileInfo.defaultProps = {\n name: \"سبحان قاسمی\",\n role: \"خادم محترم\",\n};\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/AnimatedInput/fixNumbers.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/CurrentTime/index.js",["190"],[],"import React from \"react\";\n\nconst CurrentTime = ({ className }) => {\n const today = new Date(),\n time =\n today.getHours() + \":\" + today.getMinutes() + \":\" + today.getSeconds();\n {\n console.log(time);\n }\n return

    {time}

    ;\n};\n\nexport default CurrentTime;\n\nCurrentTime.defaultProps = {\n className: \"text-sm\",\n};\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/UserProfileInfo/CurrentDateShamsi/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/LeafletMap/index.js",["191","192","193","194","195","196"],[],"// it has style inside index.scss ---> // Start LeafletMap && end LeafletMap\n\nimport React, { useState, useRef, useMemo } from \"react\";\n\nimport {\n MapContainer,\n TileLayer,\n FeatureGroup,\n Rectangle,\n useMap,\n Popup,\n Marker,\n LayerGroup,\n ZoomControl,\n ScaleControl,\n} from \"react-leaflet\";\n\nimport \"leaflet/dist/leaflet.css\";\nimport \"leaflet-draw/dist/leaflet.draw.css\";\n\nimport { EditControl } from \"react-leaflet-draw\";\n\nimport \"leaflet-draw\";\n\nimport * as L from \"leaflet\";\n\nconst bedNumb = \"تخت شماره 33\";\n\nconst pinMB = L.icon({\n iconUrl: \"images/LeafletMapplaceholder.png\",\n iconSize: [24, 41],\n iconAnchor: [0, 44],\n popupAnchor: [12, -40],\n shadowUrl: null,\n shadowSize: null,\n shadowAnchor: null,\n});\n\n// const MyCustomMarker = L.icon({\n// iconUrl: placeholder,\n// iconSize: [24, 41],\n// iconAnchor: [0, 44],\n// popupAnchor: [12, -40],\n// shadowUrl: null,\n// shadowSize: null,\n// shadowAnchor: null,\n// });\n\nL.drawLocal = {\n draw: {\n toolbar: {\n actions: {\n title: \"لغو کردن رسم\",\n text: \"لغو\",\n },\n finish: {\n title: \"پایان رسم\",\n text: \"پایان رسم\",\n },\n undo: {\n title: \"پاک کردن آخرین نقطه رسم شده\",\n text: \"پاک کردن آخرین نقطه رسم شده\",\n },\n buttons: {\n polyline: \"موکب مورد نظر خود را رسم نمایید\",\n polygon: \"رسم پولیگان\",\n rectangle: \"رسم جای خواب\",\n circle: \"رسم دایره\",\n marker: \"رسم مارکر\",\n circlemarker: \"رسم دایره مارکر\",\n },\n },\n handlers: {\n circle: {\n tooltip: {\n start: \"کلیک کنید و سپس درگ کنید تا یک دایره بکشید.\",\n },\n radius: \"ردیوس\",\n },\n circlemarker: {\n tooltip: {\n start: \"با کلیک بر روی نقشه یک مارکر رسم کنید.\",\n },\n },\n marker: {\n icon: \"images/LeafletMapplaceholder.png\",\n tooltip: {\n start: \"با کلیک بر روی نقشه یک مارکر رسم کنید.\",\n },\n },\n polygon: {\n tooltip: {\n start: \"یک شکل رسم کنید.\",\n cont: \"ادامه رسم شکل.\",\n end: \"برای پایان رسم بر روی اولین نقظه کلیک کنید.\",\n },\n },\n polyline: {\n error: \"Error: shape edges cannot cross!\",\n tooltip: {\n start: \"با کلیک کردن یک خط رسم کنید.\",\n cont: \"با کلیک به رسم خود ادامه دهید.\",\n end: \"برای پایان رسم بر روی آخرین نقظ رسم شده کلیک کنید.\",\n },\n },\n rectangle: {\n tooltip: {\n start: \"با کلیک و درگ کردن یک جای خواب رسم کنید.\",\n },\n },\n simpleshape: {\n tooltip: {\n end: \"ماوس را رها کنید تا رسم تمام شود.\",\n },\n },\n },\n },\n edit: {\n toolbar: {\n actions: {\n save: {\n title: \"ذخیره تنظیمات\",\n text: \"ذخیره\",\n },\n cancel: {\n title: \"لغو کردن، ویرایش تمام تغییرات نادیده گرفته خواهند شد\",\n text: \"لغو\",\n },\n clearAll: {\n title: \"پاک کردن تمام لایه ها\",\n text: \"پاک کردن لایه ها\",\n },\n },\n buttons: {\n edit: \"ویرایش لایه ها\",\n editDisabled: \"لایه ای برای ویرایش وجود ندارد\",\n remove: \"پاک کردن لایه ها\",\n removeDisabled: \"لایه ای برای پاک کردن وجود ندارد\",\n },\n },\n handlers: {\n edit: {\n tooltip: {\n text: \"Drag handles or markers to edit features.\",\n subtext: \"با کلیک بر روی لغو تغییرات اعمال نخواهند شد.\",\n },\n },\n remove: {\n tooltip: {\n text: \"Click on a feature to remove.\",\n },\n },\n },\n },\n};\n\nconst icon = (val, zoom) =>\n L.divIcon({\n className: \"my-div-icon\",\n html: `
    \n

    \n

    ${val || 0}

    \n
    `,\n });\n\nfunction MyComponent({ setZoom }) {\n const map = useMap();\n\n return null;\n}\n\nconst LeafletMap = () => {\n // const map =\n const [zoom, setZoom] = useState(22);\n const outerBounds = [\n [50.505, -29.09],\n [52.505, 29.09],\n ];\n\n const leafEl = useRef(null);\n const mapRef = useRef(null);\n const onCreated = () => {\n console.log({ next, add });\n add(Math.floor(Math.random() * 10));\n // const drawnItems = leafEl.current._layers;\n // console.log({ drawnItems });\n };\n const [next, add] = useState(1);\n const location = [38.9072, -77.0369];\n console.log({ mapRef });\n if (mapRef.current) {\n console.log(mapRef.current);\n }\n return (\n
    \n {\n mapInstance.on(\"zoomend\", function () {\n console.log(mapRef.current);\n setZoom(mapRef.current._zoom);\n });\n mapRef.current = mapInstance;\n }}\n center={[49.505, -2.09]}\n zoom={zoom}\n maxZoom={24}\n minZoom={18}\n maxNativeZoom={22}\n style={{ height: \"100vh\" }}\n zoomControl={false}\n bounds={outerBounds}\n >\n {/* */}\n \n \n \n {/* */}\n {bedNumb}\n \n \n Oh snap! you can't draw that!\", // Message that will show when intersect\n },\n shapeOptions: {\n color: \"#bada55\",\n },\n },\n circle: false, // Turns off this drawing tool\n rectangle: {\n shapeOptions: {\n clickable: false,\n },\n },\n marker: {\n icon: icon(next, zoom),\n },\n }}\n position=\"topright\"\n count={next}\n onCreated={(e) => {\n console.log({ next, e });\n onCreated(next);\n }}\n allowIntersection={false}\n />\n \n \n \n \n \n
    \n );\n};\n\nexport default LeafletMap;\n","/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js",[],[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/IconText/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/TitleSubtitle/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast2/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/SearchBox/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign2/index.js",[],[],"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ButtonDivTag/index.js",[],[],{"ruleId":"197","severity":1,"message":"198","line":3,"column":8,"nodeType":"199","messageId":"200","endLine":3,"endColumn":17},{"ruleId":"197","severity":1,"message":"201","line":4,"column":8,"nodeType":"199","messageId":"200","endLine":4,"endColumn":18},{"ruleId":"197","severity":1,"message":"202","line":5,"column":8,"nodeType":"199","messageId":"200","endLine":5,"endColumn":19},{"ruleId":"197","severity":1,"message":"203","line":4,"column":8,"nodeType":"199","messageId":"200","endLine":4,"endColumn":26},{"ruleId":"197","severity":1,"message":"204","line":5,"column":8,"nodeType":"199","messageId":"200","endLine":5,"endColumn":14},{"ruleId":"197","severity":1,"message":"205","line":10,"column":8,"nodeType":"199","messageId":"200","endLine":10,"endColumn":13},{"ruleId":"197","severity":1,"message":"206","line":13,"column":21,"nodeType":"199","messageId":"200","endLine":13,"endColumn":30},{"ruleId":"197","severity":1,"message":"206","line":8,"column":21,"nodeType":"199","messageId":"200","endLine":8,"endColumn":30},{"ruleId":"207","severity":1,"message":"208","line":23,"column":6,"nodeType":"209","endLine":23,"endColumn":8,"suggestions":"210"},{"ruleId":"211","severity":1,"message":"212","line":36,"column":13,"nodeType":"213","endLine":39,"endColumn":14},{"ruleId":"214","severity":1,"message":"215","line":7,"column":3,"nodeType":"216","messageId":"217","endLine":9,"endColumn":4},{"ruleId":"197","severity":1,"message":"218","line":3,"column":35,"nodeType":"199","messageId":"200","endLine":3,"endColumn":42},{"ruleId":"197","severity":1,"message":"219","line":9,"column":3,"nodeType":"199","messageId":"200","endLine":9,"endColumn":12},{"ruleId":"197","severity":1,"message":"220","line":29,"column":7,"nodeType":"199","messageId":"200","endLine":29,"endColumn":12},{"ruleId":"197","severity":1,"message":"221","line":168,"column":10,"nodeType":"199","messageId":"200","endLine":168,"endColumn":21},{"ruleId":"197","severity":1,"message":"222","line":169,"column":9,"nodeType":"199","messageId":"200","endLine":169,"endColumn":12},{"ruleId":"197","severity":1,"message":"223","line":191,"column":9,"nodeType":"199","messageId":"200","endLine":191,"endColumn":17},"no-unused-vars","'ContactUs' is defined but never used.","Identifier","unusedVar","'LeafletMap' is defined but never used.","'CardDesign2' is defined but never used.","'BoxNextToEachOther' is defined but never used.","'Button' is defined but never used.","'Login' is defined but never used.","'getValues' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'openCalendar'. Either include it or remove the dependency array. If 'openCalendar' changes too often, find the parent component that defines it and wrap that definition in useCallback.","ArrayExpression",["224"],"jsx-a11y/anchor-is-valid","The href attribute requires a valid value to be accessible. Provide a valid, navigable address as the href value. If you cannot provide a valid href, but still need the element to resemble a link, use a button and change it with appropriate styles. Learn more: https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/docs/rules/anchor-is-valid.md","JSXOpeningElement","no-lone-blocks","Nested block is redundant.","BlockStatement","redundantNestedBlock","'useMemo' is defined but never used.","'Rectangle' is defined but never used.","'pinMB' is assigned a value but never used.","'MyComponent' is defined but never used.","'map' is assigned a value but never used.","'location' is assigned a value but never used.",{"desc":"225","fix":"226"},"Update the dependencies array to be: [openCalendar]",{"range":"227","text":"228"},[530,532],"[openCalendar]"] \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/02e59e1973f57c333a93081665424331.json b/node_modules/.cache/babel-loader/02e59e1973f57c333a93081665424331.json new file mode 100644 index 00000000..9674a282 --- /dev/null +++ b/node_modules/.cache/babel-loader/02e59e1973f57c333a93081665424331.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(LeafletMap, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBAGE,QAAC,UAAD;QAAA;QAAA;QAAA;MAAA;IAHF;EAJF;AAUD;;KAXQA,G;AAaT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/04e9829fa128e4dad2f41e9b47a47fb6.json b/node_modules/.cache/babel-loader/04e9829fa128e4dad2f41e9b47a47fb6.json new file mode 100644 index 00000000..abebc3c6 --- /dev/null +++ b/node_modules/.cache/babel-loader/04e9829fa128e4dad2f41e9b47a47fb6.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ButtonDivTag/index.js\";\nimport React from \"react\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst ButtonDivTag = _ref => {\n let {\n className,\n text,\n onClick,\n props\n } = _ref;\n console.log(props);\n return /*#__PURE__*/_jsxDEV(\"div\", { ...props,\n onClick: onClick,\n className: `flex items-center justify-center transiton duration-200 hover:bg-opacity-70 ${className}`,\n children: text\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 5\n }, this);\n};\n\n_c = ButtonDivTag;\nexport default ButtonDivTag;\nButtonDivTag.defaultProps = {\n className: \"bg-primary hover:bg-primaryDark hover:bg-opacity-90 text-primaryText border border-b-4 border-primaryLight rounded text-sm px-4 py-4\",\n text: \"its a DIV tag not BUTTON\"\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"ButtonDivTag\");","map":{"version":3,"names":["React","ButtonDivTag","className","text","onClick","props","console","log","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/ButtonDivTag/index.js"],"sourcesContent":["import React from \"react\";\n\nconst ButtonDivTag = ({ className, text, onClick, props }) => {\n console.log(props);\n return (\n \n {text}\n \n );\n};\n\nexport default ButtonDivTag;\n\nButtonDivTag.defaultProps = {\n className:\n \"bg-primary hover:bg-primaryDark hover:bg-opacity-90 text-primaryText border border-b-4 border-primaryLight rounded text-sm px-4 py-4\",\n text: \"its a DIV tag not BUTTON\",\n};"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAEA,MAAMC,YAAY,GAAG,QAAyC;EAAA,IAAxC;IAAEC,SAAF;IAAaC,IAAb;IAAmBC,OAAnB;IAA4BC;EAA5B,CAAwC;EAC5DC,OAAO,CAACC,GAAR,CAAYF,KAAZ;EACA,oBACE,oBACMA,KADN;IAEE,OAAO,EAAED,OAFX;IAGE,SAAS,EAAG,+EAA8EF,SAAU,EAHtG;IAAA,UAKGC;EALH;IAAA;IAAA;IAAA;EAAA,QADF;AASD,CAXD;;KAAMF,Y;AAaN,eAAeA,YAAf;AAEAA,YAAY,CAACO,YAAb,GAA4B;EAC1BN,SAAS,EACP,sIAFwB;EAG1BC,IAAI,EAAE;AAHoB,CAA5B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/076bb9ebdf8b5a4b08c3941d5a547f71.json b/node_modules/.cache/babel-loader/076bb9ebdf8b5a4b08c3941d5a547f71.json new file mode 100644 index 00000000..cfdf5128 --- /dev/null +++ b/node_modules/.cache/babel-loader/076bb9ebdf8b5a4b08c3941d5a547f71.json @@ -0,0 +1 @@ +{"ast":null,"code":"'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","map":{"version":3,"names":["process","env","NODE_ENV","module","exports","require"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/node_modules/react-is/index.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n"],"mappings":"AAAA;;AAEA,IAAIA,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;EACzCC,MAAM,CAACC,OAAP,GAAiBC,OAAO,CAAC,kCAAD,CAAxB;AACD,CAFD,MAEO;EACLF,MAAM,CAACC,OAAP,GAAiBC,OAAO,CAAC,+BAAD,CAAxB;AACD"},"metadata":{},"sourceType":"script"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/0b046746a61d5773f9278257e3801964.json b/node_modules/.cache/babel-loader/0b046746a61d5773f9278257e3801964.json new file mode 100644 index 00000000..749e4d59 --- /dev/null +++ b/node_modules/.cache/babel-loader/0b046746a61d5773f9278257e3801964.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport SearchBox from \"../SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primary\",\n titleBorderClassName: \"w-1.5 h-7 bg-secondary ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nimport SearchBox from \"../SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,OAAOC,SAAP,MAAsB,cAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,2HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,wBAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/0d7c0ca2bc8c4b8aba0edb394b4a1632.json b/node_modules/.cache/babel-loader/0d7c0ca2bc8c4b8aba0edb394b4a1632.json new file mode 100644 index 00000000..5a3e8e41 --- /dev/null +++ b/node_modules/.cache/babel-loader/0d7c0ca2bc8c4b8aba0edb394b4a1632.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/0dbcb54bc777b8d7747672b5f334b52d.json b/node_modules/.cache/babel-loader/0dbcb54bc777b8d7747672b5f334b52d.json new file mode 100644 index 00000000..61953a2a --- /dev/null +++ b/node_modules/.cache/babel-loader/0dbcb54bc777b8d7747672b5f334b52d.json @@ -0,0 +1 @@ +{"ast":null,"code":"/**\r\n * @param {any} obj The object to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n */\nexport default function isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = Object.getPrototypeOf(obj);\n if (proto === null) return true;\n var baseProto = proto;\n\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n\n return proto === baseProto;\n}","map":{"version":3,"names":["isPlainObject","obj","proto","Object","getPrototypeOf","baseProto"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/utils/isPlainObject.js"],"sourcesContent":["/**\r\n * @param {any} obj The object to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n */\nexport default function isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = Object.getPrototypeOf(obj);\n if (proto === null) return true;\n var baseProto = proto;\n\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n\n return proto === baseProto;\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA,eAAe,SAASA,aAAT,CAAuBC,GAAvB,EAA4B;EACzC,IAAI,OAAOA,GAAP,KAAe,QAAf,IAA2BA,GAAG,KAAK,IAAvC,EAA6C,OAAO,KAAP;EAC7C,IAAIC,KAAK,GAAGC,MAAM,CAACC,cAAP,CAAsBH,GAAtB,CAAZ;EACA,IAAIC,KAAK,KAAK,IAAd,EAAoB,OAAO,IAAP;EACpB,IAAIG,SAAS,GAAGH,KAAhB;;EAEA,OAAOC,MAAM,CAACC,cAAP,CAAsBC,SAAtB,MAAqC,IAA5C,EAAkD;IAChDA,SAAS,GAAGF,MAAM,CAACC,cAAP,CAAsBC,SAAtB,CAAZ;EACD;;EAED,OAAOH,KAAK,KAAKG,SAAjB;AACD"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/0dcf33362b7f12e6301052ebf0ac0a6a.json b/node_modules/.cache/babel-loader/0dcf33362b7f12e6301052ebf0ac0a6a.json new file mode 100644 index 00000000..ea10d0b2 --- /dev/null +++ b/node_modules/.cache/babel-loader/0dcf33362b7f12e6301052ebf0ac0a6a.json @@ -0,0 +1 @@ +{"ast":null,"code":"import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","map":{"version":3,"names":["React","ReactReduxContext","createContext","process","env","NODE_ENV","displayName"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/components/Context.js"],"sourcesContent":["import React from 'react';\nexport var ReactReduxContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAO,IAAIC,iBAAiB,GAAG,aAAaD,KAAK,CAACE,aAAN,CAAoB,IAApB,CAArC;;AAEP,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;EACzCJ,iBAAiB,CAACK,WAAlB,GAAgC,YAAhC;AACD;;AAED,eAAeL,iBAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/0e1a680f0e686d547513be9f0e47bc02.json b/node_modules/.cache/babel-loader/0e1a680f0e686d547513be9f0e47bc02.json new file mode 100644 index 00000000..2018bb32 --- /dev/null +++ b/node_modules/.cache/babel-loader/0e1a680f0e686d547513be9f0e47bc02.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/IconText/index.js\";\nimport React from \"react\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst IconText = _ref => {\n let {\n contentClassname,\n icon\n } = _ref;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-start mt-2\",\n children: [/*#__PURE__*/_jsxDEV(\"img\", {\n src: icon,\n alt: \"info\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: `${contentClassname} text-xs text-justify mr-3 leading-5`,\n children: \"\\u0627\\u0628\\u062A\\u062F\\u0627 \\u0628\\u0627\\u06CC\\u062F \\u062F\\u06CC\\u0648\\u0627\\u0631 \\u0647\\u0627 \\u0628\\u0647 \\u0635\\u0648\\u0631\\u062A \\u062D\\u062F\\u0648\\u062F\\u06CC \\u062A\\u0631\\u0633\\u06CC\\u0645 \\u0634\\u0648\\u0646\\u062F \\u0648 \\u062A\\u0645\\u0627\\u0645\\u06CC \\u0646\\u0642\\u0627\\u0637 \\u0628\\u0647 \\u06CC\\u06AF \\u062F\\u06CC\\u06AF\\u0631 \\u0648\\u0635\\u0644 \\u0634\\u0648\\u0646\\u062F \\u062A\\u0627 \\u0637\\u0631\\u062D \\u0628\\u0631\\u0627\\u06CC \\u062C\\u0627\\u06CC\\u06AF\\u0630\\u0627\\u0631\\u06CC \\u0648\\u0633\\u0627\\u06CC\\u0644 \\u0622\\u0645\\u0627\\u062F\\u0647 \\u0634\\u0648\\u062F\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 5,\n columnNumber: 5\n }, this);\n};\n\n_c = IconText;\nexport default IconText;\nIconText.defaultProps = {\n icon: \"images/IconTextinfo-icon.svg\",\n contentClassname: \"text-primaryText\"\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"IconText\");","map":{"version":3,"names":["React","IconText","contentClassname","icon","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/IconText/index.js"],"sourcesContent":["import React from \"react\";\n\nconst IconText = ({ contentClassname, icon }) => {\n return (\n
    \n \"info\"\n

    \n ابتدا باید دیوار ها به صورت حدودی ترسیم شوند و تمامی نقاط به یگ دیگر وصل\n شوند تا طرح برای جایگذاری وسایل آماده شود\n

    \n
    \n );\n};\n\nexport default IconText;\n\nIconText.defaultProps = {\n icon: \"images/IconTextinfo-icon.svg\",\n contentClassname: \"text-primaryText\",\n};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAEA,MAAMC,QAAQ,GAAG,QAAgC;EAAA,IAA/B;IAAEC,gBAAF;IAAoBC;EAApB,CAA+B;EAC/C,oBACE;IAAK,SAAS,EAAC,gCAAf;IAAA,wBACE;MAAK,GAAG,EAAEA,IAAV;MAAgB,GAAG,EAAC;IAApB;MAAA;MAAA;MAAA;IAAA,QADF,eAEE;MAAG,SAAS,EAAG,GAAED,gBAAiB,sCAAlC;MAAA;IAAA;MAAA;MAAA;MAAA;IAAA,QAFF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AASD,CAVD;;KAAMD,Q;AAYN,eAAeA,QAAf;AAEAA,QAAQ,CAACG,YAAT,GAAwB;EACtBD,IAAI,EAAE,8BADgB;EAEtBD,gBAAgB,EAAE;AAFI,CAAxB"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/12b89452c415c88408630221742e2b55.json b/node_modules/.cache/babel-loader/12b89452c415c88408630221742e2b55.json new file mode 100644 index 00000000..3dc5d79c --- /dev/null +++ b/node_modules/.cache/babel-loader/12b89452c415c88408630221742e2b55.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"hr\", {\n className: \"border border-gray-100 w-full mt-10\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/12ded71633014491bc345e304c801942.json b/node_modules/.cache/babel-loader/12ded71633014491bc345e304c801942.json new file mode 100644 index 00000000..af10c2e4 --- /dev/null +++ b/node_modules/.cache/babel-loader/12ded71633014491bc345e304c801942.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign3 from \"./components/CardDesign3\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(CardDesign2, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign3","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign3 from \"./components/CardDesign3\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n {/* */}\n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBAIE,QAAC,WAAD;QAAA;QAAA;QAAA;MAAA;IAJF;EAJF;AAWD;;KAZQA,G;AAcT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/12e237626fad8fb5b549512e8b57df6a.json b/node_modules/.cache/babel-loader/12e237626fad8fb5b549512e8b57df6a.json new file mode 100644 index 00000000..990ddab3 --- /dev/null +++ b/node_modules/.cache/babel-loader/12e237626fad8fb5b549512e8b57df6a.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"hr\", {\n className: \"border border-gray-100 w-full mt-\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/12e2b6ea52cb2ea22e814f3ed0da9b55.json b/node_modules/.cache/babel-loader/12e2b6ea52cb2ea22e814f3ed0da9b55.json new file mode 100644 index 00000000..020dbdfd --- /dev/null +++ b/node_modules/.cache/babel-loader/12e2b6ea52cb2ea22e814f3ed0da9b55.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast2/index.js\";\nimport React from \"react\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nconst CustomToast2 = _ref => {\n let {\n items,\n num\n } = _ref;\n return /*#__PURE__*/_jsxDEV(_Fragment, {\n children: items.slice(0, num).map((item, index) => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center p-4 bg-surface border border-success rounded mt-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center flex-1 \",\n children: [/*#__PURE__*/_jsxDEV(\"img\", {\n src: item.profilePic,\n className: \"rounded-full w-16\",\n alt: item.profilePic\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col mr-2\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-sm text-primaryText\",\n children: item.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-xs mt-1.5 mb-1 text-primaryLight\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n className: \"ml-1\",\n children: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u0648\\u0631\\u0648\\u062F:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 17\n }, this), item.enteryData]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-xs text-primaryLight\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n children: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 17\n }, this), item.idCard]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n className: \"px-2 py-0.5 mr-2 rounded-sm bg-[#C9E2B388] text-[#468722] font-bold\",\n children: item.number\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"img\", {\n src: \"images/CustomToastpen-icon.svg\",\n alt: \"pen\",\n className: \"mr-4 cursor-pointer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 35,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 11\n }, this)]\n }, index, true, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 9\n }, this))\n }, void 0, false);\n};\n\n_c = CustomToast2;\nexport default CustomToast2;\nCustomToast2.defaultProps = {\n num: 5,\n items: [{\n profilePic: \"images/CustomToast2profilePic1.svg\",\n name: \"کامبیز هوشنمند\",\n enteryData: \"1401/02/01\",\n idCard: 2980817631,\n number: \"B06\"\n }, {\n profilePic: \"images/CustomToast2profilePic2.svg\",\n name: \"پارسا ایرانی\",\n enteryData: \"1400/07/19\",\n idCard: 7000817631,\n number: \"B04\"\n }, {\n profilePic: \"images/CustomToast2profilePic3.svg\",\n name: \"کامران مرادی\",\n enteryData: \"1400/07/19\",\n idCard: 2423817631,\n number: \"B02\"\n }, {\n profilePic: \"images/CustomToast2profilePic4.svg\",\n name: \"محمد علوی\",\n enteryData: \"1400/07/19\",\n idCard: 3340817631,\n number: \"B01\"\n }, {\n profilePic: \"images/CustomToast2profilePic5.svg\",\n name: \"محمد محمدی\",\n enteryData: \"1400/07/19\",\n idCard: 3110817631,\n number: \"B07\"\n }, {\n profilePic: \"images/CustomToast2profilePic1.svg\",\n name: \"کامبیز هوشنمند\",\n enteryData: \"1401/02/01\",\n idCard: 2980817631,\n number: \"B06\"\n }, {\n profilePic: \"images/CustomToast2profilePic2.svg\",\n name: \"پارسا ایرانی\",\n enteryData: \"1400/07/19\",\n idCard: 7000817631,\n number: \"B04\"\n }, {\n profilePic: \"images/CustomToast2profilePic3.svg\",\n name: \"کامران مرادی\",\n enteryData: \"1400/07/19\",\n idCard: 2423817631,\n number: \"B02\"\n }, {\n profilePic: \"images/CustomToast2profilePic4.svg\",\n name: \"محمد علوی\",\n enteryData: \"1400/07/19\",\n idCard: 3340817631,\n number: \"B01\"\n }, {\n profilePic: \"images/CustomToast2profilePic5.svg\",\n name: \"محمد محمدی\",\n enteryData: \"1400/07/19\",\n idCard: 3110817631,\n number: \"B07\"\n }, {\n profilePic: \"images/CustomToast2profilePic5.svg\",\n name: \"محمد محمدی\",\n enteryData: \"1400/07/19\",\n idCard: 3110817631,\n number: \"B07\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"CustomToast2\");","map":{"version":3,"names":["React","CustomToast2","items","num","slice","map","item","index","profilePic","name","enteryData","idCard","number","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast2/index.js"],"sourcesContent":["import React from \"react\";\n\nconst CustomToast2 = ({ items, num }) => {\n return (\n <>\n {items.slice(0, num).map((item, index) => (\n \n {/* right */}\n
    \n \n
    \n

    {item.name}

    \n

    \n تاریخ ورود:\n {item.enteryData}\n

    \n

    \n کد ملی\n {item.idCard}\n

    \n
    \n
    \n {/* left */}\n
    \n \n {item.number}\n \n \n
    \n \n ))}\n \n );\n};\n\nexport default CustomToast2;\n\nCustomToast2.defaultProps = {\n num: 5,\n\n items: [\n {\n profilePic: \"images/CustomToast2profilePic1.svg\",\n name: \"کامبیز هوشنمند\",\n enteryData: \"1401/02/01\",\n idCard: 2980817631,\n number: \"B06\",\n },\n {\n profilePic: \"images/CustomToast2profilePic2.svg\",\n name: \"پارسا ایرانی\",\n enteryData: \"1400/07/19\",\n idCard: 7000817631,\n number: \"B04\",\n },\n {\n profilePic: \"images/CustomToast2profilePic3.svg\",\n name: \"کامران مرادی\",\n enteryData: \"1400/07/19\",\n idCard: 2423817631,\n number: \"B02\",\n },\n {\n profilePic: \"images/CustomToast2profilePic4.svg\",\n name: \"محمد علوی\",\n enteryData: \"1400/07/19\",\n idCard: 3340817631,\n number: \"B01\",\n },\n {\n profilePic: \"images/CustomToast2profilePic5.svg\",\n name: \"محمد محمدی\",\n enteryData: \"1400/07/19\",\n idCard: 3110817631,\n number: \"B07\",\n },\n {\n profilePic: \"images/CustomToast2profilePic1.svg\",\n name: \"کامبیز هوشنمند\",\n enteryData: \"1401/02/01\",\n idCard: 2980817631,\n number: \"B06\",\n },\n {\n profilePic: \"images/CustomToast2profilePic2.svg\",\n name: \"پارسا ایرانی\",\n enteryData: \"1400/07/19\",\n idCard: 7000817631,\n number: \"B04\",\n },\n {\n profilePic: \"images/CustomToast2profilePic3.svg\",\n name: \"کامران مرادی\",\n enteryData: \"1400/07/19\",\n idCard: 2423817631,\n number: \"B02\",\n },\n {\n profilePic: \"images/CustomToast2profilePic4.svg\",\n name: \"محمد علوی\",\n enteryData: \"1400/07/19\",\n idCard: 3340817631,\n number: \"B01\",\n },\n {\n profilePic: \"images/CustomToast2profilePic5.svg\",\n name: \"محمد محمدی\",\n enteryData: \"1400/07/19\",\n idCard: 3110817631,\n number: \"B07\",\n },\n {\n profilePic: \"images/CustomToast2profilePic5.svg\",\n name: \"محمد محمدی\",\n enteryData: \"1400/07/19\",\n idCard: 3110817631,\n number: \"B07\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/137281637045e542bf1cfb7a115cc780.json b/node_modules/.cache/babel-loader/137281637045e542bf1cfb7a115cc780.json new file mode 100644 index 00000000..97b527f1 --- /dev/null +++ b/node_modules/.cache/babel-loader/137281637045e542bf1cfb7a115cc780.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"..//TitleSubtitle\";\nimport SearchBox from \"../../SearchDesign/SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow-sm border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1.5 h-7 bg-primary ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"..//TitleSubtitle\";\n\nimport SearchBox from \"../../SearchDesign/SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,mBAA1B;AAEA,OAAOC,SAAP,MAAsB,8BAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,8HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/14b5b0c75e3166fd7ec0ed009809aaf4.json b/node_modules/.cache/babel-loader/14b5b0c75e3166fd7ec0ed009809aaf4.json new file mode 100644 index 00000000..405cbfbd --- /dev/null +++ b/node_modules/.cache/babel-loader/14b5b0c75e3166fd7ec0ed009809aaf4.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/1525d1f688bd2b8e2a3534e4adee8a42.json b/node_modules/.cache/babel-loader/1525d1f688bd2b8e2a3534e4adee8a42.json new file mode 100644 index 00000000..2093c30e --- /dev/null +++ b/node_modules/.cache/babel-loader/1525d1f688bd2b8e2a3534e4adee8a42.json @@ -0,0 +1 @@ +{"ast":null,"code":"export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}","map":{"version":3,"names":["bindActionCreators","actionCreators","dispatch","boundActionCreators","_loop","key","actionCreator","apply","arguments"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/utils/bindActionCreators.js"],"sourcesContent":["export default function bindActionCreators(actionCreators, dispatch) {\n var boundActionCreators = {};\n\n var _loop = function _loop(key) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = function () {\n return dispatch(actionCreator.apply(void 0, arguments));\n };\n }\n };\n\n for (var key in actionCreators) {\n _loop(key);\n }\n\n return boundActionCreators;\n}"],"mappings":"AAAA,eAAe,SAASA,kBAAT,CAA4BC,cAA5B,EAA4CC,QAA5C,EAAsD;EACnE,IAAIC,mBAAmB,GAAG,EAA1B;;EAEA,IAAIC,KAAK,GAAG,SAASA,KAAT,CAAeC,GAAf,EAAoB;IAC9B,IAAIC,aAAa,GAAGL,cAAc,CAACI,GAAD,CAAlC;;IAEA,IAAI,OAAOC,aAAP,KAAyB,UAA7B,EAAyC;MACvCH,mBAAmB,CAACE,GAAD,CAAnB,GAA2B,YAAY;QACrC,OAAOH,QAAQ,CAACI,aAAa,CAACC,KAAd,CAAoB,KAAK,CAAzB,EAA4BC,SAA5B,CAAD,CAAf;MACD,CAFD;IAGD;EACF,CARD;;EAUA,KAAK,IAAIH,GAAT,IAAgBJ,cAAhB,EAAgC;IAC9BG,KAAK,CAACC,GAAD,CAAL;EACD;;EAED,OAAOF,mBAAP;AACD"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/1583a8a80daf6c82f2b79f91d47cebd7.json b/node_modules/.cache/babel-loader/1583a8a80daf6c82f2b79f91d47cebd7.json new file mode 100644 index 00000000..7a3340d2 --- /dev/null +++ b/node_modules/.cache/babel-loader/1583a8a80daf6c82f2b79f91d47cebd7.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}","map":{"version":3,"names":["getBatch","createListenerCollection","batch","first","last","clear","notify","listener","callback","next","get","listeners","push","subscribe","isSubscribed","prev","unsubscribe","nullListeners","createSubscription","store","parentSub","addNestedSub","trySubscribe","notifyNestedSubs","handleChangeWrapper","subscription","onStateChange","Boolean","tryUnsubscribe","undefined","getListeners"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/utils/Subscription.js"],"sourcesContent":["import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n var batch = getBatch();\n var first = null;\n var last = null;\n return {\n clear: function clear() {\n first = null;\n last = null;\n },\n notify: function notify() {\n batch(function () {\n var listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n get: function get() {\n var listeners = [];\n var listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n subscribe: function subscribe(callback) {\n var isSubscribed = true;\n var listener = last = {\n callback: callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n };\n}\n\nvar nullListeners = {\n notify: function notify() {},\n get: function get() {\n return [];\n }\n};\nexport function createSubscription(store, parentSub) {\n var unsubscribe;\n var listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n var subscription = {\n addNestedSub: addNestedSub,\n notifyNestedSubs: notifyNestedSubs,\n handleChangeWrapper: handleChangeWrapper,\n isSubscribed: isSubscribed,\n trySubscribe: trySubscribe,\n tryUnsubscribe: tryUnsubscribe,\n getListeners: function getListeners() {\n return listeners;\n }\n };\n return subscription;\n}"],"mappings":"AAAA,SAASA,QAAT,QAAyB,SAAzB,C,CAAoC;AACpC;AACA;;AAEA,SAASC,wBAAT,GAAoC;EAClC,IAAIC,KAAK,GAAGF,QAAQ,EAApB;EACA,IAAIG,KAAK,GAAG,IAAZ;EACA,IAAIC,IAAI,GAAG,IAAX;EACA,OAAO;IACLC,KAAK,EAAE,SAASA,KAAT,GAAiB;MACtBF,KAAK,GAAG,IAAR;MACAC,IAAI,GAAG,IAAP;IACD,CAJI;IAKLE,MAAM,EAAE,SAASA,MAAT,GAAkB;MACxBJ,KAAK,CAAC,YAAY;QAChB,IAAIK,QAAQ,GAAGJ,KAAf;;QAEA,OAAOI,QAAP,EAAiB;UACfA,QAAQ,CAACC,QAAT;UACAD,QAAQ,GAAGA,QAAQ,CAACE,IAApB;QACD;MACF,CAPI,CAAL;IAQD,CAdI;IAeLC,GAAG,EAAE,SAASA,GAAT,GAAe;MAClB,IAAIC,SAAS,GAAG,EAAhB;MACA,IAAIJ,QAAQ,GAAGJ,KAAf;;MAEA,OAAOI,QAAP,EAAiB;QACfI,SAAS,CAACC,IAAV,CAAeL,QAAf;QACAA,QAAQ,GAAGA,QAAQ,CAACE,IAApB;MACD;;MAED,OAAOE,SAAP;IACD,CAzBI;IA0BLE,SAAS,EAAE,SAASA,SAAT,CAAmBL,QAAnB,EAA6B;MACtC,IAAIM,YAAY,GAAG,IAAnB;MACA,IAAIP,QAAQ,GAAGH,IAAI,GAAG;QACpBI,QAAQ,EAAEA,QADU;QAEpBC,IAAI,EAAE,IAFc;QAGpBM,IAAI,EAAEX;MAHc,CAAtB;;MAMA,IAAIG,QAAQ,CAACQ,IAAb,EAAmB;QACjBR,QAAQ,CAACQ,IAAT,CAAcN,IAAd,GAAqBF,QAArB;MACD,CAFD,MAEO;QACLJ,KAAK,GAAGI,QAAR;MACD;;MAED,OAAO,SAASS,WAAT,GAAuB;QAC5B,IAAI,CAACF,YAAD,IAAiBX,KAAK,KAAK,IAA/B,EAAqC;QACrCW,YAAY,GAAG,KAAf;;QAEA,IAAIP,QAAQ,CAACE,IAAb,EAAmB;UACjBF,QAAQ,CAACE,IAAT,CAAcM,IAAd,GAAqBR,QAAQ,CAACQ,IAA9B;QACD,CAFD,MAEO;UACLX,IAAI,GAAGG,QAAQ,CAACQ,IAAhB;QACD;;QAED,IAAIR,QAAQ,CAACQ,IAAb,EAAmB;UACjBR,QAAQ,CAACQ,IAAT,CAAcN,IAAd,GAAqBF,QAAQ,CAACE,IAA9B;QACD,CAFD,MAEO;UACLN,KAAK,GAAGI,QAAQ,CAACE,IAAjB;QACD;MACF,CAfD;IAgBD;EAxDI,CAAP;AA0DD;;AAED,IAAIQ,aAAa,GAAG;EAClBX,MAAM,EAAE,SAASA,MAAT,GAAkB,CAAE,CADV;EAElBI,GAAG,EAAE,SAASA,GAAT,GAAe;IAClB,OAAO,EAAP;EACD;AAJiB,CAApB;AAMA,OAAO,SAASQ,kBAAT,CAA4BC,KAA5B,EAAmCC,SAAnC,EAA8C;EACnD,IAAIJ,WAAJ;EACA,IAAIL,SAAS,GAAGM,aAAhB;;EAEA,SAASI,YAAT,CAAsBd,QAAtB,EAAgC;IAC9Be,YAAY;IACZ,OAAOX,SAAS,CAACE,SAAV,CAAoBN,QAApB,CAAP;EACD;;EAED,SAASgB,gBAAT,GAA4B;IAC1BZ,SAAS,CAACL,MAAV;EACD;;EAED,SAASkB,mBAAT,GAA+B;IAC7B,IAAIC,YAAY,CAACC,aAAjB,EAAgC;MAC9BD,YAAY,CAACC,aAAb;IACD;EACF;;EAED,SAASZ,YAAT,GAAwB;IACtB,OAAOa,OAAO,CAACX,WAAD,CAAd;EACD;;EAED,SAASM,YAAT,GAAwB;IACtB,IAAI,CAACN,WAAL,EAAkB;MAChBA,WAAW,GAAGI,SAAS,GAAGA,SAAS,CAACC,YAAV,CAAuBG,mBAAvB,CAAH,GAAiDL,KAAK,CAACN,SAAN,CAAgBW,mBAAhB,CAAxE;MACAb,SAAS,GAAGV,wBAAwB,EAApC;IACD;EACF;;EAED,SAAS2B,cAAT,GAA0B;IACxB,IAAIZ,WAAJ,EAAiB;MACfA,WAAW;MACXA,WAAW,GAAGa,SAAd;MACAlB,SAAS,CAACN,KAAV;MACAM,SAAS,GAAGM,aAAZ;IACD;EACF;;EAED,IAAIQ,YAAY,GAAG;IACjBJ,YAAY,EAAEA,YADG;IAEjBE,gBAAgB,EAAEA,gBAFD;IAGjBC,mBAAmB,EAAEA,mBAHJ;IAIjBV,YAAY,EAAEA,YAJG;IAKjBQ,YAAY,EAAEA,YALG;IAMjBM,cAAc,EAAEA,cANC;IAOjBE,YAAY,EAAE,SAASA,YAAT,GAAwB;MACpC,OAAOnB,SAAP;IACD;EATgB,CAAnB;EAWA,OAAOc,YAAP;AACD"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/18cc8a02468d118fde6f01a734f65f5b.json b/node_modules/.cache/babel-loader/18cc8a02468d118fde6f01a734f65f5b.json new file mode 100644 index 00000000..09325ac3 --- /dev/null +++ b/node_modules/.cache/babel-loader/18cc8a02468d118fde6f01a734f65f5b.json @@ -0,0 +1 @@ +{"ast":null,"code":"'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","map":{"version":3,"names":["reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","name","length","prototype","caller","callee","arguments","arity","FORWARD_REF_STATICS","render","MEMO_STATICS","compare","TYPE_STATICS","ForwardRef","Memo","getStatics","component","isMemo","defineProperty","Object","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","concat","targetStatics","sourceStatics","i","key","descriptor","e","module","exports"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"],"sourcesContent":["'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n"],"mappings":"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"},"metadata":{},"sourceType":"script"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/1928e2af59ba153c74875847d5a6ce12.json b/node_modules/.cache/babel-loader/1928e2af59ba153c74875847d5a6ce12.json new file mode 100644 index 00000000..df664e19 --- /dev/null +++ b/node_modules/.cache/babel-loader/1928e2af59ba153c74875847d5a6ce12.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(LeafletMap, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CardDesign1, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this)]\n }, void 0, true)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n \n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,wBAGE,QAAC,UAAD;QAAA;QAAA;QAAA;MAAA,QAHF,eAIE,QAAC,WAAD;QAAA;QAAA;QAAA;MAAA,QAJF;IAAA;EAJF;AAWD;;KAZQA,G;AAcT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/1a303ba1ccabfb8eb88af3bb45b9adfa.json b/node_modules/.cache/babel-loader/1a303ba1ccabfb8eb88af3bb45b9adfa.json new file mode 100644 index 00000000..77d3c21c --- /dev/null +++ b/node_modules/.cache/babel-loader/1a303ba1ccabfb8eb88af3bb45b9adfa.json @@ -0,0 +1 @@ +{"ast":null,"code":"var safeIsNaN = Number.isNaN || function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n};\n\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n\n return false;\n}\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) {\n isEqual = areInputsEqual;\n }\n\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n\n function memoized() {\n var newArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n\n return memoized;\n}\n\nexport default memoizeOne;","map":{"version":3,"names":["safeIsNaN","Number","isNaN","ponyfill","value","isEqual","first","second","areInputsEqual","newInputs","lastInputs","length","i","memoizeOne","resultFn","lastThis","lastArgs","lastResult","calledOnce","memoized","newArgs","_i","arguments","apply"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/memoize-one/dist/memoize-one.esm.js"],"sourcesContent":["var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n"],"mappings":"AAAA,IAAIA,SAAS,GAAGC,MAAM,CAACC,KAAP,IACZ,SAASC,QAAT,CAAkBC,KAAlB,EAAyB;EACrB,OAAO,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,KAAKA,KAA9C;AACH,CAHL;;AAIA,SAASC,OAAT,CAAiBC,KAAjB,EAAwBC,MAAxB,EAAgC;EAC5B,IAAID,KAAK,KAAKC,MAAd,EAAsB;IAClB,OAAO,IAAP;EACH;;EACD,IAAIP,SAAS,CAACM,KAAD,CAAT,IAAoBN,SAAS,CAACO,MAAD,CAAjC,EAA2C;IACvC,OAAO,IAAP;EACH;;EACD,OAAO,KAAP;AACH;;AACD,SAASC,cAAT,CAAwBC,SAAxB,EAAmCC,UAAnC,EAA+C;EAC3C,IAAID,SAAS,CAACE,MAAV,KAAqBD,UAAU,CAACC,MAApC,EAA4C;IACxC,OAAO,KAAP;EACH;;EACD,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,SAAS,CAACE,MAA9B,EAAsCC,CAAC,EAAvC,EAA2C;IACvC,IAAI,CAACP,OAAO,CAACI,SAAS,CAACG,CAAD,CAAV,EAAeF,UAAU,CAACE,CAAD,CAAzB,CAAZ,EAA2C;MACvC,OAAO,KAAP;IACH;EACJ;;EACD,OAAO,IAAP;AACH;;AAED,SAASC,UAAT,CAAoBC,QAApB,EAA8BT,OAA9B,EAAuC;EACnC,IAAIA,OAAO,KAAK,KAAK,CAArB,EAAwB;IAAEA,OAAO,GAAGG,cAAV;EAA2B;;EACrD,IAAIO,QAAJ;EACA,IAAIC,QAAQ,GAAG,EAAf;EACA,IAAIC,UAAJ;EACA,IAAIC,UAAU,GAAG,KAAjB;;EACA,SAASC,QAAT,GAAoB;IAChB,IAAIC,OAAO,GAAG,EAAd;;IACA,KAAK,IAAIC,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGC,SAAS,CAACX,MAAhC,EAAwCU,EAAE,EAA1C,EAA8C;MAC1CD,OAAO,CAACC,EAAD,CAAP,GAAcC,SAAS,CAACD,EAAD,CAAvB;IACH;;IACD,IAAIH,UAAU,IAAIH,QAAQ,KAAK,IAA3B,IAAmCV,OAAO,CAACe,OAAD,EAAUJ,QAAV,CAA9C,EAAmE;MAC/D,OAAOC,UAAP;IACH;;IACDA,UAAU,GAAGH,QAAQ,CAACS,KAAT,CAAe,IAAf,EAAqBH,OAArB,CAAb;IACAF,UAAU,GAAG,IAAb;IACAH,QAAQ,GAAG,IAAX;IACAC,QAAQ,GAAGI,OAAX;IACA,OAAOH,UAAP;EACH;;EACD,OAAOE,QAAP;AACH;;AAED,eAAeN,UAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/1a654644b2a37aad5e30b28cb14b9d47.json b/node_modules/.cache/babel-loader/1a654644b2a37aad5e30b28cb14b9d47.json new file mode 100644 index 00000000..0dfc538a --- /dev/null +++ b/node_modules/.cache/babel-loader/1a654644b2a37aad5e30b28cb14b9d47.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js\";\nimport React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../../MiniComponents/TitleSubtitle\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign1 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit flex flex-col p-4 bg-white shadow-sm rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"طبقه سوم\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1 h-5 bg-warning ml-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(IconText, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign1;\nexport default CardDesign1;\nCardDesign1.defaultProps = {};\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign1\");","map":{"version":3,"names":["React","CustomToast","IconText","TitleSubtitle","CardDesign1","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js"],"sourcesContent":["import React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../../MiniComponents/TitleSubtitle\";\n\nconst CardDesign1 = () => {\n return (\n
    \n \n \n \n
    \n );\n};\n\nexport default CardDesign1;\n\nCardDesign1.defaultProps = {};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,OAAOC,aAAP,MAA0B,oCAA1B;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,oDAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,UAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE,QAAC,QAAD;MAAA;MAAA;MAAA;IAAA,QAPF,eAQE,QAAC,WAAD;MAAA;MAAA;MAAA;IAAA,QARF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAYD,CAbD;;KAAMA,W;AAeN,eAAeA,WAAf;AAEAA,WAAW,CAACC,YAAZ,GAA2B,EAA3B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/1b20f6ec59109f41789b76fc8ad9982d.json b/node_modules/.cache/babel-loader/1b20f6ec59109f41789b76fc8ad9982d.json new file mode 100644 index 00000000..b74541a4 --- /dev/null +++ b/node_modules/.cache/babel-loader/1b20f6ec59109f41789b76fc8ad9982d.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;","map":{"version":3,"names":["useEffect","useLayoutEffect","useIsomorphicLayoutEffect","window","document","createElement"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js"],"sourcesContent":["import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,eAApB,QAA2C,OAA3C,C,CAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAIC,yBAAyB,GAAG,OAAOC,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,MAAM,CAACC,QAAd,KAA2B,WAA5D,IAA2E,OAAOD,MAAM,CAACC,QAAP,CAAgBC,aAAvB,KAAyC,WAApH,GAAkIJ,eAAlI,GAAoJD,SAApL"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/1c54d3b6c0e0b4a259f60df17e694760.json b/node_modules/.cache/babel-loader/1c54d3b6c0e0b4a259f60df17e694760.json new file mode 100644 index 00000000..70c3ad58 --- /dev/null +++ b/node_modules/.cache/babel-loader/1c54d3b6c0e0b4a259f60df17e694760.json @@ -0,0 +1 @@ +{"ast":null,"code":"// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","map":{"version":3,"names":["defaultNoopBatch","callback","batch","setBatch","newBatch","getBatch"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/utils/batch.js"],"sourcesContent":["// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};"],"mappings":"AAAA;AACA,SAASA,gBAAT,CAA0BC,QAA1B,EAAoC;EAClCA,QAAQ;AACT;;AAED,IAAIC,KAAK,GAAGF,gBAAZ,C,CAA8B;;AAE9B,OAAO,IAAIG,QAAQ,GAAG,SAASA,QAAT,CAAkBC,QAAlB,EAA4B;EAChD,OAAOF,KAAK,GAAGE,QAAf;AACD,CAFM,C,CAEJ;;AAEH,OAAO,IAAIC,QAAQ,GAAG,SAASA,QAAT,GAAoB;EACxC,OAAOH,KAAP;AACD,CAFM"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/21820d6b2c2c74f788891a88a732bb56.json b/node_modules/.cache/babel-loader/21820d6b2c2c74f788891a88a732bb56.json new file mode 100644 index 00000000..6c69acda --- /dev/null +++ b/node_modules/.cache/babel-loader/21820d6b2c2c74f788891a88a732bb56.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport SearchBox from \"..//SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow-sm border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1.5 h-7 bg-primary ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nimport SearchBox from \"..//SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,OAAOC,SAAP,MAAsB,eAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,8HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/25ed5935aa578ab2ea95a0242af7b482.json b/node_modules/.cache/babel-loader/25ed5935aa578ab2ea95a0242af7b482.json new file mode 100644 index 00000000..ee664b76 --- /dev/null +++ b/node_modules/.cache/babel-loader/25ed5935aa578ab2ea95a0242af7b482.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast/index.js\";\nimport React from \"react\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CustomToast = _ref => {\n let {\n className,\n icon\n } = _ref;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: `flex flex-row items-center text-sm rounded ${className} `,\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"flex-1\",\n children: \"\\u062A\\u0631\\u0633\\u06CC\\u0645 \\u0646\\u0642\\u0634\\u0647 \\u0633\\u0627\\u0644\\u0646\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 7\n }, this), icon && /*#__PURE__*/_jsxDEV(\"img\", {\n src: icon,\n alt: \"pen\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 16\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 5,\n columnNumber: 5\n }, this);\n};\n\n_c = CustomToast;\nexport default CustomToast;\nCustomToast.defaultProps = {\n className: \"p-4 mt-4 bg-[#489BEC33] border-2 border-primaryLight text-primaryText font-bold\",\n icon: \"images/CustomToastpen-icon.svg\"\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"CustomToast\");","map":{"version":3,"names":["React","CustomToast","className","icon","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast/index.js"],"sourcesContent":["import React from \"react\";\n\nconst CustomToast = ({ className, icon }) => {\n return (\n
    \n

    ترسیم نقشه سالن

    \n {icon && \"pen\"}\n
    \n );\n};\n\nexport default CustomToast;\n\nCustomToast.defaultProps = {\n className:\n \"p-4 mt-4 bg-[#489BEC33] border-2 border-primaryLight text-primaryText font-bold\",\n icon: \"images/CustomToastpen-icon.svg\",\n};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAEA,MAAMC,WAAW,GAAG,QAAyB;EAAA,IAAxB;IAAEC,SAAF;IAAaC;EAAb,CAAwB;EAC3C,oBACE;IAAK,SAAS,EAAG,8CAA6CD,SAAU,GAAxE;IAAA,wBACE;MAAG,SAAS,EAAC,QAAb;MAAA;IAAA;MAAA;MAAA;MAAA;IAAA,QADF,EAEGC,IAAI,iBAAI;MAAK,GAAG,EAAEA,IAAV;MAAgB,GAAG,EAAC;IAApB;MAAA;MAAA;MAAA;IAAA,QAFX;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAMD,CAPD;;KAAMF,W;AASN,eAAeA,WAAf;AAEAA,WAAW,CAACG,YAAZ,GAA2B;EACzBF,SAAS,EACP,iFAFuB;EAGzBC,IAAI,EAAE;AAHmB,CAA3B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/26e50dad9805b2bd3cd628fc7adbc3d9.json b/node_modules/.cache/babel-loader/26e50dad9805b2bd3cd628fc7adbc3d9.json new file mode 100644 index 00000000..e87dbf4c --- /dev/null +++ b/node_modules/.cache/babel-loader/26e50dad9805b2bd3cd628fc7adbc3d9.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast/index.js\";\nimport React from \"react\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CustomToast = _ref => {\n let {\n className,\n icon\n } = _ref;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: `flex flex-row items-center text-sm rounded ${className} `,\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"flex-1\",\n children: \"\\u062A\\u0631\\u0633\\u06CC\\u0645 \\u0646\\u0642\\u0634\\u0647 \\u0633\\u0627\\u0644\\u0646\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 7\n }, this), icon && /*#__PURE__*/_jsxDEV(\"img\", {\n src: icon,\n alt: \"pen\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 16\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 5,\n columnNumber: 5\n }, this);\n};\n\n_c = CustomToast;\nexport default CustomToast;\nCustomToast.defaultProps = {\n className: \"p-4 mt-4 bg-[#489BEC33] border-2 border-primaryLight text-secondary font-bold\",\n icon: \"images/CustomToastpen-icon.svg\"\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"CustomToast\");","map":{"version":3,"names":["React","CustomToast","className","icon","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CustomToast/index.js"],"sourcesContent":["import React from \"react\";\n\nconst CustomToast = ({ className, icon }) => {\n return (\n
    \n

    ترسیم نقشه سالن

    \n {icon && \"pen\"}\n
    \n );\n};\n\nexport default CustomToast;\n\nCustomToast.defaultProps = {\n className:\n \"p-4 mt-4 bg-[#489BEC33] border-2 border-primaryLight text-secondary font-bold\",\n icon: \"images/CustomToastpen-icon.svg\",\n};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAEA,MAAMC,WAAW,GAAG,QAAyB;EAAA,IAAxB;IAAEC,SAAF;IAAaC;EAAb,CAAwB;EAC3C,oBACE;IAAK,SAAS,EAAG,8CAA6CD,SAAU,GAAxE;IAAA,wBACE;MAAG,SAAS,EAAC,QAAb;MAAA;IAAA;MAAA;MAAA;MAAA;IAAA,QADF,EAEGC,IAAI,iBAAI;MAAK,GAAG,EAAEA,IAAV;MAAgB,GAAG,EAAC;IAApB;MAAA;MAAA;MAAA;IAAA,QAFX;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAMD,CAPD;;KAAMF,W;AASN,eAAeA,WAAf;AAEAA,WAAW,CAACG,YAAZ,GAA2B;EACzBF,SAAS,EACP,+EAFuB;EAGzBC,IAAI,EAAE;AAHmB,CAA3B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/270490bbd01b6d6171feec53964fa4bd.json b/node_modules/.cache/babel-loader/270490bbd01b6d6171feec53964fa4bd.json new file mode 100644 index 00000000..fef46f06 --- /dev/null +++ b/node_modules/.cache/babel-loader/270490bbd01b6d6171feec53964fa4bd.json @@ -0,0 +1 @@ +{"ast":null,"code":"function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","map":{"version":3,"names":["is","x","y","shallowEqual","objA","objB","keysA","Object","keys","keysB","length","i","prototype","hasOwnProperty","call"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/utils/shallowEqual.js"],"sourcesContent":["function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}"],"mappings":"AAAA,SAASA,EAAT,CAAYC,CAAZ,EAAeC,CAAf,EAAkB;EAChB,IAAID,CAAC,KAAKC,CAAV,EAAa;IACX,OAAOD,CAAC,KAAK,CAAN,IAAWC,CAAC,KAAK,CAAjB,IAAsB,IAAID,CAAJ,KAAU,IAAIC,CAA3C;EACD,CAFD,MAEO;IACL,OAAOD,CAAC,KAAKA,CAAN,IAAWC,CAAC,KAAKA,CAAxB;EACD;AACF;;AAED,eAAe,SAASC,YAAT,CAAsBC,IAAtB,EAA4BC,IAA5B,EAAkC;EAC/C,IAAIL,EAAE,CAACI,IAAD,EAAOC,IAAP,CAAN,EAAoB,OAAO,IAAP;;EAEpB,IAAI,OAAOD,IAAP,KAAgB,QAAhB,IAA4BA,IAAI,KAAK,IAArC,IAA6C,OAAOC,IAAP,KAAgB,QAA7D,IAAyEA,IAAI,KAAK,IAAtF,EAA4F;IAC1F,OAAO,KAAP;EACD;;EAED,IAAIC,KAAK,GAAGC,MAAM,CAACC,IAAP,CAAYJ,IAAZ,CAAZ;EACA,IAAIK,KAAK,GAAGF,MAAM,CAACC,IAAP,CAAYH,IAAZ,CAAZ;EACA,IAAIC,KAAK,CAACI,MAAN,KAAiBD,KAAK,CAACC,MAA3B,EAAmC,OAAO,KAAP;;EAEnC,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,KAAK,CAACI,MAA1B,EAAkCC,CAAC,EAAnC,EAAuC;IACrC,IAAI,CAACJ,MAAM,CAACK,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCT,IAArC,EAA2CC,KAAK,CAACK,CAAD,CAAhD,CAAD,IAAyD,CAACX,EAAE,CAACI,IAAI,CAACE,KAAK,CAACK,CAAD,CAAN,CAAL,EAAiBN,IAAI,CAACC,KAAK,CAACK,CAAD,CAAN,CAArB,CAAhE,EAAkG;MAChG,OAAO,KAAP;IACD;EACF;;EAED,OAAO,IAAP;AACD"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/2c5ba37378712b02d7389bc2119e37fe.json b/node_modules/.cache/babel-loader/2c5ba37378712b02d7389bc2119e37fe.json new file mode 100644 index 00000000..1f015012 --- /dev/null +++ b/node_modules/.cache/babel-loader/2c5ba37378712b02d7389bc2119e37fe.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-fit flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n {/*
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/2c8321c65f02bc73b9423dcc7d18fea4.json b/node_modules/.cache/babel-loader/2c8321c65f02bc73b9423dcc7d18fea4.json new file mode 100644 index 00000000..12115254 --- /dev/null +++ b/node_modules/.cache/babel-loader/2c8321c65f02bc73b9423dcc7d18fea4.json @@ -0,0 +1 @@ +{"ast":null,"code":"import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","map":{"version":3,"names":["verifyPlainObject","wrapMapToPropsConstant","getConstant","initConstantSelector","dispatch","options","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","undefined","Boolean","length","wrapMapToPropsFunc","methodName","initProxySelector","_ref","displayName","proxy","mapToPropsProxy","stateOrDispatch","ownProps","detectFactoryAndVerify","props","process","env","NODE_ENV"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/connect/wrapMapToProps.js"],"sourcesContent":["import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}"],"mappings":"AAAA,OAAOA,iBAAP,MAA8B,4BAA9B;AACA,OAAO,SAASC,sBAAT,CAAgCC,WAAhC,EAA6C;EAClD,OAAO,SAASC,oBAAT,CAA8BC,QAA9B,EAAwCC,OAAxC,EAAiD;IACtD,IAAIC,QAAQ,GAAGJ,WAAW,CAACE,QAAD,EAAWC,OAAX,CAA1B;;IAEA,SAASE,gBAAT,GAA4B;MAC1B,OAAOD,QAAP;IACD;;IAEDC,gBAAgB,CAACC,iBAAjB,GAAqC,KAArC;IACA,OAAOD,gBAAP;EACD,CATD;AAUD,C,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASE,oBAAT,CAA8BC,UAA9B,EAA0C;EAC/C,OAAOA,UAAU,CAACF,iBAAX,KAAiC,IAAjC,IAAyCE,UAAU,CAACF,iBAAX,KAAiCG,SAA1E,GAAsFC,OAAO,CAACF,UAAU,CAACF,iBAAZ,CAA7F,GAA8HE,UAAU,CAACG,MAAX,KAAsB,CAA3J;AACD,C,CAAC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,kBAAT,CAA4BJ,UAA5B,EAAwCK,UAAxC,EAAoD;EACzD,OAAO,SAASC,iBAAT,CAA2BZ,QAA3B,EAAqCa,IAArC,EAA2C;IAChD,IAAIC,WAAW,GAAGD,IAAI,CAACC,WAAvB;;IAEA,IAAIC,KAAK,GAAG,SAASC,eAAT,CAAyBC,eAAzB,EAA0CC,QAA1C,EAAoD;MAC9D,OAAOH,KAAK,CAACX,iBAAN,GAA0BW,KAAK,CAACT,UAAN,CAAiBW,eAAjB,EAAkCC,QAAlC,CAA1B,GAAwEH,KAAK,CAACT,UAAN,CAAiBW,eAAjB,CAA/E;IACD,CAFD,CAHgD,CAK7C;;;IAGHF,KAAK,CAACX,iBAAN,GAA0B,IAA1B;;IAEAW,KAAK,CAACT,UAAN,GAAmB,SAASa,sBAAT,CAAgCF,eAAhC,EAAiDC,QAAjD,EAA2D;MAC5EH,KAAK,CAACT,UAAN,GAAmBA,UAAnB;MACAS,KAAK,CAACX,iBAAN,GAA0BC,oBAAoB,CAACC,UAAD,CAA9C;MACA,IAAIc,KAAK,GAAGL,KAAK,CAACE,eAAD,EAAkBC,QAAlB,CAAjB;;MAEA,IAAI,OAAOE,KAAP,KAAiB,UAArB,EAAiC;QAC/BL,KAAK,CAACT,UAAN,GAAmBc,KAAnB;QACAL,KAAK,CAACX,iBAAN,GAA0BC,oBAAoB,CAACe,KAAD,CAA9C;QACAA,KAAK,GAAGL,KAAK,CAACE,eAAD,EAAkBC,QAAlB,CAAb;MACD;;MAED,IAAIG,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C3B,iBAAiB,CAACwB,KAAD,EAAQN,WAAR,EAAqBH,UAArB,CAAjB;MAC3C,OAAOS,KAAP;IACD,CAbD;;IAeA,OAAOL,KAAP;EACD,CA1BD;AA2BD"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/2d9e4c83b87b6d50ccd2a1391897fd60.json b/node_modules/.cache/babel-loader/2d9e4c83b87b6d50ccd2a1391897fd60.json new file mode 100644 index 00000000..4685b20b --- /dev/null +++ b/node_modules/.cache/babel-loader/2d9e4c83b87b6d50ccd2a1391897fd60.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"hr\", {\n className: \"border border-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/2e2fcae13f3aa42db86e5f40e04875e9.json b/node_modules/.cache/babel-loader/2e2fcae13f3aa42db86e5f40e04875e9.json new file mode 100644 index 00000000..da46fcbb --- /dev/null +++ b/node_modules/.cache/babel-loader/2e2fcae13f3aa42db86e5f40e04875e9.json @@ -0,0 +1 @@ +{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","map":{"version":3,"names":["_extends","verifyPlainObject","defaultMergeProps","stateProps","dispatchProps","ownProps","wrapMergePropsFunc","mergeProps","initMergePropsProxy","dispatch","_ref","displayName","pure","areMergedPropsEqual","hasRunOnce","mergedProps","mergePropsProxy","nextMergedProps","process","env","NODE_ENV","whenMergePropsIsFunction","undefined","whenMergePropsIsOmitted"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/connect/mergeProps.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,oCAArB;AACA,OAAOC,iBAAP,MAA8B,4BAA9B;AACA,OAAO,SAASC,iBAAT,CAA2BC,UAA3B,EAAuCC,aAAvC,EAAsDC,QAAtD,EAAgE;EACrE,OAAOL,QAAQ,CAAC,EAAD,EAAKK,QAAL,EAAeF,UAAf,EAA2BC,aAA3B,CAAf;AACD;AACD,OAAO,SAASE,kBAAT,CAA4BC,UAA5B,EAAwC;EAC7C,OAAO,SAASC,mBAAT,CAA6BC,QAA7B,EAAuCC,IAAvC,EAA6C;IAClD,IAAIC,WAAW,GAAGD,IAAI,CAACC,WAAvB;IAAA,IACIC,IAAI,GAAGF,IAAI,CAACE,IADhB;IAAA,IAEIC,mBAAmB,GAAGH,IAAI,CAACG,mBAF/B;IAGA,IAAIC,UAAU,GAAG,KAAjB;IACA,IAAIC,WAAJ;IACA,OAAO,SAASC,eAAT,CAAyBb,UAAzB,EAAqCC,aAArC,EAAoDC,QAApD,EAA8D;MACnE,IAAIY,eAAe,GAAGV,UAAU,CAACJ,UAAD,EAAaC,aAAb,EAA4BC,QAA5B,CAAhC;;MAEA,IAAIS,UAAJ,EAAgB;QACd,IAAI,CAACF,IAAD,IAAS,CAACC,mBAAmB,CAACI,eAAD,EAAkBF,WAAlB,CAAjC,EAAiEA,WAAW,GAAGE,eAAd;MAClE,CAFD,MAEO;QACLH,UAAU,GAAG,IAAb;QACAC,WAAW,GAAGE,eAAd;QACA,IAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2CnB,iBAAiB,CAACc,WAAD,EAAcJ,WAAd,EAA2B,YAA3B,CAAjB;MAC5C;;MAED,OAAOI,WAAP;IACD,CAZD;EAaD,CAnBD;AAoBD;AACD,OAAO,SAASM,wBAAT,CAAkCd,UAAlC,EAA8C;EACnD,OAAO,OAAOA,UAAP,KAAsB,UAAtB,GAAmCD,kBAAkB,CAACC,UAAD,CAArD,GAAoEe,SAA3E;AACD;AACD,OAAO,SAASC,uBAAT,CAAiChB,UAAjC,EAA6C;EAClD,OAAO,CAACA,UAAD,GAAc,YAAY;IAC/B,OAAOL,iBAAP;EACD,CAFM,GAEHoB,SAFJ;AAGD;AACD,eAAe,CAACD,wBAAD,EAA2BE,uBAA3B,CAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/2fcde02fdcfe0463faadaf078fdfc6cf.json b/node_modules/.cache/babel-loader/2fcde02fdcfe0463faadaf078fdfc6cf.json new file mode 100644 index 00000000..2ec2ac5d --- /dev/null +++ b/node_modules/.cache/babel-loader/2fcde02fdcfe0463faadaf078fdfc6cf.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/313702dd2efb337defd8d5fc1aa3b744.json b/node_modules/.cache/babel-loader/313702dd2efb337defd8d5fc1aa3b744.json new file mode 100644 index 00000000..ccaf77e5 --- /dev/null +++ b/node_modules/.cache/babel-loader/313702dd2efb337defd8d5fc1aa3b744.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n title: true\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/3247dbb933ac4571082871d6f9c58404.json b/node_modules/.cache/babel-loader/3247dbb933ac4571082871d6f9c58404.json new file mode 100644 index 00000000..c1b24d61 --- /dev/null +++ b/node_modules/.cache/babel-loader/3247dbb933ac4571082871d6f9c58404.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/346956dde91adc9c171424f7d8a81cb9.json b/node_modules/.cache/babel-loader/346956dde91adc9c171424f7d8a81cb9.json new file mode 100644 index 00000000..3a3320a7 --- /dev/null +++ b/node_modules/.cache/babel-loader/346956dde91adc9c171424f7d8a81cb9.json @@ -0,0 +1 @@ +{"ast":null,"code":"import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","map":{"version":3,"names":["bindActionCreators","wrapMapToPropsConstant","wrapMapToPropsFunc","whenMapDispatchToPropsIsFunction","mapDispatchToProps","undefined","whenMapDispatchToPropsIsMissing","dispatch","whenMapDispatchToPropsIsObject"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/connect/mapDispatchToProps.js"],"sourcesContent":["import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];"],"mappings":"AAAA,OAAOA,kBAAP,MAA+B,6BAA/B;AACA,SAASC,sBAAT,EAAiCC,kBAAjC,QAA2D,kBAA3D;AACA,OAAO,SAASC,gCAAT,CAA0CC,kBAA1C,EAA8D;EACnE,OAAO,OAAOA,kBAAP,KAA8B,UAA9B,GAA2CF,kBAAkB,CAACE,kBAAD,EAAqB,oBAArB,CAA7D,GAA0GC,SAAjH;AACD;AACD,OAAO,SAASC,+BAAT,CAAyCF,kBAAzC,EAA6D;EAClE,OAAO,CAACA,kBAAD,GAAsBH,sBAAsB,CAAC,UAAUM,QAAV,EAAoB;IACtE,OAAO;MACLA,QAAQ,EAAEA;IADL,CAAP;EAGD,CAJkD,CAA5C,GAIFF,SAJL;AAKD;AACD,OAAO,SAASG,8BAAT,CAAwCJ,kBAAxC,EAA4D;EACjE,OAAOA,kBAAkB,IAAI,OAAOA,kBAAP,KAA8B,QAApD,GAA+DH,sBAAsB,CAAC,UAAUM,QAAV,EAAoB;IAC/G,OAAOP,kBAAkB,CAACI,kBAAD,EAAqBG,QAArB,CAAzB;EACD,CAF2F,CAArF,GAEFF,SAFL;AAGD;AACD,eAAe,CAACF,gCAAD,EAAmCG,+BAAnC,EAAoEE,8BAApE,CAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/3776969861ad2532d57d351394efc36a.json b/node_modules/.cache/babel-loader/3776969861ad2532d57d351394efc36a.json new file mode 100644 index 00000000..7587827f --- /dev/null +++ b/node_modules/.cache/babel-loader/3776969861ad2532d57d351394efc36a.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign3 from \"./components/CardDesign3\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(CardDesign3, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign3","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign3 from \"./components/CardDesign3\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n {/* */}\n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBAIE,QAAC,WAAD;QAAA;QAAA;QAAA;MAAA;IAJF;EAJF;AAWD;;KAZQA,G;AAcT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/3a2390ec5ed690c1d0dd08ef119240be.json b/node_modules/.cache/babel-loader/3a2390ec5ed690c1d0dd08ef119240be.json new file mode 100644 index 00000000..4e051609 --- /dev/null +++ b/node_modules/.cache/babel-loader/3a2390ec5ed690c1d0dd08ef119240be.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/41c72030dc4b24f393b5f6265cb06811.json b/node_modules/.cache/babel-loader/41c72030dc4b24f393b5f6265cb06811.json new file mode 100644 index 00000000..3ec9da87 --- /dev/null +++ b/node_modules/.cache/babel-loader/41c72030dc4b24f393b5f6265cb06811.json @@ -0,0 +1 @@ +{"ast":null,"code":"import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign2 from \"./components/CardDesign2\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {}, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign2","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign2 from \"./components/CardDesign2\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n {/* */}\n \n );\n}\n\nexport default App;\n"],"mappings":"AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;EAJF;AAUD;;KAXQA,G;AAaT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/44740fb4b3c6e94f498b74f90d59db7f.json b/node_modules/.cache/babel-loader/44740fb4b3c6e94f498b74f90d59db7f.json new file mode 100644 index 00000000..757e72ac --- /dev/null +++ b/node_modules/.cache/babel-loader/44740fb4b3c6e94f498b74f90d59db7f.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-5 py-2 text-sm\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/49de5111fe064a3f05c7a8e6dd5af63b.json b/node_modules/.cache/babel-loader/49de5111fe064a3f05c7a8e6dd5af63b.json new file mode 100644 index 00000000..3bd8f6c3 --- /dev/null +++ b/node_modules/.cache/babel-loader/49de5111fe064a3f05c7a8e6dd5af63b.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/49f4f09b5ccd3d479e8047d3a7fd033a.json b/node_modules/.cache/babel-loader/49f4f09b5ccd3d479e8047d3a7fd033a.json new file mode 100644 index 00000000..62bbd5f7 --- /dev/null +++ b/node_modules/.cache/babel-loader/49f4f09b5ccd3d479e8047d3a7fd033a.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign2 from \"./components/CardDesign2\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(ContactUs, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign2","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign2 from \"./components/CardDesign2\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n \n {/* */}\n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBAEE,QAAC,SAAD;QAAA;QAAA;QAAA;MAAA;IAFF;EAJF;AAUD;;KAXQA,G;AAaT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/4b6a3ae09f16eaadbf0a44ff9e2747db.json b/node_modules/.cache/babel-loader/4b6a3ae09f16eaadbf0a44ff9e2747db.json new file mode 100644 index 00000000..b16cbf30 --- /dev/null +++ b/node_modules/.cache/babel-loader/4b6a3ae09f16eaadbf0a44ff9e2747db.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/4cbfb27d5ffde1a892462961a46ec8e0.json b/node_modules/.cache/babel-loader/4cbfb27d5ffde1a892462961a46ec8e0.json new file mode 100644 index 00000000..b1520754 --- /dev/null +++ b/node_modules/.cache/babel-loader/4cbfb27d5ffde1a892462961a46ec8e0.json @@ -0,0 +1 @@ +{"ast":null,"code":"'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","map":{"version":3,"names":["process","env","NODE_ENV","module","exports","require"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-is/index.js"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n"],"mappings":"AAAA;;AAEA,IAAIA,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;EACzCC,MAAM,CAACC,OAAP,GAAiBC,OAAO,CAAC,kCAAD,CAAxB;AACD,CAFD,MAEO;EACLF,MAAM,CAACC,OAAP,GAAiBC,OAAO,CAAC,+BAAD,CAAxB;AACD"},"metadata":{},"sourceType":"script"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/4d6a2f7017c40d6c09d69f39051e49f9.json b/node_modules/.cache/babel-loader/4d6a2f7017c40d6c09d69f39051e49f9.json new file mode 100644 index 00000000..95516e29 --- /dev/null +++ b/node_modules/.cache/babel-loader/4d6a2f7017c40d6c09d69f39051e49f9.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs mt-7\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/4dce7846c12e076e90e1e7f889f4367e.json b/node_modules/.cache/babel-loader/4dce7846c12e076e90e1e7f889f4367e.json new file mode 100644 index 00000000..9d74e2ba --- /dev/null +++ b/node_modules/.cache/babel-loader/4dce7846c12e076e90e1e7f889f4367e.json @@ -0,0 +1 @@ +{"ast":null,"code":"import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\n\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n} // Inlined version of the `symbol-observable` polyfill\n\n\nvar $$observable = function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n}();\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\n\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\n\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n} // Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\n\n\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\n\nvar legacy_createStore = createStore;\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\n\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\n\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };","map":{"version":3,"names":["_objectSpread","formatProdErrorMessage","code","$$observable","Symbol","observable","randomString","Math","random","toString","substring","split","join","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","obj","proto","Object","getPrototypeOf","miniKindOf","val","type","Array","isArray","isDate","isError","constructorName","ctorName","slice","toLowerCase","replace","constructor","name","Error","message","stackTraceLimit","Date","toDateString","getDate","setDate","kindOf","typeOfVal","process","env","NODE_ENV","createStore","reducer","preloadedState","enhancer","_ref2","arguments","undefined","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","getState","subscribe","listener","isSubscribed","push","unsubscribe","index","indexOf","splice","dispatch","action","listeners","i","length","replaceReducer","nextReducer","_ref","outerSubscribe","observer","observeState","next","legacy_createStore","warning","console","error","e","getUnexpectedStateShapeWarningMessage","inputState","reducers","unexpectedKeyCache","reducerKeys","keys","argumentName","unexpectedKeys","filter","key","hasOwnProperty","forEach","assertReducerShape","initialState","combineReducers","finalReducers","finalReducerKeys","shapeAssertionError","combination","state","warningMessage","hasChanged","nextState","_i","_key","previousStateForKey","nextStateForKey","actionType","String","bindActionCreator","actionCreator","apply","bindActionCreators","actionCreators","boundActionCreators","compose","_len","funcs","arg","reduce","a","b","applyMiddleware","middlewares","store","_dispatch","middlewareAPI","chain","map","middleware","isCrushed","__DO_NOT_USE__ActionTypes"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/redux/es/redux.js"],"sourcesContent":["import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,0CAA1B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,sBAAT,CAAgCC,IAAhC,EAAsC;EACpC,OAAO,2BAA2BA,IAA3B,GAAkC,2CAAlC,GAAgFA,IAAhF,GAAuF,2BAAvF,GAAqH,wDAA5H;AACD,C,CAED;;;AACA,IAAIC,YAAY,GAAI,YAAY;EAC9B,OAAO,OAAOC,MAAP,KAAkB,UAAlB,IAAgCA,MAAM,CAACC,UAAvC,IAAqD,cAA5D;AACD,CAFkB,EAAnB;AAIA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,YAAY,GAAG,SAASA,YAAT,GAAwB;EACzC,OAAOC,IAAI,CAACC,MAAL,GAAcC,QAAd,CAAuB,EAAvB,EAA2BC,SAA3B,CAAqC,CAArC,EAAwCC,KAAxC,CAA8C,EAA9C,EAAkDC,IAAlD,CAAuD,GAAvD,CAAP;AACD,CAFD;;AAIA,IAAIC,WAAW,GAAG;EAChBC,IAAI,EAAE,iBAAiBR,YAAY,EADnB;EAEhBS,OAAO,EAAE,oBAAoBT,YAAY,EAFzB;EAGhBU,oBAAoB,EAAE,SAASA,oBAAT,GAAgC;IACpD,OAAO,iCAAiCV,YAAY,EAApD;EACD;AALe,CAAlB;AAQA;AACA;AACA;AACA;;AACA,SAASW,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,IAAI,OAAOA,GAAP,KAAe,QAAf,IAA2BA,GAAG,KAAK,IAAvC,EAA6C,OAAO,KAAP;EAC7C,IAAIC,KAAK,GAAGD,GAAZ;;EAEA,OAAOE,MAAM,CAACC,cAAP,CAAsBF,KAAtB,MAAiC,IAAxC,EAA8C;IAC5CA,KAAK,GAAGC,MAAM,CAACC,cAAP,CAAsBF,KAAtB,CAAR;EACD;;EAED,OAAOC,MAAM,CAACC,cAAP,CAAsBH,GAAtB,MAA+BC,KAAtC;AACD,C,CAED;;;AACA,SAASG,UAAT,CAAoBC,GAApB,EAAyB;EACvB,IAAIA,GAAG,KAAK,KAAK,CAAjB,EAAoB,OAAO,WAAP;EACpB,IAAIA,GAAG,KAAK,IAAZ,EAAkB,OAAO,MAAP;EAClB,IAAIC,IAAI,GAAG,OAAOD,GAAlB;;EAEA,QAAQC,IAAR;IACE,KAAK,SAAL;IACA,KAAK,QAAL;IACA,KAAK,QAAL;IACA,KAAK,QAAL;IACA,KAAK,UAAL;MACE;QACE,OAAOA,IAAP;MACD;EARL;;EAWA,IAAIC,KAAK,CAACC,OAAN,CAAcH,GAAd,CAAJ,EAAwB,OAAO,OAAP;EACxB,IAAII,MAAM,CAACJ,GAAD,CAAV,EAAiB,OAAO,MAAP;EACjB,IAAIK,OAAO,CAACL,GAAD,CAAX,EAAkB,OAAO,OAAP;EAClB,IAAIM,eAAe,GAAGC,QAAQ,CAACP,GAAD,CAA9B;;EAEA,QAAQM,eAAR;IACE,KAAK,QAAL;IACA,KAAK,SAAL;IACA,KAAK,SAAL;IACA,KAAK,SAAL;IACA,KAAK,KAAL;IACA,KAAK,KAAL;MACE,OAAOA,eAAP;EAPJ,CArBuB,CA6BrB;;;EAGF,OAAOL,IAAI,CAACO,KAAL,CAAW,CAAX,EAAc,CAAC,CAAf,EAAkBC,WAAlB,GAAgCC,OAAhC,CAAwC,KAAxC,EAA+C,EAA/C,CAAP;AACD;;AAED,SAASH,QAAT,CAAkBP,GAAlB,EAAuB;EACrB,OAAO,OAAOA,GAAG,CAACW,WAAX,KAA2B,UAA3B,GAAwCX,GAAG,CAACW,WAAJ,CAAgBC,IAAxD,GAA+D,IAAtE;AACD;;AAED,SAASP,OAAT,CAAiBL,GAAjB,EAAsB;EACpB,OAAOA,GAAG,YAAYa,KAAf,IAAwB,OAAOb,GAAG,CAACc,OAAX,KAAuB,QAAvB,IAAmCd,GAAG,CAACW,WAAvC,IAAsD,OAAOX,GAAG,CAACW,WAAJ,CAAgBI,eAAvB,KAA2C,QAAhI;AACD;;AAED,SAASX,MAAT,CAAgBJ,GAAhB,EAAqB;EACnB,IAAIA,GAAG,YAAYgB,IAAnB,EAAyB,OAAO,IAAP;EACzB,OAAO,OAAOhB,GAAG,CAACiB,YAAX,KAA4B,UAA5B,IAA0C,OAAOjB,GAAG,CAACkB,OAAX,KAAuB,UAAjE,IAA+E,OAAOlB,GAAG,CAACmB,OAAX,KAAuB,UAA7G;AACD;;AAED,SAASC,MAAT,CAAgBpB,GAAhB,EAAqB;EACnB,IAAIqB,SAAS,GAAG,OAAOrB,GAAvB;;EAEA,IAAIsB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzCH,SAAS,GAAGtB,UAAU,CAACC,GAAD,CAAtB;EACD;;EAED,OAAOqB,SAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAASI,WAAT,CAAqBC,OAArB,EAA8BC,cAA9B,EAA8CC,QAA9C,EAAwD;EACtD,IAAIC,KAAJ;;EAEA,IAAI,OAAOF,cAAP,KAA0B,UAA1B,IAAwC,OAAOC,QAAP,KAAoB,UAA5D,IAA0E,OAAOA,QAAP,KAAoB,UAApB,IAAkC,OAAOE,SAAS,CAAC,CAAD,CAAhB,KAAwB,UAAxI,EAAoJ;IAClJ,MAAM,IAAIjB,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,8DAA8D,8DAA9D,GAA+H,6IAA7M,CAAN;EACD;;EAED,IAAI,OAAOiD,cAAP,KAA0B,UAA1B,IAAwC,OAAOC,QAAP,KAAoB,WAAhE,EAA6E;IAC3EA,QAAQ,GAAGD,cAAX;IACAA,cAAc,GAAGI,SAAjB;EACD;;EAED,IAAI,OAAOH,QAAP,KAAoB,WAAxB,EAAqC;IACnC,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;MAClC,MAAM,IAAIf,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,iEAAiE0C,MAAM,CAACQ,QAAD,CAAvE,GAAoF,GAAlK,CAAN;IACD;;IAED,OAAOA,QAAQ,CAACH,WAAD,CAAR,CAAsBC,OAAtB,EAA+BC,cAA/B,CAAP;EACD;;EAED,IAAI,OAAOD,OAAP,KAAmB,UAAvB,EAAmC;IACjC,MAAM,IAAIb,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,qEAAqE0C,MAAM,CAACM,OAAD,CAA3E,GAAuF,GAArK,CAAN;EACD;;EAED,IAAIM,cAAc,GAAGN,OAArB;EACA,IAAIO,YAAY,GAAGN,cAAnB;EACA,IAAIO,gBAAgB,GAAG,EAAvB;EACA,IAAIC,aAAa,GAAGD,gBAApB;EACA,IAAIE,aAAa,GAAG,KAApB;EACA;AACF;AACA;AACA;AACA;AACA;AACA;;EAEE,SAASC,4BAAT,GAAwC;IACtC,IAAIF,aAAa,KAAKD,gBAAtB,EAAwC;MACtCC,aAAa,GAAGD,gBAAgB,CAAC1B,KAAjB,EAAhB;IACD;EACF;EACD;AACF;AACA;AACA;AACA;;;EAGE,SAAS8B,QAAT,GAAoB;IAClB,IAAIF,aAAJ,EAAmB;MACjB,MAAM,IAAIvB,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,uEAAuE,6DAAvE,GAAuI,yEAArN,CAAN;IACD;;IAED,OAAOuD,YAAP;EACD;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAGE,SAASM,SAAT,CAAmBC,QAAnB,EAA6B;IAC3B,IAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;MAClC,MAAM,IAAI3B,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,iEAAiE0C,MAAM,CAACoB,QAAD,CAAvE,GAAoF,GAAlK,CAAN;IACD;;IAED,IAAIJ,aAAJ,EAAmB;MACjB,MAAM,IAAIvB,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,wEAAwE,sFAAxE,GAAiK,oFAAjK,GAAwP,wEAAtU,CAAN;IACD;;IAED,IAAI+D,YAAY,GAAG,IAAnB;IACAJ,4BAA4B;IAC5BF,aAAa,CAACO,IAAd,CAAmBF,QAAnB;IACA,OAAO,SAASG,WAAT,GAAuB;MAC5B,IAAI,CAACF,YAAL,EAAmB;QACjB;MACD;;MAED,IAAIL,aAAJ,EAAmB;QACjB,MAAM,IAAIvB,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,mFAAmF,wEAAjK,CAAN;MACD;;MAED+D,YAAY,GAAG,KAAf;MACAJ,4BAA4B;MAC5B,IAAIO,KAAK,GAAGT,aAAa,CAACU,OAAd,CAAsBL,QAAtB,CAAZ;MACAL,aAAa,CAACW,MAAd,CAAqBF,KAArB,EAA4B,CAA5B;MACAV,gBAAgB,GAAG,IAAnB;IACD,CAdD;EAeD;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAGE,SAASa,QAAT,CAAkBC,MAAlB,EAA0B;IACxB,IAAI,CAACtD,aAAa,CAACsD,MAAD,CAAlB,EAA4B;MAC1B,MAAM,IAAInC,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,mEAAmE0C,MAAM,CAAC4B,MAAD,CAAzE,GAAoF,4UAAlK,CAAN;IACD;;IAED,IAAI,OAAOA,MAAM,CAAC/C,IAAd,KAAuB,WAA3B,EAAwC;MACtC,MAAM,IAAIY,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,4GAA9E,CAAN;IACD;;IAED,IAAI0D,aAAJ,EAAmB;MACjB,MAAM,IAAIvB,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,CAAD,CAA9D,GAAoE,oCAA9E,CAAN;IACD;;IAED,IAAI;MACF0D,aAAa,GAAG,IAAhB;MACAH,YAAY,GAAGD,cAAc,CAACC,YAAD,EAAee,MAAf,CAA7B;IACD,CAHD,SAGU;MACRZ,aAAa,GAAG,KAAhB;IACD;;IAED,IAAIa,SAAS,GAAGf,gBAAgB,GAAGC,aAAnC;;IAEA,KAAK,IAAIe,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,SAAS,CAACE,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;MACzC,IAAIV,QAAQ,GAAGS,SAAS,CAACC,CAAD,CAAxB;MACAV,QAAQ;IACT;;IAED,OAAOQ,MAAP;EACD;EACD;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAGE,SAASI,cAAT,CAAwBC,WAAxB,EAAqC;IACnC,IAAI,OAAOA,WAAP,KAAuB,UAA3B,EAAuC;MACrC,MAAM,IAAIxC,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,EAAD,CAA9D,GAAqE,oEAAoE0C,MAAM,CAACiC,WAAD,CAAzJ,CAAN;IACD;;IAEDrB,cAAc,GAAGqB,WAAjB,CALmC,CAKL;IAC9B;IACA;IACA;;IAEAN,QAAQ,CAAC;MACP9C,IAAI,EAAEX,WAAW,CAACE;IADX,CAAD,CAAR;EAGD;EACD;AACF;AACA;AACA;AACA;AACA;;;EAGE,SAASV,UAAT,GAAsB;IACpB,IAAIwE,IAAJ;;IAEA,IAAIC,cAAc,GAAGhB,SAArB;IACA,OAAOe,IAAI,GAAG;MACZ;AACN;AACA;AACA;AACA;AACA;AACA;AACA;MACMf,SAAS,EAAE,SAASA,SAAT,CAAmBiB,QAAnB,EAA6B;QACtC,IAAI,OAAOA,QAAP,KAAoB,QAApB,IAAgCA,QAAQ,KAAK,IAAjD,EAAuD;UACrD,MAAM,IAAI3C,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,EAAD,CAA9D,GAAqE,gEAAgE0C,MAAM,CAACoC,QAAD,CAAtE,GAAmF,GAAlK,CAAN;QACD;;QAED,SAASC,YAAT,GAAwB;UACtB,IAAID,QAAQ,CAACE,IAAb,EAAmB;YACjBF,QAAQ,CAACE,IAAT,CAAcpB,QAAQ,EAAtB;UACD;QACF;;QAEDmB,YAAY;QACZ,IAAId,WAAW,GAAGY,cAAc,CAACE,YAAD,CAAhC;QACA,OAAO;UACLd,WAAW,EAAEA;QADR,CAAP;MAGD;IAzBW,CAAP,EA0BJW,IAAI,CAAC1E,YAAD,CAAJ,GAAqB,YAAY;MAClC,OAAO,IAAP;IACD,CA5BM,EA4BJ0E,IA5BH;EA6BD,CAxOqD,CAwOpD;EACF;EACA;;;EAGAP,QAAQ,CAAC;IACP9C,IAAI,EAAEX,WAAW,CAACC;EADX,CAAD,CAAR;EAGA,OAAOsC,KAAK,GAAG;IACbkB,QAAQ,EAAEA,QADG;IAEbR,SAAS,EAAEA,SAFE;IAGbD,QAAQ,EAAEA,QAHG;IAIbc,cAAc,EAAEA;EAJH,CAAR,EAKJvB,KAAK,CAACjD,YAAD,CAAL,GAAsBE,UALlB,EAK8B+C,KALrC;AAMD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,IAAI8B,kBAAkB,GAAGlC,WAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASmC,OAAT,CAAiB9C,OAAjB,EAA0B;EACxB;EACA,IAAI,OAAO+C,OAAP,KAAmB,WAAnB,IAAkC,OAAOA,OAAO,CAACC,KAAf,KAAyB,UAA/D,EAA2E;IACzED,OAAO,CAACC,KAAR,CAAchD,OAAd;EACD;EACD;;;EAGA,IAAI;IACF;IACA;IACA;IACA,MAAM,IAAID,KAAJ,CAAUC,OAAV,CAAN;EACD,CALD,CAKE,OAAOiD,CAAP,EAAU,CAAE,CAbU,CAaT;;AAEhB;;AAED,SAASC,qCAAT,CAA+CC,UAA/C,EAA2DC,QAA3D,EAAqElB,MAArE,EAA6EmB,kBAA7E,EAAiG;EAC/F,IAAIC,WAAW,GAAGvE,MAAM,CAACwE,IAAP,CAAYH,QAAZ,CAAlB;EACA,IAAII,YAAY,GAAGtB,MAAM,IAAIA,MAAM,CAAC/C,IAAP,KAAgBX,WAAW,CAACC,IAAtC,GAA6C,+CAA7C,GAA+F,wCAAlH;;EAEA,IAAI6E,WAAW,CAACjB,MAAZ,KAAuB,CAA3B,EAA8B;IAC5B,OAAO,wEAAwE,4DAA/E;EACD;;EAED,IAAI,CAACzD,aAAa,CAACuE,UAAD,CAAlB,EAAgC;IAC9B,OAAO,SAASK,YAAT,GAAwB,4BAAxB,GAAuDlD,MAAM,CAAC6C,UAAD,CAA7D,GAA4E,2DAA5E,IAA2I,aAAaG,WAAW,CAAC/E,IAAZ,CAAiB,MAAjB,CAAb,GAAwC,IAAnL,CAAP;EACD;;EAED,IAAIkF,cAAc,GAAG1E,MAAM,CAACwE,IAAP,CAAYJ,UAAZ,EAAwBO,MAAxB,CAA+B,UAAUC,GAAV,EAAe;IACjE,OAAO,CAACP,QAAQ,CAACQ,cAAT,CAAwBD,GAAxB,CAAD,IAAiC,CAACN,kBAAkB,CAACM,GAAD,CAA3D;EACD,CAFoB,CAArB;EAGAF,cAAc,CAACI,OAAf,CAAuB,UAAUF,GAAV,EAAe;IACpCN,kBAAkB,CAACM,GAAD,CAAlB,GAA0B,IAA1B;EACD,CAFD;EAGA,IAAIzB,MAAM,IAAIA,MAAM,CAAC/C,IAAP,KAAgBX,WAAW,CAACE,OAA1C,EAAmD;;EAEnD,IAAI+E,cAAc,CAACpB,MAAf,GAAwB,CAA5B,EAA+B;IAC7B,OAAO,iBAAiBoB,cAAc,CAACpB,MAAf,GAAwB,CAAxB,GAA4B,MAA5B,GAAqC,KAAtD,IAA+D,GAA/D,IAAsE,OAAOoB,cAAc,CAAClF,IAAf,CAAoB,MAApB,CAAP,GAAqC,cAArC,GAAsDiF,YAAtD,GAAqE,IAA3I,IAAmJ,0DAAnJ,IAAiN,OAAOF,WAAW,CAAC/E,IAAZ,CAAiB,MAAjB,CAAP,GAAkC,sCAAnP,CAAP;EACD;AACF;;AAED,SAASuF,kBAAT,CAA4BV,QAA5B,EAAsC;EACpCrE,MAAM,CAACwE,IAAP,CAAYH,QAAZ,EAAsBS,OAAtB,CAA8B,UAAUF,GAAV,EAAe;IAC3C,IAAI/C,OAAO,GAAGwC,QAAQ,CAACO,GAAD,CAAtB;IACA,IAAII,YAAY,GAAGnD,OAAO,CAACK,SAAD,EAAY;MACpC9B,IAAI,EAAEX,WAAW,CAACC;IADkB,CAAZ,CAA1B;;IAIA,IAAI,OAAOsF,YAAP,KAAwB,WAA5B,EAAyC;MACvC,MAAM,IAAIhE,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,EAAD,CAA9D,GAAqE,iCAAiC+F,GAAjC,GAAuC,+CAAvC,GAAyF,4DAAzF,GAAwJ,6DAAxJ,GAAwN,uEAAxN,GAAkS,wCAAjX,CAAN;IACD;;IAED,IAAI,OAAO/C,OAAO,CAACK,SAAD,EAAY;MAC5B9B,IAAI,EAAEX,WAAW,CAACG,oBAAZ;IADsB,CAAZ,CAAd,KAEG,WAFP,EAEoB;MAClB,MAAM,IAAIoB,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,EAAD,CAA9D,GAAqE,iCAAiC+F,GAAjC,GAAuC,wDAAvC,IAAmG,0BAA0BnF,WAAW,CAACC,IAAtC,GAA6C,oCAAhJ,IAAwL,uEAAxL,GAAkQ,iEAAlQ,GAAsU,qEAAtU,GAA8Y,uEAA7d,CAAN;IACD;EACF,CAfD;AAgBD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASuF,eAAT,CAAyBZ,QAAzB,EAAmC;EACjC,IAAIE,WAAW,GAAGvE,MAAM,CAACwE,IAAP,CAAYH,QAAZ,CAAlB;EACA,IAAIa,aAAa,GAAG,EAApB;;EAEA,KAAK,IAAI7B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkB,WAAW,CAACjB,MAAhC,EAAwCD,CAAC,EAAzC,EAA6C;IAC3C,IAAIuB,GAAG,GAAGL,WAAW,CAAClB,CAAD,CAArB;;IAEA,IAAI5B,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC,IAAI,OAAO0C,QAAQ,CAACO,GAAD,CAAf,KAAyB,WAA7B,EAA0C;QACxCb,OAAO,CAAC,mCAAmCa,GAAnC,GAAyC,IAA1C,CAAP;MACD;IACF;;IAED,IAAI,OAAOP,QAAQ,CAACO,GAAD,CAAf,KAAyB,UAA7B,EAAyC;MACvCM,aAAa,CAACN,GAAD,CAAb,GAAqBP,QAAQ,CAACO,GAAD,CAA7B;IACD;EACF;;EAED,IAAIO,gBAAgB,GAAGnF,MAAM,CAACwE,IAAP,CAAYU,aAAZ,CAAvB,CAlBiC,CAkBkB;EACnD;;EAEA,IAAIZ,kBAAJ;;EAEA,IAAI7C,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzC2C,kBAAkB,GAAG,EAArB;EACD;;EAED,IAAIc,mBAAJ;;EAEA,IAAI;IACFL,kBAAkB,CAACG,aAAD,CAAlB;EACD,CAFD,CAEE,OAAOhB,CAAP,EAAU;IACVkB,mBAAmB,GAAGlB,CAAtB;EACD;;EAED,OAAO,SAASmB,WAAT,CAAqBC,KAArB,EAA4BnC,MAA5B,EAAoC;IACzC,IAAImC,KAAK,KAAK,KAAK,CAAnB,EAAsB;MACpBA,KAAK,GAAG,EAAR;IACD;;IAED,IAAIF,mBAAJ,EAAyB;MACvB,MAAMA,mBAAN;IACD;;IAED,IAAI3D,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;MACzC,IAAI4D,cAAc,GAAGpB,qCAAqC,CAACmB,KAAD,EAAQJ,aAAR,EAAuB/B,MAAvB,EAA+BmB,kBAA/B,CAA1D;;MAEA,IAAIiB,cAAJ,EAAoB;QAClBxB,OAAO,CAACwB,cAAD,CAAP;MACD;IACF;;IAED,IAAIC,UAAU,GAAG,KAAjB;IACA,IAAIC,SAAS,GAAG,EAAhB;;IAEA,KAAK,IAAIC,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGP,gBAAgB,CAAC7B,MAAvC,EAA+CoC,EAAE,EAAjD,EAAqD;MACnD,IAAIC,IAAI,GAAGR,gBAAgB,CAACO,EAAD,CAA3B;MACA,IAAI7D,OAAO,GAAGqD,aAAa,CAACS,IAAD,CAA3B;MACA,IAAIC,mBAAmB,GAAGN,KAAK,CAACK,IAAD,CAA/B;MACA,IAAIE,eAAe,GAAGhE,OAAO,CAAC+D,mBAAD,EAAsBzC,MAAtB,CAA7B;;MAEA,IAAI,OAAO0C,eAAP,KAA2B,WAA/B,EAA4C;QAC1C,IAAIC,UAAU,GAAG3C,MAAM,IAAIA,MAAM,CAAC/C,IAAlC;QACA,MAAM,IAAIY,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,EAAD,CAA9D,GAAqE,yCAAyCiH,UAAU,GAAG,OAAOC,MAAM,CAACD,UAAD,CAAb,GAA4B,IAA/B,GAAsC,gBAAzF,IAA6G,gCAA7G,GAAgJH,IAAhJ,GAAuJ,yBAAvJ,GAAmL,sEAAnL,GAA4P,sFAA3U,CAAN;MACD;;MAEDF,SAAS,CAACE,IAAD,CAAT,GAAkBE,eAAlB;MACAL,UAAU,GAAGA,UAAU,IAAIK,eAAe,KAAKD,mBAA/C;IACD;;IAEDJ,UAAU,GAAGA,UAAU,IAAIL,gBAAgB,CAAC7B,MAAjB,KAA4BtD,MAAM,CAACwE,IAAP,CAAYc,KAAZ,EAAmBhC,MAA1E;IACA,OAAOkC,UAAU,GAAGC,SAAH,GAAeH,KAAhC;EACD,CArCD;AAsCD;;AAED,SAASU,iBAAT,CAA2BC,aAA3B,EAA0C/C,QAA1C,EAAoD;EAClD,OAAO,YAAY;IACjB,OAAOA,QAAQ,CAAC+C,aAAa,CAACC,KAAd,CAAoB,IAApB,EAA0BjE,SAA1B,CAAD,CAAf;EACD,CAFD;AAGD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,SAASkE,kBAAT,CAA4BC,cAA5B,EAA4ClD,QAA5C,EAAsD;EACpD,IAAI,OAAOkD,cAAP,KAA0B,UAA9B,EAA0C;IACxC,OAAOJ,iBAAiB,CAACI,cAAD,EAAiBlD,QAAjB,CAAxB;EACD;;EAED,IAAI,OAAOkD,cAAP,KAA0B,QAA1B,IAAsCA,cAAc,KAAK,IAA7D,EAAmE;IACjE,MAAM,IAAIpF,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,EAAD,CAA9D,GAAqE,iFAAiF0C,MAAM,CAAC6E,cAAD,CAAvF,GAA0G,KAA1G,GAAkH,8FAAjM,CAAN;EACD;;EAED,IAAIC,mBAAmB,GAAG,EAA1B;;EAEA,KAAK,IAAIzB,GAAT,IAAgBwB,cAAhB,EAAgC;IAC9B,IAAIH,aAAa,GAAGG,cAAc,CAACxB,GAAD,CAAlC;;IAEA,IAAI,OAAOqB,aAAP,KAAyB,UAA7B,EAAyC;MACvCI,mBAAmB,CAACzB,GAAD,CAAnB,GAA2BoB,iBAAiB,CAACC,aAAD,EAAgB/C,QAAhB,CAA5C;IACD;EACF;;EAED,OAAOmD,mBAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,OAAT,GAAmB;EACjB,KAAK,IAAIC,IAAI,GAAGtE,SAAS,CAACqB,MAArB,EAA6BkD,KAAK,GAAG,IAAInG,KAAJ,CAAUkG,IAAV,CAArC,EAAsDZ,IAAI,GAAG,CAAlE,EAAqEA,IAAI,GAAGY,IAA5E,EAAkFZ,IAAI,EAAtF,EAA0F;IACxFa,KAAK,CAACb,IAAD,CAAL,GAAc1D,SAAS,CAAC0D,IAAD,CAAvB;EACD;;EAED,IAAIa,KAAK,CAAClD,MAAN,KAAiB,CAArB,EAAwB;IACtB,OAAO,UAAUmD,GAAV,EAAe;MACpB,OAAOA,GAAP;IACD,CAFD;EAGD;;EAED,IAAID,KAAK,CAAClD,MAAN,KAAiB,CAArB,EAAwB;IACtB,OAAOkD,KAAK,CAAC,CAAD,CAAZ;EACD;;EAED,OAAOA,KAAK,CAACE,MAAN,CAAa,UAAUC,CAAV,EAAaC,CAAb,EAAgB;IAClC,OAAO,YAAY;MACjB,OAAOD,CAAC,CAACC,CAAC,CAACV,KAAF,CAAQ,KAAK,CAAb,EAAgBjE,SAAhB,CAAD,CAAR;IACD,CAFD;EAGD,CAJM,CAAP;AAKD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAAS4E,eAAT,GAA2B;EACzB,KAAK,IAAIN,IAAI,GAAGtE,SAAS,CAACqB,MAArB,EAA6BwD,WAAW,GAAG,IAAIzG,KAAJ,CAAUkG,IAAV,CAA3C,EAA4DZ,IAAI,GAAG,CAAxE,EAA2EA,IAAI,GAAGY,IAAlF,EAAwFZ,IAAI,EAA5F,EAAgG;IAC9FmB,WAAW,CAACnB,IAAD,CAAX,GAAoB1D,SAAS,CAAC0D,IAAD,CAA7B;EACD;;EAED,OAAO,UAAU/D,WAAV,EAAuB;IAC5B,OAAO,YAAY;MACjB,IAAImF,KAAK,GAAGnF,WAAW,CAACsE,KAAZ,CAAkB,KAAK,CAAvB,EAA0BjE,SAA1B,CAAZ;;MAEA,IAAI+E,SAAS,GAAG,SAAS9D,QAAT,GAAoB;QAClC,MAAM,IAAIlC,KAAJ,CAAUS,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,GAAwC9C,sBAAsB,CAAC,EAAD,CAA9D,GAAqE,oEAAoE,yDAAnJ,CAAN;MACD,CAFD;;MAIA,IAAIoI,aAAa,GAAG;QAClBxE,QAAQ,EAAEsE,KAAK,CAACtE,QADE;QAElBS,QAAQ,EAAE,SAASA,QAAT,GAAoB;UAC5B,OAAO8D,SAAS,CAACd,KAAV,CAAgB,KAAK,CAArB,EAAwBjE,SAAxB,CAAP;QACD;MAJiB,CAApB;MAMA,IAAIiF,KAAK,GAAGJ,WAAW,CAACK,GAAZ,CAAgB,UAAUC,UAAV,EAAsB;QAChD,OAAOA,UAAU,CAACH,aAAD,CAAjB;MACD,CAFW,CAAZ;MAGAD,SAAS,GAAGV,OAAO,CAACJ,KAAR,CAAc,KAAK,CAAnB,EAAsBgB,KAAtB,EAA6BH,KAAK,CAAC7D,QAAnC,CAAZ;MACA,OAAOtE,aAAa,CAACA,aAAa,CAAC,EAAD,EAAKmI,KAAL,CAAd,EAA2B,EAA3B,EAA+B;QACjD7D,QAAQ,EAAE8D;MADuC,CAA/B,CAApB;IAGD,CApBD;EAqBD,CAtBD;AAuBD;AAED;AACA;AACA;AACA;;;AAEA,SAASK,SAAT,GAAqB,CAAE;;AAEvB,IAAI5F,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,OAAO0F,SAAS,CAACtG,IAAjB,KAA0B,QAAnE,IAA+EsG,SAAS,CAACtG,IAAV,KAAmB,WAAtG,EAAmH;EACjHgD,OAAO,CAAC,iFAAiF,uEAAjF,GAA2J,oFAA3J,GAAkP,mFAAlP,GAAwU,gEAAzU,CAAP;AACD;;AAED,SAAStE,WAAW,IAAI6H,yBAAxB,EAAmDT,eAAnD,EAAoEV,kBAApE,EAAwFlB,eAAxF,EAAyGqB,OAAzG,EAAkH1E,WAAlH,EAA+HkC,kBAA/H"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/4e08421d965ed7ab7cd939118e6cff1b.json b/node_modules/.cache/babel-loader/4e08421d965ed7ab7cd939118e6cff1b.json new file mode 100644 index 00000000..7a6db649 --- /dev/null +++ b/node_modules/.cache/babel-loader/4e08421d965ed7ab7cd939118e6cff1b.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n {/*
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/4f30455ac2fd7c4b542a435e08defd2a.json b/node_modules/.cache/babel-loader/4f30455ac2fd7c4b542a435e08defd2a.json new file mode 100644 index 00000000..05b5684f --- /dev/null +++ b/node_modules/.cache/babel-loader/4f30455ac2fd7c4b542a435e08defd2a.json @@ -0,0 +1 @@ +{"ast":null,"code":"import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport shallowEqual from './utils/shallowEqual';\nexport { Provider, connectAdvanced, ReactReduxContext, connect, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","map":{"version":3,"names":["Provider","connectAdvanced","ReactReduxContext","connect","useDispatch","createDispatchHook","useSelector","createSelectorHook","useStore","createStoreHook","shallowEqual"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/exports.js"],"sourcesContent":["import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport shallowEqual from './utils/shallowEqual';\nexport { Provider, connectAdvanced, ReactReduxContext, connect, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,eAAP,MAA4B,8BAA5B;AACA,SAASC,iBAAT,QAAkC,sBAAlC;AACA,OAAOC,OAAP,MAAoB,mBAApB;AACA,SAASC,WAAT,EAAsBC,kBAAtB,QAAgD,qBAAhD;AACA,SAASC,WAAT,EAAsBC,kBAAtB,QAAgD,qBAAhD;AACA,SAASC,QAAT,EAAmBC,eAAnB,QAA0C,kBAA1C;AACA,OAAOC,YAAP,MAAyB,sBAAzB;AACA,SAASV,QAAT,EAAmBC,eAAnB,EAAoCC,iBAApC,EAAuDC,OAAvD,EAAgEC,WAAhE,EAA6EC,kBAA7E,EAAiGC,WAAjG,EAA8GC,kBAA9G,EAAkIC,QAAlI,EAA4IC,eAA5I,EAA6JC,YAA7J"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/50aacf5ee6020b33af2d61b8b6a3ce9a.json b/node_modules/.cache/babel-loader/50aacf5ee6020b33af2d61b8b6a3ce9a.json new file mode 100644 index 00000000..5ff5fb28 --- /dev/null +++ b/node_modules/.cache/babel-loader/50aacf5ee6020b33af2d61b8b6a3ce9a.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs mt-\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/51ad832492bf72f4884b435295aae25b.json b/node_modules/.cache/babel-loader/51ad832492bf72f4884b435295aae25b.json new file mode 100644 index 00000000..18ea6f1d --- /dev/null +++ b/node_modules/.cache/babel-loader/51ad832492bf72f4884b435295aae25b.json @@ -0,0 +1 @@ +{"ast":null,"code":"import warning from '../utils/warning';\n\nfunction verify(selector, methodName, displayName) {\n if (!selector) {\n throw new Error(\"Unexpected value for \" + methodName + \" in \" + displayName + \".\");\n } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') {\n if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {\n warning(\"The selector for \" + methodName + \" of \" + displayName + \" did not specify a value for dependsOnOwnProps.\");\n }\n }\n}\n\nexport default function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) {\n verify(mapStateToProps, 'mapStateToProps', displayName);\n verify(mapDispatchToProps, 'mapDispatchToProps', displayName);\n verify(mergeProps, 'mergeProps', displayName);\n}","map":{"version":3,"names":["warning","verify","selector","methodName","displayName","Error","Object","prototype","hasOwnProperty","call","verifySubselectors","mapStateToProps","mapDispatchToProps","mergeProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/connect/verifySubselectors.js"],"sourcesContent":["import warning from '../utils/warning';\n\nfunction verify(selector, methodName, displayName) {\n if (!selector) {\n throw new Error(\"Unexpected value for \" + methodName + \" in \" + displayName + \".\");\n } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') {\n if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {\n warning(\"The selector for \" + methodName + \" of \" + displayName + \" did not specify a value for dependsOnOwnProps.\");\n }\n }\n}\n\nexport default function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) {\n verify(mapStateToProps, 'mapStateToProps', displayName);\n verify(mapDispatchToProps, 'mapDispatchToProps', displayName);\n verify(mergeProps, 'mergeProps', displayName);\n}"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,kBAApB;;AAEA,SAASC,MAAT,CAAgBC,QAAhB,EAA0BC,UAA1B,EAAsCC,WAAtC,EAAmD;EACjD,IAAI,CAACF,QAAL,EAAe;IACb,MAAM,IAAIG,KAAJ,CAAU,0BAA0BF,UAA1B,GAAuC,MAAvC,GAAgDC,WAAhD,GAA8D,GAAxE,CAAN;EACD,CAFD,MAEO,IAAID,UAAU,KAAK,iBAAf,IAAoCA,UAAU,KAAK,oBAAvD,EAA6E;IAClF,IAAI,CAACG,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCP,QAArC,EAA+C,mBAA/C,CAAL,EAA0E;MACxEF,OAAO,CAAC,sBAAsBG,UAAtB,GAAmC,MAAnC,GAA4CC,WAA5C,GAA0D,iDAA3D,CAAP;IACD;EACF;AACF;;AAED,eAAe,SAASM,kBAAT,CAA4BC,eAA5B,EAA6CC,kBAA7C,EAAiEC,UAAjE,EAA6ET,WAA7E,EAA0F;EACvGH,MAAM,CAACU,eAAD,EAAkB,iBAAlB,EAAqCP,WAArC,CAAN;EACAH,MAAM,CAACW,kBAAD,EAAqB,oBAArB,EAA2CR,WAA3C,CAAN;EACAH,MAAM,CAACY,UAAD,EAAa,YAAb,EAA2BT,WAA3B,CAAN;AACD"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/52bab1fe24172d6385501ee17dc61827.json b/node_modules/.cache/babel-loader/52bab1fe24172d6385501ee17dc61827.json new file mode 100644 index 00000000..7d9c856a --- /dev/null +++ b/node_modules/.cache/babel-loader/52bab1fe24172d6385501ee17dc61827.json @@ -0,0 +1 @@ +{"ast":null,"code":"var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;","map":{"version":3,"names":["rafSchd","fn","lastArgs","frameId","wrapperFn","_len","arguments","length","args","Array","_key","requestAnimationFrame","apply","cancel","cancelAnimationFrame"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/raf-schd/dist/raf-schd.esm.js"],"sourcesContent":["var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n"],"mappings":"AAAA,IAAIA,OAAO,GAAG,SAASA,OAAT,CAAiBC,EAAjB,EAAqB;EACjC,IAAIC,QAAQ,GAAG,EAAf;EACA,IAAIC,OAAO,GAAG,IAAd;;EAEA,IAAIC,SAAS,GAAG,SAASA,SAAT,GAAqB;IACnC,KAAK,IAAIC,IAAI,GAAGC,SAAS,CAACC,MAArB,EAA6BC,IAAI,GAAG,IAAIC,KAAJ,CAAUJ,IAAV,CAApC,EAAqDK,IAAI,GAAG,CAAjE,EAAoEA,IAAI,GAAGL,IAA3E,EAAiFK,IAAI,EAArF,EAAyF;MACvFF,IAAI,CAACE,IAAD,CAAJ,GAAaJ,SAAS,CAACI,IAAD,CAAtB;IACD;;IAEDR,QAAQ,GAAGM,IAAX;;IAEA,IAAIL,OAAJ,EAAa;MACX;IACD;;IAEDA,OAAO,GAAGQ,qBAAqB,CAAC,YAAY;MAC1CR,OAAO,GAAG,IAAV;MACAF,EAAE,CAACW,KAAH,CAAS,KAAK,CAAd,EAAiBV,QAAjB;IACD,CAH8B,CAA/B;EAID,CAfD;;EAiBAE,SAAS,CAACS,MAAV,GAAmB,YAAY;IAC7B,IAAI,CAACV,OAAL,EAAc;MACZ;IACD;;IAEDW,oBAAoB,CAACX,OAAD,CAApB;IACAA,OAAO,GAAG,IAAV;EACD,CAPD;;EASA,OAAOC,SAAP;AACD,CA/BD;;AAiCA,eAAeJ,OAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5398e8ce7279e8fda3dcad3e1ff8c81d.json b/node_modules/.cache/babel-loader/5398e8ce7279e8fda3dcad3e1ff8c81d.json new file mode 100644 index 00000000..68b10d8b --- /dev/null +++ b/node_modules/.cache/babel-loader/5398e8ce7279e8fda3dcad3e1ff8c81d.json @@ -0,0 +1 @@ +{"ast":null,"code":"/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function () {\n 'use strict'; // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n\n var hasSymbol = typeof Symbol === 'function' && Symbol.for;\n var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n // (unstable) APIs that have been removed. Can we remove the symbols?\n\n var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\n var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\n function isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n }\n\n function typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n } // AsyncMode is deprecated along with isAsyncMode\n\n\n var AsyncMode = REACT_ASYNC_MODE_TYPE;\n var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n\n function isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n\n exports.AsyncMode = AsyncMode;\n exports.ConcurrentMode = ConcurrentMode;\n exports.ContextConsumer = ContextConsumer;\n exports.ContextProvider = ContextProvider;\n exports.Element = Element;\n exports.ForwardRef = ForwardRef;\n exports.Fragment = Fragment;\n exports.Lazy = Lazy;\n exports.Memo = Memo;\n exports.Portal = Portal;\n exports.Profiler = Profiler;\n exports.StrictMode = StrictMode;\n exports.Suspense = Suspense;\n exports.isAsyncMode = isAsyncMode;\n exports.isConcurrentMode = isConcurrentMode;\n exports.isContextConsumer = isContextConsumer;\n exports.isContextProvider = isContextProvider;\n exports.isElement = isElement;\n exports.isForwardRef = isForwardRef;\n exports.isFragment = isFragment;\n exports.isLazy = isLazy;\n exports.isMemo = isMemo;\n exports.isPortal = isPortal;\n exports.isProfiler = isProfiler;\n exports.isStrictMode = isStrictMode;\n exports.isSuspense = isSuspense;\n exports.isValidElementType = isValidElementType;\n exports.typeOf = typeOf;\n })();\n}","map":{"version":3,"names":["process","env","NODE_ENV","hasSymbol","Symbol","for","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","type","$$typeof","typeOf","object","$$typeofType","undefined","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","console","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","exports"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-is/cjs/react-is.development.js"],"sourcesContent":["/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"script"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/550207a9538e35e1991b7b05c1cb4c4a.json b/node_modules/.cache/babel-loader/550207a9538e35e1991b7b05c1cb4c4a.json new file mode 100644 index 00000000..0940254a --- /dev/null +++ b/node_modules/.cache/babel-loader/550207a9538e35e1991b7b05c1cb4c4a.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign3 from \"./components/CardDesign3\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(CardDesign۲, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign3","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign3 from \"./components/CardDesign3\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n {/* */}\n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBAIE,QAAC,WAAD;QAAA;QAAA;QAAA;MAAA;IAJF;EAJF;AAWD;;KAZQA,G;AAcT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5513152069f11e1c4fbb7b0e0943cbd5.json b/node_modules/.cache/babel-loader/5513152069f11e1c4fbb7b0e0943cbd5.json new file mode 100644 index 00000000..163b268b --- /dev/null +++ b/node_modules/.cache/babel-loader/5513152069f11e1c4fbb7b0e0943cbd5.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"hr\", {\n className: \"border border-gray-100 w-full\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/554da60193f0015756f36240c4e98511.json b/node_modules/.cache/babel-loader/554da60193f0015756f36240c4e98511.json new file mode 100644 index 00000000..cb6a2397 --- /dev/null +++ b/node_modules/.cache/babel-loader/554da60193f0015756f36240c4e98511.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/index.js\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport \"./index.scss\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\nroot.render( /*#__PURE__*/_jsxDEV(App, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 13\n}, this)); // If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\n\nreportWebVitals();","map":{"version":3,"names":["React","ReactDOM","App","reportWebVitals","root","createRoot","document","getElementById","render"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/index.js"],"sourcesContent":["import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport \"./index.scss\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\nroot.render();\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,kBAArB;AACA,OAAO,cAAP;AACA,OAAOC,GAAP,MAAgB,OAAhB;AACA,OAAOC,eAAP,MAA4B,mBAA5B;;AAEA,MAAMC,IAAI,GAAGH,QAAQ,CAACI,UAAT,CAAoBC,QAAQ,CAACC,cAAT,CAAwB,MAAxB,CAApB,CAAb;AACAH,IAAI,CAACI,MAAL,eAAY,QAAC,GAAD;EAAA;EAAA;EAAA;AAAA,QAAZ,E,CAEA;AACA;AACA;;AACAL,eAAe"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/57c4af73060da19a1bb531c69a7d13c7.json b/node_modules/.cache/babel-loader/57c4af73060da19a1bb531c69a7d13c7.json new file mode 100644 index 00000000..dd093880 --- /dev/null +++ b/node_modules/.cache/babel-loader/57c4af73060da19a1bb531c69a7d13c7.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-5 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/58b3443ae2ab0a52b0f66e5c650bd1a2.json b/node_modules/.cache/babel-loader/58b3443ae2ab0a52b0f66e5c650bd1a2.json new file mode 100644 index 00000000..b6be6787 --- /dev/null +++ b/node_modules/.cache/babel-loader/58b3443ae2ab0a52b0f66e5c650bd1a2.json @@ -0,0 +1 @@ +{"ast":null,"code":"import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","map":{"version":3,"names":["_objectWithoutPropertiesLoose","_excluded","verifySubselectors","impureFinalPropsSelectorFactory","mapStateToProps","mapDispatchToProps","mergeProps","dispatch","impureFinalPropsSelector","state","ownProps","pureFinalPropsSelectorFactory","_ref","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","stateProps","dispatchProps","mergedProps","handleFirstCall","firstState","firstOwnProps","handleNewPropsAndNewState","dependsOnOwnProps","handleNewProps","handleNewState","nextStateProps","statePropsChanged","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","pureFinalPropsSelector","finalPropsSelectorFactory","_ref2","initMapStateToProps","initMapDispatchToProps","initMergeProps","options","process","env","NODE_ENV","displayName","selectorFactory","pure"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/connect/selectorFactory.js"],"sourcesContent":["import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5937d465385de0810a5e42490326862e.json b/node_modules/.cache/babel-loader/5937d465385de0810a5e42490326862e.json new file mode 100644 index 00000000..53b368cf --- /dev/null +++ b/node_modules/.cache/babel-loader/5937d465385de0810a5e42490326862e.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign1 from \"./components/CardDesign1\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(CardDesign3, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign1","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign1 from \"./components/CardDesign1\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n {/* */}\n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBAIE,QAAC,WAAD;QAAA;QAAA;QAAA;MAAA;IAJF;EAJF;AAWD;;KAZQA,G;AAcT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5950c54c90ced4461e37cffa74cd76fd.json b/node_modules/.cache/babel-loader/5950c54c90ced4461e37cffa74cd76fd.json new file mode 100644 index 00000000..f8a2db9b --- /dev/null +++ b/node_modules/.cache/babel-loader/5950c54c90ced4461e37cffa74cd76fd.json @@ -0,0 +1 @@ +{"ast":null,"code":"import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\n\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\n\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\n\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\n\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\n\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };","map":{"version":3,"names":["invariant","getRect","_ref","top","right","bottom","left","width","height","rect","x","y","center","expand","target","expandBy","shrink","shrinkBy","shift","shiftBy","noSpacing","createBox","_ref2","borderBox","_ref2$margin","margin","_ref2$border","border","_ref2$padding","padding","marginBox","paddingBox","contentBox","parse","raw","value","slice","suffix","result","Number","isNaN","process","env","NODE_ENV","getWindowScroll","window","pageXOffset","pageYOffset","offset","original","change","shifted","withScroll","scroll","calculateBox","styles","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","getBox","el","getBoundingClientRect","getComputedStyle"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/css-box-model/dist/css-box-model.esm.js"],"sourcesContent":["import invariant from 'tiny-invariant';\n\nvar getRect = function getRect(_ref) {\n var top = _ref.top,\n right = _ref.right,\n bottom = _ref.bottom,\n left = _ref.left;\n var width = right - left;\n var height = bottom - top;\n var rect = {\n top: top,\n right: right,\n bottom: bottom,\n left: left,\n width: width,\n height: height,\n x: left,\n y: top,\n center: {\n x: (right + left) / 2,\n y: (bottom + top) / 2\n }\n };\n return rect;\n};\nvar expand = function expand(target, expandBy) {\n return {\n top: target.top - expandBy.top,\n left: target.left - expandBy.left,\n bottom: target.bottom + expandBy.bottom,\n right: target.right + expandBy.right\n };\n};\nvar shrink = function shrink(target, shrinkBy) {\n return {\n top: target.top + shrinkBy.top,\n left: target.left + shrinkBy.left,\n bottom: target.bottom - shrinkBy.bottom,\n right: target.right - shrinkBy.right\n };\n};\n\nvar shift = function shift(target, shiftBy) {\n return {\n top: target.top + shiftBy.y,\n left: target.left + shiftBy.x,\n bottom: target.bottom + shiftBy.y,\n right: target.right + shiftBy.x\n };\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\nvar createBox = function createBox(_ref2) {\n var borderBox = _ref2.borderBox,\n _ref2$margin = _ref2.margin,\n margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin,\n _ref2$border = _ref2.border,\n border = _ref2$border === void 0 ? noSpacing : _ref2$border,\n _ref2$padding = _ref2.padding,\n padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding;\n var marginBox = getRect(expand(borderBox, margin));\n var paddingBox = getRect(shrink(borderBox, border));\n var contentBox = getRect(shrink(paddingBox, padding));\n return {\n marginBox: marginBox,\n borderBox: getRect(borderBox),\n paddingBox: paddingBox,\n contentBox: contentBox,\n margin: margin,\n border: border,\n padding: padding\n };\n};\n\nvar parse = function parse(raw) {\n var value = raw.slice(0, -2);\n var suffix = raw.slice(-2);\n\n if (suffix !== 'px') {\n return 0;\n }\n\n var result = Number(value);\n !!isNaN(result) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not parse value [raw: \" + raw + \", without suffix: \" + value + \"]\") : invariant(false) : void 0;\n return result;\n};\n\nvar getWindowScroll = function getWindowScroll() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nvar offset = function offset(original, change) {\n var borderBox = original.borderBox,\n border = original.border,\n margin = original.margin,\n padding = original.padding;\n var shifted = shift(borderBox, change);\n return createBox({\n borderBox: shifted,\n border: border,\n margin: margin,\n padding: padding\n });\n};\nvar withScroll = function withScroll(original, scroll) {\n if (scroll === void 0) {\n scroll = getWindowScroll();\n }\n\n return offset(original, scroll);\n};\nvar calculateBox = function calculateBox(borderBox, styles) {\n var margin = {\n top: parse(styles.marginTop),\n right: parse(styles.marginRight),\n bottom: parse(styles.marginBottom),\n left: parse(styles.marginLeft)\n };\n var padding = {\n top: parse(styles.paddingTop),\n right: parse(styles.paddingRight),\n bottom: parse(styles.paddingBottom),\n left: parse(styles.paddingLeft)\n };\n var border = {\n top: parse(styles.borderTopWidth),\n right: parse(styles.borderRightWidth),\n bottom: parse(styles.borderBottomWidth),\n left: parse(styles.borderLeftWidth)\n };\n return createBox({\n borderBox: borderBox,\n margin: margin,\n padding: padding,\n border: border\n });\n};\nvar getBox = function getBox(el) {\n var borderBox = el.getBoundingClientRect();\n var styles = window.getComputedStyle(el);\n return calculateBox(borderBox, styles);\n};\n\nexport { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5a011fb204450f509f8dceef970bc13f.json b/node_modules/.cache/babel-loader/5a011fb204450f509f8dceef970bc13f.json new file mode 100644 index 00000000..08137481 --- /dev/null +++ b/node_modules/.cache/babel-loader/5a011fb204450f509f8dceef970bc13f.json @@ -0,0 +1 @@ +{"ast":null,"code":"/** @license React v17.0.2\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function () {\n 'use strict'; // ATTENTION\n // When adding new symbols to this file,\n // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n // nor polyfill, then a plain number is used for performance.\n\n var REACT_ELEMENT_TYPE = 0xeac7;\n var REACT_PORTAL_TYPE = 0xeaca;\n var REACT_FRAGMENT_TYPE = 0xeacb;\n var REACT_STRICT_MODE_TYPE = 0xeacc;\n var REACT_PROFILER_TYPE = 0xead2;\n var REACT_PROVIDER_TYPE = 0xeacd;\n var REACT_CONTEXT_TYPE = 0xeace;\n var REACT_FORWARD_REF_TYPE = 0xead0;\n var REACT_SUSPENSE_TYPE = 0xead1;\n var REACT_SUSPENSE_LIST_TYPE = 0xead8;\n var REACT_MEMO_TYPE = 0xead3;\n var REACT_LAZY_TYPE = 0xead4;\n var REACT_BLOCK_TYPE = 0xead9;\n var REACT_SERVER_BLOCK_TYPE = 0xeada;\n var REACT_FUNDAMENTAL_TYPE = 0xead5;\n var REACT_SCOPE_TYPE = 0xead7;\n var REACT_OPAQUE_ID_TYPE = 0xeae0;\n var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\n var REACT_OFFSCREEN_TYPE = 0xeae2;\n var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\n if (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n } // Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\n\n var enableScopeAPI = false; // Experimental Create Event Handle API.\n\n function isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n }\n\n function typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n }\n\n var ContextConsumer = REACT_CONTEXT_TYPE;\n var ContextProvider = REACT_PROVIDER_TYPE;\n var Element = REACT_ELEMENT_TYPE;\n var ForwardRef = REACT_FORWARD_REF_TYPE;\n var Fragment = REACT_FRAGMENT_TYPE;\n var Lazy = REACT_LAZY_TYPE;\n var Memo = REACT_MEMO_TYPE;\n var Portal = REACT_PORTAL_TYPE;\n var Profiler = REACT_PROFILER_TYPE;\n var StrictMode = REACT_STRICT_MODE_TYPE;\n var Suspense = REACT_SUSPENSE_TYPE;\n var hasWarnedAboutDeprecatedIsAsyncMode = false;\n var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\n function isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n return false;\n }\n\n function isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n return false;\n }\n\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n\n function isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n\n exports.ContextConsumer = ContextConsumer;\n exports.ContextProvider = ContextProvider;\n exports.Element = Element;\n exports.ForwardRef = ForwardRef;\n exports.Fragment = Fragment;\n exports.Lazy = Lazy;\n exports.Memo = Memo;\n exports.Portal = Portal;\n exports.Profiler = Profiler;\n exports.StrictMode = StrictMode;\n exports.Suspense = Suspense;\n exports.isAsyncMode = isAsyncMode;\n exports.isConcurrentMode = isConcurrentMode;\n exports.isContextConsumer = isContextConsumer;\n exports.isContextProvider = isContextProvider;\n exports.isElement = isElement;\n exports.isForwardRef = isForwardRef;\n exports.isFragment = isFragment;\n exports.isLazy = isLazy;\n exports.isMemo = isMemo;\n exports.isPortal = isPortal;\n exports.isProfiler = isProfiler;\n exports.isStrictMode = isStrictMode;\n exports.isSuspense = isSuspense;\n exports.isValidElementType = isValidElementType;\n exports.typeOf = typeOf;\n })();\n}","map":{"version":3,"names":["process","env","NODE_ENV","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_SERVER_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_SCOPE_TYPE","REACT_OPAQUE_ID_TYPE","REACT_DEBUG_TRACING_MODE_TYPE","REACT_OFFSCREEN_TYPE","REACT_LEGACY_HIDDEN_TYPE","Symbol","for","symbolFor","enableScopeAPI","isValidElementType","type","$$typeof","typeOf","object","$$typeofType","undefined","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","hasWarnedAboutDeprecatedIsConcurrentMode","isAsyncMode","console","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","exports"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js"],"sourcesContent":["/** @license React v17.0.2\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n"],"mappings":"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"},"metadata":{},"sourceType":"script"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5bed153cf7d072c6c48e5c47e2b6fe10.json b/node_modules/.cache/babel-loader/5bed153cf7d072c6c48e5c47e2b6fe10.json new file mode 100644 index 00000000..f50008fb --- /dev/null +++ b/node_modules/.cache/babel-loader/5bed153cf7d072c6c48e5c47e2b6fe10.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js\";\nimport React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign1 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit flex flex-col p-4 bg-surface shadow-sm rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"طبقه سوم\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1 h-5 bg-warning ml-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(IconText, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign1;\nexport default CardDesign1;\nCardDesign1.defaultProps = {};\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign1\");","map":{"version":3,"names":["React","CustomToast","IconText","TitleSubtitle","CardDesign1","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js"],"sourcesContent":["import React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nconst CardDesign1 = () => {\n return (\n
    \n \n \n \n
    \n );\n};\n\nexport default CardDesign1;\n\nCardDesign1.defaultProps = {};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,OAAOC,aAAP,MAA0B,kBAA1B;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,sDAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,UAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE,QAAC,QAAD;MAAA;MAAA;MAAA;IAAA,QAPF,eAQE,QAAC,WAAD;MAAA;MAAA;MAAA;IAAA,QARF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAYD,CAbD;;KAAMA,W;AAeN,eAAeA,WAAf;AAEAA,WAAW,CAACC,YAAZ,GAA2B,EAA3B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5c3ff69b76244be1b1620680939e6d68.json b/node_modules/.cache/babel-loader/5c3ff69b76244be1b1620680939e6d68.json new file mode 100644 index 00000000..d2c298a7 --- /dev/null +++ b/node_modules/.cache/babel-loader/5c3ff69b76244be1b1620680939e6d68.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/TitleSubtitle/index.js\";\nimport React from \"react\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst TitleSubtitle = _ref => {\n let {\n title,\n subTitle,\n titleClassName,\n titleBorderClassName,\n subtitleClassName,\n subtitleBorderClassName\n } = _ref;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"\",\n children: [title && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center mb-3\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `rounded bg-primaryDark ${titleBorderClassName}`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"h2\", {\n className: `text-primaryText ${titleClassName}`,\n children: title\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 9\n }, this), subTitle && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: `rounded bg-primaryDark ${subtitleBorderClassName}`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: `text-primaryDark ${subtitleClassName}`,\n children: subTitle\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 28,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 12,\n columnNumber: 5\n }, this);\n};\n\n_c = TitleSubtitle;\nexport default TitleSubtitle;\nTitleSubtitle.defaultProps = {\n title: \"میزان فروش محصولات\",\n subTitle: \"اطلاعات جداول مشخصاتی کارکنان مجموعه ایران تایر\",\n titleClassName: \"text-base\",\n titleBorderClassName: \"w-1 h-5 ml-1\",\n subtitleClassName: \"text-xs\",\n subtitleBorderClassName: \"w-1 h-5 ml-1\"\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"TitleSubtitle\");","map":{"version":3,"names":["React","TitleSubtitle","title","subTitle","titleClassName","titleBorderClassName","subtitleClassName","subtitleBorderClassName","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/TitleSubtitle/index.js"],"sourcesContent":["import React from \"react\";\n\nconst TitleSubtitle = ({\n title,\n subTitle,\n titleClassName,\n titleBorderClassName,\n subtitleClassName,\n subtitleBorderClassName,\n}) => {\n return (\n
    \n {/* page Title */}\n {title && (\n
    \n
    \n

    {title}

    \n
    \n )}\n {/* page subTitle */}\n {subTitle && (\n
    \n
    \n

    {subTitle}

    \n \n )}\n \n );\n};\n\nexport default TitleSubtitle;\n\nTitleSubtitle.defaultProps = {\n title: \"میزان فروش محصولات\",\n subTitle: \"اطلاعات جداول مشخصاتی کارکنان مجموعه ایران تایر\",\n\n titleClassName: \"text-base\",\n titleBorderClassName: \"w-1 h-5 ml-1\",\n\n subtitleClassName: \"text-xs\",\n subtitleBorderClassName: \"w-1 h-5 ml-1\",\n};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAEA,MAAMC,aAAa,GAAG,QAOhB;EAAA,IAPiB;IACrBC,KADqB;IAErBC,QAFqB;IAGrBC,cAHqB;IAIrBC,oBAJqB;IAKrBC,iBALqB;IAMrBC;EANqB,CAOjB;EACJ,oBACE;IAAK,SAAS,EAAC,EAAf;IAAA,WAEGL,KAAK,iBACJ;MAAK,SAAS,EAAC,iCAAf;MAAA,wBACE;QACE,SAAS,EAAG,0BAAyBG,oBAAqB;MAD5D;QAAA;QAAA;QAAA;MAAA,QADF,eAIE;QAAI,SAAS,EAAG,oBAAmBD,cAAe,EAAlD;QAAA,UAAsDF;MAAtD;QAAA;QAAA;QAAA;MAAA,QAJF;IAAA;MAAA;MAAA;MAAA;IAAA,QAHJ,EAWGC,QAAQ,iBACP;MAAK,SAAS,EAAC,4BAAf;MAAA,wBACE;QACE,SAAS,EAAG,0BAAyBI,uBAAwB;MAD/D;QAAA;QAAA;QAAA;MAAA,QADF,eAIE;QAAG,SAAS,EAAG,oBAAmBD,iBAAkB,EAApD;QAAA,UAAwDH;MAAxD;QAAA;QAAA;QAAA;MAAA,QAJF;IAAA;MAAA;MAAA;MAAA;IAAA,QAZJ;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAsBD,CA9BD;;KAAMF,a;AAgCN,eAAeA,aAAf;AAEAA,aAAa,CAACO,YAAd,GAA6B;EAC3BN,KAAK,EAAE,oBADoB;EAE3BC,QAAQ,EAAE,iDAFiB;EAI3BC,cAAc,EAAE,WAJW;EAK3BC,oBAAoB,EAAE,cALK;EAO3BC,iBAAiB,EAAE,SAPQ;EAQ3BC,uBAAuB,EAAE;AARE,CAA7B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5cb5714a6d1b6080d79cdf22c864ac68.json b/node_modules/.cache/babel-loader/5cb5714a6d1b6080d79cdf22c864ac68.json new file mode 100644 index 00000000..0df9c1e1 --- /dev/null +++ b/node_modules/.cache/babel-loader/5cb5714a6d1b6080d79cdf22c864ac68.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"hr\", {\n className: \"border border-gray-100 w-full my-10\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5f092ea0a3b4744631b8d5b4002c8b19.json b/node_modules/.cache/babel-loader/5f092ea0a3b4744631b8d5b4002c8b19.json new file mode 100644 index 00000000..f6c66bb2 --- /dev/null +++ b/node_modules/.cache/babel-loader/5f092ea0a3b4744631b8d5b4002c8b19.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(LeafletMap, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n \n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBAGE,QAAC,UAAD;QAAA;QAAA;QAAA;MAAA;IAHF;EAJF;AAWD;;KAZQA,G;AAcT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/5fb04cc3811bee3a0d9c7983a2a4e739.json b/node_modules/.cache/babel-loader/5fb04cc3811bee3a0d9c7983a2a4e739.json new file mode 100644 index 00000000..36ef41ad --- /dev/null +++ b/node_modules/.cache/babel-loader/5fb04cc3811bee3a0d9c7983a2a4e739.json @@ -0,0 +1 @@ +{"ast":null,"code":"var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n }\n\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };","map":{"version":3,"names":["isProduction","process","env","NODE_ENV","prefix","invariant","condition","message","Error","provided","value","default"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/tiny-invariant/dist/tiny-invariant.esm.js"],"sourcesContent":["var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n"],"mappings":"AAAA,IAAIA,YAAY,GAAGC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA5C;AACA,IAAIC,MAAM,GAAG,kBAAb;;AACA,SAASC,SAAT,CAAmBC,SAAnB,EAA8BC,OAA9B,EAAuC;EACnC,IAAID,SAAJ,EAAe;IACX;EACH;;EACD,IAAIN,YAAJ,EAAkB;IACd,MAAM,IAAIQ,KAAJ,CAAUJ,MAAV,CAAN;EACH;;EACD,IAAIK,QAAQ,GAAG,OAAOF,OAAP,KAAmB,UAAnB,GAAgCA,OAAO,EAAvC,GAA4CA,OAA3D;EACA,IAAIG,KAAK,GAAGD,QAAQ,GAAGL,MAAM,GAAG,IAAT,GAAgBK,QAAnB,GAA8BL,MAAlD;EACA,MAAM,IAAII,KAAJ,CAAUE,KAAV,CAAN;AACH;;AAED,SAASL,SAAS,IAAIM,OAAtB"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/60a459f9a74f226630a27fc29204944b.json b/node_modules/.cache/babel-loader/60a459f9a74f226630a27fc29204944b.json new file mode 100644 index 00000000..eaad7329 --- /dev/null +++ b/node_modules/.cache/babel-loader/60a459f9a74f226630a27fc29204944b.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"../../MiniComponents/TitleSubtitle\";\nimport SearchBox from \"../../SearchDesign/SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow-sm border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1.5 h-7 bg-primary ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"../../MiniComponents/TitleSubtitle\";\n\nimport SearchBox from \"../../SearchDesign/SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,oCAA1B;AAEA,OAAOC,SAAP,MAAsB,8BAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,8HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/61f2e9f5d701943dd7b133d0a922313d.json b/node_modules/.cache/babel-loader/61f2e9f5d701943dd7b133d0a922313d.json new file mode 100644 index 00000000..ddebcdff --- /dev/null +++ b/node_modules/.cache/babel-loader/61f2e9f5d701943dd7b133d0a922313d.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js\";\nimport React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../../MiniComponents/IconText\";\nimport TitleSubtitle from \"../../MiniComponents/TitleSubtitle\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign1 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit flex flex-col p-4 bg-white shadow-sm rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"طبقه سوم\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1 h-5 bg-warning ml-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(IconText, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign1;\nexport default CardDesign1;\nCardDesign1.defaultProps = {};\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign1\");","map":{"version":3,"names":["React","CustomToast","IconText","TitleSubtitle","CardDesign1","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js"],"sourcesContent":["import React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../../MiniComponents/IconText\";\nimport TitleSubtitle from \"../../MiniComponents/TitleSubtitle\";\n\nconst CardDesign1 = () => {\n return (\n
    \n \n \n \n
    \n );\n};\n\nexport default CardDesign1;\n\nCardDesign1.defaultProps = {};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,QAAP,MAAqB,+BAArB;AACA,OAAOC,aAAP,MAA0B,oCAA1B;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,oDAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,UAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE,QAAC,QAAD;MAAA;MAAA;MAAA;IAAA,QAPF,eAQE,QAAC,WAAD;MAAA;MAAA;MAAA;IAAA,QARF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAYD,CAbD;;KAAMA,W;AAeN,eAAeA,WAAf;AAEAA,WAAW,CAACC,YAAZ,GAA2B,EAA3B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/67f5d389b02bc048164e6d9feac273e1.json b/node_modules/.cache/babel-loader/67f5d389b02bc048164e6d9feac273e1.json new file mode 100644 index 00000000..8a3a0bdb --- /dev/null +++ b/node_modules/.cache/babel-loader/67f5d389b02bc048164e6d9feac273e1.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign1 from \"./components/CardDesign1\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(CardDesign1, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign1","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign1 from \"./components/CardDesign1\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n {/* */}\n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBAIE,QAAC,WAAD;QAAA;QAAA;QAAA;MAAA;IAJF;EAJF;AAWD;;KAZQA,G;AAcT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/6bbadeab43b0b733b485f6d4b015e738.json b/node_modules/.cache/babel-loader/6bbadeab43b0b733b485f6d4b015e738.json new file mode 100644 index 00000000..545e0632 --- /dev/null +++ b/node_modules/.cache/babel-loader/6bbadeab43b0b733b485f6d4b015e738.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between mx-auto divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/6bc76a7d86e56efacad0590b94e14191.json b/node_modules/.cache/babel-loader/6bc76a7d86e56efacad0590b94e14191.json new file mode 100644 index 00000000..9e322b4a --- /dev/null +++ b/node_modules/.cache/babel-loader/6bc76a7d86e56efacad0590b94e14191.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between mx-auto divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/6d67cabe545b6005a34dc399ba8b729b.json b/node_modules/.cache/babel-loader/6d67cabe545b6005a34dc399ba8b729b.json new file mode 100644 index 00000000..57436bc1 --- /dev/null +++ b/node_modules/.cache/babel-loader/6d67cabe545b6005a34dc399ba8b729b.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[444px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs mt-7\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/6e5d35ecf46c369569d5ce6805cc1461.json b/node_modules/.cache/babel-loader/6e5d35ecf46c369569d5ce6805cc1461.json new file mode 100644 index 00000000..59dac563 --- /dev/null +++ b/node_modules/.cache/babel-loader/6e5d35ecf46c369569d5ce6805cc1461.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/6e942f50bb5e1748b69311f9e348dd58.json b/node_modules/.cache/babel-loader/6e942f50bb5e1748b69311f9e348dd58.json new file mode 100644 index 00000000..7de5ff8c --- /dev/null +++ b/node_modules/.cache/babel-loader/6e942f50bb5e1748b69311f9e348dd58.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"hr\", {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/73fa68037ff3c0ffa71a449b931956cc.json b/node_modules/.cache/babel-loader/73fa68037ff3c0ffa71a449b931956cc.json new file mode 100644 index 00000000..ff25725a --- /dev/null +++ b/node_modules/.cache/babel-loader/73fa68037ff3c0ffa71a449b931956cc.json @@ -0,0 +1 @@ +{"ast":null,"code":"import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;","map":{"version":3,"names":["React","useMemo","PropTypes","ReactReduxContext","createSubscription","useIsomorphicLayoutEffect","Provider","_ref","store","context","children","contextValue","subscription","previousState","getState","onStateChange","notifyNestedSubs","trySubscribe","tryUnsubscribe","Context","createElement","value","process","env","NODE_ENV","propTypes","shape","subscribe","func","isRequired","dispatch","object","any"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/components/Provider.js"],"sourcesContent":["import React, { useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = createSubscription(store);\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useIsomorphicLayoutEffect(function () {\n var subscription = contextValue.subscription;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nif (process.env.NODE_ENV !== 'production') {\n Provider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n };\n}\n\nexport default Provider;"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,OAAhB,QAA+B,OAA/B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,iBAAT,QAAkC,WAAlC;AACA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,SAASC,yBAAT,QAA0C,oCAA1C;;AAEA,SAASC,QAAT,CAAkBC,IAAlB,EAAwB;EACtB,IAAIC,KAAK,GAAGD,IAAI,CAACC,KAAjB;EAAA,IACIC,OAAO,GAAGF,IAAI,CAACE,OADnB;EAAA,IAEIC,QAAQ,GAAGH,IAAI,CAACG,QAFpB;EAGA,IAAIC,YAAY,GAAGV,OAAO,CAAC,YAAY;IACrC,IAAIW,YAAY,GAAGR,kBAAkB,CAACI,KAAD,CAArC;IACA,OAAO;MACLA,KAAK,EAAEA,KADF;MAELI,YAAY,EAAEA;IAFT,CAAP;EAID,CANyB,EAMvB,CAACJ,KAAD,CANuB,CAA1B;EAOA,IAAIK,aAAa,GAAGZ,OAAO,CAAC,YAAY;IACtC,OAAOO,KAAK,CAACM,QAAN,EAAP;EACD,CAF0B,EAExB,CAACN,KAAD,CAFwB,CAA3B;EAGAH,yBAAyB,CAAC,YAAY;IACpC,IAAIO,YAAY,GAAGD,YAAY,CAACC,YAAhC;IACAA,YAAY,CAACG,aAAb,GAA6BH,YAAY,CAACI,gBAA1C;IACAJ,YAAY,CAACK,YAAb;;IAEA,IAAIJ,aAAa,KAAKL,KAAK,CAACM,QAAN,EAAtB,EAAwC;MACtCF,YAAY,CAACI,gBAAb;IACD;;IAED,OAAO,YAAY;MACjBJ,YAAY,CAACM,cAAb;MACAN,YAAY,CAACG,aAAb,GAA6B,IAA7B;IACD,CAHD;EAID,CAbwB,EAatB,CAACJ,YAAD,EAAeE,aAAf,CAbsB,CAAzB;EAcA,IAAIM,OAAO,GAAGV,OAAO,IAAIN,iBAAzB;EACA,OAAO,aAAaH,KAAK,CAACoB,aAAN,CAAoBD,OAAO,CAACb,QAA5B,EAAsC;IACxDe,KAAK,EAAEV;EADiD,CAAtC,EAEjBD,QAFiB,CAApB;AAGD;;AAED,IAAIY,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;EACzClB,QAAQ,CAACmB,SAAT,GAAqB;IACnBjB,KAAK,EAAEN,SAAS,CAACwB,KAAV,CAAgB;MACrBC,SAAS,EAAEzB,SAAS,CAAC0B,IAAV,CAAeC,UADL;MAErBC,QAAQ,EAAE5B,SAAS,CAAC0B,IAAV,CAAeC,UAFJ;MAGrBf,QAAQ,EAAEZ,SAAS,CAAC0B,IAAV,CAAeC;IAHJ,CAAhB,CADY;IAMnBpB,OAAO,EAAEP,SAAS,CAAC6B,MANA;IAOnBrB,QAAQ,EAAER,SAAS,CAAC8B;EAPD,CAArB;AASD;;AAED,eAAe1B,QAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/760af3b1fb6a881a281b11902a7c9490.json b/node_modules/.cache/babel-loader/760af3b1fb6a881a281b11902a7c9490.json new file mode 100644 index 00000000..447bebc3 --- /dev/null +++ b/node_modules/.cache/babel-loader/760af3b1fb6a881a281b11902a7c9490.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/79a8e19d6dcc4610bfd8426b74ee0b48.json b/node_modules/.cache/babel-loader/79a8e19d6dcc4610bfd8426b74ee0b48.json new file mode 100644 index 00000000..be627e95 --- /dev/null +++ b/node_modules/.cache/babel-loader/79a8e19d6dcc4610bfd8426b74ee0b48.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/7a2454891c822921750a16b3cc82534f.json b/node_modules/.cache/babel-loader/7a2454891c822921750a16b3cc82534f.json new file mode 100644 index 00000000..0b1dc0b0 --- /dev/null +++ b/node_modules/.cache/babel-loader/7a2454891c822921750a16b3cc82534f.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/7e231438399232e0b80800bd958ed8a8.json b/node_modules/.cache/babel-loader/7e231438399232e0b80800bd958ed8a8.json new file mode 100644 index 00000000..7549bcce --- /dev/null +++ b/node_modules/.cache/babel-loader/7e231438399232e0b80800bd958ed8a8.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { useState, useRef, useEffect } from 'react';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useMemoOne(getResult, inputs) {\n var initial = useState(function () {\n return {\n inputs: inputs,\n result: getResult()\n };\n })[0];\n var isFirstRun = useRef(true);\n var committed = useRef(initial);\n var useCache = isFirstRun.current || Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));\n var cache = useCache ? committed.current : {\n inputs: inputs,\n result: getResult()\n };\n useEffect(function () {\n isFirstRun.current = false;\n committed.current = cache;\n }, [cache]);\n return cache.result;\n}\n\nfunction useCallbackOne(callback, inputs) {\n return useMemoOne(function () {\n return callback;\n }, inputs);\n}\n\nvar useMemo = useMemoOne;\nvar useCallback = useCallbackOne;\nexport { useCallback, useCallbackOne, useMemo, useMemoOne };","map":{"version":3,"names":["useState","useRef","useEffect","areInputsEqual","newInputs","lastInputs","length","i","useMemoOne","getResult","inputs","initial","result","isFirstRun","committed","useCache","current","Boolean","cache","useCallbackOne","callback","useMemo","useCallback"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/use-memo-one/dist/use-memo-one.esm.js"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction useMemoOne(getResult, inputs) {\n var initial = useState(function () {\n return {\n inputs: inputs,\n result: getResult()\n };\n })[0];\n var isFirstRun = useRef(true);\n var committed = useRef(initial);\n var useCache = isFirstRun.current || Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs));\n var cache = useCache ? committed.current : {\n inputs: inputs,\n result: getResult()\n };\n useEffect(function () {\n isFirstRun.current = false;\n committed.current = cache;\n }, [cache]);\n return cache.result;\n}\nfunction useCallbackOne(callback, inputs) {\n return useMemoOne(function () {\n return callback;\n }, inputs);\n}\nvar useMemo = useMemoOne;\nvar useCallback = useCallbackOne;\n\nexport { useCallback, useCallbackOne, useMemo, useMemoOne };\n"],"mappings":"AAAA,SAASA,QAAT,EAAmBC,MAAnB,EAA2BC,SAA3B,QAA4C,OAA5C;;AAEA,SAASC,cAAT,CAAwBC,SAAxB,EAAmCC,UAAnC,EAA+C;EAC7C,IAAID,SAAS,CAACE,MAAV,KAAqBD,UAAU,CAACC,MAApC,EAA4C;IAC1C,OAAO,KAAP;EACD;;EAED,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,SAAS,CAACE,MAA9B,EAAsCC,CAAC,EAAvC,EAA2C;IACzC,IAAIH,SAAS,CAACG,CAAD,CAAT,KAAiBF,UAAU,CAACE,CAAD,CAA/B,EAAoC;MAClC,OAAO,KAAP;IACD;EACF;;EAED,OAAO,IAAP;AACD;;AAED,SAASC,UAAT,CAAoBC,SAApB,EAA+BC,MAA/B,EAAuC;EACrC,IAAIC,OAAO,GAAGX,QAAQ,CAAC,YAAY;IACjC,OAAO;MACLU,MAAM,EAAEA,MADH;MAELE,MAAM,EAAEH,SAAS;IAFZ,CAAP;EAID,CALqB,CAAR,CAKX,CALW,CAAd;EAMA,IAAII,UAAU,GAAGZ,MAAM,CAAC,IAAD,CAAvB;EACA,IAAIa,SAAS,GAAGb,MAAM,CAACU,OAAD,CAAtB;EACA,IAAII,QAAQ,GAAGF,UAAU,CAACG,OAAX,IAAsBC,OAAO,CAACP,MAAM,IAAII,SAAS,CAACE,OAAV,CAAkBN,MAA5B,IAAsCP,cAAc,CAACO,MAAD,EAASI,SAAS,CAACE,OAAV,CAAkBN,MAA3B,CAArD,CAA5C;EACA,IAAIQ,KAAK,GAAGH,QAAQ,GAAGD,SAAS,CAACE,OAAb,GAAuB;IACzCN,MAAM,EAAEA,MADiC;IAEzCE,MAAM,EAAEH,SAAS;EAFwB,CAA3C;EAIAP,SAAS,CAAC,YAAY;IACpBW,UAAU,CAACG,OAAX,GAAqB,KAArB;IACAF,SAAS,CAACE,OAAV,GAAoBE,KAApB;EACD,CAHQ,EAGN,CAACA,KAAD,CAHM,CAAT;EAIA,OAAOA,KAAK,CAACN,MAAb;AACD;;AACD,SAASO,cAAT,CAAwBC,QAAxB,EAAkCV,MAAlC,EAA0C;EACxC,OAAOF,UAAU,CAAC,YAAY;IAC5B,OAAOY,QAAP;EACD,CAFgB,EAEdV,MAFc,CAAjB;AAGD;;AACD,IAAIW,OAAO,GAAGb,UAAd;AACA,IAAIc,WAAW,GAAGH,cAAlB;AAEA,SAASG,WAAT,EAAsBH,cAAtB,EAAsCE,OAAtC,EAA+Cb,UAA/C"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/82ceb111148f93eceb6e09f3f0f3dd7b.json b/node_modules/.cache/babel-loader/82ceb111148f93eceb6e09f3f0f3dd7b.json new file mode 100644 index 00000000..df93c12b --- /dev/null +++ b/node_modules/.cache/babel-loader/82ceb111148f93eceb6e09f3f0f3dd7b.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/85237ea1edec3c0a6107fefd19d1b4af.json b/node_modules/.cache/babel-loader/85237ea1edec3c0a6107fefd19d1b4af.json new file mode 100644 index 00000000..9d59ce3e --- /dev/null +++ b/node_modules/.cache/babel-loader/85237ea1edec3c0a6107fefd19d1b4af.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[433px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs mt-7\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/8627234c9be7c82ea20ff2fcd721b889.json b/node_modules/.cache/babel-loader/8627234c9be7c82ea20ff2fcd721b889.json new file mode 100644 index 00000000..028d4260 --- /dev/null +++ b/node_modules/.cache/babel-loader/8627234c9be7c82ea20ff2fcd721b889.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":";;;AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAT,QAAwB,iBAAxB;AAEA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,OAAOC,KAAP,MAAkB,wBAAlB;AACA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,OAAOC,YAAP,MAAyB,iBAAzB;AACA,OAAOC,MAAP,MAAmB,WAAnB;;;AAEA,MAAMC,SAAS,GAAG,QAAe;EAAA;;EAAA,IAAd;IAAEC;EAAF,CAAc;EAC/B,MAAM;IAAEC,QAAF;IAAYC;EAAZ,IAA0BT,OAAO,EAAvC;EAEA,oBACE;IAAK,SAAS,EAAC,eAAf;IAAA,wBACE;MAAK,SAAS,EAAC,gMAAf;MAAA,wBACE;QAAK,SAAS,EAAC,6CAAf;QAAA,wBACE,QAAC,KAAD;UACE,QAAQ,EAAEQ,QAAQ,CAAC,WAAD,CADpB;UAEE,KAAK,EAAC,qBAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QADF,eAQE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,UAAD,CADpB;UAEE,KAAK,EAAC,qEAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QARF,eAeE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,WAAD,CADpB;UAEE,KAAK,EAAC,yDAFR;UAGE,IAAI,EAAC,QAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QAfF,eAsBE,QAAC,eAAD;UAAA;UAAA;UAAA;QAAA,QAtBF,eAuBE,QAAC,YAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,QAAD,CADpB;UAEE,SAAS,EAAC,wCAFZ,CAGE;UAHF;UAIE,MAAM,EAAE,CAAC,MAAD,EAAS,KAAT;QAJV;UAAA;UAAA;UAAA;QAAA,QAvBF;MAAA;QAAA;QAAA;QAAA;MAAA,QADF,eA+BE;QAAK,SAAS,EAAC,6CAAf;QAAA,wBACE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,cAAD,CADpB;UAEE,KAAK,EAAC,yDAFR;UAGE,IAAI,EAAC,QAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QADF,eAQE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,KAAD,CADpB;UAEE,KAAK,EAAC,oBAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QARF,eAeE,QAAC,eAAD;UAAiB,OAAO,EAAED;QAA1B;UAAA;UAAA;UAAA;QAAA,QAfF,eAgBE,QAAC,KAAD;UACE,QAAQ,EAAEC,QAAQ,CAAC,SAAD,CADpB;UAEE,KAAK,EAAC,qGAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QAhBF,eAuBE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,QAAD,CADpB;UAEE,KAAK,EAAC,iCAFR;UAGE,IAAI,EAAC,QAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QAvBF;MAAA;QAAA;QAAA;QAAA;MAAA,QA/BF,eA8DE;QAAK,SAAS,EAAC,kEAAf;QAAA,uBACE,QAAC,eAAD;UAAA;UAAA;UAAA;QAAA;MADF;QAAA;QAAA;QAAA;MAAA,QA9DF;IAAA;MAAA;MAAA;MAAA;IAAA,QADF,eAmEE,QAAC,MAAD;MAAQ,SAAS,EAAE,OAAnB;MAA4B,KAAK,EAAE;IAAnC;MAAA;MAAA;MAAA;IAAA,QAnEF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAuED,CA1ED;;GAAMF,S;UAC4BN,O;;;KAD5BM,S;AA4EN,eAAeA,SAAf;AAEAA,SAAS,CAACI,YAAV,GAAyB;EACvBH,KAAK,EAAE,CACL;IACEI,KAAK,EAAE;EADT,CADK,EAIL;IACEA,KAAK,EAAE;EADT,CAJK,EAOL;IACEA,KAAK,EAAE;EADT,CAPK;AADgB,CAAzB"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/86e7060f57e741ba09502c34915fe681.json b/node_modules/.cache/babel-loader/86e7060f57e741ba09502c34915fe681.json new file mode 100644 index 00000000..c6051beb --- /dev/null +++ b/node_modules/.cache/babel-loader/86e7060f57e741ba09502c34915fe681.json @@ -0,0 +1 @@ +{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","map":{"version":3,"names":["_extends","_objectWithoutPropertiesLoose","_excluded","_excluded2","hoistStatics","React","useContext","useMemo","useRef","useReducer","isValidElementType","isContextConsumer","createSubscription","useIsomorphicLayoutEffect","ReactReduxContext","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","stringifyComponent","Comp","JSON","stringify","err","String","storeStateUpdatesReducer","state","action","updateCount","payload","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","dependencies","apply","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","actualChildProps","childPropsFromStoreUpdate","notifyNestedSubs","current","subscribeUpdates","shouldHandleStateChanges","store","subscription","childPropsSelector","forceComponentUpdateDispatch","didUnsubscribe","lastThrownError","checkForUpdates","latestStoreState","getState","newChildProps","error","e","type","onStateChange","trySubscribe","unsubscribeWrapper","tryUnsubscribe","initStateUpdates","connectAdvanced","selectorFactory","_ref","_ref2","_ref2$getDisplayName","getDisplayName","name","_ref2$methodName","methodName","_ref2$renderCountProp","renderCountProp","undefined","_ref2$shouldHandleSta","_ref2$storeKey","storeKey","_ref2$withRef","withRef","_ref2$forwardRef","forwardRef","_ref2$context","context","connectOptions","process","env","NODE_ENV","Error","customStoreWarningMessage","Context","wrapWithConnect","WrappedComponent","wrappedComponentName","displayName","selectorFactoryOptions","pure","createChildSelector","dispatch","usePureOnlyMemo","callback","ConnectFunction","props","_useMemo","reactReduxForwardedRef","propsContext","ContextToUse","Consumer","createElement","contextValue","didStoreComeFromProps","Boolean","didStoreComeFromContext","_useMemo2","bind","overriddenContextValue","_useReducer","_useReducer$","previousStateUpdateResult","renderedWrappedComponent","ref","renderedChild","Provider","value","Connect","memo","forwarded","forwardConnectRef"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/components/connectAdvanced.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"],\n _excluded2 = [\"reactReduxForwardedRef\"];\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(function () {\n return effectFunc.apply(void 0, effectArgs);\n }, dependencies);\n}\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n}\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n};\n\nexport default function connectAdvanced(\n/*\r\n selectorFactory is a func that is responsible for returning the selector function used to\r\n compute new props from state, props, and dispatch. For example:\r\n export default connectAdvanced((dispatch, options) => (state, props) => ({\r\n thing: state.things[props.thingId],\r\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\r\n }))(YourComponent)\r\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\r\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\r\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\r\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\r\n props. Do not use connectAdvanced directly without memoizing results between calls to your\r\n selector, otherwise the Connect component will re-render on every state or props change.\r\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (process.env.NODE_ENV !== 'production') {\n if (renderCountProp !== undefined) {\n throw new Error(\"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n }\n\n if (withRef) {\n throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component');\n }\n\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n\n if (storeKey !== 'store') {\n throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n }\n }\n\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(\"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var reactReduxForwardedRef = props.reactReduxForwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n reactReduxForwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(\"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n } // Based on the previous check, one of these must be true\n\n\n var store = didStoreComeFromProps ? props.store : contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }));\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,oCAArB;AACA,OAAOC,6BAAP,MAA0C,yDAA1C;AACA,IAAIC,SAAS,GAAG,CAAC,gBAAD,EAAmB,YAAnB,EAAiC,iBAAjC,EAAoD,0BAApD,EAAgF,UAAhF,EAA4F,SAA5F,EAAuG,YAAvG,EAAqH,SAArH,CAAhB;AAAA,IACIC,UAAU,GAAG,CAAC,wBAAD,CADjB;AAEA,OAAOC,YAAP,MAAyB,yBAAzB;AACA,OAAOC,KAAP,IAAgBC,UAAhB,EAA4BC,OAA5B,EAAqCC,MAArC,EAA6CC,UAA7C,QAA+D,OAA/D;AACA,SAASC,kBAAT,EAA6BC,iBAA7B,QAAsD,UAAtD;AACA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,SAASC,yBAAT,QAA0C,oCAA1C;AACA,SAASC,iBAAT,QAAkC,WAAlC,C,CAA+C;;AAE/C,IAAIC,WAAW,GAAG,EAAlB;AACA,IAAIC,qBAAqB,GAAG,CAAC,IAAD,EAAO,IAAP,CAA5B;;AAEA,IAAIC,kBAAkB,GAAG,SAASA,kBAAT,CAA4BC,IAA5B,EAAkC;EACzD,IAAI;IACF,OAAOC,IAAI,CAACC,SAAL,CAAeF,IAAf,CAAP;EACD,CAFD,CAEE,OAAOG,GAAP,EAAY;IACZ,OAAOC,MAAM,CAACJ,IAAD,CAAb;EACD;AACF,CAND;;AAQA,SAASK,wBAAT,CAAkCC,KAAlC,EAAyCC,MAAzC,EAAiD;EAC/C,IAAIC,WAAW,GAAGF,KAAK,CAAC,CAAD,CAAvB;EACA,OAAO,CAACC,MAAM,CAACE,OAAR,EAAiBD,WAAW,GAAG,CAA/B,CAAP;AACD;;AAED,SAASE,iCAAT,CAA2CC,UAA3C,EAAuDC,UAAvD,EAAmEC,YAAnE,EAAiF;EAC/ElB,yBAAyB,CAAC,YAAY;IACpC,OAAOgB,UAAU,CAACG,KAAX,CAAiB,KAAK,CAAtB,EAAyBF,UAAzB,CAAP;EACD,CAFwB,EAEtBC,YAFsB,CAAzB;AAGD;;AAED,SAASE,mBAAT,CAA6BC,gBAA7B,EAA+CC,cAA/C,EAA+DC,iBAA/D,EAAkFC,YAAlF,EAAgGC,gBAAhG,EAAkHC,yBAAlH,EAA6IC,gBAA7I,EAA+J;EAC7J;EACAN,gBAAgB,CAACO,OAAjB,GAA2BJ,YAA3B;EACAF,cAAc,CAACM,OAAf,GAAyBH,gBAAzB;EACAF,iBAAiB,CAACK,OAAlB,GAA4B,KAA5B,CAJ6J,CAI1H;;EAEnC,IAAIF,yBAAyB,CAACE,OAA9B,EAAuC;IACrCF,yBAAyB,CAACE,OAA1B,GAAoC,IAApC;IACAD,gBAAgB;EACjB;AACF;;AAED,SAASE,gBAAT,CAA0BC,wBAA1B,EAAoDC,KAApD,EAA2DC,YAA3D,EAAyEC,kBAAzE,EAA6FZ,gBAA7F,EAA+GC,cAA/G,EAA+HC,iBAA/H,EAAkJG,yBAAlJ,EAA6KC,gBAA7K,EAA+LO,4BAA/L,EAA6N;EAC3N;EACA,IAAI,CAACJ,wBAAL,EAA+B,OAF4L,CAEpL;;EAEvC,IAAIK,cAAc,GAAG,KAArB;EACA,IAAIC,eAAe,GAAG,IAAtB,CAL2N,CAK/L;;EAE5B,IAAIC,eAAe,GAAG,SAASA,eAAT,GAA2B;IAC/C,IAAIF,cAAJ,EAAoB;MAClB;MACA;MACA;IACD;;IAED,IAAIG,gBAAgB,GAAGP,KAAK,CAACQ,QAAN,EAAvB;IACA,IAAIC,aAAJ,EAAmBC,KAAnB;;IAEA,IAAI;MACF;MACA;MACAD,aAAa,GAAGP,kBAAkB,CAACK,gBAAD,EAAmBjB,gBAAgB,CAACO,OAApC,CAAlC;IACD,CAJD,CAIE,OAAOc,CAAP,EAAU;MACVD,KAAK,GAAGC,CAAR;MACAN,eAAe,GAAGM,CAAlB;IACD;;IAED,IAAI,CAACD,KAAL,EAAY;MACVL,eAAe,GAAG,IAAlB;IACD,CArB8C,CAqB7C;;;IAGF,IAAII,aAAa,KAAKlB,cAAc,CAACM,OAArC,EAA8C;MAC5C,IAAI,CAACL,iBAAiB,CAACK,OAAvB,EAAgC;QAC9BD,gBAAgB;MACjB;IACF,CAJD,MAIO;MACL;MACA;MACA;MACA;MACAL,cAAc,CAACM,OAAf,GAAyBY,aAAzB;MACAd,yBAAyB,CAACE,OAA1B,GAAoCY,aAApC;MACAjB,iBAAiB,CAACK,OAAlB,GAA4B,IAA5B,CAPK,CAO6B;;MAElCM,4BAA4B,CAAC;QAC3BS,IAAI,EAAE,eADqB;QAE3B7B,OAAO,EAAE;UACP2B,KAAK,EAAEA;QADA;MAFkB,CAAD,CAA5B;IAMD;EACF,CA5CD,CAP2N,CAmDxN;;;EAGHT,YAAY,CAACY,aAAb,GAA6BP,eAA7B;EACAL,YAAY,CAACa,YAAb,GAvD2N,CAuD9L;EAC7B;;EAEAR,eAAe;;EAEf,IAAIS,kBAAkB,GAAG,SAASA,kBAAT,GAA8B;IACrDX,cAAc,GAAG,IAAjB;IACAH,YAAY,CAACe,cAAb;IACAf,YAAY,CAACY,aAAb,GAA6B,IAA7B;;IAEA,IAAIR,eAAJ,EAAqB;MACnB;MACA;MACA;MACA;MACA;MACA,MAAMA,eAAN;IACD;EACF,CAbD;;EAeA,OAAOU,kBAAP;AACD;;AAED,IAAIE,gBAAgB,GAAG,SAASA,gBAAT,GAA4B;EACjD,OAAO,CAAC,IAAD,EAAO,CAAP,CAAP;AACD,CAFD;;AAIA,eAAe,SAASC,eAAT;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,eAfe,EAeE;AACjBC,IAhBe,EAgBT;EACJ,IAAIA,IAAI,KAAK,KAAK,CAAlB,EAAqB;IACnBA,IAAI,GAAG,EAAP;EACD;;EAED,IAAIC,KAAK,GAAGD,IAAZ;EAAA,IACIE,oBAAoB,GAAGD,KAAK,CAACE,cADjC;EAAA,IAEIA,cAAc,GAAGD,oBAAoB,KAAK,KAAK,CAA9B,GAAkC,UAAUE,IAAV,EAAgB;IACrE,OAAO,qBAAqBA,IAArB,GAA4B,GAAnC;EACD,CAFoB,GAEjBF,oBAJJ;EAAA,IAKIG,gBAAgB,GAAGJ,KAAK,CAACK,UAL7B;EAAA,IAMIA,UAAU,GAAGD,gBAAgB,KAAK,KAAK,CAA1B,GAA8B,iBAA9B,GAAkDA,gBANnE;EAAA,IAOIE,qBAAqB,GAAGN,KAAK,CAACO,eAPlC;EAAA,IAQIA,eAAe,GAAGD,qBAAqB,KAAK,KAAK,CAA/B,GAAmCE,SAAnC,GAA+CF,qBARrE;EAAA,IASIG,qBAAqB,GAAGT,KAAK,CAACtB,wBATlC;EAAA,IAUIA,wBAAwB,GAAG+B,qBAAqB,KAAK,KAAK,CAA/B,GAAmC,IAAnC,GAA0CA,qBAVzE;EAAA,IAWIC,cAAc,GAAGV,KAAK,CAACW,QAX3B;EAAA,IAYIA,QAAQ,GAAGD,cAAc,KAAK,KAAK,CAAxB,GAA4B,OAA5B,GAAsCA,cAZrD;EAAA,IAaIE,aAAa,GAAGZ,KAAK,CAACa,OAb1B;EAAA,IAcIA,OAAO,GAAGD,aAAa,KAAK,KAAK,CAAvB,GAA2B,KAA3B,GAAmCA,aAdjD;EAAA,IAeIE,gBAAgB,GAAGd,KAAK,CAACe,UAf7B;EAAA,IAgBIA,UAAU,GAAGD,gBAAgB,KAAK,KAAK,CAA1B,GAA8B,KAA9B,GAAsCA,gBAhBvD;EAAA,IAiBIE,aAAa,GAAGhB,KAAK,CAACiB,OAjB1B;EAAA,IAkBIA,OAAO,GAAGD,aAAa,KAAK,KAAK,CAAvB,GAA2BnE,iBAA3B,GAA+CmE,aAlB7D;EAAA,IAmBIE,cAAc,GAAGlF,6BAA6B,CAACgE,KAAD,EAAQ/D,SAAR,CAnBlD;;EAqBA,IAAIkF,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAA7B,EAA2C;IACzC,IAAId,eAAe,KAAKC,SAAxB,EAAmC;MACjC,MAAM,IAAIc,KAAJ,CAAU,0GAAV,CAAN;IACD;;IAED,IAAIT,OAAJ,EAAa;MACX,MAAM,IAAIS,KAAJ,CAAU,0FAAV,CAAN;IACD;;IAED,IAAIC,yBAAyB,GAAG,6FAA6F,sGAA7F,GAAsM,8FAAtM,GAAuS,6DAAvU;;IAEA,IAAIZ,QAAQ,KAAK,OAAjB,EAA0B;MACxB,MAAM,IAAIW,KAAJ,CAAU,yDAAyDC,yBAAnE,CAAN;IACD;EACF;;EAED,IAAIC,OAAO,GAAGP,OAAd;EACA,OAAO,SAASQ,eAAT,CAAyBC,gBAAzB,EAA2C;IAChD,IAAIP,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,CAAC5E,kBAAkB,CAACiF,gBAAD,CAAhE,EAAoF;MAClF,MAAM,IAAIJ,KAAJ,CAAU,4DAA4DjB,UAAU,GAAG,qBAAb,GAAqCrD,kBAAkB,CAAC0E,gBAAD,CAAnH,CAAV,CAAN;IACD;;IAED,IAAIC,oBAAoB,GAAGD,gBAAgB,CAACE,WAAjB,IAAgCF,gBAAgB,CAACvB,IAAjD,IAAyD,WAApF;IACA,IAAIyB,WAAW,GAAG1B,cAAc,CAACyB,oBAAD,CAAhC;;IAEA,IAAIE,sBAAsB,GAAG9F,QAAQ,CAAC,EAAD,EAAKmF,cAAL,EAAqB;MACxDhB,cAAc,EAAEA,cADwC;MAExDG,UAAU,EAAEA,UAF4C;MAGxDE,eAAe,EAAEA,eAHuC;MAIxD7B,wBAAwB,EAAEA,wBAJ8B;MAKxDiC,QAAQ,EAAEA,QAL8C;MAMxDiB,WAAW,EAAEA,WAN2C;MAOxDD,oBAAoB,EAAEA,oBAPkC;MAQxDD,gBAAgB,EAAEA;IARsC,CAArB,CAArC;;IAWA,IAAII,IAAI,GAAGZ,cAAc,CAACY,IAA1B;;IAEA,SAASC,mBAAT,CAA6BpD,KAA7B,EAAoC;MAClC,OAAOmB,eAAe,CAACnB,KAAK,CAACqD,QAAP,EAAiBH,sBAAjB,CAAtB;IACD,CAvB+C,CAuB9C;IACF;IACA;;;IAGA,IAAII,eAAe,GAAGH,IAAI,GAAGxF,OAAH,GAAa,UAAU4F,QAAV,EAAoB;MACzD,OAAOA,QAAQ,EAAf;IACD,CAFD;;IAIA,SAASC,eAAT,CAAyBC,KAAzB,EAAgC;MAC9B,IAAIC,QAAQ,GAAG/F,OAAO,CAAC,YAAY;QACjC;QACA;QACA;QACA,IAAIgG,sBAAsB,GAAGF,KAAK,CAACE,sBAAnC;QAAA,IACIlE,YAAY,GAAGpC,6BAA6B,CAACoG,KAAD,EAAQlG,UAAR,CADhD;;QAGA,OAAO,CAACkG,KAAK,CAACnB,OAAP,EAAgBqB,sBAAhB,EAAwClE,YAAxC,CAAP;MACD,CARqB,EAQnB,CAACgE,KAAD,CARmB,CAAtB;MAAA,IASIG,YAAY,GAAGF,QAAQ,CAAC,CAAD,CAT3B;MAAA,IAUIC,sBAAsB,GAAGD,QAAQ,CAAC,CAAD,CAVrC;MAAA,IAWIjE,YAAY,GAAGiE,QAAQ,CAAC,CAAD,CAX3B;;MAaA,IAAIG,YAAY,GAAGlG,OAAO,CAAC,YAAY;QACrC;QACA;QACA,OAAOiG,YAAY,IAAIA,YAAY,CAACE,QAA7B,IAAyC/F,iBAAiB,EAAE,aAAaN,KAAK,CAACsG,aAAN,CAAoBH,YAAY,CAACE,QAAjC,EAA2C,IAA3C,CAAf,CAA1D,GAA6HF,YAA7H,GAA4If,OAAnJ;MACD,CAJyB,EAIvB,CAACe,YAAD,EAAef,OAAf,CAJuB,CAA1B,CAd8B,CAkBD;;MAE7B,IAAImB,YAAY,GAAGtG,UAAU,CAACmG,YAAD,CAA7B,CApB8B,CAoBe;MAC7C;MACA;;MAEA,IAAII,qBAAqB,GAAGC,OAAO,CAACT,KAAK,CAACzD,KAAP,CAAP,IAAwBkE,OAAO,CAACT,KAAK,CAACzD,KAAN,CAAYQ,QAAb,CAA/B,IAAyD0D,OAAO,CAACT,KAAK,CAACzD,KAAN,CAAYqD,QAAb,CAA5F;MACA,IAAIc,uBAAuB,GAAGD,OAAO,CAACF,YAAD,CAAP,IAAyBE,OAAO,CAACF,YAAY,CAAChE,KAAd,CAA9D;;MAEA,IAAIwC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,CAACuB,qBAA1C,IAAmE,CAACE,uBAAxE,EAAiG;QAC/F,MAAM,IAAIxB,KAAJ,CAAU,iDAAiD,OAAOM,WAAP,GAAqB,sDAAtE,IAAgI,8EAAhI,IAAkN,+BAA+BA,WAA/B,GAA6C,sBAA/P,CAAV,CAAN;MACD,CA7B6B,CA6B5B;;;MAGF,IAAIjD,KAAK,GAAGiE,qBAAqB,GAAGR,KAAK,CAACzD,KAAT,GAAiBgE,YAAY,CAAChE,KAA/D;MACA,IAAIE,kBAAkB,GAAGvC,OAAO,CAAC,YAAY;QAC3C;QACA;QACA,OAAOyF,mBAAmB,CAACpD,KAAD,CAA1B;MACD,CAJ+B,EAI7B,CAACA,KAAD,CAJ6B,CAAhC;;MAMA,IAAIoE,SAAS,GAAGzG,OAAO,CAAC,YAAY;QAClC,IAAI,CAACoC,wBAAL,EAA+B,OAAO3B,qBAAP,CADG,CAC2B;QAC7D;QAEA;QACA;;QACA,IAAI6B,YAAY,GAAGjC,kBAAkB,CAACgC,KAAD,EAAQiE,qBAAqB,GAAG,IAAH,GAAUD,YAAY,CAAC/D,YAApD,CAArC,CANkC,CAMsE;QACxG;QACA;QACA;QAEA;QACA;QACA;QACA;;QACA,IAAIL,gBAAgB,GAAGK,YAAY,CAACL,gBAAb,CAA8ByE,IAA9B,CAAmCpE,YAAnC,CAAvB;QACA,OAAO,CAACA,YAAD,EAAeL,gBAAf,CAAP;MACD,CAjBsB,EAiBpB,CAACI,KAAD,EAAQiE,qBAAR,EAA+BD,YAA/B,CAjBoB,CAAvB;MAAA,IAkBI/D,YAAY,GAAGmE,SAAS,CAAC,CAAD,CAlB5B;MAAA,IAmBIxE,gBAAgB,GAAGwE,SAAS,CAAC,CAAD,CAnBhC,CAvC8B,CA0DO;MACrC;;;MAGA,IAAIE,sBAAsB,GAAG3G,OAAO,CAAC,YAAY;QAC/C,IAAIsG,qBAAJ,EAA2B;UACzB;UACA;UACA;UACA,OAAOD,YAAP;QACD,CAN8C,CAM7C;QACF;;;QAGA,OAAO5G,QAAQ,CAAC,EAAD,EAAK4G,YAAL,EAAmB;UAChC/D,YAAY,EAAEA;QADkB,CAAnB,CAAf;MAGD,CAbmC,EAajC,CAACgE,qBAAD,EAAwBD,YAAxB,EAAsC/D,YAAtC,CAbiC,CAApC,CA9D8B,CA2E2B;MACzD;;MAEA,IAAIsE,WAAW,GAAG1G,UAAU,CAACc,wBAAD,EAA2BR,WAA3B,EAAwC8C,gBAAxC,CAA5B;MAAA,IACIuD,YAAY,GAAGD,WAAW,CAAC,CAAD,CAD9B;MAAA,IAEIE,yBAAyB,GAAGD,YAAY,CAAC,CAAD,CAF5C;MAAA,IAGIrE,4BAA4B,GAAGoE,WAAW,CAAC,CAAD,CAH9C,CA9E8B,CAiFqB;;;MAGnD,IAAIE,yBAAyB,IAAIA,yBAAyB,CAAC/D,KAA3D,EAAkE;QAChE,MAAM+D,yBAAyB,CAAC/D,KAAhC;MACD,CAtF6B,CAsF5B;;;MAGF,IAAInB,cAAc,GAAG3B,MAAM,EAA3B;MACA,IAAI0B,gBAAgB,GAAG1B,MAAM,CAAC6B,YAAD,CAA7B;MACA,IAAIE,yBAAyB,GAAG/B,MAAM,EAAtC;MACA,IAAI4B,iBAAiB,GAAG5B,MAAM,CAAC,KAAD,CAA9B;MACA,IAAI8B,gBAAgB,GAAG4D,eAAe,CAAC,YAAY;QACjD;QACA;QACA;QACA;QACA;QACA;QACA,IAAI3D,yBAAyB,CAACE,OAA1B,IAAqCJ,YAAY,KAAKH,gBAAgB,CAACO,OAA3E,EAAoF;UAClF,OAAOF,yBAAyB,CAACE,OAAjC;QACD,CATgD,CAS/C;QACF;QACA;QACA;;;QAGA,OAAOK,kBAAkB,CAACF,KAAK,CAACQ,QAAN,EAAD,EAAmBf,YAAnB,CAAzB;MACD,CAhBqC,EAgBnC,CAACO,KAAD,EAAQyE,yBAAR,EAAmChF,YAAnC,CAhBmC,CAAtC,CA7F8B,CA6GwB;MACtD;MACA;;MAEAT,iCAAiC,CAACK,mBAAD,EAAsB,CAACC,gBAAD,EAAmBC,cAAnB,EAAmCC,iBAAnC,EAAsDC,YAAtD,EAAoEC,gBAApE,EAAsFC,yBAAtF,EAAiHC,gBAAjH,CAAtB,CAAjC,CAjH8B,CAiH8J;;MAE5LZ,iCAAiC,CAACc,gBAAD,EAAmB,CAACC,wBAAD,EAA2BC,KAA3B,EAAkCC,YAAlC,EAAgDC,kBAAhD,EAAoEZ,gBAApE,EAAsFC,cAAtF,EAAsGC,iBAAtG,EAAyHG,yBAAzH,EAAoJC,gBAApJ,EAAsKO,4BAAtK,CAAnB,EAAwN,CAACH,KAAD,EAAQC,YAAR,EAAsBC,kBAAtB,CAAxN,CAAjC,CAnH8B,CAmHuQ;MACrS;;MAEA,IAAIwE,wBAAwB,GAAG/G,OAAO,CAAC,YAAY;QACjD,OAAO,aAAaF,KAAK,CAACsG,aAAN,CAAoBhB,gBAApB,EAAsC3F,QAAQ,CAAC,EAAD,EAAKsC,gBAAL,EAAuB;UACvFiF,GAAG,EAAEhB;QADkF,CAAvB,CAA9C,CAApB;MAGD,CAJqC,EAInC,CAACA,sBAAD,EAAyBZ,gBAAzB,EAA2CrD,gBAA3C,CAJmC,CAAtC,CAtH8B,CA0HoC;MAClE;;MAEA,IAAIkF,aAAa,GAAGjH,OAAO,CAAC,YAAY;QACtC,IAAIoC,wBAAJ,EAA8B;UAC5B;UACA;UACA;UACA,OAAO,aAAatC,KAAK,CAACsG,aAAN,CAAoBF,YAAY,CAACgB,QAAjC,EAA2C;YAC7DC,KAAK,EAAER;UADsD,CAA3C,EAEjBI,wBAFiB,CAApB;QAGD;;QAED,OAAOA,wBAAP;MACD,CAX0B,EAWxB,CAACb,YAAD,EAAea,wBAAf,EAAyCJ,sBAAzC,CAXwB,CAA3B;MAYA,OAAOM,aAAP;IACD,CA1K+C,CA0K9C;;;IAGF,IAAIG,OAAO,GAAG5B,IAAI,GAAG1F,KAAK,CAACuH,IAAN,CAAWxB,eAAX,CAAH,GAAiCA,eAAnD;IACAuB,OAAO,CAAChC,gBAAR,GAA2BA,gBAA3B;IACAgC,OAAO,CAAC9B,WAAR,GAAsBO,eAAe,CAACP,WAAhB,GAA8BA,WAApD;;IAEA,IAAIb,UAAJ,EAAgB;MACd,IAAI6C,SAAS,GAAGxH,KAAK,CAAC2E,UAAN,CAAiB,SAAS8C,iBAAT,CAA2BzB,KAA3B,EAAkCkB,GAAlC,EAAuC;QACtE,OAAO,aAAalH,KAAK,CAACsG,aAAN,CAAoBgB,OAApB,EAA6B3H,QAAQ,CAAC,EAAD,EAAKqG,KAAL,EAAY;UACnEE,sBAAsB,EAAEgB;QAD2C,CAAZ,CAArC,CAApB;MAGD,CAJe,CAAhB;MAKAM,SAAS,CAAChC,WAAV,GAAwBA,WAAxB;MACAgC,SAAS,CAAClC,gBAAV,GAA6BA,gBAA7B;MACA,OAAOvF,YAAY,CAACyH,SAAD,EAAYlC,gBAAZ,CAAnB;IACD;;IAED,OAAOvF,YAAY,CAACuH,OAAD,EAAUhC,gBAAV,CAAnB;EACD,CA7LD;AA8LD"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/890816d99abb084e2ae8b2fdc5d71508.json b/node_modules/.cache/babel-loader/890816d99abb084e2ae8b2fdc5d71508.json new file mode 100644 index 00000000..a92753d8 --- /dev/null +++ b/node_modules/.cache/babel-loader/890816d99abb084e2ae8b2fdc5d71508.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
    \r\n * {value}\r\n * \r\n *
    \r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();","map":{"version":3,"names":["ReactReduxContext","useStore","useDefaultStore","createStoreHook","createDispatchHook","context","useDispatch","store","dispatch"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/hooks/useDispatch.js"],"sourcesContent":["import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
    \r\n * {value}\r\n * \r\n *
    \r\n * )\r\n * }\r\n */\n\nexport var useDispatch = /*#__PURE__*/createDispatchHook();"],"mappings":"AAAA,SAASA,iBAAT,QAAkC,uBAAlC;AACA,SAASC,QAAQ,IAAIC,eAArB,EAAsCC,eAAtC,QAA6D,YAA7D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,kBAAT,CAA4BC,OAA5B,EAAqC;EAC1C,IAAIA,OAAO,KAAK,KAAK,CAArB,EAAwB;IACtBA,OAAO,GAAGL,iBAAV;EACD;;EAED,IAAIC,QAAQ,GAAGI,OAAO,KAAKL,iBAAZ,GAAgCE,eAAhC,GAAkDC,eAAe,CAACE,OAAD,CAAhF;EACA,OAAO,SAASC,WAAT,GAAuB;IAC5B,IAAIC,KAAK,GAAGN,QAAQ,EAApB;IACA,OAAOM,KAAK,CAACC,QAAb;EACD,CAHD;AAID;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAIF,WAAW,GAAG,aAAaF,kBAAkB,EAAjD"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/8c70b6035e08cdd007193186e7f76f2a.json b/node_modules/.cache/babel-loader/8c70b6035e08cdd007193186e7f76f2a.json new file mode 100644 index 00000000..c2c99f1f --- /dev/null +++ b/node_modules/.cache/babel-loader/8c70b6035e08cdd007193186e7f76f2a.json @@ -0,0 +1 @@ +{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();","map":{"version":3,"names":["_extends","_objectWithoutPropertiesLoose","_excluded","connectAdvanced","shallowEqual","defaultMapDispatchToPropsFactories","defaultMapStateToPropsFactories","defaultMergePropsFactories","defaultSelectorFactory","match","arg","factories","name","i","length","result","dispatch","options","Error","wrappedComponentName","strictEqual","a","b","createConnect","_temp","_ref","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","_ref$selectorFactory","selectorFactory","connect","mapStateToProps","mapDispatchToProps","mergeProps","_ref2","_ref3","_ref3$pure","pure","_ref3$areStatesEqual","areStatesEqual","_ref3$areOwnPropsEqua","areOwnPropsEqual","_ref3$areStatePropsEq","areStatePropsEqual","_ref3$areMergedPropsE","areMergedPropsEqual","extraOptions","initMapStateToProps","initMapDispatchToProps","initMergeProps","methodName","getDisplayName","shouldHandleStateChanges","Boolean"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/connect/connect.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _excluded = [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"];\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\r\n connect is a facade over connectAdvanced. It turns its args into a compatible\r\n selectorFactory, which has the signature:\r\n\r\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\r\n \r\n connect passes its args to connectAdvanced as options, which will in turn pass them to\r\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\r\n\r\n selectorFactory returns a final props selector from its mapStateToProps,\r\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\r\n mergePropsFactories, and pure args.\r\n\r\n The resulting final props selector is called by the Connect component instance whenever\r\n it receives new props or store state.\r\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default /*#__PURE__*/createConnect();"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/8d3f444fe908efa24f6c391c64466fd1.json b/node_modules/.cache/babel-loader/8d3f444fe908efa24f6c391c64466fd1.json new file mode 100644 index 00000000..5a677dec --- /dev/null +++ b/node_modules/.cache/babel-loader/8d3f444fe908efa24f6c391c64466fd1.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign2/index.js\",\n _s = $RefreshSig$();\n\nimport React, { useState } from \"react\";\nimport IconText from \"../IconText\";\nimport ButtonDivTag from \"../ButtonDivTag\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign2 = _ref => {\n _s();\n\n let {\n buttons\n } = _ref;\n const [dokmeha, updateDokmeha] = useState(buttons);\n\n function handleOnDragEnd(result) {\n if (!result.destination) return;\n const items = Array.from(dokmeha);\n const [reorderedItem] = items.splice(result.source.index, 1);\n items.splice(result.destination.index, 0, reorderedItem);\n updateDokmeha(items);\n }\n\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[400px] overflow-y-auto scrollYDesign w-fit flex flex-col bg-white shadow-sm rounded mr-20 my-20 p-4\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1 h-5 bg-success ml-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 24,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(IconText, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 30,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(DragDropContext, {\n onDragEnd: handleOnDragEnd,\n children: /*#__PURE__*/_jsxDEV(Droppable, {\n droppableId: \"container\",\n children: provided => /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col gap-y-4 justify-around mt-4\",\n ...provided.droppableProps,\n ref: provided.innerRef,\n id: \"container\",\n children: [dokmeha.map((btn, index) => /*#__PURE__*/_jsxDEV(Draggable, {\n draggableId: \"e\" + btn.id,\n index: index,\n children: provided => /*#__PURE__*/_jsxDEV(\"div\", {\n className: `w-1/2 px-1`,\n children: /*#__PURE__*/_jsxDEV(ButtonDivTag, {\n props: {\n ref: provided.innerRef,\n ...provided.draggableProps,\n ...provided.dragHandleProps\n },\n className: `${btn.className} w-full h-full text-white py-3 border-none text-xs rounded-sm`,\n style: provided.draggableProps.style,\n text: btn.name\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 21\n }, this)\n }, btn.id, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 17\n }, this)), provided.placeholder]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 34,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 23,\n columnNumber: 5\n }, this);\n};\n\n_s(CardDesign2, \"KEE5snQsBqXc0Kww9bnRe6PZ6fQ=\");\n\n_c = CardDesign2;\nexport default CardDesign2;\nCardDesign2.defaultProps = {\n buttons: [{\n id: 1,\n name: \"پنجره\",\n className: \"bg-[#FFF7BF]\"\n }, {\n id: 2,\n name: \"کمک اولیه\",\n className: \"bg-[#DBFDFF]\"\n }, {\n id: 3,\n name: \"درب خروجی\",\n className: \"bg-[#828282]\"\n }, {\n id: 4,\n name: \"سیستم سرمایش\",\n className: \"bg-[#F6FFEB]\"\n }, {\n id: 5,\n name: \"آب سردکن\",\n className: \"bg-[#F0FFB4]\"\n }, {\n id: 6,\n name: \"سرویس بهداشتی\",\n className: \"bg-[#FFDD8E]\"\n }, {\n id: 7,\n name: \"حمام\",\n className: \"bg-[#EEEFFF]\"\n }, {\n id: 8,\n name: \"تخت\",\n className: \"bg-[#FFF5EE]\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign2\");","map":{"version":3,"names":["React","useState","IconText","ButtonDivTag","TitleSubtitle","DragDropContext","Droppable","Draggable","CardDesign2","buttons","dokmeha","updateDokmeha","handleOnDragEnd","result","destination","items","Array","from","reorderedItem","splice","source","index","provided","droppableProps","innerRef","map","btn","id","ref","draggableProps","dragHandleProps","className","style","name","placeholder","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign2/index.js"],"sourcesContent":["import React, { useState } from \"react\";\n\nimport IconText from \"../IconText\";\nimport ButtonDivTag from \"../ButtonDivTag\";\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\n\nconst CardDesign2 = ({ buttons }) => {\n const [dokmeha, updateDokmeha] = useState(buttons);\n\n function handleOnDragEnd(result) {\n if (!result.destination) return;\n\n const items = Array.from(dokmeha);\n const [reorderedItem] = items.splice(result.source.index, 1);\n items.splice(result.destination.index, 0, reorderedItem);\n\n updateDokmeha(items);\n }\n\n return (\n
    \n \n \n \n \n {(provided) => (\n \n {dokmeha.map((btn, index) => (\n \n {(provided) => (\n
    \n \n
    \n )}\n \n ))}\n {provided.placeholder}\n
    \n )}\n \n \n \n );\n};\n\nexport default CardDesign2;\n\nCardDesign2.defaultProps = {\n buttons: [\n {\n id: 1,\n name: \"پنجره\",\n className: \"bg-[#FFF7BF]\",\n },\n {\n id: 2,\n name: \"کمک اولیه\",\n className: \"bg-[#DBFDFF]\",\n },\n {\n id: 3,\n name: \"درب خروجی\",\n className: \"bg-[#828282]\",\n },\n {\n id: 4,\n name: \"سیستم سرمایش\",\n className: \"bg-[#F6FFEB]\",\n },\n {\n id: 5,\n name: \"آب سردکن\",\n className: \"bg-[#F0FFB4]\",\n },\n {\n id: 6,\n name: \"سرویس بهداشتی\",\n className: \"bg-[#FFDD8E]\",\n },\n {\n id: 7,\n name: \"حمام\",\n className: \"bg-[#EEEFFF]\",\n },\n {\n id: 8,\n name: \"تخت\",\n className: \"bg-[#FFF5EE]\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/8f3313673d14c3cba739045e6882d096.json b/node_modules/.cache/babel-loader/8f3313673d14c3cba739045e6882d096.json new file mode 100644 index 00000000..1f8f4308 --- /dev/null +++ b/node_modules/.cache/babel-loader/8f3313673d14c3cba739045e6882d096.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"hr\", {\n className: \"border border-gray-200 w-full\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/91de2fa5b5df89d3143406a6dc7abf0e.json b/node_modules/.cache/babel-loader/91de2fa5b5df89d3143406a6dc7abf0e.json new file mode 100644 index 00000000..338d398f --- /dev/null +++ b/node_modules/.cache/babel-loader/91de2fa5b5df89d3143406a6dc7abf0e.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit align-end\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/92365551ffc51ca524699b8150331248.json b/node_modules/.cache/babel-loader/92365551ffc51ca524699b8150331248.json new file mode 100644 index 00000000..47e038f3 --- /dev/null +++ b/node_modules/.cache/babel-loader/92365551ffc51ca524699b8150331248.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n title: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/9511944a3a83b9fc72e2c5c6a9742c05.json b/node_modules/.cache/babel-loader/9511944a3a83b9fc72e2c5c6a9742c05.json new file mode 100644 index 00000000..49211f0e --- /dev/null +++ b/node_modules/.cache/babel-loader/9511944a3a83b9fc72e2c5c6a9742c05.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/IconText/index.js\";\nimport React from \"react\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst IconText = _ref => {\n let {\n contentClassname,\n icon\n } = _ref;\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-start mt-2\",\n children: [/*#__PURE__*/_jsxDEV(\"img\", {\n src: icon,\n alt: \"info\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 6,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: `${contentClassname} text-xs text-justify mr-3 leading-5`,\n children: \"\\u0627\\u0628\\u062A\\u062F\\u0627 \\u0628\\u0627\\u06CC\\u062F \\u062F\\u06CC\\u0648\\u0627\\u0631 \\u0647\\u0627 \\u0628\\u0647 \\u0635\\u0648\\u0631\\u062A \\u062D\\u062F\\u0648\\u062F\\u06CC \\u062A\\u0631\\u0633\\u06CC\\u0645 \\u0634\\u0648\\u0646\\u062F \\u0648 \\u062A\\u0645\\u0627\\u0645\\u06CC \\u0646\\u0642\\u0627\\u0637 \\u0628\\u0647 \\u06CC\\u06AF \\u062F\\u06CC\\u06AF\\u0631 \\u0648\\u0635\\u0644 \\u0634\\u0648\\u0646\\u062F \\u062A\\u0627 \\u0637\\u0631\\u062D \\u0628\\u0631\\u0627\\u06CC \\u062C\\u0627\\u06CC\\u06AF\\u0630\\u0627\\u0631\\u06CC \\u0648\\u0633\\u0627\\u06CC\\u0644 \\u0622\\u0645\\u0627\\u062F\\u0647 \\u0634\\u0648\\u062F\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 7,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 5,\n columnNumber: 5\n }, this);\n};\n\n_c = IconText;\nexport default IconText;\nIconText.defaultProps = {\n icon: \"images/IconTextinfo-icon.svg\",\n contentClassname: \"text-primary\"\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"IconText\");","map":{"version":3,"names":["React","IconText","contentClassname","icon","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/IconText/index.js"],"sourcesContent":["import React from \"react\";\n\nconst IconText = ({ contentClassname, icon }) => {\n return (\n
    \n \"info\"\n

    \n ابتدا باید دیوار ها به صورت حدودی ترسیم شوند و تمامی نقاط به یگ دیگر وصل\n شوند تا طرح برای جایگذاری وسایل آماده شود\n

    \n
    \n );\n};\n\nexport default IconText;\n\nIconText.defaultProps = {\n icon: \"images/IconTextinfo-icon.svg\",\n contentClassname: \"text-primary\",\n};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAEA,MAAMC,QAAQ,GAAG,QAAgC;EAAA,IAA/B;IAAEC,gBAAF;IAAoBC;EAApB,CAA+B;EAC/C,oBACE;IAAK,SAAS,EAAC,gCAAf;IAAA,wBACE;MAAK,GAAG,EAAEA,IAAV;MAAgB,GAAG,EAAC;IAApB;MAAA;MAAA;MAAA;IAAA,QADF,eAEE;MAAG,SAAS,EAAG,GAAED,gBAAiB,sCAAlC;MAAA;IAAA;MAAA;MAAA;MAAA;IAAA,QAFF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AASD,CAVD;;KAAMD,Q;AAYN,eAAeA,QAAf;AAEAA,QAAQ,CAACG,YAAT,GAAwB;EACtBD,IAAI,EAAE,8BADgB;EAEtBD,gBAAgB,EAAE;AAFI,CAAxB"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/95fa950b1cf50793c330f68eb5ece77e.json b/node_modules/.cache/babel-loader/95fa950b1cf50793c330f68eb5ece77e.json new file mode 100644 index 00000000..534581ed --- /dev/null +++ b/node_modules/.cache/babel-loader/95fa950b1cf50793c330f68eb5ece77e.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[575px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n {/*
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/979085b693b4559b7a42225153e79119.json b/node_modules/.cache/babel-loader/979085b693b4559b7a42225153e79119.json new file mode 100644 index 00000000..5e55b583 --- /dev/null +++ b/node_modules/.cache/babel-loader/979085b693b4559b7a42225153e79119.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
    {store.getState()}
    \r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","map":{"version":3,"names":["useContext","ReactReduxContext","useReduxContext","contextValue","process","env","NODE_ENV","Error"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/hooks/useReduxContext.js"],"sourcesContent":["import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const { store } = useReduxContext()\r\n * return
    {store.getState()}
    \r\n * }\r\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,iBAAT,QAAkC,uBAAlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,eAAT,GAA2B;EAChC,IAAIC,YAAY,GAAGH,UAAU,CAACC,iBAAD,CAA7B;;EAEA,IAAIG,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,YAAzB,IAAyC,CAACH,YAA9C,EAA4D;IAC1D,MAAM,IAAII,KAAJ,CAAU,kGAAV,CAAN;EACD;;EAED,OAAOJ,YAAP;AACD"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/98ecd3652c84f4f723ce9427e09597f6.json b/node_modules/.cache/babel-loader/98ecd3652c84f4f723ce9427e09597f6.json new file mode 100644 index 00000000..b77bc1f4 --- /dev/null +++ b/node_modules/.cache/babel-loader/98ecd3652c84f4f723ce9427e09597f6.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"hr\", {\n className: \"\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":";;;AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAT,QAAwB,iBAAxB;AAEA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,OAAOC,KAAP,MAAkB,wBAAlB;AACA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,OAAOC,YAAP,MAAyB,iBAAzB;AACA,OAAOC,MAAP,MAAmB,WAAnB;;;AAEA,MAAMC,SAAS,GAAG,QAAe;EAAA;;EAAA,IAAd;IAAEC;EAAF,CAAc;EAC/B,MAAM;IAAEC,QAAF;IAAYC;EAAZ,IAA0BT,OAAO,EAAvC;EAEA,oBACE;IAAK,SAAS,EAAC,+GAAf;IAAA,wBACE;MAAK,SAAS,EAAC,oGAAf;MAAA,wBACE;QAAK,SAAS,EAAC,6CAAf;QAAA,wBACE,QAAC,KAAD;UACE,QAAQ,EAAEQ,QAAQ,CAAC,WAAD,CADpB;UAEE,KAAK,EAAC,qBAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QADF,eAQE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,UAAD,CADpB;UAEE,KAAK,EAAC,qEAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QARF,eAeE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,WAAD,CADpB;UAEE,KAAK,EAAC,yDAFR;UAGE,IAAI,EAAC,QAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QAfF,eAsBE,QAAC,eAAD;UAAA;UAAA;UAAA;QAAA,QAtBF,eAuBE,QAAC,YAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,QAAD,CADpB;UAEE,SAAS,EAAC,wCAFZ,CAGE;UAHF;UAIE,MAAM,EAAE,CAAC,MAAD,EAAS,KAAT;QAJV;UAAA;UAAA;UAAA;QAAA,QAvBF;MAAA;QAAA;QAAA;QAAA;MAAA,QADF,eA+BE;QAAK,SAAS,EAAC,6CAAf;QAAA,wBACE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,cAAD,CADpB;UAEE,KAAK,EAAC,yDAFR;UAGE,IAAI,EAAC,QAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QADF,eAQE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,KAAD,CADpB;UAEE,KAAK,EAAC,oBAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QARF,eAeE,QAAC,eAAD;UAAiB,OAAO,EAAED;QAA1B;UAAA;UAAA;UAAA;QAAA,QAfF,eAgBE,QAAC,KAAD;UACE,QAAQ,EAAEC,QAAQ,CAAC,SAAD,CADpB;UAEE,KAAK,EAAC,qGAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QAhBF,eAuBE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,QAAD,CADpB;UAEE,KAAK,EAAC,iCAFR;UAGE,IAAI,EAAC,QAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QAvBF;MAAA;QAAA;QAAA;QAAA;MAAA,QA/BF,eA8DE;QAAK,SAAS,EAAC,kEAAf;QAAA,uBACE,QAAC,eAAD;UAAA;UAAA;UAAA;QAAA;MADF;QAAA;QAAA;QAAA;MAAA,QA9DF;IAAA;MAAA;MAAA;MAAA;IAAA,QADF,eAmEE;MAAI,SAAS,EAAC;IAAd;MAAA;MAAA;MAAA;IAAA,QAnEF,eAoEE,QAAC,MAAD;MACE,SAAS,EACP,kEAFJ;MAIE,KAAK,EAAE;IAJT;MAAA;MAAA;MAAA;IAAA,QApEF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AA6ED,CAhFD;;GAAMF,S;UAC4BN,O;;;KAD5BM,S;AAkFN,eAAeA,SAAf;AAEAA,SAAS,CAACI,YAAV,GAAyB;EACvBH,KAAK,EAAE,CACL;IACEI,KAAK,EAAE;EADT,CADK,EAIL;IACEA,KAAK,EAAE;EADT,CAJK,EAOL;IACEA,KAAK,EAAE;EADT,CAPK;AADgB,CAAzB"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/9a09593e5db7434309fb277601bce468.json b/node_modules/.cache/babel-loader/9a09593e5db7434309fb277601bce468.json new file mode 100644 index 00000000..0a92166f --- /dev/null +++ b/node_modules/.cache/babel-loader/9a09593e5db7434309fb277601bce468.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign2 from \"./components/CardDesign2\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(CardDesign2, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign2","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign2 from \"./components/CardDesign2\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n {/* */}\n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBAIE,QAAC,WAAD;QAAA;QAAA;QAAA;MAAA;IAJF;EAJF;AAWD;;KAZQA,G;AAcT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/9ca69c65075f8bcd678008d2f53cc4fb.json b/node_modules/.cache/babel-loader/9ca69c65075f8bcd678008d2f53cc4fb.json new file mode 100644 index 00000000..f41b91db --- /dev/null +++ b/node_modules/.cache/babel-loader/9ca69c65075f8bcd678008d2f53cc4fb.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/9da8b884f8681d1ef92bbd206dbed0c0.json b/node_modules/.cache/babel-loader/9da8b884f8681d1ef92bbd206dbed0c0.json new file mode 100644 index 00000000..597998a6 --- /dev/null +++ b/node_modules/.cache/babel-loader/9da8b884f8681d1ef92bbd206dbed0c0.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport SearchBox from \"./SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow-sm border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1.5 h-7 bg-primary ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nimport SearchBox from \"./SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,OAAOC,SAAP,MAAsB,aAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,8HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/a0a8d6d043ae9432e1517df99eca55e4.json b/node_modules/.cache/babel-loader/a0a8d6d043ae9432e1517df99eca55e4.json new file mode 100644 index 00000000..3476502f --- /dev/null +++ b/node_modules/.cache/babel-loader/a0a8d6d043ae9432e1517df99eca55e4.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-5 py-2\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/a3ad54946d446650408ebe520e86f0a8.json b/node_modules/.cache/babel-loader/a3ad54946d446650408ebe520e86f0a8.json new file mode 100644 index 00000000..254e79ab --- /dev/null +++ b/node_modules/.cache/babel-loader/a3ad54946d446650408ebe520e86f0a8.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-full justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"hr\", {\n className: \"border border-gray-100 w-full mt-5\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/a7a37f721f67a616dd150aaf479b61b8.json b/node_modules/.cache/babel-loader/a7a37f721f67a616dd150aaf479b61b8.json new file mode 100644 index 00000000..4eb34032 --- /dev/null +++ b/node_modules/.cache/babel-loader/a7a37f721f67a616dd150aaf479b61b8.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport SearchBox from \"../../SearchDesign/SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow-sm border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1.5 h-7 bg-primary ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nimport SearchBox from \"../../SearchDesign/SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,OAAOC,SAAP,MAAsB,8BAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,8HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/a96498053a8e280bdadcda5146dde400.json b/node_modules/.cache/babel-loader/a96498053a8e280bdadcda5146dde400.json new file mode 100644 index 00000000..4d64a177 --- /dev/null +++ b/node_modules/.cache/babel-loader/a96498053a8e280bdadcda5146dde400.json @@ -0,0 +1 @@ +{"ast":null,"code":"import isPlainObject from './isPlainObject';\nimport warning from './warning';\nexport default function verifyPlainObject(value, displayName, methodName) {\n if (!isPlainObject(value)) {\n warning(methodName + \"() in \" + displayName + \" must return a plain object. Instead received \" + value + \".\");\n }\n}","map":{"version":3,"names":["isPlainObject","warning","verifyPlainObject","value","displayName","methodName"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/utils/verifyPlainObject.js"],"sourcesContent":["import isPlainObject from './isPlainObject';\nimport warning from './warning';\nexport default function verifyPlainObject(value, displayName, methodName) {\n if (!isPlainObject(value)) {\n warning(methodName + \"() in \" + displayName + \" must return a plain object. Instead received \" + value + \".\");\n }\n}"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,iBAA1B;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,eAAe,SAASC,iBAAT,CAA2BC,KAA3B,EAAkCC,WAAlC,EAA+CC,UAA/C,EAA2D;EACxE,IAAI,CAACL,aAAa,CAACG,KAAD,CAAlB,EAA2B;IACzBF,OAAO,CAACI,UAAU,GAAG,QAAb,GAAwBD,WAAxB,GAAsC,gDAAtC,GAAyFD,KAAzF,GAAiG,GAAlG,CAAP;EACD;AACF"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/aa155ed376fdc1380550842f544472d2.json b/node_modules/.cache/babel-loader/aa155ed376fdc1380550842f544472d2.json new file mode 100644 index 00000000..82d65868 --- /dev/null +++ b/node_modules/.cache/babel-loader/aa155ed376fdc1380550842f544472d2.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center h-[375px] justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/ad26474db98eeff2d0232216ab8d0cb9.json b/node_modules/.cache/babel-loader/ad26474db98eeff2d0232216ab8d0cb9.json new file mode 100644 index 00000000..f8fea133 --- /dev/null +++ b/node_modules/.cache/babel-loader/ad26474db98eeff2d0232216ab8d0cb9.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/b037789ee8e15a3ac6086cf9aab266b7.json b/node_modules/.cache/babel-loader/b037789ee8e15a3ac6086cf9aab266b7.json new file mode 100644 index 00000000..f8bd2b4f --- /dev/null +++ b/node_modules/.cache/babel-loader/b037789ee8e15a3ac6086cf9aab266b7.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/b219d68526ea38194cfbfbae8f8b135f.json b/node_modules/.cache/babel-loader/b219d68526ea38194cfbfbae8f8b135f.json new file mode 100644 index 00000000..b9b72036 --- /dev/null +++ b/node_modules/.cache/babel-loader/b219d68526ea38194cfbfbae8f8b135f.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-5 py-4 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/b2819bebc1153faacdb33a0067d34127.json b/node_modules/.cache/babel-loader/b2819bebc1153faacdb33a0067d34127.json new file mode 100644 index 00000000..87fe28be --- /dev/null +++ b/node_modules/.cache/babel-loader/b2819bebc1153faacdb33a0067d34127.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
    {store.getState()}
    \r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();","map":{"version":3,"names":["useContext","ReactReduxContext","useReduxContext","useDefaultReduxContext","createStoreHook","context","useStore","_useReduxContext","store"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/hooks/useStore.js"],"sourcesContent":["import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
    {store.getState()}
    \r\n * }\r\n */\n\nexport var useStore = /*#__PURE__*/createStoreHook();"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,iBAAT,QAAkC,uBAAlC;AACA,SAASC,eAAe,IAAIC,sBAA5B,QAA0D,mBAA1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,SAASC,eAAT,CAAyBC,OAAzB,EAAkC;EACvC,IAAIA,OAAO,KAAK,KAAK,CAArB,EAAwB;IACtBA,OAAO,GAAGJ,iBAAV;EACD;;EAED,IAAIC,eAAe,GAAGG,OAAO,KAAKJ,iBAAZ,GAAgCE,sBAAhC,GAAyD,YAAY;IACzF,OAAOH,UAAU,CAACK,OAAD,CAAjB;EACD,CAFD;EAGA,OAAO,SAASC,QAAT,GAAoB;IACzB,IAAIC,gBAAgB,GAAGL,eAAe,EAAtC;IAAA,IACIM,KAAK,GAAGD,gBAAgB,CAACC,KAD7B;;IAGA,OAAOA,KAAP;EACD,CALD;AAMD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAIF,QAAQ,GAAG,aAAaF,eAAe,EAA3C"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/b29c9ea3569ef1e247e57a8c7c511eb2.json b/node_modules/.cache/babel-loader/b29c9ea3569ef1e247e57a8c7c511eb2.json new file mode 100644 index 00000000..9eda5d9d --- /dev/null +++ b/node_modules/.cache/babel-loader/b29c9ea3569ef1e247e57a8c7c511eb2.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/b35bff2095f4fb4e90650d4e6d3d741a.json b/node_modules/.cache/babel-loader/b35bff2095f4fb4e90650d4e6d3d741a.json new file mode 100644 index 00000000..52e6d4e7 --- /dev/null +++ b/node_modules/.cache/babel-loader/b35bff2095f4fb4e90650d4e6d3d741a.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/index.js\";\nimport React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport \"./index.scss\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\nroot.render( /*#__PURE__*/_jsxDEV(React.StrictMode, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 3\n}, this)); // If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\n\nreportWebVitals();","map":{"version":3,"names":["React","ReactDOM","App","reportWebVitals","root","createRoot","document","getElementById","render"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/index.js"],"sourcesContent":["import React from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport \"./index.scss\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nconst root = ReactDOM.createRoot(document.getElementById(\"root\"));\nroot.render(\n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,kBAArB;AACA,OAAO,cAAP;AACA,OAAOC,GAAP,MAAgB,OAAhB;AACA,OAAOC,eAAP,MAA4B,mBAA5B;;AAEA,MAAMC,IAAI,GAAGH,QAAQ,CAACI,UAAT,CAAoBC,QAAQ,CAACC,cAAT,CAAwB,MAAxB,CAApB,CAAb;AACAH,IAAI,CAACI,MAAL,eACE,QAAC,KAAD,CAAO,UAAP;EAAA;EAAA;EAAA;AAAA,QADF,E,CAKA;AACA;AACA;;AACAL,eAAe"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/ba5768abd7a737d2c7efcdc226f162c7.json b/node_modules/.cache/babel-loader/ba5768abd7a737d2c7efcdc226f162c7.json new file mode 100644 index 00000000..c55a841b --- /dev/null +++ b/node_modules/.cache/babel-loader/ba5768abd7a737d2c7efcdc226f162c7.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/bb491d2201aae9cd9e9366ba7a024787.json b/node_modules/.cache/babel-loader/bb491d2201aae9cd9e9366ba7a024787.json new file mode 100644 index 00000000..1d865420 --- /dev/null +++ b/node_modules/.cache/babel-loader/bb491d2201aae9cd9e9366ba7a024787.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
    {counter}
    \r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();","map":{"version":3,"names":["useReducer","useRef","useMemo","useContext","useDebugValue","useReduxContext","useDefaultReduxContext","createSubscription","useIsomorphicLayoutEffect","ReactReduxContext","refEquality","a","b","useSelectorWithStoreAndSubscription","selector","equalityFn","store","contextSub","_useReducer","s","forceRender","subscription","latestSubscriptionCallbackError","latestSelector","latestStoreState","latestSelectedState","storeState","getState","selectedState","current","newSelectedState","undefined","err","message","stack","checkForUpdates","newStoreState","_newSelectedState","onStateChange","trySubscribe","tryUnsubscribe","createSelectorHook","context","useSelector","process","env","NODE_ENV","Error","_useReduxContext"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/hooks/useSelector.js"],"sourcesContent":["import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport { ReactReduxContext } from '../components/Context';\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return createSubscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestStoreState = useRef();\n var latestSelectedState = useRef();\n var storeState = store.getState();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {\n var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references\n\n if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {\n selectedState = newSelectedState;\n } else {\n selectedState = latestSelectedState.current;\n }\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\n\";\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestStoreState.current = storeState;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed\n\n if (newStoreState === latestStoreState.current) {\n return;\n }\n\n var _newSelectedState = latestSelector.current(newStoreState);\n\n if (equalityFn(_newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = _newSelectedState;\n latestStoreState.current = newStoreState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender();\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(\"You must pass a selector to useSelector\");\n }\n\n if (typeof selector !== 'function') {\n throw new Error(\"You must pass a function as a selector to useSelector\");\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(\"You must pass a function as an equality function to useSelector\");\n }\n }\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
    {counter}
    \r\n * }\r\n */\n\nexport var useSelector = /*#__PURE__*/createSelectorHook();"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/bdae91745d9b1d8488f5460ed00643b5.json b/node_modules/.cache/babel-loader/bdae91745d9b1d8488f5460ed00643b5.json new file mode 100644 index 00000000..5305c705 --- /dev/null +++ b/node_modules/.cache/babel-loader/bdae91745d9b1d8488f5460ed00643b5.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-6 py-3 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/c1837319bc7f9a2e074fce0ef66abceb.json b/node_modules/.cache/babel-loader/c1837319bc7f9a2e074fce0ef66abceb.json new file mode 100644 index 00000000..4ae1c374 --- /dev/null +++ b/node_modules/.cache/babel-loader/c1837319bc7f9a2e074fce0ef66abceb.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport SearchBox from \"../SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primary\",\n titleBorderClassName: \"w-1.5 h-7 bg-warning ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nimport SearchBox from \"../SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,OAAOC,SAAP,MAAsB,cAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,2HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,wBAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/c5e1cc5d19522386ba918b861a3a73a0.json b/node_modules/.cache/babel-loader/c5e1cc5d19522386ba918b861a3a73a0.json new file mode 100644 index 00000000..05fa3e3b --- /dev/null +++ b/node_modules/.cache/babel-loader/c5e1cc5d19522386ba918b861a3a73a0.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js\";\nimport React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign1 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit flex flex-col p-4 bg-white shadow-sm rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"طبقه سوم\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1 h-5 bg-warning ml-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(IconText, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign1;\nexport default CardDesign1;\nCardDesign1.defaultProps = {};\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign1\");","map":{"version":3,"names":["React","CustomToast","IconText","TitleSubtitle","CardDesign1","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js"],"sourcesContent":["import React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nconst CardDesign1 = () => {\n return (\n
    \n \n \n \n
    \n );\n};\n\nexport default CardDesign1;\n\nCardDesign1.defaultProps = {};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,OAAOC,aAAP,MAA0B,kBAA1B;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,oDAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,UAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE,QAAC,QAAD;MAAA;MAAA;MAAA;IAAA,QAPF,eAQE,QAAC,WAAD;MAAA;MAAA;MAAA;IAAA,QARF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAYD,CAbD;;KAAMA,W;AAeN,eAAeA,WAAf;AAEAA,WAAW,CAACC,YAAZ,GAA2B,EAA3B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/c642c4bc56eb0b59bafa287d5055f138.json b/node_modules/.cache/babel-loader/c642c4bc56eb0b59bafa287d5055f138.json new file mode 100644 index 00000000..c24089d5 --- /dev/null +++ b/node_modules/.cache/babel-loader/c642c4bc56eb0b59bafa287d5055f138.json @@ -0,0 +1 @@ +{"ast":null,"code":"import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","map":{"version":3,"names":["wrapMapToPropsConstant","wrapMapToPropsFunc","whenMapStateToPropsIsFunction","mapStateToProps","undefined","whenMapStateToPropsIsMissing"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/connect/mapStateToProps.js"],"sourcesContent":["import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];"],"mappings":"AAAA,SAASA,sBAAT,EAAiCC,kBAAjC,QAA2D,kBAA3D;AACA,OAAO,SAASC,6BAAT,CAAuCC,eAAvC,EAAwD;EAC7D,OAAO,OAAOA,eAAP,KAA2B,UAA3B,GAAwCF,kBAAkB,CAACE,eAAD,EAAkB,iBAAlB,CAA1D,GAAiGC,SAAxG;AACD;AACD,OAAO,SAASC,4BAAT,CAAsCF,eAAtC,EAAuD;EAC5D,OAAO,CAACA,eAAD,GAAmBH,sBAAsB,CAAC,YAAY;IAC3D,OAAO,EAAP;EACD,CAF+C,CAAzC,GAEFI,SAFL;AAGD;AACD,eAAe,CAACF,6BAAD,EAAgCG,4BAAhC,CAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/c938f5eec3dbd21d4a623166a02936b7.json b/node_modules/.cache/babel-loader/c938f5eec3dbd21d4a623166a02936b7.json new file mode 100644 index 00000000..70bd6884 --- /dev/null +++ b/node_modules/.cache/babel-loader/c938f5eec3dbd21d4a623166a02936b7.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport SearchBox from \"../SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primary\",\n titleBorderClassName: \"w-1.5 h-7 bg-primary ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nimport SearchBox from \"../SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,OAAOC,SAAP,MAAsB,cAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,2HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,wBAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/ca53aa86775b49564b8c1df7f59583e4.json b/node_modules/.cache/babel-loader/ca53aa86775b49564b8c1df7f59583e4.json new file mode 100644 index 00000000..a4411463 --- /dev/null +++ b/node_modules/.cache/babel-loader/ca53aa86775b49564b8c1df7f59583e4.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/cad8e7aedcda7a77c159b36cda4dd90b.json b/node_modules/.cache/babel-loader/cad8e7aedcda7a77c159b36cda4dd90b.json new file mode 100644 index 00000000..70e2b72a --- /dev/null +++ b/node_modules/.cache/babel-loader/cad8e7aedcda7a77c159b36cda4dd90b.json @@ -0,0 +1 @@ +{"ast":null,"code":"/* eslint-disable import/no-unresolved */\nexport { unstable_batchedUpdates } from 'react-dom';","map":{"version":3,"names":["unstable_batchedUpdates"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/utils/reactBatchedUpdates.js"],"sourcesContent":["/* eslint-disable import/no-unresolved */\nexport { unstable_batchedUpdates } from 'react-dom';"],"mappings":"AAAA;AACA,SAASA,uBAAT,QAAwC,WAAxC"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/cb407c990f307b3325889a50378c3d06.json b/node_modules/.cache/babel-loader/cb407c990f307b3325889a50378c3d06.json new file mode 100644 index 00000000..33761144 --- /dev/null +++ b/node_modules/.cache/babel-loader/cb407c990f307b3325889a50378c3d06.json @@ -0,0 +1 @@ +{"ast":null,"code":"/**\r\n * Prints a warning in the console if it exists.\r\n *\r\n * @param {String} message The warning message.\r\n * @returns {void}\r\n */\nexport default function warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n\n}","map":{"version":3,"names":["warning","message","console","error","Error","e"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/utils/warning.js"],"sourcesContent":["/**\r\n * Prints a warning in the console if it exists.\r\n *\r\n * @param {String} message The warning message.\r\n * @returns {void}\r\n */\nexport default function warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n\n}"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,OAAT,CAAiBC,OAAjB,EAA0B;EACvC;EACA,IAAI,OAAOC,OAAP,KAAmB,WAAnB,IAAkC,OAAOA,OAAO,CAACC,KAAf,KAAyB,UAA/D,EAA2E;IACzED,OAAO,CAACC,KAAR,CAAcF,OAAd;EACD;EACD;;;EAGA,IAAI;IACF;IACA;IACA;IACA,MAAM,IAAIG,KAAJ,CAAUH,OAAV,CAAN;IACA;EACD,CAND,CAME,OAAOI,CAAP,EAAU,CAAE;EACd;;AAED"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/cc8d8b324535a24a79ce9469e2376924.json b/node_modules/.cache/babel-loader/cc8d8b324535a24a79ce9469e2376924.json new file mode 100644 index 00000000..165d1484 --- /dev/null +++ b/node_modules/.cache/babel-loader/cc8d8b324535a24a79ce9469e2376924.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/ce86527dbe184809707baf4f7d862255.json b/node_modules/.cache/babel-loader/ce86527dbe184809707baf4f7d862255.json new file mode 100644 index 00000000..6af8baf2 --- /dev/null +++ b/node_modules/.cache/babel-loader/ce86527dbe184809707baf4f7d862255.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between mx-auto divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/d00d58f4bf13853084a768d9abc0f126.json b/node_modules/.cache/babel-loader/d00d58f4bf13853084a768d9abc0f126.json new file mode 100644 index 00000000..182432d8 --- /dev/null +++ b/node_modules/.cache/babel-loader/d00d58f4bf13853084a768d9abc0f126.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/SearchBox/index.js\",\n _s = $RefreshSig$();\n\nimport React, { useState } from \"react\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst SearchBox = _ref => {\n _s();\n\n let {\n cancleIcon,\n searchIcon,\n placeholder,\n className,\n searchBoxHolder\n } = _ref;\n const [activeSearchBox, setActiveSearchBox] = useState(false);\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: `${searchBoxHolder} flex flex-row-reverse items-center relative`,\n children: [activeSearchBox && /*#__PURE__*/_jsxDEV(\"img\", {\n src: cancleIcon,\n alt: \"\",\n className: \"w-3 h-3 absolute left-7 cursor-pointer\",\n onClick: () => setActiveSearchBox(false)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), searchIcon && /*#__PURE__*/_jsxDEV(\"img\", {\n src: searchIcon,\n alt: \"\",\n className: \"w-4 h-4 absolute left-2 cursor-pointer\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"input\", {\n onFocus: () => setActiveSearchBox(true) // onBlur={() => setActiveSearchBox(false)}\n ,\n type: \"text\",\n placeholder: placeholder,\n className: `${className} w-[100%] text-xs focus:outline-none rounded border focus:ring focus:ring-opacity-20`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 31,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_s(SearchBox, \"gI3CrReHroA8AxFeVwU2WgVTMjk=\");\n\n_c = SearchBox;\nexport default SearchBox;\nSearchBox.defaultProps = {\n cancleIcon: \"images/SearchBoxzarbedar-icon.svg\",\n searchIcon: \"images/SearchBoxsearch-normal.svg\",\n placeholder: \"دنبال چه چیزی هستید\",\n className: \"text-blue-400 bg-[#F9FBFF] placeholder-blue-300 border-[#B5D6FF] focus:border-blue-200 focus:ring-blue-200\",\n searchBoxHolder: \"\"\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"SearchBox\");","map":{"version":3,"names":["React","useState","SearchBox","cancleIcon","searchIcon","placeholder","className","searchBoxHolder","activeSearchBox","setActiveSearchBox","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/SearchBox/index.js"],"sourcesContent":["import React, { useState } from \"react\";\n\nconst SearchBox = ({\n cancleIcon,\n searchIcon,\n placeholder,\n className,\n searchBoxHolder,\n}) => {\n const [activeSearchBox, setActiveSearchBox] = useState(false);\n\n return (\n \n {activeSearchBox && (\n setActiveSearchBox(false)}\n />\n )}\n {searchIcon && (\n \n )}\n setActiveSearchBox(true)}\n // onBlur={() => setActiveSearchBox(false)}\n type=\"text\"\n placeholder={placeholder}\n className={`${className} w-[100%] text-xs focus:outline-none rounded border focus:ring focus:ring-opacity-20`}\n />\n \n );\n};\n\nexport default SearchBox;\n\nSearchBox.defaultProps = {\n cancleIcon: \"images/SearchBoxzarbedar-icon.svg\",\n searchIcon: \"images/SearchBoxsearch-normal.svg\",\n\n placeholder: \"دنبال چه چیزی هستید\",\n\n className:\n \"text-blue-400 bg-[#F9FBFF] placeholder-blue-300 border-[#B5D6FF] focus:border-blue-200 focus:ring-blue-200\",\n\n searchBoxHolder: \"\",\n};\n"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;;;AAEA,MAAMC,SAAS,GAAG,QAMZ;EAAA;;EAAA,IANa;IACjBC,UADiB;IAEjBC,UAFiB;IAGjBC,WAHiB;IAIjBC,SAJiB;IAKjBC;EALiB,CAMb;EACJ,MAAM,CAACC,eAAD,EAAkBC,kBAAlB,IAAwCR,QAAQ,CAAC,KAAD,CAAtD;EAEA,oBACE;IACE,SAAS,EAAG,GAAEM,eAAgB,8CADhC;IAAA,WAGGC,eAAe,iBACd;MACE,GAAG,EAAEL,UADP;MAEE,GAAG,EAAC,EAFN;MAGE,SAAS,EAAC,wCAHZ;MAIE,OAAO,EAAE,MAAMM,kBAAkB,CAAC,KAAD;IAJnC;MAAA;MAAA;MAAA;IAAA,QAJJ,EAWGL,UAAU,iBACT;MACE,GAAG,EAAEA,UADP;MAEE,GAAG,EAAC,EAFN;MAGE,SAAS,EAAC;IAHZ;MAAA;MAAA;MAAA;IAAA,QAZJ,eAkBE;MACE,OAAO,EAAE,MAAMK,kBAAkB,CAAC,IAAD,CADnC,CAEE;MAFF;MAGE,IAAI,EAAC,MAHP;MAIE,WAAW,EAAEJ,WAJf;MAKE,SAAS,EAAG,GAAEC,SAAU;IAL1B;MAAA;MAAA;MAAA;IAAA,QAlBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AA4BD,CArCD;;GAAMJ,S;;KAAAA,S;AAuCN,eAAeA,SAAf;AAEAA,SAAS,CAACQ,YAAV,GAAyB;EACvBP,UAAU,EAAE,mCADW;EAEvBC,UAAU,EAAE,mCAFW;EAIvBC,WAAW,EAAE,qBAJU;EAMvBC,SAAS,EACP,4GAPqB;EASvBC,eAAe,EAAE;AATM,CAAzB"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/d200e5269382f26ce7b7048cb221d2e9.json b/node_modules/.cache/babel-loader/d200e5269382f26ce7b7048cb221d2e9.json new file mode 100644 index 00000000..a37fa1b2 --- /dev/null +++ b/node_modules/.cache/babel-loader/d200e5269382f26ce7b7048cb221d2e9.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[300px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n {/*
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/d268daf64d42f4455968eec3262c91a8.json b/node_modules/.cache/babel-loader/d268daf64d42f4455968eec3262c91a8.json new file mode 100644 index 00000000..e4be037f --- /dev/null +++ b/node_modules/.cache/babel-loader/d268daf64d42f4455968eec3262c91a8.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-col mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-row items-center justify-between divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit self-end bg-secondary text-white rounded px-5 py-2 text-xs\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/da7371261807388e78bb5d771fa442b7.json b/node_modules/.cache/babel-loader/da7371261807388e78bb5d771fa442b7.json new file mode 100644 index 00000000..abf0a95f --- /dev/null +++ b/node_modules/.cache/babel-loader/da7371261807388e78bb5d771fa442b7.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign2 from \"./components/CardDesign2\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: /*#__PURE__*/_jsxDEV(Homepage, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this)\n }, void 0, false)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign2","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign2 from \"./components/CardDesign2\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n \n {/* */}\n {/* */}\n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,uBACE,QAAC,QAAD;QAAA;QAAA;QAAA;MAAA;IADF;EAJF;AAUD;;KAXQA,G;AAaT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/dac7cf7c7c6ee9a8ad3301f3704d56a8.json b/node_modules/.cache/babel-loader/dac7cf7c7c6ee9a8ad3301f3704d56a8.json new file mode 100644 index 00000000..62c6baa3 --- /dev/null +++ b/node_modules/.cache/babel-loader/dac7cf7c7c6ee9a8ad3301f3704d56a8.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 82,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/db5d15b3592fab41ea072c4614303a37.json b/node_modules/.cache/babel-loader/db5d15b3592fab41ea072c4614303a37.json new file mode 100644 index 00000000..826a0bde --- /dev/null +++ b/node_modules/.cache/babel-loader/db5d15b3592fab41ea072c4614303a37.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js\";\nimport React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign1 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit flex flex-col p-4 bg-surface shadow rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"طبقه سوم\",\n titleClassName: \"font-bold text-primary\",\n titleBorderClassName: \"w-1 h-5 bg-warning ml-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(IconText, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign1;\nexport default CardDesign1;\nCardDesign1.defaultProps = {};\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign1\");","map":{"version":3,"names":["React","CustomToast","IconText","TitleSubtitle","CardDesign1","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js"],"sourcesContent":["import React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nconst CardDesign1 = () => {\n return (\n
    \n \n \n \n
    \n );\n};\n\nexport default CardDesign1;\n\nCardDesign1.defaultProps = {};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,OAAOC,aAAP,MAA0B,kBAA1B;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,mDAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,UAFT;MAGE,cAAc,EAAE,wBAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE,QAAC,QAAD;MAAA;MAAA;MAAA;IAAA,QAPF,eAQE,QAAC,WAAD;MAAA;MAAA;MAAA;IAAA,QARF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAYD,CAbD;;KAAMA,W;AAeN,eAAeA,WAAf;AAEAA,WAAW,CAACC,YAAZ,GAA2B,EAA3B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/ea039523a2020ddbf76fec74fb28c73c.json b/node_modules/.cache/babel-loader/ea039523a2020ddbf76fec74fb28c73c.json new file mode 100644 index 00000000..46181966 --- /dev/null +++ b/node_modules/.cache/babel-loader/ea039523a2020ddbf76fec74fb28c73c.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport SearchBox from \"../SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow-sm border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1.5 h-7 bg-primary ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nimport SearchBox from \"../SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,OAAOC,SAAP,MAAsB,cAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,8HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/ed357385108f639e86d166484d8db297.json b/node_modules/.cache/babel-loader/ed357385108f639e86d166484d8db297.json new file mode 100644 index 00000000..2f29f995 --- /dev/null +++ b/node_modules/.cache/babel-loader/ed357385108f639e86d166484d8db297.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 25,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 32,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 39,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 55,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 62,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 70,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 47,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/ee907c5dc549a6d4f28bcd087fcbf6e8.json b/node_modules/.cache/babel-loader/ee907c5dc549a6d4f28bcd087fcbf6e8.json new file mode 100644 index 00000000..fd47692e --- /dev/null +++ b/node_modules/.cache/babel-loader/ee907c5dc549a6d4f28bcd087fcbf6e8.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: [\" \", /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded-sm shadow-sm divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n {\" \"}\n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/eee2c49a6761938bc3965d9540ad12a7.json b/node_modules/.cache/babel-loader/eee2c49a6761938bc3965d9540ad12a7.json new file mode 100644 index 00000000..760c3d31 --- /dev/null +++ b/node_modules/.cache/babel-loader/eee2c49a6761938bc3965d9540ad12a7.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js\";\n// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\nimport React from \"react\";\nimport CustomToast2 from \"../CustomToast2\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport SearchBox from \"../SearchBox\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign3 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"max-h-[600px] w-fit p-4 overflow-y-auto scrollYDesign flex flex-col bg-surface shadow-sm border border-surfaceBorder rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"افراد حاضر در این سالن\",\n titleClassName: \"font-bold text-primary\",\n titleBorderClassName: \"w-1.5 h-7 bg-primary ml-2\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 14,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"mt-7\",\n children: /*#__PURE__*/_jsxDEV(SearchBox, {\n searchIcon: \"images/CardDesign3search-icon.svg\",\n placeholder: \"جستجو برا اساس اسم یا کد ملی\",\n className: \"p-4 border-surfaceBorder focus:border-gray-200 focus:ring-gray-200\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 21,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 20,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast2, {\n num: 10\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 29,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 13,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign3;\nexport default CardDesign3;\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign3\");","map":{"version":3,"names":["React","CustomToast2","TitleSubtitle","SearchBox","CardDesign3"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign3/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start CardDesign3 && end CardDesign3\n\nimport React from \"react\";\n\nimport CustomToast2 from \"../CustomToast2\";\n\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nimport SearchBox from \"../SearchBox\";\n\nconst CardDesign3 = () => {\n return (\n
    \n \n
    \n \n
    \n \n
    \n );\n};\n\nexport default CardDesign3;\n"],"mappings":";AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAOC,YAAP,MAAyB,iBAAzB;AAEA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,OAAOC,SAAP,MAAsB,cAAtB;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,8HAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,wBAFT;MAGE,cAAc,EAAE,wBAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE;MAAK,SAAS,EAAC,MAAf;MAAA,uBACE,QAAC,SAAD;QACE,UAAU,EAAE,mCADd;QAEE,WAAW,EAAE,8BAFf;QAGE,SAAS,EACP;MAJJ;QAAA;QAAA;QAAA;MAAA;IADF;MAAA;MAAA;MAAA;IAAA,QAPF,eAgBE,QAAC,YAAD;MAAc,GAAG,EAAE;IAAnB;MAAA;MAAA;MAAA;IAAA,QAhBF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAoBD,CArBD;;KAAMA,W;AAuBN,eAAeA,WAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/f3781267fcdb3ebbd24e2ca8f82f0a27.json b/node_modules/.cache/babel-loader/f3781267fcdb3ebbd24e2ca8f82f0a27.json new file mode 100644 index 00000000..4a0ba6f3 --- /dev/null +++ b/node_modules/.cache/babel-loader/f3781267fcdb3ebbd24e2ca8f82f0a27.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js\",\n _s = $RefreshSig$();\n\n// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst FormInput = _ref => {\n _s();\n\n let {\n items\n } = _ref;\n const {\n register,\n getValues\n } = useForm();\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex flex-col\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit min-w-[900px] h-[375px] flex flex-row items-center justify-between mx-auto bg-surface p-4 border border-surfaceBorder rounded shadow divide-x-2 divide-surfaceBorder divide-x-reverse\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"firstName\"),\n label: \"\\u0646\\u0627\\u0645 \",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 19,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"lastName\"),\n label: \"\\u0646\\u0627\\u0645 \\u062E\\u0627\\u0646\\u0648\\u0627\\u062F\\u06AF\\u06CC\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primary focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 26,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"birthYear\"),\n label: \"\\u062A\\u0627\\u0631\\u06CC\\u062E \\u062A\\u0648\\u0644\\u062F\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 33,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 40,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSwitch, {\n register: register(\"gender\"),\n className: \"flex-1 bg-surface border-surfaceBorder\" // defaultValue={activeUser?.gender}\n ,\n values: [\"خانم\", \"آقا\"]\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 41,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex-grow flex-1 flex flex-col gap-y-4 px-4\",\n children: [/*#__PURE__*/_jsxDEV(Input, {\n register: register(\"mobileNumber\"),\n label: \"\\u0634\\u0645\\u0627\\u0631\\u0647 \\u062A\\u0645\\u0627\\u0633\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 49,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"job\"),\n label: \"\\u0634\\u063A\\u0644\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 56,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(CustomSelectBox, {\n options: items\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 63,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"foundus\"),\n label: \"\\u0646\\u062D\\u0648\\u0647 \\u0622\\u0634\\u0646\\u0627\\u06CC\\u06CC \\u0628\\u0627 \\u0645\\u0648\\u06A9\\u0628\",\n type: \"text\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 64,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(Input, {\n register: register(\"idCard\"),\n label: \"\\u06A9\\u062F \\u0645\\u0644\\u06CC\",\n type: \"number\",\n borderClassname: `border border-surfaceBorder `,\n inputClassname: `px-3 py-2 text-primaryText focus:bg-surface`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 71,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 48,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"h-full flex-grow flex-1 flex flex-col items-end justify-end px-4\",\n children: /*#__PURE__*/_jsxDEV(DateRangePicker, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 80,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 79,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(Button, {\n className: \"w-fit\",\n title: \"رفتن به مرحله بعد\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 5\n }, this);\n};\n\n_s(FormInput, \"d78zGQJkR2bxiAwp+FiGMpFHej0=\", false, function () {\n return [useForm];\n});\n\n_c = FormInput;\nexport default FormInput;\nFormInput.defaultProps = {\n items: [{\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }, {\n title: \"mahdi\"\n }]\n};\n\nvar _c;\n\n$RefreshReg$(_c, \"FormInput\");","map":{"version":3,"names":["React","useForm","DateRangePicker","Input","CustomSelectBox","CustomSwitch","Button","FormInput","items","register","getValues","defaultProps","title"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/FormInput/index.js"],"sourcesContent":["// it has style inside index.scss ---> // Start FormInput Component && end FormInput Component\n\nimport React from \"react\";\nimport { useForm } from \"react-hook-form\";\n\nimport DateRangePicker from \"../DateRangePicker\";\nimport Input from \"../AnimatedInput/Input\";\nimport CustomSelectBox from \"../CustomSelectBox\";\nimport CustomSwitch from \"../CustomSwitch\";\nimport Button from \"../Button\";\n\nconst FormInput = ({ items }) => {\n const { register, getValues } = useForm();\n\n return (\n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n );\n};\n\nexport default FormInput;\n\nFormInput.defaultProps = {\n items: [\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n {\n title: \"mahdi\",\n },\n ],\n};\n"],"mappings":";;;AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAT,QAAwB,iBAAxB;AAEA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,OAAOC,KAAP,MAAkB,wBAAlB;AACA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,OAAOC,YAAP,MAAyB,iBAAzB;AACA,OAAOC,MAAP,MAAmB,WAAnB;;;AAEA,MAAMC,SAAS,GAAG,QAAe;EAAA;;EAAA,IAAd;IAAEC;EAAF,CAAc;EAC/B,MAAM;IAAEC,QAAF;IAAYC;EAAZ,IAA0BT,OAAO,EAAvC;EAEA,oBACE;IAAK,SAAS,EAAC,eAAf;IAAA,wBACE;MAAK,SAAS,EAAC,6LAAf;MAAA,wBACE;QAAK,SAAS,EAAC,6CAAf;QAAA,wBACE,QAAC,KAAD;UACE,QAAQ,EAAEQ,QAAQ,CAAC,WAAD,CADpB;UAEE,KAAK,EAAC,qBAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QADF,eAQE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,UAAD,CADpB;UAEE,KAAK,EAAC,qEAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QARF,eAeE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,WAAD,CADpB;UAEE,KAAK,EAAC,yDAFR;UAGE,IAAI,EAAC,QAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QAfF,eAsBE,QAAC,eAAD;UAAA;UAAA;UAAA;QAAA,QAtBF,eAuBE,QAAC,YAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,QAAD,CADpB;UAEE,SAAS,EAAC,wCAFZ,CAGE;UAHF;UAIE,MAAM,EAAE,CAAC,MAAD,EAAS,KAAT;QAJV;UAAA;UAAA;UAAA;QAAA,QAvBF;MAAA;QAAA;QAAA;QAAA;MAAA,QADF,eA+BE;QAAK,SAAS,EAAC,6CAAf;QAAA,wBACE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,cAAD,CADpB;UAEE,KAAK,EAAC,yDAFR;UAGE,IAAI,EAAC,QAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QADF,eAQE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,KAAD,CADpB;UAEE,KAAK,EAAC,oBAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QARF,eAeE,QAAC,eAAD;UAAiB,OAAO,EAAED;QAA1B;UAAA;UAAA;UAAA;QAAA,QAfF,eAgBE,QAAC,KAAD;UACE,QAAQ,EAAEC,QAAQ,CAAC,SAAD,CADpB;UAEE,KAAK,EAAC,qGAFR;UAGE,IAAI,EAAC,MAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QAhBF,eAuBE,QAAC,KAAD;UACE,QAAQ,EAAEA,QAAQ,CAAC,QAAD,CADpB;UAEE,KAAK,EAAC,iCAFR;UAGE,IAAI,EAAC,QAHP;UAIE,eAAe,EAAG,8BAJpB;UAKE,cAAc,EAAG;QALnB;UAAA;UAAA;UAAA;QAAA,QAvBF;MAAA;QAAA;QAAA;QAAA;MAAA,QA/BF,eA8DE;QAAK,SAAS,EAAC,kEAAf;QAAA,uBACE,QAAC,eAAD;UAAA;UAAA;UAAA;QAAA;MADF;QAAA;QAAA;QAAA;MAAA,QA9DF;IAAA;MAAA;MAAA;MAAA;IAAA,QADF,eAmEE,QAAC,MAAD;MAAQ,SAAS,EAAE,OAAnB;MAA4B,KAAK,EAAE;IAAnC;MAAA;MAAA;MAAA;IAAA,QAnEF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAuED,CA1ED;;GAAMF,S;UAC4BN,O;;;KAD5BM,S;AA4EN,eAAeA,SAAf;AAEAA,SAAS,CAACI,YAAV,GAAyB;EACvBH,KAAK,EAAE,CACL;IACEI,KAAK,EAAE;EADT,CADK,EAIL;IACEA,KAAK,EAAE;EADT,CAJK,EAOL;IACEA,KAAK,EAAE;EADT,CAPK;AADgB,CAAzB"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/f417c9d49108753febe8457ef4aa38d5.json b/node_modules/.cache/babel-loader/f417c9d49108753febe8457ef4aa38d5.json new file mode 100644 index 00000000..2dbf3573 --- /dev/null +++ b/node_modules/.cache/babel-loader/f417c9d49108753febe8457ef4aa38d5.json @@ -0,0 +1 @@ +{"ast":null,"code":"import React, { useLayoutEffect, useEffect, useRef, useState, useContext } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { createStore as createStore$1, applyMiddleware, compose, bindActionCreators } from 'redux';\nimport { Provider, connect } from 'react-redux';\nimport { useMemo, useCallback } from 'use-memo-one';\nimport { getRect, expand, offset, withScroll, getBox, createBox, calculateBox } from 'css-box-model';\nimport memoizeOne from 'memoize-one';\nimport rafSchd from 'raf-schd';\nimport ReactDOM from 'react-dom';\nvar isProduction = process.env.NODE_ENV === 'production';\nvar spacesAndTabs = /[ \\t]{2,}/g;\nvar lineStartWithSpaces = /^[ \\t]*/gm;\n\nvar clean = function clean(value) {\n return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n};\n\nvar getDevMessage = function getDevMessage(message) {\n return clean(\"\\n %creact-beautiful-dnd\\n\\n %c\" + clean(message) + \"\\n\\n %c\\uD83D\\uDC77\\u200D This is a development only message. It will be removed in production builds.\\n\");\n};\n\nvar getFormattedMessage = function getFormattedMessage(message) {\n return [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;'];\n};\n\nvar isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings';\n\nfunction log(type, message) {\n var _console;\n\n if (isProduction) {\n return;\n }\n\n if (typeof window !== 'undefined' && window[isDisabledFlag]) {\n return;\n }\n\n (_console = console)[type].apply(_console, getFormattedMessage(message));\n}\n\nvar warning = log.bind(null, 'warn');\nvar error = log.bind(null, 'error');\n\nfunction noop() {}\n\nfunction getOptions(shared, fromBinding) {\n return _extends({}, shared, {}, fromBinding);\n}\n\nfunction bindEvents(el, bindings, sharedOptions) {\n var unbindings = bindings.map(function (binding) {\n var options = getOptions(sharedOptions, binding.options);\n el.addEventListener(binding.eventName, binding.fn, options);\n return function unbind() {\n el.removeEventListener(binding.eventName, binding.fn, options);\n };\n });\n return function unbindAll() {\n unbindings.forEach(function (unbind) {\n unbind();\n });\n };\n}\n\nvar isProduction$1 = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\n\nfunction RbdInvariant(message) {\n this.message = message;\n}\n\nRbdInvariant.prototype.toString = function toString() {\n return this.message;\n};\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction$1) {\n throw new RbdInvariant(prefix);\n } else {\n throw new RbdInvariant(prefix + \": \" + (message || ''));\n }\n}\n\nvar ErrorBoundary = function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n\n function ErrorBoundary() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.callbacks = null;\n _this.unbind = noop;\n\n _this.onWindowError = function (event) {\n var callbacks = _this.getCallbacks();\n\n if (callbacks.isDragging()) {\n callbacks.tryAbort();\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n An error was caught by our window 'error' event listener while a drag was occurring.\\n The active drag has been aborted.\\n \") : void 0;\n }\n\n var err = event.error;\n\n if (err instanceof RbdInvariant) {\n event.preventDefault();\n\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n }\n };\n\n _this.getCallbacks = function () {\n if (!_this.callbacks) {\n throw new Error('Unable to find AppCallbacks in ');\n }\n\n return _this.callbacks;\n };\n\n _this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n\n return _this;\n }\n\n var _proto = ErrorBoundary.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.unbind = bindEvents(window, [{\n eventName: 'error',\n fn: this.onWindowError\n }]);\n };\n\n _proto.componentDidCatch = function componentDidCatch(err) {\n if (err instanceof RbdInvariant) {\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n\n this.setState({});\n return;\n }\n\n throw err;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unbind();\n };\n\n _proto.render = function render() {\n return this.props.children(this.setCallbacks);\n };\n\n return ErrorBoundary;\n}(React.Component);\n\nvar dragHandleUsageInstructions = \"\\n Press space bar to start a drag.\\n When dragging you can use the arrow keys to move the item around and escape to cancel.\\n Some screen readers may require you to be in focus mode or to use your pass through key\\n\";\n\nvar position = function position(index) {\n return index + 1;\n};\n\nvar onDragStart = function onDragStart(start) {\n return \"\\n You have lifted an item in position \" + position(start.source.index) + \"\\n\";\n};\n\nvar withLocation = function withLocation(source, destination) {\n var isInHomeList = source.droppableId === destination.droppableId;\n var startPosition = position(source.index);\n var endPosition = position(destination.index);\n\n if (isInHomeList) {\n return \"\\n You have moved the item from position \" + startPosition + \"\\n to position \" + endPosition + \"\\n \";\n }\n\n return \"\\n You have moved the item from position \" + startPosition + \"\\n in list \" + source.droppableId + \"\\n to list \" + destination.droppableId + \"\\n in position \" + endPosition + \"\\n \";\n};\n\nvar withCombine = function withCombine(id, source, combine) {\n var inHomeList = source.droppableId === combine.droppableId;\n\n if (inHomeList) {\n return \"\\n The item \" + id + \"\\n has been combined with \" + combine.draggableId;\n }\n\n return \"\\n The item \" + id + \"\\n in list \" + source.droppableId + \"\\n has been combined with \" + combine.draggableId + \"\\n in list \" + combine.droppableId + \"\\n \";\n};\n\nvar onDragUpdate = function onDragUpdate(update) {\n var location = update.destination;\n\n if (location) {\n return withLocation(update.source, location);\n }\n\n var combine = update.combine;\n\n if (combine) {\n return withCombine(update.draggableId, update.source, combine);\n }\n\n return 'You are over an area that cannot be dropped on';\n};\n\nvar returnedToStart = function returnedToStart(source) {\n return \"\\n The item has returned to its starting position\\n of \" + position(source.index) + \"\\n\";\n};\n\nvar onDragEnd = function onDragEnd(result) {\n if (result.reason === 'CANCEL') {\n return \"\\n Movement cancelled.\\n \" + returnedToStart(result.source) + \"\\n \";\n }\n\n var location = result.destination;\n var combine = result.combine;\n\n if (location) {\n return \"\\n You have dropped the item.\\n \" + withLocation(result.source, location) + \"\\n \";\n }\n\n if (combine) {\n return \"\\n You have dropped the item.\\n \" + withCombine(result.draggableId, result.source, combine) + \"\\n \";\n }\n\n return \"\\n The item has been dropped while not over a drop area.\\n \" + returnedToStart(result.source) + \"\\n \";\n};\n\nvar preset = {\n dragHandleUsageInstructions: dragHandleUsageInstructions,\n onDragStart: onDragStart,\n onDragUpdate: onDragUpdate,\n onDragEnd: onDragEnd\n};\nvar origin = {\n x: 0,\n y: 0\n};\n\nvar add = function add(point1, point2) {\n return {\n x: point1.x + point2.x,\n y: point1.y + point2.y\n };\n};\n\nvar subtract = function subtract(point1, point2) {\n return {\n x: point1.x - point2.x,\n y: point1.y - point2.y\n };\n};\n\nvar isEqual = function isEqual(point1, point2) {\n return point1.x === point2.x && point1.y === point2.y;\n};\n\nvar negate = function negate(point) {\n return {\n x: point.x !== 0 ? -point.x : 0,\n y: point.y !== 0 ? -point.y : 0\n };\n};\n\nvar patch = function patch(line, value, otherValue) {\n var _ref;\n\n if (otherValue === void 0) {\n otherValue = 0;\n }\n\n return _ref = {}, _ref[line] = value, _ref[line === 'x' ? 'y' : 'x'] = otherValue, _ref;\n};\n\nvar distance = function distance(point1, point2) {\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n};\n\nvar closest = function closest(target, points) {\n return Math.min.apply(Math, points.map(function (point) {\n return distance(target, point);\n }));\n};\n\nvar apply = function apply(fn) {\n return function (point) {\n return {\n x: fn(point.x),\n y: fn(point.y)\n };\n };\n};\n\nvar executeClip = function (frame, subject) {\n var result = getRect({\n top: Math.max(subject.top, frame.top),\n right: Math.min(subject.right, frame.right),\n bottom: Math.min(subject.bottom, frame.bottom),\n left: Math.max(subject.left, frame.left)\n });\n\n if (result.width <= 0 || result.height <= 0) {\n return null;\n }\n\n return result;\n};\n\nvar offsetByPosition = function offsetByPosition(spacing, point) {\n return {\n top: spacing.top + point.y,\n left: spacing.left + point.x,\n bottom: spacing.bottom + point.y,\n right: spacing.right + point.x\n };\n};\n\nvar getCorners = function getCorners(spacing) {\n return [{\n x: spacing.left,\n y: spacing.top\n }, {\n x: spacing.right,\n y: spacing.top\n }, {\n x: spacing.left,\n y: spacing.bottom\n }, {\n x: spacing.right,\n y: spacing.bottom\n }];\n};\n\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nvar scroll = function scroll(target, frame) {\n if (!frame) {\n return target;\n }\n\n return offsetByPosition(target, frame.scroll.diff.displacement);\n};\n\nvar increase = function increase(target, axis, withPlaceholder) {\n if (withPlaceholder && withPlaceholder.increasedBy) {\n var _extends2;\n\n return _extends({}, target, (_extends2 = {}, _extends2[axis.end] = target[axis.end] + withPlaceholder.increasedBy[axis.line], _extends2));\n }\n\n return target;\n};\n\nvar clip = function clip(target, frame) {\n if (frame && frame.shouldClipSubject) {\n return executeClip(frame.pageMarginBox, target);\n }\n\n return getRect(target);\n};\n\nvar getSubject = function (_ref) {\n var page = _ref.page,\n withPlaceholder = _ref.withPlaceholder,\n axis = _ref.axis,\n frame = _ref.frame;\n var scrolled = scroll(page.marginBox, frame);\n var increased = increase(scrolled, axis, withPlaceholder);\n var clipped = clip(increased, frame);\n return {\n page: page,\n withPlaceholder: withPlaceholder,\n active: clipped\n };\n};\n\nvar scrollDroppable = function (droppable, newScroll) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var scrollable = droppable.frame;\n var scrollDiff = subtract(newScroll, scrollable.scroll.initial);\n var scrollDisplacement = negate(scrollDiff);\n\n var frame = _extends({}, scrollable, {\n scroll: {\n initial: scrollable.scroll.initial,\n current: newScroll,\n diff: {\n value: scrollDiff,\n displacement: scrollDisplacement\n },\n max: scrollable.scroll.max\n }\n });\n\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: droppable.subject.withPlaceholder,\n axis: droppable.axis,\n frame: frame\n });\n\n var result = _extends({}, droppable, {\n frame: frame,\n subject: subject\n });\n\n return result;\n};\n\nfunction isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\n\nfunction values(map) {\n if (Object.values) {\n return Object.values(map);\n }\n\n return Object.keys(map).map(function (key) {\n return map[key];\n });\n}\n\nfunction findIndex(list, predicate) {\n if (list.findIndex) {\n return list.findIndex(predicate);\n }\n\n for (var i = 0; i < list.length; i++) {\n if (predicate(list[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction find(list, predicate) {\n if (list.find) {\n return list.find(predicate);\n }\n\n var index = findIndex(list, predicate);\n\n if (index !== -1) {\n return list[index];\n }\n\n return undefined;\n}\n\nfunction toArray(list) {\n return Array.prototype.slice.call(list);\n}\n\nvar toDroppableMap = memoizeOne(function (droppables) {\n return droppables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDraggableMap = memoizeOne(function (draggables) {\n return draggables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDroppableList = memoizeOne(function (droppables) {\n return values(droppables);\n});\nvar toDraggableList = memoizeOne(function (draggables) {\n return values(draggables);\n});\nvar getDraggablesInsideDroppable = memoizeOne(function (droppableId, draggables) {\n var result = toDraggableList(draggables).filter(function (draggable) {\n return droppableId === draggable.descriptor.droppableId;\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n return result;\n});\n\nfunction tryGetDestination(impact) {\n if (impact.at && impact.at.type === 'REORDER') {\n return impact.at.destination;\n }\n\n return null;\n}\n\nfunction tryGetCombine(impact) {\n if (impact.at && impact.at.type === 'COMBINE') {\n return impact.at.combine;\n }\n\n return null;\n}\n\nvar removeDraggableFromList = memoizeOne(function (remove, list) {\n return list.filter(function (item) {\n return item.descriptor.id !== remove.descriptor.id;\n });\n});\n\nvar moveToNextCombine = function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggable = _ref.draggable,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var location = tryGetDestination(previousImpact);\n\n if (!location) {\n return null;\n }\n\n function getImpact(target) {\n var at = {\n type: 'COMBINE',\n combine: {\n draggableId: target,\n droppableId: destination.descriptor.id\n }\n };\n return _extends({}, previousImpact, {\n at: at\n });\n }\n\n var all = previousImpact.displaced.all;\n var closestId = all.length ? all[0] : null;\n\n if (isMovingForward) {\n return closestId ? getImpact(closestId) : null;\n }\n\n var withoutDraggable = removeDraggableFromList(draggable, insideDestination);\n\n if (!closestId) {\n if (!withoutDraggable.length) {\n return null;\n }\n\n var last = withoutDraggable[withoutDraggable.length - 1];\n return getImpact(last.descriptor.id);\n }\n\n var indexOfClosest = findIndex(withoutDraggable, function (d) {\n return d.descriptor.id === closestId;\n });\n !(indexOfClosest !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find displaced item in set') : invariant(false) : void 0;\n var proposedIndex = indexOfClosest - 1;\n\n if (proposedIndex < 0) {\n return null;\n }\n\n var before = withoutDraggable[proposedIndex];\n return getImpact(before.descriptor.id);\n};\n\nvar isHomeOf = function (draggable, destination) {\n return draggable.descriptor.droppableId === destination.descriptor.id;\n};\n\nvar noDisplacedBy = {\n point: origin,\n value: 0\n};\nvar emptyGroups = {\n invisible: {},\n visible: {},\n all: []\n};\nvar noImpact = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: null\n};\n\nvar isWithin = function (lowerBound, upperBound) {\n return function (value) {\n return lowerBound <= value && value <= upperBound;\n };\n};\n\nvar isPartiallyVisibleThroughFrame = function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n\n if (isContained) {\n return true;\n }\n\n var isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom);\n var isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right);\n var isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally;\n\n if (isPartiallyContained) {\n return true;\n }\n\n var isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom;\n var isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right;\n var isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally;\n\n if (isTargetBiggerThanFrame) {\n return true;\n }\n\n var isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically;\n return isTargetBiggerOnOneAxis;\n };\n};\n\nvar isTotallyVisibleThroughFrame = function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n return isContained;\n };\n};\n\nvar vertical = {\n direction: 'vertical',\n line: 'y',\n crossAxisLine: 'x',\n start: 'top',\n end: 'bottom',\n size: 'height',\n crossAxisStart: 'left',\n crossAxisEnd: 'right',\n crossAxisSize: 'width'\n};\nvar horizontal = {\n direction: 'horizontal',\n line: 'x',\n crossAxisLine: 'y',\n start: 'left',\n end: 'right',\n size: 'width',\n crossAxisStart: 'top',\n crossAxisEnd: 'bottom',\n crossAxisSize: 'height'\n};\n\nvar isTotallyVisibleThroughFrameOnAxis = function (axis) {\n return function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n if (axis === vertical) {\n return isWithinVertical(subject.top) && isWithinVertical(subject.bottom);\n }\n\n return isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n };\n };\n};\n\nvar getDroppableDisplaced = function getDroppableDisplaced(target, destination) {\n var displacement = destination.frame ? destination.frame.scroll.diff.displacement : origin;\n return offsetByPosition(target, displacement);\n};\n\nvar isVisibleInDroppable = function isVisibleInDroppable(target, destination, isVisibleThroughFrameFn) {\n if (!destination.subject.active) {\n return false;\n }\n\n return isVisibleThroughFrameFn(destination.subject.active)(target);\n};\n\nvar isVisibleInViewport = function isVisibleInViewport(target, viewport, isVisibleThroughFrameFn) {\n return isVisibleThroughFrameFn(viewport)(target);\n};\n\nvar isVisible = function isVisible(_ref) {\n var toBeDisplaced = _ref.target,\n destination = _ref.destination,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n isVisibleThroughFrameFn = _ref.isVisibleThroughFrameFn;\n var displacedTarget = withDroppableDisplacement ? getDroppableDisplaced(toBeDisplaced, destination) : toBeDisplaced;\n return isVisibleInDroppable(displacedTarget, destination, isVisibleThroughFrameFn) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn);\n};\n\nvar isPartiallyVisible = function isPartiallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame\n }));\n};\n\nvar isTotallyVisible = function isTotallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrame\n }));\n};\n\nvar isTotallyVisibleOnAxis = function isTotallyVisibleOnAxis(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis(args.destination.axis)\n }));\n};\n\nvar getShouldAnimate = function getShouldAnimate(id, last, forceShouldAnimate) {\n if (typeof forceShouldAnimate === 'boolean') {\n return forceShouldAnimate;\n }\n\n if (!last) {\n return true;\n }\n\n var invisible = last.invisible,\n visible = last.visible;\n\n if (invisible[id]) {\n return false;\n }\n\n var previous = visible[id];\n return previous ? previous.shouldAnimate : true;\n};\n\nfunction getTarget(draggable, displacedBy) {\n var marginBox = draggable.page.marginBox;\n var expandBy = {\n top: displacedBy.point.y,\n right: 0,\n bottom: 0,\n left: displacedBy.point.x\n };\n return getRect(expand(marginBox, expandBy));\n}\n\nfunction getDisplacementGroups(_ref) {\n var afterDragging = _ref.afterDragging,\n destination = _ref.destination,\n displacedBy = _ref.displacedBy,\n viewport = _ref.viewport,\n forceShouldAnimate = _ref.forceShouldAnimate,\n last = _ref.last;\n return afterDragging.reduce(function process(groups, draggable) {\n var target = getTarget(draggable, displacedBy);\n var id = draggable.descriptor.id;\n groups.all.push(id);\n var isVisible = isPartiallyVisible({\n target: target,\n destination: destination,\n viewport: viewport,\n withDroppableDisplacement: true\n });\n\n if (!isVisible) {\n groups.invisible[draggable.descriptor.id] = true;\n return groups;\n }\n\n var shouldAnimate = getShouldAnimate(id, last, forceShouldAnimate);\n var displacement = {\n draggableId: id,\n shouldAnimate: shouldAnimate\n };\n groups.visible[id] = displacement;\n return groups;\n }, {\n all: [],\n visible: {},\n invisible: {}\n });\n}\n\nfunction getIndexOfLastItem(draggables, options) {\n if (!draggables.length) {\n return 0;\n }\n\n var indexOfLastItem = draggables[draggables.length - 1].descriptor.index;\n return options.inHomeList ? indexOfLastItem : indexOfLastItem + 1;\n}\n\nfunction goAtEnd(_ref) {\n var insideDestination = _ref.insideDestination,\n inHomeList = _ref.inHomeList,\n displacedBy = _ref.displacedBy,\n destination = _ref.destination;\n var newIndex = getIndexOfLastItem(insideDestination, {\n inHomeList: inHomeList\n });\n return {\n displaced: emptyGroups,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: newIndex\n }\n }\n };\n}\n\nfunction calculateReorderImpact(_ref2) {\n var draggable = _ref2.draggable,\n insideDestination = _ref2.insideDestination,\n destination = _ref2.destination,\n viewport = _ref2.viewport,\n displacedBy = _ref2.displacedBy,\n last = _ref2.last,\n index = _ref2.index,\n forceShouldAnimate = _ref2.forceShouldAnimate;\n var inHomeList = isHomeOf(draggable, destination);\n\n if (index == null) {\n return goAtEnd({\n insideDestination: insideDestination,\n inHomeList: inHomeList,\n displacedBy: displacedBy,\n destination: destination\n });\n }\n\n var match = find(insideDestination, function (item) {\n return item.descriptor.index === index;\n });\n\n if (!match) {\n return goAtEnd({\n insideDestination: insideDestination,\n inHomeList: inHomeList,\n displacedBy: displacedBy,\n destination: destination\n });\n }\n\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var sliceFrom = insideDestination.indexOf(match);\n var impacted = withoutDragging.slice(sliceFrom);\n var displaced = getDisplacementGroups({\n afterDragging: impacted,\n destination: destination,\n displacedBy: displacedBy,\n last: last,\n viewport: viewport.frame,\n forceShouldAnimate: forceShouldAnimate\n });\n return {\n displaced: displaced,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: index\n }\n }\n };\n}\n\nfunction didStartAfterCritical(draggableId, afterCritical) {\n return Boolean(afterCritical.effected[draggableId]);\n}\n\nvar fromCombine = function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n destination = _ref.destination,\n draggables = _ref.draggables,\n combine = _ref.combine,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var combineId = combine.draggableId;\n var combineWith = draggables[combineId];\n var combineWithIndex = combineWith.descriptor.index;\n var didCombineWithStartAfterCritical = didStartAfterCritical(combineId, afterCritical);\n\n if (didCombineWithStartAfterCritical) {\n if (isMovingForward) {\n return combineWithIndex;\n }\n\n return combineWithIndex - 1;\n }\n\n if (isMovingForward) {\n return combineWithIndex + 1;\n }\n\n return combineWithIndex;\n};\n\nvar fromReorder = function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n insideDestination = _ref.insideDestination,\n location = _ref.location;\n\n if (!insideDestination.length) {\n return null;\n }\n\n var currentIndex = location.index;\n var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1;\n var firstIndex = insideDestination[0].descriptor.index;\n var lastIndex = insideDestination[insideDestination.length - 1].descriptor.index;\n var upperBound = isInHomeList ? lastIndex : lastIndex + 1;\n\n if (proposedIndex < firstIndex) {\n return null;\n }\n\n if (proposedIndex > upperBound) {\n return null;\n }\n\n return proposedIndex;\n};\n\nvar moveToNextIndex = function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var wasAt = previousImpact.at;\n !wasAt ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot move in direction without previous impact location') : invariant(false) : void 0;\n\n if (wasAt.type === 'REORDER') {\n var _newIndex = fromReorder({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n location: wasAt.destination,\n insideDestination: insideDestination\n });\n\n if (_newIndex == null) {\n return null;\n }\n\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: _newIndex\n });\n }\n\n var newIndex = fromCombine({\n isMovingForward: isMovingForward,\n destination: destination,\n displaced: previousImpact.displaced,\n draggables: draggables,\n combine: wasAt.combine,\n afterCritical: afterCritical\n });\n\n if (newIndex == null) {\n return null;\n }\n\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: newIndex\n });\n};\n\nvar getCombinedItemDisplacement = function (_ref) {\n var displaced = _ref.displaced,\n afterCritical = _ref.afterCritical,\n combineWith = _ref.combineWith,\n displacedBy = _ref.displacedBy;\n var isDisplaced = Boolean(displaced.visible[combineWith] || displaced.invisible[combineWith]);\n\n if (didStartAfterCritical(combineWith, afterCritical)) {\n return isDisplaced ? origin : negate(displacedBy.point);\n }\n\n return isDisplaced ? displacedBy.point : origin;\n};\n\nvar whenCombining = function (_ref) {\n var afterCritical = _ref.afterCritical,\n impact = _ref.impact,\n draggables = _ref.draggables;\n var combine = tryGetCombine(impact);\n !combine ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var combineWith = combine.draggableId;\n var center = draggables[combineWith].page.borderBox.center;\n var displaceBy = getCombinedItemDisplacement({\n displaced: impact.displaced,\n afterCritical: afterCritical,\n combineWith: combineWith,\n displacedBy: impact.displacedBy\n });\n return add(center, displaceBy);\n};\n\nvar distanceFromStartToBorderBoxCenter = function distanceFromStartToBorderBoxCenter(axis, box) {\n return box.margin[axis.start] + box.borderBox[axis.size] / 2;\n};\n\nvar distanceFromEndToBorderBoxCenter = function distanceFromEndToBorderBoxCenter(axis, box) {\n return box.margin[axis.end] + box.borderBox[axis.size] / 2;\n};\n\nvar getCrossAxisBorderBoxCenter = function getCrossAxisBorderBoxCenter(axis, target, isMoving) {\n return target[axis.crossAxisStart] + isMoving.margin[axis.crossAxisStart] + isMoving.borderBox[axis.crossAxisSize] / 2;\n};\n\nvar goAfter = function goAfter(_ref) {\n var axis = _ref.axis,\n moveRelativeTo = _ref.moveRelativeTo,\n isMoving = _ref.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.end] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\n\nvar goBefore = function goBefore(_ref2) {\n var axis = _ref2.axis,\n moveRelativeTo = _ref2.moveRelativeTo,\n isMoving = _ref2.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.start] - distanceFromEndToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\n\nvar goIntoStart = function goIntoStart(_ref3) {\n var axis = _ref3.axis,\n moveInto = _ref3.moveInto,\n isMoving = _ref3.isMoving;\n return patch(axis.line, moveInto.contentBox[axis.start] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving));\n};\n\nvar whenReordering = function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppable = _ref.droppable,\n afterCritical = _ref.afterCritical;\n var insideDestination = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var draggablePage = draggable.page;\n var axis = droppable.axis;\n\n if (!insideDestination.length) {\n return goIntoStart({\n axis: axis,\n moveInto: droppable.page,\n isMoving: draggablePage\n });\n }\n\n var displaced = impact.displaced,\n displacedBy = impact.displacedBy;\n var closestAfter = displaced.all[0];\n\n if (closestAfter) {\n var closest = draggables[closestAfter];\n\n if (didStartAfterCritical(closestAfter, afterCritical)) {\n return goBefore({\n axis: axis,\n moveRelativeTo: closest.page,\n isMoving: draggablePage\n });\n }\n\n var withDisplacement = offset(closest.page, displacedBy.point);\n return goBefore({\n axis: axis,\n moveRelativeTo: withDisplacement,\n isMoving: draggablePage\n });\n }\n\n var last = insideDestination[insideDestination.length - 1];\n\n if (last.descriptor.id === draggable.descriptor.id) {\n return draggablePage.borderBox.center;\n }\n\n if (didStartAfterCritical(last.descriptor.id, afterCritical)) {\n var page = offset(last.page, negate(afterCritical.displacedBy.point));\n return goAfter({\n axis: axis,\n moveRelativeTo: page,\n isMoving: draggablePage\n });\n }\n\n return goAfter({\n axis: axis,\n moveRelativeTo: last.page,\n isMoving: draggablePage\n });\n};\n\nvar withDroppableDisplacement = function (droppable, point) {\n var frame = droppable.frame;\n\n if (!frame) {\n return point;\n }\n\n return add(point, frame.scroll.diff.displacement);\n};\n\nvar getResultWithoutDroppableDisplacement = function getResultWithoutDroppableDisplacement(_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n afterCritical = _ref.afterCritical;\n var original = draggable.page.borderBox.center;\n var at = impact.at;\n\n if (!droppable) {\n return original;\n }\n\n if (!at) {\n return original;\n }\n\n if (at.type === 'REORDER') {\n return whenReordering({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n afterCritical: afterCritical\n });\n }\n\n return whenCombining({\n impact: impact,\n draggables: draggables,\n afterCritical: afterCritical\n });\n};\n\nvar getPageBorderBoxCenterFromImpact = function (args) {\n var withoutDisplacement = getResultWithoutDroppableDisplacement(args);\n var droppable = args.droppable;\n var withDisplacement = droppable ? withDroppableDisplacement(droppable, withoutDisplacement) : withoutDisplacement;\n return withDisplacement;\n};\n\nvar scrollViewport = function (viewport, newScroll) {\n var diff = subtract(newScroll, viewport.scroll.initial);\n var displacement = negate(diff);\n var frame = getRect({\n top: newScroll.y,\n bottom: newScroll.y + viewport.frame.height,\n left: newScroll.x,\n right: newScroll.x + viewport.frame.width\n });\n var updated = {\n frame: frame,\n scroll: {\n initial: viewport.scroll.initial,\n max: viewport.scroll.max,\n current: newScroll,\n diff: {\n value: diff,\n displacement: displacement\n }\n }\n };\n return updated;\n};\n\nfunction getDraggables(ids, draggables) {\n return ids.map(function (id) {\n return draggables[id];\n });\n}\n\nfunction tryGetVisible(id, groups) {\n for (var i = 0; i < groups.length; i++) {\n var displacement = groups[i].visible[id];\n\n if (displacement) {\n return displacement;\n }\n }\n\n return null;\n}\n\nvar speculativelyIncrease = function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n destination = _ref.destination,\n draggables = _ref.draggables,\n maxScrollChange = _ref.maxScrollChange;\n var scrolledViewport = scrollViewport(viewport, add(viewport.scroll.current, maxScrollChange));\n var scrolledDroppable = destination.frame ? scrollDroppable(destination, add(destination.frame.scroll.current, maxScrollChange)) : destination;\n var last = impact.displaced;\n var withViewportScroll = getDisplacementGroups({\n afterDragging: getDraggables(last.all, draggables),\n destination: destination,\n displacedBy: impact.displacedBy,\n viewport: scrolledViewport.frame,\n last: last,\n forceShouldAnimate: false\n });\n var withDroppableScroll = getDisplacementGroups({\n afterDragging: getDraggables(last.all, draggables),\n destination: scrolledDroppable,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n last: last,\n forceShouldAnimate: false\n });\n var invisible = {};\n var visible = {};\n var groups = [last, withViewportScroll, withDroppableScroll];\n last.all.forEach(function (id) {\n var displacement = tryGetVisible(id, groups);\n\n if (displacement) {\n visible[id] = displacement;\n return;\n }\n\n invisible[id] = true;\n });\n\n var newImpact = _extends({}, impact, {\n displaced: {\n all: last.all,\n invisible: invisible,\n visible: visible\n }\n });\n\n return newImpact;\n};\n\nvar withViewportDisplacement = function (viewport, point) {\n return add(viewport.scroll.diff.displacement, point);\n};\n\nvar getClientFromPageBorderBoxCenter = function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggable = _ref.draggable,\n viewport = _ref.viewport;\n var withoutPageScrollChange = withViewportDisplacement(viewport, pageBorderBoxCenter);\n var offset = subtract(withoutPageScrollChange, draggable.page.borderBox.center);\n return add(draggable.client.borderBox.center, offset);\n};\n\nvar isTotallyVisibleInNewLocation = function (_ref) {\n var draggable = _ref.draggable,\n destination = _ref.destination,\n newPageBorderBoxCenter = _ref.newPageBorderBoxCenter,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n _ref$onlyOnMainAxis = _ref.onlyOnMainAxis,\n onlyOnMainAxis = _ref$onlyOnMainAxis === void 0 ? false : _ref$onlyOnMainAxis;\n var changeNeeded = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center);\n var shifted = offsetByPosition(draggable.page.borderBox, changeNeeded);\n var args = {\n target: shifted,\n destination: destination,\n withDroppableDisplacement: withDroppableDisplacement,\n viewport: viewport\n };\n return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args);\n};\n\nvar moveToNextPlace = function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggable = _ref.draggable,\n destination = _ref.destination,\n draggables = _ref.draggables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n previousClientSelection = _ref.previousClientSelection,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isEnabled) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var isInHomeList = isHomeOf(draggable, destination);\n var impact = moveToNextCombine({\n isMovingForward: isMovingForward,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact\n }) || moveToNextIndex({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n draggable: draggable,\n draggables: draggables,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact,\n viewport: viewport,\n afterCritical: afterCritical\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: destination,\n newPageBorderBoxCenter: pageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n\n if (isVisibleInNewLocation) {\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n }\n\n var distance = subtract(pageBorderBoxCenter, previousPageBorderBoxCenter);\n var cautious = speculativelyIncrease({\n impact: impact,\n viewport: viewport,\n destination: destination,\n draggables: draggables,\n maxScrollChange: distance\n });\n return {\n clientSelection: previousClientSelection,\n impact: cautious,\n scrollJumpRequest: distance\n };\n};\n\nvar getKnownActive = function getKnownActive(droppable) {\n var rect = droppable.subject.active;\n !rect ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get clipped area from droppable') : invariant(false) : void 0;\n return rect;\n};\n\nvar getBestCrossAxisDroppable = function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n source = _ref.source,\n droppables = _ref.droppables,\n viewport = _ref.viewport;\n var active = source.subject.active;\n\n if (!active) {\n return null;\n }\n\n var axis = source.axis;\n var isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]);\n var candidates = toDroppableList(droppables).filter(function (droppable) {\n return droppable !== source;\n }).filter(function (droppable) {\n return droppable.isEnabled;\n }).filter(function (droppable) {\n return Boolean(droppable.subject.active);\n }).filter(function (droppable) {\n return isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable));\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n\n if (isMovingForward) {\n return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd];\n }\n\n return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart];\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n var isBetweenDestinationClipped = isWithin(activeOfTarget[axis.start], activeOfTarget[axis.end]);\n return isBetweenSourceClipped(activeOfTarget[axis.start]) || isBetweenSourceClipped(activeOfTarget[axis.end]) || isBetweenDestinationClipped(active[axis.start]) || isBetweenDestinationClipped(active[axis.end]);\n }).sort(function (a, b) {\n var first = getKnownActive(a)[axis.crossAxisStart];\n var second = getKnownActive(b)[axis.crossAxisStart];\n\n if (isMovingForward) {\n return first - second;\n }\n\n return second - first;\n }).filter(function (droppable, index, array) {\n return getKnownActive(droppable)[axis.crossAxisStart] === getKnownActive(array[0])[axis.crossAxisStart];\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0];\n }\n\n var contains = candidates.filter(function (droppable) {\n var isWithinDroppable = isWithin(getKnownActive(droppable)[axis.start], getKnownActive(droppable)[axis.end]);\n return isWithinDroppable(pageBorderBoxCenter[axis.line]);\n });\n\n if (contains.length === 1) {\n return contains[0];\n }\n\n if (contains.length > 1) {\n return contains.sort(function (a, b) {\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n }\n\n return candidates.sort(function (a, b) {\n var first = closest(pageBorderBoxCenter, getCorners(getKnownActive(a)));\n var second = closest(pageBorderBoxCenter, getCorners(getKnownActive(b)));\n\n if (first !== second) {\n return first - second;\n }\n\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n};\n\nvar getCurrentPageBorderBoxCenter = function getCurrentPageBorderBoxCenter(draggable, afterCritical) {\n var original = draggable.page.borderBox.center;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? subtract(original, afterCritical.displacedBy.point) : original;\n};\n\nvar getCurrentPageBorderBox = function getCurrentPageBorderBox(draggable, afterCritical) {\n var original = draggable.page.borderBox;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? offsetByPosition(original, negate(afterCritical.displacedBy.point)) : original;\n};\n\nvar getClosestDraggable = function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n viewport = _ref.viewport,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n afterCritical = _ref.afterCritical;\n var sorted = insideDestination.filter(function (draggable) {\n return isTotallyVisible({\n target: getCurrentPageBorderBox(draggable, afterCritical),\n destination: destination,\n viewport: viewport.frame,\n withDroppableDisplacement: true\n });\n }).sort(function (a, b) {\n var distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(a, afterCritical)));\n var distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(b, afterCritical)));\n\n if (distanceToA < distanceToB) {\n return -1;\n }\n\n if (distanceToB < distanceToA) {\n return 1;\n }\n\n return a.descriptor.index - b.descriptor.index;\n });\n return sorted[0] || null;\n};\n\nvar getDisplacedBy = memoizeOne(function getDisplacedBy(axis, displaceBy) {\n var displacement = displaceBy[axis.line];\n return {\n value: displacement,\n point: patch(axis.line, displacement)\n };\n});\n\nvar getRequiredGrowthForPlaceholder = function getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables) {\n var axis = droppable.axis;\n\n if (droppable.descriptor.mode === 'virtual') {\n return patch(axis.line, placeholderSize[axis.line]);\n }\n\n var availableSpace = droppable.subject.page.contentBox[axis.size];\n var insideDroppable = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var spaceUsed = insideDroppable.reduce(function (sum, dimension) {\n return sum + dimension.client.marginBox[axis.size];\n }, 0);\n var requiredSpace = spaceUsed + placeholderSize[axis.line];\n var needsToGrowBy = requiredSpace - availableSpace;\n\n if (needsToGrowBy <= 0) {\n return null;\n }\n\n return patch(axis.line, needsToGrowBy);\n};\n\nvar withMaxScroll = function withMaxScroll(frame, max) {\n return _extends({}, frame, {\n scroll: _extends({}, frame.scroll, {\n max: max\n })\n });\n};\n\nvar addPlaceholder = function addPlaceholder(droppable, draggable, draggables) {\n var frame = droppable.frame;\n !!isHomeOf(draggable, droppable) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not add placeholder space to home list') : invariant(false) : void 0;\n !!droppable.subject.withPlaceholder ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot add placeholder size to a subject when it already has one') : invariant(false) : void 0;\n var placeholderSize = getDisplacedBy(droppable.axis, draggable.displaceBy).point;\n var requiredGrowth = getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables);\n var added = {\n placeholderSize: placeholderSize,\n increasedBy: requiredGrowth,\n oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null\n };\n\n if (!frame) {\n var _subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: droppable.frame\n });\n\n return _extends({}, droppable, {\n subject: _subject\n });\n }\n\n var maxScroll = requiredGrowth ? add(frame.scroll.max, requiredGrowth) : frame.scroll.max;\n var newFrame = withMaxScroll(frame, maxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: newFrame\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\n\nvar removePlaceholder = function removePlaceholder(droppable) {\n var added = droppable.subject.withPlaceholder;\n !added ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove placeholder form subject when there was none') : invariant(false) : void 0;\n var frame = droppable.frame;\n\n if (!frame) {\n var _subject2 = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: null,\n withPlaceholder: null\n });\n\n return _extends({}, droppable, {\n subject: _subject2\n });\n }\n\n var oldMaxScroll = added.oldFrameMaxScroll;\n !oldMaxScroll ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected droppable with frame to have old max frame scroll when removing placeholder') : invariant(false) : void 0;\n var newFrame = withMaxScroll(frame, oldMaxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: newFrame,\n withPlaceholder: null\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\n\nvar moveToNewDroppable = function (_ref) {\n var previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n moveRelativeTo = _ref.moveRelativeTo,\n insideDestination = _ref.insideDestination,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n\n if (!moveRelativeTo) {\n if (insideDestination.length) {\n return null;\n }\n\n var proposed = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: 0\n }\n }\n };\n var proposedPageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: proposed,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var withPlaceholder = isHomeOf(draggable, destination) ? destination : addPlaceholder(destination, draggable, draggables);\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: withPlaceholder,\n newPageBorderBoxCenter: proposedPageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n return isVisibleInNewLocation ? proposed : null;\n }\n\n var isGoingBeforeTarget = Boolean(previousPageBorderBoxCenter[destination.axis.line] <= moveRelativeTo.page.borderBox.center[destination.axis.line]);\n\n var proposedIndex = function () {\n var relativeTo = moveRelativeTo.descriptor.index;\n\n if (moveRelativeTo.descriptor.id === draggable.descriptor.id) {\n return relativeTo;\n }\n\n if (isGoingBeforeTarget) {\n return relativeTo;\n }\n\n return relativeTo + 1;\n }();\n\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n displacedBy: displacedBy,\n last: emptyGroups,\n index: proposedIndex\n });\n};\n\nvar moveCrossAxis = function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n draggable = _ref.draggable,\n isOver = _ref.isOver,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var destination = getBestCrossAxisDroppable({\n isMovingForward: isMovingForward,\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n source: isOver,\n droppables: droppables,\n viewport: viewport\n });\n\n if (!destination) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var moveRelativeTo = getClosestDraggable({\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n viewport: viewport,\n destination: destination,\n insideDestination: insideDestination,\n afterCritical: afterCritical\n });\n var impact = moveToNewDroppable({\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n destination: destination,\n draggable: draggable,\n draggables: draggables,\n moveRelativeTo: moveRelativeTo,\n insideDestination: insideDestination,\n viewport: viewport,\n afterCritical: afterCritical\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n};\n\nvar whatIsDraggedOver = function (impact) {\n var at = impact.at;\n\n if (!at) {\n return null;\n }\n\n if (at.type === 'REORDER') {\n return at.destination.droppableId;\n }\n\n return at.combine.droppableId;\n};\n\nvar getDroppableOver = function getDroppableOver(impact, droppables) {\n var id = whatIsDraggedOver(impact);\n return id ? droppables[id] : null;\n};\n\nvar moveInDirection = function (_ref) {\n var state = _ref.state,\n type = _ref.type;\n var isActuallyOver = getDroppableOver(state.impact, state.dimensions.droppables);\n var isMainAxisMovementAllowed = Boolean(isActuallyOver);\n var home = state.dimensions.droppables[state.critical.droppable.id];\n var isOver = isActuallyOver || home;\n var direction = isOver.axis.direction;\n var isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT');\n\n if (isMovingOnMainAxis && !isMainAxisMovementAllowed) {\n return null;\n }\n\n var isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT';\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var previousPageBorderBoxCenter = state.current.page.borderBoxCenter;\n var _state$dimensions = state.dimensions,\n draggables = _state$dimensions.draggables,\n droppables = _state$dimensions.droppables;\n return isMovingOnMainAxis ? moveToNextPlace({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n destination: isOver,\n draggables: draggables,\n viewport: state.viewport,\n previousClientSelection: state.current.client.selection,\n previousImpact: state.impact,\n afterCritical: state.afterCritical\n }) : moveCrossAxis({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n isOver: isOver,\n draggables: draggables,\n droppables: droppables,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n};\n\nfunction isMovementAllowed(state) {\n return state.phase === 'DRAGGING' || state.phase === 'COLLECTING';\n}\n\nfunction isPositionInFrame(frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function run(point) {\n return isWithinVertical(point.y) && isWithinHorizontal(point.x);\n };\n}\n\nfunction getHasOverlap(first, second) {\n return first.left < second.right && first.right > second.left && first.top < second.bottom && first.bottom > second.top;\n}\n\nfunction getFurthestAway(_ref) {\n var pageBorderBox = _ref.pageBorderBox,\n draggable = _ref.draggable,\n candidates = _ref.candidates;\n var startCenter = draggable.page.borderBox.center;\n var sorted = candidates.map(function (candidate) {\n var axis = candidate.axis;\n var target = patch(candidate.axis.line, pageBorderBox.center[axis.line], candidate.page.borderBox.center[axis.crossAxisLine]);\n return {\n id: candidate.descriptor.id,\n distance: distance(startCenter, target)\n };\n }).sort(function (a, b) {\n return b.distance - a.distance;\n });\n return sorted[0] ? sorted[0].id : null;\n}\n\nfunction getDroppableOver$1(_ref2) {\n var pageBorderBox = _ref2.pageBorderBox,\n draggable = _ref2.draggable,\n droppables = _ref2.droppables;\n var candidates = toDroppableList(droppables).filter(function (item) {\n if (!item.isEnabled) {\n return false;\n }\n\n var active = item.subject.active;\n\n if (!active) {\n return false;\n }\n\n if (!getHasOverlap(pageBorderBox, active)) {\n return false;\n }\n\n if (isPositionInFrame(active)(pageBorderBox.center)) {\n return true;\n }\n\n var axis = item.axis;\n var childCenter = active.center[axis.crossAxisLine];\n var crossAxisStart = pageBorderBox[axis.crossAxisStart];\n var crossAxisEnd = pageBorderBox[axis.crossAxisEnd];\n var isContained = isWithin(active[axis.crossAxisStart], active[axis.crossAxisEnd]);\n var isStartContained = isContained(crossAxisStart);\n var isEndContained = isContained(crossAxisEnd);\n\n if (!isStartContained && !isEndContained) {\n return true;\n }\n\n if (isStartContained) {\n return crossAxisStart < childCenter;\n }\n\n return crossAxisEnd > childCenter;\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0].descriptor.id;\n }\n\n return getFurthestAway({\n pageBorderBox: pageBorderBox,\n draggable: draggable,\n candidates: candidates\n });\n}\n\nvar offsetRectByPosition = function offsetRectByPosition(rect, point) {\n return getRect(offsetByPosition(rect, point));\n};\n\nvar withDroppableScroll = function (droppable, area) {\n var frame = droppable.frame;\n\n if (!frame) {\n return area;\n }\n\n return offsetRectByPosition(area, frame.scroll.diff.value);\n};\n\nfunction getIsDisplaced(_ref) {\n var displaced = _ref.displaced,\n id = _ref.id;\n return Boolean(displaced.visible[id] || displaced.invisible[id]);\n}\n\nfunction atIndex(_ref) {\n var draggable = _ref.draggable,\n closest = _ref.closest,\n inHomeList = _ref.inHomeList;\n\n if (!closest) {\n return null;\n }\n\n if (!inHomeList) {\n return closest.descriptor.index;\n }\n\n if (closest.descriptor.index > draggable.descriptor.index) {\n return closest.descriptor.index - 1;\n }\n\n return closest.descriptor.index;\n}\n\nvar getReorderImpact = function (_ref2) {\n var targetRect = _ref2.pageBorderBoxWithDroppableScroll,\n draggable = _ref2.draggable,\n destination = _ref2.destination,\n insideDestination = _ref2.insideDestination,\n last = _ref2.last,\n viewport = _ref2.viewport,\n afterCritical = _ref2.afterCritical;\n var axis = destination.axis;\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var displacement = displacedBy.value;\n var targetStart = targetRect[axis.start];\n var targetEnd = targetRect[axis.end];\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var closest = find(withoutDragging, function (child) {\n var id = child.descriptor.id;\n var childCenter = child.page.borderBox.center[axis.line];\n var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n var isDisplaced = getIsDisplaced({\n displaced: last,\n id: id\n });\n\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd <= childCenter;\n }\n\n return targetStart < childCenter - displacement;\n }\n\n if (isDisplaced) {\n return targetEnd <= childCenter + displacement;\n }\n\n return targetStart < childCenter;\n });\n var newIndex = atIndex({\n draggable: draggable,\n closest: closest,\n inHomeList: isHomeOf(draggable, destination)\n });\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: last,\n displacedBy: displacedBy,\n index: newIndex\n });\n};\n\nvar combineThresholdDivisor = 4;\n\nvar getCombineImpact = function (_ref) {\n var draggable = _ref.draggable,\n targetRect = _ref.pageBorderBoxWithDroppableScroll,\n previousImpact = _ref.previousImpact,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var axis = destination.axis;\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var displacement = displacedBy.value;\n var targetStart = targetRect[axis.start];\n var targetEnd = targetRect[axis.end];\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var combineWith = find(withoutDragging, function (child) {\n var id = child.descriptor.id;\n var childRect = child.page.borderBox;\n var childSize = childRect[axis.size];\n var threshold = childSize / combineThresholdDivisor;\n var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n var isDisplaced = getIsDisplaced({\n displaced: previousImpact.displaced,\n id: id\n });\n\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + threshold && targetEnd < childRect[axis.end] - threshold;\n }\n\n return targetStart > childRect[axis.start] - displacement + threshold && targetStart < childRect[axis.end] - displacement - threshold;\n }\n\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + displacement + threshold && targetEnd < childRect[axis.end] + displacement - threshold;\n }\n\n return targetStart > childRect[axis.start] + threshold && targetStart < childRect[axis.end] - threshold;\n });\n\n if (!combineWith) {\n return null;\n }\n\n var impact = {\n displacedBy: displacedBy,\n displaced: previousImpact.displaced,\n at: {\n type: 'COMBINE',\n combine: {\n draggableId: combineWith.descriptor.id,\n droppableId: destination.descriptor.id\n }\n }\n };\n return impact;\n};\n\nvar getDragImpact = function (_ref) {\n var pageOffset = _ref.pageOffset,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var pageBorderBox = offsetRectByPosition(draggable.page.borderBox, pageOffset);\n var destinationId = getDroppableOver$1({\n pageBorderBox: pageBorderBox,\n draggable: draggable,\n droppables: droppables\n });\n\n if (!destinationId) {\n return noImpact;\n }\n\n var destination = droppables[destinationId];\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var pageBorderBoxWithDroppableScroll = withDroppableScroll(destination, pageBorderBox);\n return getCombineImpact({\n pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll,\n draggable: draggable,\n previousImpact: previousImpact,\n destination: destination,\n insideDestination: insideDestination,\n afterCritical: afterCritical\n }) || getReorderImpact({\n pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n last: previousImpact.displaced,\n viewport: viewport,\n afterCritical: afterCritical\n });\n};\n\nvar patchDroppableMap = function (droppables, updated) {\n var _extends2;\n\n return _extends({}, droppables, (_extends2 = {}, _extends2[updated.descriptor.id] = updated, _extends2));\n};\n\nvar clearUnusedPlaceholder = function clearUnusedPlaceholder(_ref) {\n var previousImpact = _ref.previousImpact,\n impact = _ref.impact,\n droppables = _ref.droppables;\n var last = whatIsDraggedOver(previousImpact);\n var now = whatIsDraggedOver(impact);\n\n if (!last) {\n return droppables;\n }\n\n if (last === now) {\n return droppables;\n }\n\n var lastDroppable = droppables[last];\n\n if (!lastDroppable.subject.withPlaceholder) {\n return droppables;\n }\n\n var updated = removePlaceholder(lastDroppable);\n return patchDroppableMap(droppables, updated);\n};\n\nvar recomputePlaceholders = function (_ref2) {\n var draggable = _ref2.draggable,\n draggables = _ref2.draggables,\n droppables = _ref2.droppables,\n previousImpact = _ref2.previousImpact,\n impact = _ref2.impact;\n var cleaned = clearUnusedPlaceholder({\n previousImpact: previousImpact,\n impact: impact,\n droppables: droppables\n });\n var isOver = whatIsDraggedOver(impact);\n\n if (!isOver) {\n return cleaned;\n }\n\n var droppable = droppables[isOver];\n\n if (isHomeOf(draggable, droppable)) {\n return cleaned;\n }\n\n if (droppable.subject.withPlaceholder) {\n return cleaned;\n }\n\n var patched = addPlaceholder(droppable, draggable, draggables);\n return patchDroppableMap(cleaned, patched);\n};\n\nvar update = function (_ref) {\n var state = _ref.state,\n forcedClientSelection = _ref.clientSelection,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport,\n forcedImpact = _ref.impact,\n scrollJumpRequest = _ref.scrollJumpRequest;\n var viewport = forcedViewport || state.viewport;\n var dimensions = forcedDimensions || state.dimensions;\n var clientSelection = forcedClientSelection || state.current.client.selection;\n var offset = subtract(clientSelection, state.initial.client.selection);\n var client = {\n offset: offset,\n selection: clientSelection,\n borderBoxCenter: add(state.initial.client.borderBoxCenter, offset)\n };\n var page = {\n selection: add(client.selection, viewport.scroll.current),\n borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current),\n offset: add(client.offset, viewport.scroll.diff.value)\n };\n var current = {\n client: client,\n page: page\n };\n\n if (state.phase === 'COLLECTING') {\n return _extends({\n phase: 'COLLECTING'\n }, state, {\n dimensions: dimensions,\n viewport: viewport,\n current: current\n });\n }\n\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var newImpact = forcedImpact || getDragImpact({\n pageOffset: page.offset,\n draggable: draggable,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: state.impact,\n viewport: viewport,\n afterCritical: state.afterCritical\n });\n var withUpdatedPlaceholders = recomputePlaceholders({\n draggable: draggable,\n impact: newImpact,\n previousImpact: state.impact,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables\n });\n\n var result = _extends({}, state, {\n current: current,\n dimensions: {\n draggables: dimensions.draggables,\n droppables: withUpdatedPlaceholders\n },\n impact: newImpact,\n viewport: viewport,\n scrollJumpRequest: scrollJumpRequest || null,\n forceShouldAnimate: scrollJumpRequest ? false : null\n });\n\n return result;\n};\n\nfunction getDraggables$1(ids, draggables) {\n return ids.map(function (id) {\n return draggables[id];\n });\n}\n\nvar recompute = function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n draggables = _ref.draggables,\n destination = _ref.destination,\n forceShouldAnimate = _ref.forceShouldAnimate;\n var last = impact.displaced;\n var afterDragging = getDraggables$1(last.all, draggables);\n var displaced = getDisplacementGroups({\n afterDragging: afterDragging,\n destination: destination,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n forceShouldAnimate: forceShouldAnimate,\n last: last\n });\n return _extends({}, impact, {\n displaced: displaced\n });\n};\n\nvar getClientBorderBoxCenter = function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n afterCritical: afterCritical\n });\n return getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n};\n\nvar refreshSnap = function (_ref) {\n var state = _ref.state,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport;\n !(state.movementMode === 'SNAP') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var needsVisibilityCheck = state.impact;\n var viewport = forcedViewport || state.viewport;\n var dimensions = forcedDimensions || state.dimensions;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var draggable = draggables[state.critical.draggable.id];\n var isOver = whatIsDraggedOver(needsVisibilityCheck);\n !isOver ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must be over a destination in SNAP movement mode') : invariant(false) : void 0;\n var destination = droppables[isOver];\n var impact = recompute({\n impact: needsVisibilityCheck,\n viewport: viewport,\n destination: destination,\n draggables: draggables\n });\n var clientSelection = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n viewport: viewport,\n afterCritical: state.afterCritical\n });\n return update({\n impact: impact,\n clientSelection: clientSelection,\n state: state,\n dimensions: dimensions,\n viewport: viewport\n });\n};\n\nvar getHomeLocation = function (descriptor) {\n return {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n };\n};\n\nvar getLiftEffect = function (_ref) {\n var draggable = _ref.draggable,\n home = _ref.home,\n draggables = _ref.draggables,\n viewport = _ref.viewport;\n var displacedBy = getDisplacedBy(home.axis, draggable.displaceBy);\n var insideHome = getDraggablesInsideDroppable(home.descriptor.id, draggables);\n var rawIndex = insideHome.indexOf(draggable);\n !(rawIndex !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected draggable to be inside home list') : invariant(false) : void 0;\n var afterDragging = insideHome.slice(rawIndex + 1);\n var effected = afterDragging.reduce(function (previous, item) {\n previous[item.descriptor.id] = true;\n return previous;\n }, {});\n var afterCritical = {\n inVirtualList: home.descriptor.mode === 'virtual',\n displacedBy: displacedBy,\n effected: effected\n };\n var displaced = getDisplacementGroups({\n afterDragging: afterDragging,\n destination: home,\n displacedBy: displacedBy,\n last: null,\n viewport: viewport.frame,\n forceShouldAnimate: false\n });\n var impact = {\n displaced: displaced,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: getHomeLocation(draggable.descriptor)\n }\n };\n return {\n impact: impact,\n afterCritical: afterCritical\n };\n};\n\nvar patchDimensionMap = function (dimensions, updated) {\n return {\n draggables: dimensions.draggables,\n droppables: patchDroppableMap(dimensions.droppables, updated)\n };\n};\n\nvar start = function start(key) {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\n\nvar finish = function finish(key) {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\n\nvar offsetDraggable = function (_ref) {\n var draggable = _ref.draggable,\n offset$1 = _ref.offset,\n initialWindowScroll = _ref.initialWindowScroll;\n var client = offset(draggable.client, offset$1);\n var page = withScroll(client, initialWindowScroll);\n\n var moved = _extends({}, draggable, {\n placeholder: _extends({}, draggable.placeholder, {\n client: client\n }),\n client: client,\n page: page\n });\n\n return moved;\n};\n\nvar getFrame = function (droppable) {\n var frame = droppable.frame;\n !frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected Droppable to have a frame') : invariant(false) : void 0;\n return frame;\n};\n\nvar adjustAdditionsForScrollChanges = function (_ref) {\n var additions = _ref.additions,\n updatedDroppables = _ref.updatedDroppables,\n viewport = _ref.viewport;\n var windowScrollChange = viewport.scroll.diff.value;\n return additions.map(function (draggable) {\n var droppableId = draggable.descriptor.droppableId;\n var modified = updatedDroppables[droppableId];\n var frame = getFrame(modified);\n var droppableScrollChange = frame.scroll.diff.value;\n var totalChange = add(windowScrollChange, droppableScrollChange);\n var moved = offsetDraggable({\n draggable: draggable,\n offset: totalChange,\n initialWindowScroll: viewport.scroll.initial\n });\n return moved;\n });\n};\n\nvar publishWhileDraggingInVirtual = function (_ref) {\n var state = _ref.state,\n published = _ref.published;\n start();\n var withScrollChange = published.modified.map(function (update) {\n var existing = state.dimensions.droppables[update.droppableId];\n var scrolled = scrollDroppable(existing, update.scroll);\n return scrolled;\n });\n\n var droppables = _extends({}, state.dimensions.droppables, {}, toDroppableMap(withScrollChange));\n\n var updatedAdditions = toDraggableMap(adjustAdditionsForScrollChanges({\n additions: published.additions,\n updatedDroppables: droppables,\n viewport: state.viewport\n }));\n\n var draggables = _extends({}, state.dimensions.draggables, {}, updatedAdditions);\n\n published.removals.forEach(function (id) {\n delete draggables[id];\n });\n var dimensions = {\n droppables: droppables,\n draggables: draggables\n };\n var wasOverId = whatIsDraggedOver(state.impact);\n var wasOver = wasOverId ? dimensions.droppables[wasOverId] : null;\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var home = dimensions.droppables[state.critical.droppable.id];\n\n var _getLiftEffect = getLiftEffect({\n draggable: draggable,\n home: home,\n draggables: draggables,\n viewport: state.viewport\n }),\n onLiftImpact = _getLiftEffect.impact,\n afterCritical = _getLiftEffect.afterCritical;\n\n var previousImpact = wasOver && wasOver.isCombineEnabled ? state.impact : onLiftImpact;\n var impact = getDragImpact({\n pageOffset: state.current.page.offset,\n draggable: dimensions.draggables[state.critical.draggable.id],\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: previousImpact,\n viewport: state.viewport,\n afterCritical: afterCritical\n });\n finish();\n\n var draggingState = _extends({\n phase: 'DRAGGING'\n }, state, {\n phase: 'DRAGGING',\n impact: impact,\n onLiftImpact: onLiftImpact,\n dimensions: dimensions,\n afterCritical: afterCritical,\n forceShouldAnimate: false\n });\n\n if (state.phase === 'COLLECTING') {\n return draggingState;\n }\n\n var dropPending = _extends({\n phase: 'DROP_PENDING'\n }, draggingState, {\n phase: 'DROP_PENDING',\n reason: state.reason,\n isWaiting: false\n });\n\n return dropPending;\n};\n\nvar isSnapping = function isSnapping(state) {\n return state.movementMode === 'SNAP';\n};\n\nvar postDroppableChange = function postDroppableChange(state, updated, isEnabledChanging) {\n var dimensions = patchDimensionMap(state.dimensions, updated);\n\n if (!isSnapping(state) || isEnabledChanging) {\n return update({\n state: state,\n dimensions: dimensions\n });\n }\n\n return refreshSnap({\n state: state,\n dimensions: dimensions\n });\n};\n\nfunction removeScrollJumpRequest(state) {\n if (state.isDragging && state.movementMode === 'SNAP') {\n return _extends({\n phase: 'DRAGGING'\n }, state, {\n scrollJumpRequest: null\n });\n }\n\n return state;\n}\n\nvar idle = {\n phase: 'IDLE',\n completed: null,\n shouldFlush: false\n};\n\nvar reducer = function (state, action) {\n if (state === void 0) {\n state = idle;\n }\n\n if (action.type === 'FLUSH') {\n return _extends({}, idle, {\n shouldFlush: true\n });\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n !(state.phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'INITIAL_PUBLISH must come after a IDLE phase') : invariant(false) : void 0;\n var _action$payload = action.payload,\n critical = _action$payload.critical,\n clientSelection = _action$payload.clientSelection,\n viewport = _action$payload.viewport,\n dimensions = _action$payload.dimensions,\n movementMode = _action$payload.movementMode;\n var draggable = dimensions.draggables[critical.draggable.id];\n var home = dimensions.droppables[critical.droppable.id];\n var client = {\n selection: clientSelection,\n borderBoxCenter: draggable.client.borderBox.center,\n offset: origin\n };\n var initial = {\n client: client,\n page: {\n selection: add(client.selection, viewport.scroll.initial),\n borderBoxCenter: add(client.selection, viewport.scroll.initial),\n offset: add(client.selection, viewport.scroll.diff.value)\n }\n };\n var isWindowScrollAllowed = toDroppableList(dimensions.droppables).every(function (item) {\n return !item.isFixedOnPage;\n });\n\n var _getLiftEffect = getLiftEffect({\n draggable: draggable,\n home: home,\n draggables: dimensions.draggables,\n viewport: viewport\n }),\n impact = _getLiftEffect.impact,\n afterCritical = _getLiftEffect.afterCritical;\n\n var result = {\n phase: 'DRAGGING',\n isDragging: true,\n critical: critical,\n movementMode: movementMode,\n dimensions: dimensions,\n initial: initial,\n current: initial,\n isWindowScrollAllowed: isWindowScrollAllowed,\n impact: impact,\n afterCritical: afterCritical,\n onLiftImpact: impact,\n viewport: viewport,\n scrollJumpRequest: null,\n forceShouldAnimate: null\n };\n return result;\n }\n\n if (action.type === 'COLLECTION_STARTING') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Collection cannot start from phase \" + state.phase) : invariant(false) : void 0;\n\n var _result = _extends({\n phase: 'COLLECTING'\n }, state, {\n phase: 'COLLECTING'\n });\n\n return _result;\n }\n\n if (action.type === 'PUBLISH_WHILE_DRAGGING') {\n !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unexpected \" + action.type + \" received in phase \" + state.phase) : invariant(false) : void 0;\n return publishWhileDraggingInVirtual({\n state: state,\n published: action.payload\n });\n }\n\n if (action.type === 'MOVE') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _clientSelection = action.payload.client;\n\n if (isEqual(_clientSelection, state.current.client.selection)) {\n return state;\n }\n\n return update({\n state: state,\n clientSelection: _clientSelection,\n impact: isSnapping(state) ? state.impact : null\n });\n }\n\n if (action.type === 'UPDATE_DROPPABLE_SCROLL') {\n if (state.phase === 'DROP_PENDING') {\n return removeScrollJumpRequest(state);\n }\n\n if (state.phase === 'COLLECTING') {\n return removeScrollJumpRequest(state);\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload2 = action.payload,\n id = _action$payload2.id,\n newScroll = _action$payload2.newScroll;\n var target = state.dimensions.droppables[id];\n\n if (!target) {\n return state;\n }\n\n var scrolled = scrollDroppable(target, newScroll);\n return postDroppableChange(state, scrolled, false);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload3 = action.payload,\n _id = _action$payload3.id,\n isEnabled = _action$payload3.isEnabled;\n var _target = state.dimensions.droppables[_id];\n !_target ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id + \"] to toggle its enabled state\") : invariant(false) : void 0;\n !(_target.isEnabled !== isEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isEnabled to \" + String(isEnabled) + \"\\n but it is already \" + String(_target.isEnabled)) : invariant(false) : void 0;\n\n var updated = _extends({}, _target, {\n isEnabled: isEnabled\n });\n\n return postDroppableChange(state, updated, true);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload4 = action.payload,\n _id2 = _action$payload4.id,\n isCombineEnabled = _action$payload4.isCombineEnabled;\n var _target2 = state.dimensions.droppables[_id2];\n !_target2 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id2 + \"] to toggle its isCombineEnabled state\") : invariant(false) : void 0;\n !(_target2.isCombineEnabled !== isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isCombineEnabled to \" + String(isCombineEnabled) + \"\\n but it is already \" + String(_target2.isCombineEnabled)) : invariant(false) : void 0;\n\n var _updated = _extends({}, _target2, {\n isCombineEnabled: isCombineEnabled\n });\n\n return postDroppableChange(state, _updated, true);\n }\n\n if (action.type === 'MOVE_BY_WINDOW_SCROLL') {\n if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot move by window in phase \" + state.phase) : invariant(false) : void 0;\n !state.isWindowScrollAllowed ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Window scrolling is currently not supported for fixed lists') : invariant(false) : void 0;\n var _newScroll = action.payload.newScroll;\n\n if (isEqual(state.viewport.scroll.current, _newScroll)) {\n return removeScrollJumpRequest(state);\n }\n\n var _viewport = scrollViewport(state.viewport, _newScroll);\n\n if (isSnapping(state)) {\n return refreshSnap({\n state: state,\n viewport: _viewport\n });\n }\n\n return update({\n state: state,\n viewport: _viewport\n });\n }\n\n if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') {\n if (!isMovementAllowed(state)) {\n return state;\n }\n\n var maxScroll = action.payload.maxScroll;\n\n if (isEqual(maxScroll, state.viewport.scroll.max)) {\n return state;\n }\n\n var withMaxScroll = _extends({}, state.viewport, {\n scroll: _extends({}, state.viewport.scroll, {\n max: maxScroll\n })\n });\n\n return _extends({\n phase: 'DRAGGING'\n }, state, {\n viewport: withMaxScroll\n });\n }\n\n if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" received while not in DRAGGING phase\") : invariant(false) : void 0;\n\n var _result2 = moveInDirection({\n state: state,\n type: action.type\n });\n\n if (!_result2) {\n return state;\n }\n\n return update({\n state: state,\n impact: _result2.impact,\n clientSelection: _result2.clientSelection,\n scrollJumpRequest: _result2.scrollJumpRequest\n });\n }\n\n if (action.type === 'DROP_PENDING') {\n var reason = action.payload.reason;\n !(state.phase === 'COLLECTING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : invariant(false) : void 0;\n\n var newState = _extends({\n phase: 'DROP_PENDING'\n }, state, {\n phase: 'DROP_PENDING',\n isWaiting: true,\n reason: reason\n });\n\n return newState;\n }\n\n if (action.type === 'DROP_ANIMATE') {\n var _action$payload5 = action.payload,\n completed = _action$payload5.completed,\n dropDuration = _action$payload5.dropDuration,\n newHomeClientOffset = _action$payload5.newHomeClientOffset;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot animate drop from phase \" + state.phase) : invariant(false) : void 0;\n var _result3 = {\n phase: 'DROP_ANIMATING',\n completed: completed,\n dropDuration: dropDuration,\n newHomeClientOffset: newHomeClientOffset,\n dimensions: state.dimensions\n };\n return _result3;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var _completed = action.payload.completed;\n return {\n phase: 'IDLE',\n completed: _completed,\n shouldFlush: false\n };\n }\n\n return state;\n};\n\nvar beforeInitialCapture = function beforeInitialCapture(args) {\n return {\n type: 'BEFORE_INITIAL_CAPTURE',\n payload: args\n };\n};\n\nvar lift = function lift(args) {\n return {\n type: 'LIFT',\n payload: args\n };\n};\n\nvar initialPublish = function initialPublish(args) {\n return {\n type: 'INITIAL_PUBLISH',\n payload: args\n };\n};\n\nvar publishWhileDragging = function publishWhileDragging(args) {\n return {\n type: 'PUBLISH_WHILE_DRAGGING',\n payload: args\n };\n};\n\nvar collectionStarting = function collectionStarting() {\n return {\n type: 'COLLECTION_STARTING',\n payload: null\n };\n};\n\nvar updateDroppableScroll = function updateDroppableScroll(args) {\n return {\n type: 'UPDATE_DROPPABLE_SCROLL',\n payload: args\n };\n};\n\nvar updateDroppableIsEnabled = function updateDroppableIsEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_ENABLED',\n payload: args\n };\n};\n\nvar updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED',\n payload: args\n };\n};\n\nvar move = function move(args) {\n return {\n type: 'MOVE',\n payload: args\n };\n};\n\nvar moveByWindowScroll = function moveByWindowScroll(args) {\n return {\n type: 'MOVE_BY_WINDOW_SCROLL',\n payload: args\n };\n};\n\nvar updateViewportMaxScroll = function updateViewportMaxScroll(args) {\n return {\n type: 'UPDATE_VIEWPORT_MAX_SCROLL',\n payload: args\n };\n};\n\nvar moveUp = function moveUp() {\n return {\n type: 'MOVE_UP',\n payload: null\n };\n};\n\nvar moveDown = function moveDown() {\n return {\n type: 'MOVE_DOWN',\n payload: null\n };\n};\n\nvar moveRight = function moveRight() {\n return {\n type: 'MOVE_RIGHT',\n payload: null\n };\n};\n\nvar moveLeft = function moveLeft() {\n return {\n type: 'MOVE_LEFT',\n payload: null\n };\n};\n\nvar flush = function flush() {\n return {\n type: 'FLUSH',\n payload: null\n };\n};\n\nvar animateDrop = function animateDrop(args) {\n return {\n type: 'DROP_ANIMATE',\n payload: args\n };\n};\n\nvar completeDrop = function completeDrop(args) {\n return {\n type: 'DROP_COMPLETE',\n payload: args\n };\n};\n\nvar drop = function drop(args) {\n return {\n type: 'DROP',\n payload: args\n };\n};\n\nvar dropPending = function dropPending(args) {\n return {\n type: 'DROP_PENDING',\n payload: args\n };\n};\n\nvar dropAnimationFinished = function dropAnimationFinished() {\n return {\n type: 'DROP_ANIMATION_FINISHED',\n payload: null\n };\n};\n\nfunction checkIndexes(insideDestination) {\n if (insideDestination.length <= 1) {\n return;\n }\n\n var indexes = insideDestination.map(function (d) {\n return d.descriptor.index;\n });\n var errors = {};\n\n for (var i = 1; i < indexes.length; i++) {\n var current = indexes[i];\n var previous = indexes[i - 1];\n\n if (current !== previous + 1) {\n errors[current] = true;\n }\n }\n\n if (!Object.keys(errors).length) {\n return;\n }\n\n var formatted = indexes.map(function (index) {\n var hasError = Boolean(errors[index]);\n return hasError ? \"[\\uD83D\\uDD25\" + index + \"]\" : \"\" + index;\n }).join(', ');\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected non-consecutive indexes.\\n\\n (This can cause unexpected bugs)\\n\\n \" + formatted + \"\\n \") : void 0;\n}\n\nfunction validateDimensions(critical, dimensions) {\n if (process.env.NODE_ENV !== 'production') {\n var insideDestination = getDraggablesInsideDroppable(critical.droppable.id, dimensions.draggables);\n checkIndexes(insideDestination);\n }\n}\n\nvar lift$1 = function (marshal) {\n return function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'LIFT') {\n next(action);\n return;\n }\n\n var _action$payload = action.payload,\n id = _action$payload.id,\n clientSelection = _action$payload.clientSelection,\n movementMode = _action$payload.movementMode;\n var initial = getState();\n\n if (initial.phase === 'DROP_ANIMATING') {\n dispatch(completeDrop({\n completed: initial.completed\n }));\n }\n\n !(getState().phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase to start a drag') : invariant(false) : void 0;\n dispatch(flush());\n dispatch(beforeInitialCapture({\n draggableId: id,\n movementMode: movementMode\n }));\n var scrollOptions = {\n shouldPublishImmediately: movementMode === 'SNAP'\n };\n var request = {\n draggableId: id,\n scrollOptions: scrollOptions\n };\n\n var _marshal$startPublish = marshal.startPublishing(request),\n critical = _marshal$startPublish.critical,\n dimensions = _marshal$startPublish.dimensions,\n viewport = _marshal$startPublish.viewport;\n\n validateDimensions(critical, dimensions);\n dispatch(initialPublish({\n critical: critical,\n dimensions: dimensions,\n clientSelection: clientSelection,\n movementMode: movementMode,\n viewport: viewport\n }));\n };\n };\n };\n};\n\nvar style = function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n marshal.dragging();\n }\n\n if (action.type === 'DROP_ANIMATE') {\n marshal.dropping(action.payload.completed.result.reason);\n }\n\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE') {\n marshal.resting();\n }\n\n next(action);\n };\n };\n };\n};\n\nvar curves = {\n outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)',\n drop: 'cubic-bezier(.2,1,.1,1)'\n};\nvar combine = {\n opacity: {\n drop: 0,\n combining: 0.7\n },\n scale: {\n drop: 0.75\n }\n};\nvar timings = {\n outOfTheWay: 0.2,\n minDropTime: 0.33,\n maxDropTime: 0.55\n};\nvar outOfTheWayTiming = timings.outOfTheWay + \"s \" + curves.outOfTheWay;\nvar transitions = {\n fluid: \"opacity \" + outOfTheWayTiming,\n snap: \"transform \" + outOfTheWayTiming + \", opacity \" + outOfTheWayTiming,\n drop: function drop(duration) {\n var timing = duration + \"s \" + curves.drop;\n return \"transform \" + timing + \", opacity \" + timing;\n },\n outOfTheWay: \"transform \" + outOfTheWayTiming,\n placeholder: \"height \" + outOfTheWayTiming + \", width \" + outOfTheWayTiming + \", margin \" + outOfTheWayTiming\n};\n\nvar moveTo = function moveTo(offset) {\n return isEqual(offset, origin) ? null : \"translate(\" + offset.x + \"px, \" + offset.y + \"px)\";\n};\n\nvar transforms = {\n moveTo: moveTo,\n drop: function drop(offset, isCombining) {\n var translate = moveTo(offset);\n\n if (!translate) {\n return null;\n }\n\n if (!isCombining) {\n return translate;\n }\n\n return translate + \" scale(\" + combine.scale.drop + \")\";\n }\n};\nvar minDropTime = timings.minDropTime,\n maxDropTime = timings.maxDropTime;\nvar dropTimeRange = maxDropTime - minDropTime;\nvar maxDropTimeAtDistance = 1500;\nvar cancelDropModifier = 0.6;\n\nvar getDropDuration = function (_ref) {\n var current = _ref.current,\n destination = _ref.destination,\n reason = _ref.reason;\n var distance$1 = distance(current, destination);\n\n if (distance$1 <= 0) {\n return minDropTime;\n }\n\n if (distance$1 >= maxDropTimeAtDistance) {\n return maxDropTime;\n }\n\n var percentage = distance$1 / maxDropTimeAtDistance;\n var duration = minDropTime + dropTimeRange * percentage;\n var withDuration = reason === 'CANCEL' ? duration * cancelDropModifier : duration;\n return Number(withDuration.toFixed(2));\n};\n\nvar getNewHomeClientOffset = function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n dimensions = _ref.dimensions,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var droppableId = whatIsDraggedOver(impact);\n var destination = droppableId ? droppables[droppableId] : null;\n var home = droppables[draggable.descriptor.droppableId];\n var newClientCenter = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n afterCritical: afterCritical,\n droppable: destination || home,\n viewport: viewport\n });\n var offset = subtract(newClientCenter, draggable.client.borderBox.center);\n return offset;\n};\n\nvar getDropImpact = function (_ref) {\n var draggables = _ref.draggables,\n reason = _ref.reason,\n lastImpact = _ref.lastImpact,\n home = _ref.home,\n viewport = _ref.viewport,\n onLiftImpact = _ref.onLiftImpact;\n\n if (!lastImpact.at || reason !== 'DROP') {\n var recomputedHomeImpact = recompute({\n draggables: draggables,\n impact: onLiftImpact,\n destination: home,\n viewport: viewport,\n forceShouldAnimate: true\n });\n return {\n impact: recomputedHomeImpact,\n didDropInsideDroppable: false\n };\n }\n\n if (lastImpact.at.type === 'REORDER') {\n return {\n impact: lastImpact,\n didDropInsideDroppable: true\n };\n }\n\n var withoutMovement = _extends({}, lastImpact, {\n displaced: emptyGroups\n });\n\n return {\n impact: withoutMovement,\n didDropInsideDroppable: true\n };\n};\n\nvar drop$1 = function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP') {\n next(action);\n return;\n }\n\n var state = getState();\n var reason = action.payload.reason;\n\n if (state.phase === 'COLLECTING') {\n dispatch(dropPending({\n reason: reason\n }));\n return;\n }\n\n if (state.phase === 'IDLE') {\n return;\n }\n\n var isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting;\n !!isWaitingForDrop ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : invariant(false) : void 0;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot drop in phase: \" + state.phase) : invariant(false) : void 0;\n var critical = state.critical;\n var dimensions = state.dimensions;\n var draggable = dimensions.draggables[state.critical.draggable.id];\n\n var _getDropImpact = getDropImpact({\n reason: reason,\n lastImpact: state.impact,\n afterCritical: state.afterCritical,\n onLiftImpact: state.onLiftImpact,\n home: state.dimensions.droppables[state.critical.droppable.id],\n viewport: state.viewport,\n draggables: state.dimensions.draggables\n }),\n impact = _getDropImpact.impact,\n didDropInsideDroppable = _getDropImpact.didDropInsideDroppable;\n\n var destination = didDropInsideDroppable ? tryGetDestination(impact) : null;\n var combine = didDropInsideDroppable ? tryGetCombine(impact) : null;\n var source = {\n index: critical.draggable.index,\n droppableId: critical.droppable.id\n };\n var result = {\n draggableId: draggable.descriptor.id,\n type: draggable.descriptor.type,\n source: source,\n reason: reason,\n mode: state.movementMode,\n destination: destination,\n combine: combine\n };\n var newHomeClientOffset = getNewHomeClientOffset({\n impact: impact,\n draggable: draggable,\n dimensions: dimensions,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n var completed = {\n critical: state.critical,\n afterCritical: state.afterCritical,\n result: result,\n impact: impact\n };\n var isAnimationRequired = !isEqual(state.current.client.offset, newHomeClientOffset) || Boolean(result.combine);\n\n if (!isAnimationRequired) {\n dispatch(completeDrop({\n completed: completed\n }));\n return;\n }\n\n var dropDuration = getDropDuration({\n current: state.current.client.offset,\n destination: newHomeClientOffset,\n reason: reason\n });\n var args = {\n newHomeClientOffset: newHomeClientOffset,\n dropDuration: dropDuration,\n completed: completed\n };\n dispatch(animateDrop(args));\n };\n };\n};\n\nvar getWindowScroll = function () {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n};\n\nfunction getWindowScrollBinding(update) {\n return {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn(event) {\n if (event.target !== window && event.target !== window.document) {\n return;\n }\n\n update();\n }\n };\n}\n\nfunction getScrollListener(_ref) {\n var onWindowScroll = _ref.onWindowScroll;\n\n function updateScroll() {\n onWindowScroll(getWindowScroll());\n }\n\n var scheduled = rafSchd(updateScroll);\n var binding = getWindowScrollBinding(scheduled);\n var unbind = noop;\n\n function isActive() {\n return unbind !== noop;\n }\n\n function start() {\n !!isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start scroll listener when already active') : invariant(false) : void 0;\n unbind = bindEvents(window, [binding]);\n }\n\n function stop() {\n !isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop scroll listener when not active') : invariant(false) : void 0;\n scheduled.cancel();\n unbind();\n unbind = noop;\n }\n\n return {\n start: start,\n stop: stop,\n isActive: isActive\n };\n}\n\nvar shouldEnd = function shouldEnd(action) {\n return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\n};\n\nvar scrollListener = function (store) {\n var listener = getScrollListener({\n onWindowScroll: function onWindowScroll(newScroll) {\n store.dispatch(moveByWindowScroll({\n newScroll: newScroll\n }));\n }\n });\n return function (next) {\n return function (action) {\n if (!listener.isActive() && action.type === 'INITIAL_PUBLISH') {\n listener.start();\n }\n\n if (listener.isActive() && shouldEnd(action)) {\n listener.stop();\n }\n\n next(action);\n };\n };\n};\n\nvar getExpiringAnnounce = function (announce) {\n var wasCalled = false;\n var isExpired = false;\n var timeoutId = setTimeout(function () {\n isExpired = true;\n });\n\n var result = function result(message) {\n if (wasCalled) {\n process.env.NODE_ENV !== \"production\" ? warning('Announcement already made. Not making a second announcement') : void 0;\n return;\n }\n\n if (isExpired) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Announcements cannot be made asynchronously.\\n Default message has already been announced.\\n \") : void 0;\n return;\n }\n\n wasCalled = true;\n announce(message);\n clearTimeout(timeoutId);\n };\n\n result.wasCalled = function () {\n return wasCalled;\n };\n\n return result;\n};\n\nvar getAsyncMarshal = function () {\n var entries = [];\n\n var execute = function execute(timerId) {\n var index = findIndex(entries, function (item) {\n return item.timerId === timerId;\n });\n !(index !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find timer') : invariant(false) : void 0;\n\n var _entries$splice = entries.splice(index, 1),\n entry = _entries$splice[0];\n\n entry.callback();\n };\n\n var add = function add(fn) {\n var timerId = setTimeout(function () {\n return execute(timerId);\n });\n var entry = {\n timerId: timerId,\n callback: fn\n };\n entries.push(entry);\n };\n\n var flush = function flush() {\n if (!entries.length) {\n return;\n }\n\n var shallow = [].concat(entries);\n entries.length = 0;\n shallow.forEach(function (entry) {\n clearTimeout(entry.timerId);\n entry.callback();\n });\n };\n\n return {\n add: add,\n flush: flush\n };\n};\n\nvar areLocationsEqual = function areLocationsEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.droppableId === second.droppableId && first.index === second.index;\n};\n\nvar isCombineEqual = function isCombineEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.draggableId === second.draggableId && first.droppableId === second.droppableId;\n};\n\nvar isCriticalEqual = function isCriticalEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n var isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index;\n var isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type;\n return isDraggableEqual && isDroppableEqual;\n};\n\nvar withTimings = function withTimings(key, fn) {\n start();\n fn();\n finish();\n};\n\nvar getDragStart = function getDragStart(critical, mode) {\n return {\n draggableId: critical.draggable.id,\n type: critical.droppable.type,\n source: {\n droppableId: critical.droppable.id,\n index: critical.draggable.index\n },\n mode: mode\n };\n};\n\nvar execute = function execute(responder, data, announce, getDefaultMessage) {\n if (!responder) {\n announce(getDefaultMessage(data));\n return;\n }\n\n var willExpire = getExpiringAnnounce(announce);\n var provided = {\n announce: willExpire\n };\n responder(data, provided);\n\n if (!willExpire.wasCalled()) {\n announce(getDefaultMessage(data));\n }\n};\n\nvar getPublisher = function (getResponders, announce) {\n var asyncMarshal = getAsyncMarshal();\n var dragging = null;\n\n var beforeCapture = function beforeCapture(draggableId, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeCapture as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeCapture', function () {\n var fn = getResponders().onBeforeCapture;\n\n if (fn) {\n var before = {\n draggableId: draggableId,\n mode: mode\n };\n fn(before);\n }\n });\n };\n\n var beforeStart = function beforeStart(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeDragStart', function () {\n var fn = getResponders().onBeforeDragStart;\n\n if (fn) {\n fn(getDragStart(critical, mode));\n }\n });\n };\n\n var start = function start(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n var data = getDragStart(critical, mode);\n dragging = {\n mode: mode,\n lastCritical: critical,\n lastLocation: data.source,\n lastCombine: null\n };\n asyncMarshal.add(function () {\n withTimings('onDragStart', function () {\n return execute(getResponders().onDragStart, data, announce, preset.onDragStart);\n });\n });\n };\n\n var update = function update(critical, impact) {\n var location = tryGetDestination(impact);\n var combine = tryGetCombine(impact);\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : invariant(false) : void 0;\n var hasCriticalChanged = !isCriticalEqual(critical, dragging.lastCritical);\n\n if (hasCriticalChanged) {\n dragging.lastCritical = critical;\n }\n\n var hasLocationChanged = !areLocationsEqual(dragging.lastLocation, location);\n\n if (hasLocationChanged) {\n dragging.lastLocation = location;\n }\n\n var hasGroupingChanged = !isCombineEqual(dragging.lastCombine, combine);\n\n if (hasGroupingChanged) {\n dragging.lastCombine = combine;\n }\n\n if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) {\n return;\n }\n\n var data = _extends({}, getDragStart(critical, dragging.mode), {\n combine: combine,\n destination: location\n });\n\n asyncMarshal.add(function () {\n withTimings('onDragUpdate', function () {\n return execute(getResponders().onDragUpdate, data, announce, preset.onDragUpdate);\n });\n });\n };\n\n var flush = function flush() {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only flush responders while dragging') : invariant(false) : void 0;\n asyncMarshal.flush();\n };\n\n var drop = function drop(result) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : invariant(false) : void 0;\n dragging = null;\n withTimings('onDragEnd', function () {\n return execute(getResponders().onDragEnd, result, announce, preset.onDragEnd);\n });\n };\n\n var abort = function abort() {\n if (!dragging) {\n return;\n }\n\n var result = _extends({}, getDragStart(dragging.lastCritical, dragging.mode), {\n combine: null,\n destination: null,\n reason: 'CANCEL'\n });\n\n drop(result);\n };\n\n return {\n beforeCapture: beforeCapture,\n beforeStart: beforeStart,\n start: start,\n update: update,\n flush: flush,\n drop: drop,\n abort: abort\n };\n};\n\nvar responders = function (getResponders, announce) {\n var publisher = getPublisher(getResponders, announce);\n return function (store) {\n return function (next) {\n return function (action) {\n if (action.type === 'BEFORE_INITIAL_CAPTURE') {\n publisher.beforeCapture(action.payload.draggableId, action.payload.movementMode);\n return;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n var critical = action.payload.critical;\n publisher.beforeStart(critical, action.payload.movementMode);\n next(action);\n publisher.start(critical, action.payload.movementMode);\n return;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var result = action.payload.completed.result;\n publisher.flush();\n next(action);\n publisher.drop(result);\n return;\n }\n\n next(action);\n\n if (action.type === 'FLUSH') {\n publisher.abort();\n return;\n }\n\n var state = store.getState();\n\n if (state.phase === 'DRAGGING') {\n publisher.update(state.critical, state.impact);\n }\n };\n };\n };\n};\n\nvar dropAnimationFinish = function (store) {\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP_ANIMATION_FINISHED') {\n next(action);\n return;\n }\n\n var state = store.getState();\n !(state.phase === 'DROP_ANIMATING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : invariant(false) : void 0;\n store.dispatch(completeDrop({\n completed: state.completed\n }));\n };\n };\n};\n\nvar dropAnimationFlushOnScroll = function (store) {\n var unbind = null;\n var frameId = null;\n\n function clear() {\n if (frameId) {\n cancelAnimationFrame(frameId);\n frameId = null;\n }\n\n if (unbind) {\n unbind();\n unbind = null;\n }\n }\n\n return function (next) {\n return function (action) {\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATION_FINISHED') {\n clear();\n }\n\n next(action);\n\n if (action.type !== 'DROP_ANIMATE') {\n return;\n }\n\n var binding = {\n eventName: 'scroll',\n options: {\n capture: true,\n passive: false,\n once: true\n },\n fn: function flushDropAnimation() {\n var state = store.getState();\n\n if (state.phase === 'DROP_ANIMATING') {\n store.dispatch(dropAnimationFinished());\n }\n }\n };\n frameId = requestAnimationFrame(function () {\n frameId = null;\n unbind = bindEvents(window, [binding]);\n });\n };\n };\n};\n\nvar dimensionMarshalStopper = function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'DROP_COMPLETE' || action.type === 'FLUSH' || action.type === 'DROP_ANIMATE') {\n marshal.stopPublishing();\n }\n\n next(action);\n };\n };\n };\n};\n\nvar focus = function (marshal) {\n var isWatching = false;\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n isWatching = true;\n marshal.tryRecordFocus(action.payload.critical.draggable.id);\n next(action);\n marshal.tryRestoreFocusRecorded();\n return;\n }\n\n next(action);\n\n if (!isWatching) {\n return;\n }\n\n if (action.type === 'FLUSH') {\n isWatching = false;\n marshal.tryRestoreFocusRecorded();\n return;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n isWatching = false;\n var result = action.payload.completed.result;\n\n if (result.combine) {\n marshal.tryShiftRecord(result.draggableId, result.combine.draggableId);\n }\n\n marshal.tryRestoreFocusRecorded();\n }\n };\n };\n };\n};\n\nvar shouldStop = function shouldStop(action) {\n return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\n};\n\nvar autoScroll = function (autoScroller) {\n return function (store) {\n return function (next) {\n return function (action) {\n if (shouldStop(action)) {\n autoScroller.stop();\n next(action);\n return;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n next(action);\n var state = store.getState();\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected phase to be DRAGGING after INITIAL_PUBLISH') : invariant(false) : void 0;\n autoScroller.start(state);\n return;\n }\n\n next(action);\n autoScroller.scroll(store.getState());\n };\n };\n };\n};\n\nvar pendingDrop = function (store) {\n return function (next) {\n return function (action) {\n next(action);\n\n if (action.type !== 'PUBLISH_WHILE_DRAGGING') {\n return;\n }\n\n var postActionState = store.getState();\n\n if (postActionState.phase !== 'DROP_PENDING') {\n return;\n }\n\n if (postActionState.isWaiting) {\n return;\n }\n\n store.dispatch(drop({\n reason: postActionState.reason\n }));\n };\n };\n};\n\nvar composeEnhancers = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\n name: 'react-beautiful-dnd'\n}) : compose;\n\nvar createStore = function (_ref) {\n var dimensionMarshal = _ref.dimensionMarshal,\n focusMarshal = _ref.focusMarshal,\n styleMarshal = _ref.styleMarshal,\n getResponders = _ref.getResponders,\n announce = _ref.announce,\n autoScroller = _ref.autoScroller;\n return createStore$1(reducer, composeEnhancers(applyMiddleware(style(styleMarshal), dimensionMarshalStopper(dimensionMarshal), lift$1(dimensionMarshal), drop$1, dropAnimationFinish, dropAnimationFlushOnScroll, pendingDrop, autoScroll(autoScroller), scrollListener, focus(focusMarshal), responders(getResponders, announce))));\n};\n\nvar clean$1 = function clean() {\n return {\n additions: {},\n removals: {},\n modified: {}\n };\n};\n\nfunction createPublisher(_ref) {\n var registry = _ref.registry,\n callbacks = _ref.callbacks;\n var staging = clean$1();\n var frameId = null;\n\n var collect = function collect() {\n if (frameId) {\n return;\n }\n\n callbacks.collectionStarting();\n frameId = requestAnimationFrame(function () {\n frameId = null;\n start();\n var _staging = staging,\n additions = _staging.additions,\n removals = _staging.removals,\n modified = _staging.modified;\n var added = Object.keys(additions).map(function (id) {\n return registry.draggable.getById(id).getDimension(origin);\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n var updated = Object.keys(modified).map(function (id) {\n var entry = registry.droppable.getById(id);\n var scroll = entry.callbacks.getScrollWhileDragging();\n return {\n droppableId: id,\n scroll: scroll\n };\n });\n var result = {\n additions: added,\n removals: Object.keys(removals),\n modified: updated\n };\n staging = clean$1();\n finish();\n callbacks.publish(result);\n });\n };\n\n var add = function add(entry) {\n var id = entry.descriptor.id;\n staging.additions[id] = entry;\n staging.modified[entry.descriptor.droppableId] = true;\n\n if (staging.removals[id]) {\n delete staging.removals[id];\n }\n\n collect();\n };\n\n var remove = function remove(entry) {\n var descriptor = entry.descriptor;\n staging.removals[descriptor.id] = true;\n staging.modified[descriptor.droppableId] = true;\n\n if (staging.additions[descriptor.id]) {\n delete staging.additions[descriptor.id];\n }\n\n collect();\n };\n\n var stop = function stop() {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n staging = clean$1();\n };\n\n return {\n add: add,\n remove: remove,\n stop: stop\n };\n}\n\nvar getMaxScroll = function (_ref) {\n var scrollHeight = _ref.scrollHeight,\n scrollWidth = _ref.scrollWidth,\n height = _ref.height,\n width = _ref.width;\n var maxScroll = subtract({\n x: scrollWidth,\n y: scrollHeight\n }, {\n x: width,\n y: height\n });\n var adjustedMaxScroll = {\n x: Math.max(0, maxScroll.x),\n y: Math.max(0, maxScroll.y)\n };\n return adjustedMaxScroll;\n};\n\nvar getDocumentElement = function () {\n var doc = document.documentElement;\n !doc ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.documentElement') : invariant(false) : void 0;\n return doc;\n};\n\nvar getMaxWindowScroll = function () {\n var doc = getDocumentElement();\n var maxScroll = getMaxScroll({\n scrollHeight: doc.scrollHeight,\n scrollWidth: doc.scrollWidth,\n width: doc.clientWidth,\n height: doc.clientHeight\n });\n return maxScroll;\n};\n\nvar getViewport = function () {\n var scroll = getWindowScroll();\n var maxScroll = getMaxWindowScroll();\n var top = scroll.y;\n var left = scroll.x;\n var doc = getDocumentElement();\n var width = doc.clientWidth;\n var height = doc.clientHeight;\n var right = left + width;\n var bottom = top + height;\n var frame = getRect({\n top: top,\n left: left,\n right: right,\n bottom: bottom\n });\n var viewport = {\n frame: frame,\n scroll: {\n initial: scroll,\n current: scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n return viewport;\n};\n\nvar getInitialPublish = function (_ref) {\n var critical = _ref.critical,\n scrollOptions = _ref.scrollOptions,\n registry = _ref.registry;\n start();\n var viewport = getViewport();\n var windowScroll = viewport.scroll.current;\n var home = critical.droppable;\n var droppables = registry.droppable.getAllByType(home.type).map(function (entry) {\n return entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions);\n });\n var draggables = registry.draggable.getAllByType(critical.draggable.type).map(function (entry) {\n return entry.getDimension(windowScroll);\n });\n var dimensions = {\n draggables: toDraggableMap(draggables),\n droppables: toDroppableMap(droppables)\n };\n finish();\n var result = {\n dimensions: dimensions,\n critical: critical,\n viewport: viewport\n };\n return result;\n};\n\nfunction shouldPublishUpdate(registry, dragging, entry) {\n if (entry.descriptor.id === dragging.id) {\n return false;\n }\n\n if (entry.descriptor.type !== dragging.type) {\n return false;\n }\n\n var home = registry.droppable.getById(entry.descriptor.droppableId);\n\n if (home.descriptor.mode !== 'virtual') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n You are attempting to add or remove a Draggable [id: \" + entry.descriptor.id + \"]\\n while a drag is occurring. This is only supported for virtual lists.\\n\\n See https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/patterns/virtual-lists.md\\n \") : void 0;\n return false;\n }\n\n return true;\n}\n\nvar createDimensionMarshal = function (registry, callbacks) {\n var collection = null;\n var publisher = createPublisher({\n callbacks: {\n publish: callbacks.publishWhileDragging,\n collectionStarting: callbacks.collectionStarting\n },\n registry: registry\n });\n\n var updateDroppableIsEnabled = function updateDroppableIsEnabled(id, isEnabled) {\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update is enabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n callbacks.updateDroppableIsEnabled({\n id: id,\n isEnabled: isEnabled\n });\n };\n\n var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(id, isCombineEnabled) {\n if (!collection) {\n return;\n }\n\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update isCombineEnabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n callbacks.updateDroppableIsCombineEnabled({\n id: id,\n isCombineEnabled: isCombineEnabled\n });\n };\n\n var updateDroppableScroll = function updateDroppableScroll(id, newScroll) {\n if (!collection) {\n return;\n }\n\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update the scroll on Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n callbacks.updateDroppableScroll({\n id: id,\n newScroll: newScroll\n });\n };\n\n var scrollDroppable = function scrollDroppable(id, change) {\n if (!collection) {\n return;\n }\n\n registry.droppable.getById(id).callbacks.scroll(change);\n };\n\n var stopPublishing = function stopPublishing() {\n if (!collection) {\n return;\n }\n\n publisher.stop();\n var home = collection.critical.droppable;\n registry.droppable.getAllByType(home.type).forEach(function (entry) {\n return entry.callbacks.dragStopped();\n });\n collection.unsubscribe();\n collection = null;\n };\n\n var subscriber = function subscriber(event) {\n !collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should only be subscribed when a collection is occurring') : invariant(false) : void 0;\n var dragging = collection.critical.draggable;\n\n if (event.type === 'ADDITION') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.add(event.value);\n }\n }\n\n if (event.type === 'REMOVAL') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.remove(event.value);\n }\n }\n };\n\n var startPublishing = function startPublishing(request) {\n !!collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : invariant(false) : void 0;\n var entry = registry.draggable.getById(request.draggableId);\n var home = registry.droppable.getById(entry.descriptor.droppableId);\n var critical = {\n draggable: entry.descriptor,\n droppable: home.descriptor\n };\n var unsubscribe = registry.subscribe(subscriber);\n collection = {\n critical: critical,\n unsubscribe: unsubscribe\n };\n return getInitialPublish({\n critical: critical,\n registry: registry,\n scrollOptions: request.scrollOptions\n });\n };\n\n var marshal = {\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n scrollDroppable: scrollDroppable,\n updateDroppableScroll: updateDroppableScroll,\n startPublishing: startPublishing,\n stopPublishing: stopPublishing\n };\n return marshal;\n};\n\nvar canStartDrag = function (state, id) {\n if (state.phase === 'IDLE') {\n return true;\n }\n\n if (state.phase !== 'DROP_ANIMATING') {\n return false;\n }\n\n if (state.completed.result.draggableId === id) {\n return false;\n }\n\n return state.completed.result.reason === 'DROP';\n};\n\nvar scrollWindow = function (change) {\n window.scrollBy(change.x, change.y);\n};\n\nvar getScrollableDroppables = memoizeOne(function (droppables) {\n return toDroppableList(droppables).filter(function (droppable) {\n if (!droppable.isEnabled) {\n return false;\n }\n\n if (!droppable.frame) {\n return false;\n }\n\n return true;\n });\n});\n\nvar getScrollableDroppableOver = function getScrollableDroppableOver(target, droppables) {\n var maybe = find(getScrollableDroppables(droppables), function (droppable) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid result') : invariant(false) : void 0;\n return isPositionInFrame(droppable.frame.pageMarginBox)(target);\n });\n return maybe;\n};\n\nvar getBestScrollableDroppable = function (_ref) {\n var center = _ref.center,\n destination = _ref.destination,\n droppables = _ref.droppables;\n\n if (destination) {\n var _dimension = droppables[destination];\n\n if (!_dimension.frame) {\n return null;\n }\n\n return _dimension;\n }\n\n var dimension = getScrollableDroppableOver(center, droppables);\n return dimension;\n};\n\nvar config = {\n startFromPercentage: 0.25,\n maxScrollAtPercentage: 0.05,\n maxPixelScroll: 28,\n ease: function ease(percentage) {\n return Math.pow(percentage, 2);\n },\n durationDampening: {\n stopDampeningAt: 1200,\n accelerateAt: 360\n }\n};\n\nvar getDistanceThresholds = function (container, axis) {\n var startScrollingFrom = container[axis.size] * config.startFromPercentage;\n var maxScrollValueAt = container[axis.size] * config.maxScrollAtPercentage;\n var thresholds = {\n startScrollingFrom: startScrollingFrom,\n maxScrollValueAt: maxScrollValueAt\n };\n return thresholds;\n};\n\nvar getPercentage = function (_ref) {\n var startOfRange = _ref.startOfRange,\n endOfRange = _ref.endOfRange,\n current = _ref.current;\n var range = endOfRange - startOfRange;\n\n if (range === 0) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected distance range of 0 in the fluid auto scroller\\n This is unexpected and would cause a divide by 0 issue.\\n Not allowing an auto scroll\\n \") : void 0;\n return 0;\n }\n\n var currentInRange = current - startOfRange;\n var percentage = currentInRange / range;\n return percentage;\n};\n\nvar minScroll = 1;\n\nvar getValueFromDistance = function (distanceToEdge, thresholds) {\n if (distanceToEdge > thresholds.startScrollingFrom) {\n return 0;\n }\n\n if (distanceToEdge <= thresholds.maxScrollValueAt) {\n return config.maxPixelScroll;\n }\n\n if (distanceToEdge === thresholds.startScrollingFrom) {\n return minScroll;\n }\n\n var percentageFromMaxScrollValueAt = getPercentage({\n startOfRange: thresholds.maxScrollValueAt,\n endOfRange: thresholds.startScrollingFrom,\n current: distanceToEdge\n });\n var percentageFromStartScrollingFrom = 1 - percentageFromMaxScrollValueAt;\n var scroll = config.maxPixelScroll * config.ease(percentageFromStartScrollingFrom);\n return Math.ceil(scroll);\n};\n\nvar accelerateAt = config.durationDampening.accelerateAt;\nvar stopAt = config.durationDampening.stopDampeningAt;\n\nvar dampenValueByTime = function (proposedScroll, dragStartTime) {\n var startOfRange = dragStartTime;\n var endOfRange = stopAt;\n var now = Date.now();\n var runTime = now - startOfRange;\n\n if (runTime >= stopAt) {\n return proposedScroll;\n }\n\n if (runTime < accelerateAt) {\n return minScroll;\n }\n\n var betweenAccelerateAtAndStopAtPercentage = getPercentage({\n startOfRange: accelerateAt,\n endOfRange: endOfRange,\n current: runTime\n });\n var scroll = proposedScroll * config.ease(betweenAccelerateAtAndStopAtPercentage);\n return Math.ceil(scroll);\n};\n\nvar getValue = function (_ref) {\n var distanceToEdge = _ref.distanceToEdge,\n thresholds = _ref.thresholds,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getValueFromDistance(distanceToEdge, thresholds);\n\n if (scroll === 0) {\n return 0;\n }\n\n if (!shouldUseTimeDampening) {\n return scroll;\n }\n\n return Math.max(dampenValueByTime(scroll, dragStartTime), minScroll);\n};\n\nvar getScrollOnAxis = function (_ref) {\n var container = _ref.container,\n distanceToEdges = _ref.distanceToEdges,\n dragStartTime = _ref.dragStartTime,\n axis = _ref.axis,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var thresholds = getDistanceThresholds(container, axis);\n var isCloserToEnd = distanceToEdges[axis.end] < distanceToEdges[axis.start];\n\n if (isCloserToEnd) {\n return getValue({\n distanceToEdge: distanceToEdges[axis.end],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n }\n\n return -1 * getValue({\n distanceToEdge: distanceToEdges[axis.start],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n};\n\nvar adjustForSizeLimits = function (_ref) {\n var container = _ref.container,\n subject = _ref.subject,\n proposedScroll = _ref.proposedScroll;\n var isTooBigVertically = subject.height > container.height;\n var isTooBigHorizontally = subject.width > container.width;\n\n if (!isTooBigHorizontally && !isTooBigVertically) {\n return proposedScroll;\n }\n\n if (isTooBigHorizontally && isTooBigVertically) {\n return null;\n }\n\n return {\n x: isTooBigHorizontally ? 0 : proposedScroll.x,\n y: isTooBigVertically ? 0 : proposedScroll.y\n };\n};\n\nvar clean$2 = apply(function (value) {\n return value === 0 ? 0 : value;\n});\n\nvar getScroll = function (_ref) {\n var dragStartTime = _ref.dragStartTime,\n container = _ref.container,\n subject = _ref.subject,\n center = _ref.center,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var distanceToEdges = {\n top: center.y - container.top,\n right: container.right - center.x,\n bottom: container.bottom - center.y,\n left: center.x - container.left\n };\n var y = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: vertical,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var x = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: horizontal,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var required = clean$2({\n x: x,\n y: y\n });\n\n if (isEqual(required, origin)) {\n return null;\n }\n\n var limited = adjustForSizeLimits({\n container: container,\n subject: subject,\n proposedScroll: required\n });\n\n if (!limited) {\n return null;\n }\n\n return isEqual(limited, origin) ? null : limited;\n};\n\nvar smallestSigned = apply(function (value) {\n if (value === 0) {\n return 0;\n }\n\n return value > 0 ? 1 : -1;\n});\n\nvar getOverlap = function () {\n var getRemainder = function getRemainder(target, max) {\n if (target < 0) {\n return target;\n }\n\n if (target > max) {\n return target - max;\n }\n\n return 0;\n };\n\n return function (_ref) {\n var current = _ref.current,\n max = _ref.max,\n change = _ref.change;\n var targetScroll = add(current, change);\n var overlap = {\n x: getRemainder(targetScroll.x, max.x),\n y: getRemainder(targetScroll.y, max.y)\n };\n\n if (isEqual(overlap, origin)) {\n return null;\n }\n\n return overlap;\n };\n}();\n\nvar canPartiallyScroll = function canPartiallyScroll(_ref2) {\n var rawMax = _ref2.max,\n current = _ref2.current,\n change = _ref2.change;\n var max = {\n x: Math.max(current.x, rawMax.x),\n y: Math.max(current.y, rawMax.y)\n };\n var smallestChange = smallestSigned(change);\n var overlap = getOverlap({\n max: max,\n current: current,\n change: smallestChange\n });\n\n if (!overlap) {\n return true;\n }\n\n if (smallestChange.x !== 0 && overlap.x === 0) {\n return true;\n }\n\n if (smallestChange.y !== 0 && overlap.y === 0) {\n return true;\n }\n\n return false;\n};\n\nvar canScrollWindow = function canScrollWindow(viewport, change) {\n return canPartiallyScroll({\n current: viewport.scroll.current,\n max: viewport.scroll.max,\n change: change\n });\n};\n\nvar getWindowOverlap = function getWindowOverlap(viewport, change) {\n if (!canScrollWindow(viewport, change)) {\n return null;\n }\n\n var max = viewport.scroll.max;\n var current = viewport.scroll.current;\n return getOverlap({\n current: current,\n max: max,\n change: change\n });\n};\n\nvar canScrollDroppable = function canScrollDroppable(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return false;\n }\n\n return canPartiallyScroll({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\n\nvar getDroppableOverlap = function getDroppableOverlap(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n if (!canScrollDroppable(droppable, change)) {\n return null;\n }\n\n return getOverlap({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\n\nvar getWindowScrollChange = function (_ref) {\n var viewport = _ref.viewport,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: viewport.frame,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollWindow(viewport, scroll) ? scroll : null;\n};\n\nvar getDroppableScrollChange = function (_ref) {\n var droppable = _ref.droppable,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: frame.pageMarginBox,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollDroppable(droppable, scroll) ? scroll : null;\n};\n\nvar scroll$1 = function (_ref) {\n var state = _ref.state,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening,\n scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var center = state.current.page.borderBoxCenter;\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var subject = draggable.page.marginBox;\n\n if (state.isWindowScrollAllowed) {\n var viewport = state.viewport;\n\n var _change = getWindowScrollChange({\n dragStartTime: dragStartTime,\n viewport: viewport,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (_change) {\n scrollWindow(_change);\n return;\n }\n }\n\n var droppable = getBestScrollableDroppable({\n center: center,\n destination: whatIsDraggedOver(state.impact),\n droppables: state.dimensions.droppables\n });\n\n if (!droppable) {\n return;\n }\n\n var change = getDroppableScrollChange({\n dragStartTime: dragStartTime,\n droppable: droppable,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (change) {\n scrollDroppable(droppable.descriptor.id, change);\n }\n};\n\nvar createFluidScroller = function (_ref) {\n var scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var scheduleWindowScroll = rafSchd(scrollWindow);\n var scheduleDroppableScroll = rafSchd(scrollDroppable);\n var dragging = null;\n\n var tryScroll = function tryScroll(state) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fluid scroll if not dragging') : invariant(false) : void 0;\n var _dragging = dragging,\n shouldUseTimeDampening = _dragging.shouldUseTimeDampening,\n dragStartTime = _dragging.dragStartTime;\n scroll$1({\n state: state,\n scrollWindow: scheduleWindowScroll,\n scrollDroppable: scheduleDroppableScroll,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n };\n\n var start$1 = function start$1(state) {\n start();\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start auto scrolling when already started') : invariant(false) : void 0;\n var dragStartTime = Date.now();\n var wasScrollNeeded = false;\n\n var fakeScrollCallback = function fakeScrollCallback() {\n wasScrollNeeded = true;\n };\n\n scroll$1({\n state: state,\n dragStartTime: 0,\n shouldUseTimeDampening: false,\n scrollWindow: fakeScrollCallback,\n scrollDroppable: fakeScrollCallback\n });\n dragging = {\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: wasScrollNeeded\n };\n finish();\n\n if (wasScrollNeeded) {\n tryScroll(state);\n }\n };\n\n var stop = function stop() {\n if (!dragging) {\n return;\n }\n\n scheduleWindowScroll.cancel();\n scheduleDroppableScroll.cancel();\n dragging = null;\n };\n\n return {\n start: start$1,\n stop: stop,\n scroll: tryScroll\n };\n};\n\nvar createJumpScroller = function (_ref) {\n var move = _ref.move,\n scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow;\n\n var moveByOffset = function moveByOffset(state, offset) {\n var client = add(state.current.client.selection, offset);\n move({\n client: client\n });\n };\n\n var scrollDroppableAsMuchAsItCan = function scrollDroppableAsMuchAsItCan(droppable, change) {\n if (!canScrollDroppable(droppable, change)) {\n return change;\n }\n\n var overlap = getDroppableOverlap(droppable, change);\n\n if (!overlap) {\n scrollDroppable(droppable.descriptor.id, change);\n return null;\n }\n\n var whatTheDroppableCanScroll = subtract(change, overlap);\n scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll);\n var remainder = subtract(change, whatTheDroppableCanScroll);\n return remainder;\n };\n\n var scrollWindowAsMuchAsItCan = function scrollWindowAsMuchAsItCan(isWindowScrollAllowed, viewport, change) {\n if (!isWindowScrollAllowed) {\n return change;\n }\n\n if (!canScrollWindow(viewport, change)) {\n return change;\n }\n\n var overlap = getWindowOverlap(viewport, change);\n\n if (!overlap) {\n scrollWindow(change);\n return null;\n }\n\n var whatTheWindowCanScroll = subtract(change, overlap);\n scrollWindow(whatTheWindowCanScroll);\n var remainder = subtract(change, whatTheWindowCanScroll);\n return remainder;\n };\n\n var jumpScroller = function jumpScroller(state) {\n var request = state.scrollJumpRequest;\n\n if (!request) {\n return;\n }\n\n var destination = whatIsDraggedOver(state.impact);\n !destination ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : invariant(false) : void 0;\n var droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination], request);\n\n if (!droppableRemainder) {\n return;\n }\n\n var viewport = state.viewport;\n var windowRemainder = scrollWindowAsMuchAsItCan(state.isWindowScrollAllowed, viewport, droppableRemainder);\n\n if (!windowRemainder) {\n return;\n }\n\n moveByOffset(state, windowRemainder);\n };\n\n return jumpScroller;\n};\n\nvar createAutoScroller = function (_ref) {\n var scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow,\n move = _ref.move;\n var fluidScroller = createFluidScroller({\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n var jumpScroll = createJumpScroller({\n move: move,\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n\n var scroll = function scroll(state) {\n if (state.phase !== 'DRAGGING') {\n return;\n }\n\n if (state.movementMode === 'FLUID') {\n fluidScroller.scroll(state);\n return;\n }\n\n if (!state.scrollJumpRequest) {\n return;\n }\n\n jumpScroll(state);\n };\n\n var scroller = {\n scroll: scroll,\n start: fluidScroller.start,\n stop: fluidScroller.stop\n };\n return scroller;\n};\n\nvar prefix$1 = 'data-rbd';\n\nvar dragHandle = function () {\n var base = prefix$1 + \"-drag-handle\";\n return {\n base: base,\n draggableId: base + \"-draggable-id\",\n contextId: base + \"-context-id\"\n };\n}();\n\nvar draggable = function () {\n var base = prefix$1 + \"-draggable\";\n return {\n base: base,\n contextId: base + \"-context-id\",\n id: base + \"-id\"\n };\n}();\n\nvar droppable = function () {\n var base = prefix$1 + \"-droppable\";\n return {\n base: base,\n contextId: base + \"-context-id\",\n id: base + \"-id\"\n };\n}();\n\nvar scrollContainer = {\n contextId: prefix$1 + \"-scroll-container-context-id\"\n};\n\nvar makeGetSelector = function makeGetSelector(context) {\n return function (attribute) {\n return \"[\" + attribute + \"=\\\"\" + context + \"\\\"]\";\n };\n};\n\nvar getStyles = function getStyles(rules, property) {\n return rules.map(function (rule) {\n var value = rule.styles[property];\n\n if (!value) {\n return '';\n }\n\n return rule.selector + \" { \" + value + \" }\";\n }).join(' ');\n};\n\nvar noPointerEvents = 'pointer-events: none;';\n\nvar getStyles$1 = function (contextId) {\n var getSelector = makeGetSelector(contextId);\n\n var dragHandle$1 = function () {\n var grabCursor = \"\\n cursor: -webkit-grab;\\n cursor: grab;\\n \";\n return {\n selector: getSelector(dragHandle.contextId),\n styles: {\n always: \"\\n -webkit-touch-callout: none;\\n -webkit-tap-highlight-color: rgba(0,0,0,0);\\n touch-action: manipulation;\\n \",\n resting: grabCursor,\n dragging: noPointerEvents,\n dropAnimating: grabCursor\n }\n };\n }();\n\n var draggable$1 = function () {\n var transition = \"\\n transition: \" + transitions.outOfTheWay + \";\\n \";\n return {\n selector: getSelector(draggable.contextId),\n styles: {\n dragging: transition,\n dropAnimating: transition,\n userCancel: transition\n }\n };\n }();\n\n var droppable$1 = {\n selector: getSelector(droppable.contextId),\n styles: {\n always: \"overflow-anchor: none;\"\n }\n };\n var body = {\n selector: 'body',\n styles: {\n dragging: \"\\n cursor: grabbing;\\n cursor: -webkit-grabbing;\\n user-select: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n overflow-anchor: none;\\n \"\n }\n };\n var rules = [draggable$1, dragHandle$1, droppable$1, body];\n return {\n always: getStyles(rules, 'always'),\n resting: getStyles(rules, 'resting'),\n dragging: getStyles(rules, 'dragging'),\n dropAnimating: getStyles(rules, 'dropAnimating'),\n userCancel: getStyles(rules, 'userCancel')\n };\n};\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar getHead = function getHead() {\n var head = document.querySelector('head');\n !head ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find the head to append a style to') : invariant(false) : void 0;\n return head;\n};\n\nvar createStyleEl = function createStyleEl(nonce) {\n var el = document.createElement('style');\n\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n el.type = 'text/css';\n return el;\n};\n\nfunction useStyleMarshal(contextId, nonce) {\n var styles = useMemo(function () {\n return getStyles$1(contextId);\n }, [contextId]);\n var alwaysRef = useRef(null);\n var dynamicRef = useRef(null);\n var setDynamicStyle = useCallback(memoizeOne(function (proposed) {\n var el = dynamicRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }), []);\n var setAlwaysStyle = useCallback(function (proposed) {\n var el = alwaysRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }, []);\n useIsomorphicLayoutEffect(function () {\n !(!alwaysRef.current && !dynamicRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'style elements already mounted') : invariant(false) : void 0;\n var always = createStyleEl(nonce);\n var dynamic = createStyleEl(nonce);\n alwaysRef.current = always;\n dynamicRef.current = dynamic;\n always.setAttribute(prefix$1 + \"-always\", contextId);\n dynamic.setAttribute(prefix$1 + \"-dynamic\", contextId);\n getHead().appendChild(always);\n getHead().appendChild(dynamic);\n setAlwaysStyle(styles.always);\n setDynamicStyle(styles.resting);\n return function () {\n var remove = function remove(ref) {\n var current = ref.current;\n !current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unmount ref as it is not set') : invariant(false) : void 0;\n getHead().removeChild(current);\n ref.current = null;\n };\n\n remove(alwaysRef);\n remove(dynamicRef);\n };\n }, [nonce, setAlwaysStyle, setDynamicStyle, styles.always, styles.resting, contextId]);\n var dragging = useCallback(function () {\n return setDynamicStyle(styles.dragging);\n }, [setDynamicStyle, styles.dragging]);\n var dropping = useCallback(function (reason) {\n if (reason === 'DROP') {\n setDynamicStyle(styles.dropAnimating);\n return;\n }\n\n setDynamicStyle(styles.userCancel);\n }, [setDynamicStyle, styles.dropAnimating, styles.userCancel]);\n var resting = useCallback(function () {\n if (!dynamicRef.current) {\n return;\n }\n\n setDynamicStyle(styles.resting);\n }, [setDynamicStyle, styles.resting]);\n var marshal = useMemo(function () {\n return {\n dragging: dragging,\n dropping: dropping,\n resting: resting\n };\n }, [dragging, dropping, resting]);\n return marshal;\n}\n\nvar getWindowFromEl = function (el) {\n return el && el.ownerDocument ? el.ownerDocument.defaultView : window;\n};\n\nfunction isHtmlElement(el) {\n return el instanceof getWindowFromEl(el).HTMLElement;\n}\n\nfunction findDragHandle(contextId, draggableId) {\n var selector = \"[\" + dragHandle.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n var possible = toArray(document.querySelectorAll(selector));\n\n if (!possible.length) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find any drag handles in the context \\\"\" + contextId + \"\\\"\") : void 0;\n return null;\n }\n\n var handle = find(possible, function (el) {\n return el.getAttribute(dragHandle.draggableId) === draggableId;\n });\n\n if (!handle) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find drag handle with id \\\"\" + draggableId + \"\\\" as no handle with a matching id was found\") : void 0;\n return null;\n }\n\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle needs to be a HTMLElement') : void 0;\n return null;\n }\n\n return handle;\n}\n\nfunction useFocusMarshal(contextId) {\n var entriesRef = useRef({});\n var recordRef = useRef(null);\n var restoreFocusFrameRef = useRef(null);\n var isMountedRef = useRef(false);\n var register = useCallback(function register(id, focus) {\n var entry = {\n id: id,\n focus: focus\n };\n entriesRef.current[id] = entry;\n return function unregister() {\n var entries = entriesRef.current;\n var current = entries[id];\n\n if (current !== entry) {\n delete entries[id];\n }\n };\n }, []);\n var tryGiveFocus = useCallback(function tryGiveFocus(tryGiveFocusTo) {\n var handle = findDragHandle(contextId, tryGiveFocusTo);\n\n if (handle && handle !== document.activeElement) {\n handle.focus();\n }\n }, [contextId]);\n var tryShiftRecord = useCallback(function tryShiftRecord(previous, redirectTo) {\n if (recordRef.current === previous) {\n recordRef.current = redirectTo;\n }\n }, []);\n var tryRestoreFocusRecorded = useCallback(function tryRestoreFocusRecorded() {\n if (restoreFocusFrameRef.current) {\n return;\n }\n\n if (!isMountedRef.current) {\n return;\n }\n\n restoreFocusFrameRef.current = requestAnimationFrame(function () {\n restoreFocusFrameRef.current = null;\n var record = recordRef.current;\n\n if (record) {\n tryGiveFocus(record);\n }\n });\n }, [tryGiveFocus]);\n var tryRecordFocus = useCallback(function tryRecordFocus(id) {\n recordRef.current = null;\n var focused = document.activeElement;\n\n if (!focused) {\n return;\n }\n\n if (focused.getAttribute(dragHandle.draggableId) !== id) {\n return;\n }\n\n recordRef.current = id;\n }, []);\n useIsomorphicLayoutEffect(function () {\n isMountedRef.current = true;\n return function clearFrameOnUnmount() {\n isMountedRef.current = false;\n var frameId = restoreFocusFrameRef.current;\n\n if (frameId) {\n cancelAnimationFrame(frameId);\n }\n };\n }, []);\n var marshal = useMemo(function () {\n return {\n register: register,\n tryRecordFocus: tryRecordFocus,\n tryRestoreFocusRecorded: tryRestoreFocusRecorded,\n tryShiftRecord: tryShiftRecord\n };\n }, [register, tryRecordFocus, tryRestoreFocusRecorded, tryShiftRecord]);\n return marshal;\n}\n\nfunction createRegistry() {\n var entries = {\n draggables: {},\n droppables: {}\n };\n var subscribers = [];\n\n function subscribe(cb) {\n subscribers.push(cb);\n return function unsubscribe() {\n var index = subscribers.indexOf(cb);\n\n if (index === -1) {\n return;\n }\n\n subscribers.splice(index, 1);\n };\n }\n\n function notify(event) {\n if (subscribers.length) {\n subscribers.forEach(function (cb) {\n return cb(event);\n });\n }\n }\n\n function findDraggableById(id) {\n return entries.draggables[id] || null;\n }\n\n function getDraggableById(id) {\n var entry = findDraggableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find draggable entry with id [\" + id + \"]\") : invariant(false) : void 0;\n return entry;\n }\n\n var draggableAPI = {\n register: function register(entry) {\n entries.draggables[entry.descriptor.id] = entry;\n notify({\n type: 'ADDITION',\n value: entry\n });\n },\n update: function update(entry, last) {\n var current = entries.draggables[last.descriptor.id];\n\n if (!current) {\n return;\n }\n\n if (current.uniqueId !== entry.uniqueId) {\n return;\n }\n\n delete entries.draggables[last.descriptor.id];\n entries.draggables[entry.descriptor.id] = entry;\n },\n unregister: function unregister(entry) {\n var draggableId = entry.descriptor.id;\n var current = findDraggableById(draggableId);\n\n if (!current) {\n return;\n }\n\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n\n delete entries.draggables[draggableId];\n notify({\n type: 'REMOVAL',\n value: entry\n });\n },\n getById: getDraggableById,\n findById: findDraggableById,\n exists: function exists(id) {\n return Boolean(findDraggableById(id));\n },\n getAllByType: function getAllByType(type) {\n return values(entries.draggables).filter(function (entry) {\n return entry.descriptor.type === type;\n });\n }\n };\n\n function findDroppableById(id) {\n return entries.droppables[id] || null;\n }\n\n function getDroppableById(id) {\n var entry = findDroppableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find droppable entry with id [\" + id + \"]\") : invariant(false) : void 0;\n return entry;\n }\n\n var droppableAPI = {\n register: function register(entry) {\n entries.droppables[entry.descriptor.id] = entry;\n },\n unregister: function unregister(entry) {\n var current = findDroppableById(entry.descriptor.id);\n\n if (!current) {\n return;\n }\n\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n\n delete entries.droppables[entry.descriptor.id];\n },\n getById: getDroppableById,\n findById: findDroppableById,\n exists: function exists(id) {\n return Boolean(findDroppableById(id));\n },\n getAllByType: function getAllByType(type) {\n return values(entries.droppables).filter(function (entry) {\n return entry.descriptor.type === type;\n });\n }\n };\n\n function clean() {\n entries.draggables = {};\n entries.droppables = {};\n subscribers.length = 0;\n }\n\n return {\n draggable: draggableAPI,\n droppable: droppableAPI,\n subscribe: subscribe,\n clean: clean\n };\n}\n\nfunction useRegistry() {\n var registry = useMemo(createRegistry, []);\n useEffect(function () {\n return function unmount() {\n requestAnimationFrame(registry.clean);\n };\n }, [registry]);\n return registry;\n}\n\nvar StoreContext = React.createContext(null);\n\nvar getBodyElement = function () {\n var body = document.body;\n !body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.body') : invariant(false) : void 0;\n return body;\n};\n\nvar visuallyHidden = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n border: '0',\n padding: '0',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n 'clip-path': 'inset(100%)'\n};\n\nvar getId = function getId(contextId) {\n return \"rbd-announcement-\" + contextId;\n};\n\nfunction useAnnouncer(contextId) {\n var id = useMemo(function () {\n return getId(contextId);\n }, [contextId]);\n var ref = useRef(null);\n useEffect(function setup() {\n var el = document.createElement('div');\n ref.current = el;\n el.id = id;\n el.setAttribute('aria-live', 'assertive');\n el.setAttribute('aria-atomic', 'true');\n\n _extends(el.style, visuallyHidden);\n\n getBodyElement().appendChild(el);\n return function cleanup() {\n setTimeout(function remove() {\n var body = getBodyElement();\n\n if (body.contains(el)) {\n body.removeChild(el);\n }\n\n if (el === ref.current) {\n ref.current = null;\n }\n });\n };\n }, [id]);\n var announce = useCallback(function (message) {\n var el = ref.current;\n\n if (el) {\n el.textContent = message;\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n A screen reader message was trying to be announced but it was unable to do so.\\n This can occur if you unmount your in your onDragEnd.\\n Consider calling provided.announce() before the unmount so that the instruction will\\n not be lost for users relying on a screen reader.\\n\\n Message not passed to screen reader:\\n\\n \\\"\" + message + \"\\\"\\n \") : void 0;\n }, []);\n return announce;\n}\n\nvar count = 0;\nvar defaults = {\n separator: '::'\n};\n\nfunction reset() {\n count = 0;\n}\n\nfunction useUniqueId(prefix, options) {\n if (options === void 0) {\n options = defaults;\n }\n\n return useMemo(function () {\n return \"\" + prefix + options.separator + count++;\n }, [options.separator, prefix]);\n}\n\nfunction getElementId(_ref) {\n var contextId = _ref.contextId,\n uniqueId = _ref.uniqueId;\n return \"rbd-hidden-text-\" + contextId + \"-\" + uniqueId;\n}\n\nfunction useHiddenTextElement(_ref2) {\n var contextId = _ref2.contextId,\n text = _ref2.text;\n var uniqueId = useUniqueId('hidden-text', {\n separator: '-'\n });\n var id = useMemo(function () {\n return getElementId({\n contextId: contextId,\n uniqueId: uniqueId\n });\n }, [uniqueId, contextId]);\n useEffect(function mount() {\n var el = document.createElement('div');\n el.id = id;\n el.textContent = text;\n el.style.display = 'none';\n getBodyElement().appendChild(el);\n return function unmount() {\n var body = getBodyElement();\n\n if (body.contains(el)) {\n body.removeChild(el);\n }\n };\n }, [id, text]);\n return id;\n}\n\nvar AppContext = React.createContext(null);\nvar peerDependencies = {\n react: \"^16.8.5 || ^17.0.0\",\n \"react-dom\": \"^16.8.5 || ^17.0.0\"\n};\nvar semver = /(\\d+)\\.(\\d+)\\.(\\d+)/;\n\nvar getVersion = function getVersion(value) {\n var result = semver.exec(value);\n !(result != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unable to parse React version \" + value) : invariant(false) : void 0;\n var major = Number(result[1]);\n var minor = Number(result[2]);\n var patch = Number(result[3]);\n return {\n major: major,\n minor: minor,\n patch: patch,\n raw: value\n };\n};\n\nvar isSatisfied = function isSatisfied(expected, actual) {\n if (actual.major > expected.major) {\n return true;\n }\n\n if (actual.major < expected.major) {\n return false;\n }\n\n if (actual.minor > expected.minor) {\n return true;\n }\n\n if (actual.minor < expected.minor) {\n return false;\n }\n\n return actual.patch >= expected.patch;\n};\n\nvar checkReactVersion = function (peerDepValue, actualValue) {\n var peerDep = getVersion(peerDepValue);\n var actual = getVersion(actualValue);\n\n if (isSatisfied(peerDep, actual)) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n React version: [\" + actual.raw + \"]\\n does not satisfy expected peer dependency version: [\" + peerDep.raw + \"]\\n\\n This can result in run time bugs, and even fatal crashes\\n \") : void 0;\n};\n\nvar suffix = \"\\n We expect a html5 doctype: \\n This is to ensure consistent browser layout and measurement\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md\\n\";\n\nvar checkDoctype = function (doc) {\n var doctype = doc.doctype;\n\n if (!doctype) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n No found.\\n\\n \" + suffix + \"\\n \") : void 0;\n return;\n }\n\n if (doctype.name.toLowerCase() !== 'html') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected found: (\" + doctype.name + \")\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n\n if (doctype.publicId !== '') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected publicId found: (\" + doctype.publicId + \")\\n A html5 doctype does not have a publicId\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n};\n\nfunction useDev(useHook) {\n if (process.env.NODE_ENV !== 'production') {\n useHook();\n }\n}\n\nfunction useDevSetupWarning(fn, inputs) {\n useDev(function () {\n useEffect(function () {\n try {\n fn();\n } catch (e) {\n error(\"\\n A setup problem was encountered.\\n\\n > \" + e.message + \"\\n \");\n }\n }, inputs);\n });\n}\n\nfunction useStartupValidation() {\n useDevSetupWarning(function () {\n checkReactVersion(peerDependencies.react, React.version);\n checkDoctype(document);\n }, []);\n}\n\nfunction usePrevious(current) {\n var ref = useRef(current);\n useEffect(function () {\n ref.current = current;\n });\n return ref;\n}\n\nfunction create() {\n var lock = null;\n\n function isClaimed() {\n return Boolean(lock);\n }\n\n function isActive(value) {\n return value === lock;\n }\n\n function claim(abandon) {\n !!lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot claim lock as it is already claimed') : invariant(false) : void 0;\n var newLock = {\n abandon: abandon\n };\n lock = newLock;\n return newLock;\n }\n\n function release() {\n !lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot release lock when there is no lock') : invariant(false) : void 0;\n lock = null;\n }\n\n function tryAbandon() {\n if (lock) {\n lock.abandon();\n release();\n }\n }\n\n return {\n isClaimed: isClaimed,\n isActive: isActive,\n claim: claim,\n release: release,\n tryAbandon: tryAbandon\n };\n}\n\nvar tab = 9;\nvar enter = 13;\nvar escape = 27;\nvar space = 32;\nvar pageUp = 33;\nvar pageDown = 34;\nvar end = 35;\nvar home = 36;\nvar arrowLeft = 37;\nvar arrowUp = 38;\nvar arrowRight = 39;\nvar arrowDown = 40;\n\nvar _preventedKeys;\n\nvar preventedKeys = (_preventedKeys = {}, _preventedKeys[enter] = true, _preventedKeys[tab] = true, _preventedKeys);\n\nvar preventStandardKeyEvents = function (event) {\n if (preventedKeys[event.keyCode]) {\n event.preventDefault();\n }\n};\n\nvar supportedEventName = function () {\n var base = 'visibilitychange';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, \"ms\" + base, \"webkit\" + base, \"moz\" + base, \"o\" + base];\n var supported = find(candidates, function (eventName) {\n return \"on\" + eventName in document;\n });\n return supported || base;\n}();\n\nvar primaryButton = 0;\nvar sloppyClickThreshold = 5;\n\nfunction isSloppyClickThresholdExceeded(original, current) {\n return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold;\n}\n\nvar idle$1 = {\n type: 'IDLE'\n};\n\nfunction getCaptureBindings(_ref) {\n var cancel = _ref.cancel,\n completed = _ref.completed,\n getPhase = _ref.getPhase,\n setPhase = _ref.setPhase;\n return [{\n eventName: 'mousemove',\n fn: function fn(event) {\n var button = event.button,\n clientX = event.clientX,\n clientY = event.clientY;\n\n if (button !== primaryButton) {\n return;\n }\n\n var point = {\n x: clientX,\n y: clientY\n };\n var phase = getPhase();\n\n if (phase.type === 'DRAGGING') {\n event.preventDefault();\n phase.actions.move(point);\n return;\n }\n\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot be IDLE') : invariant(false) : void 0;\n var pending = phase.point;\n\n if (!isSloppyClickThresholdExceeded(pending, point)) {\n return;\n }\n\n event.preventDefault();\n var actions = phase.actions.fluidLift(point);\n setPhase({\n type: 'DRAGGING',\n actions: actions\n });\n }\n }, {\n eventName: 'mouseup',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'mousedown',\n fn: function fn(event) {\n if (getPhase().type === 'DRAGGING') {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type === 'PENDING') {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn() {\n if (getPhase().type === 'PENDING') {\n cancel();\n }\n }\n }, {\n eventName: 'webkitmouseforcedown',\n fn: function fn(event) {\n var phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase') : invariant(false) : void 0;\n\n if (phase.actions.shouldRespectForcePress()) {\n cancel();\n return;\n }\n\n event.preventDefault();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useMouseSensor(api) {\n var phaseRef = useRef(idle$1);\n var unbindEventsRef = useRef(noop);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'mousedown',\n fn: function onMouseDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.button !== primaryButton) {\n return;\n }\n\n if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!actions) {\n return;\n }\n\n event.preventDefault();\n var point = {\n x: event.clientX,\n y: event.clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n };\n }, [api]);\n var preventForcePressBinding = useMemo(function () {\n return {\n eventName: 'webkitmouseforcewillbegin',\n fn: function fn(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n var id = api.findClosestDraggableId(event);\n\n if (!id) {\n return;\n }\n\n var options = api.findOptionsForDraggable(id);\n\n if (!options) {\n return;\n }\n\n if (options.shouldRespectForcePress) {\n return;\n }\n\n if (!api.canGetLock(id)) {\n return;\n }\n\n event.preventDefault();\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function listenForCapture() {\n var options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [preventForcePressBinding, startCaptureBinding], options);\n }, [preventForcePressBinding, startCaptureBinding]);\n var stop = useCallback(function () {\n var current = phaseRef.current;\n\n if (current.type === 'IDLE') {\n return;\n }\n\n phaseRef.current = idle$1;\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture]);\n var cancel = useCallback(function () {\n var phase = phaseRef.current;\n stop();\n\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n var bindCapturingEvents = useCallback(function bindCapturingEvents() {\n var options = {\n capture: true,\n passive: false\n };\n var bindings = getCaptureBindings({\n cancel: cancel,\n completed: stop,\n getPhase: function getPhase() {\n return phaseRef.current;\n },\n setPhase: function setPhase(phase) {\n phaseRef.current = phase;\n }\n });\n unbindEventsRef.current = bindEvents(window, bindings, options);\n }, [cancel, stop]);\n var startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(phaseRef.current.type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n phaseRef.current = {\n type: 'PENDING',\n point: point,\n actions: actions\n };\n bindCapturingEvents();\n }, [bindCapturingEvents]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nvar _scrollJumpKeys;\n\nfunction noop$1() {}\n\nvar scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys);\n\nfunction getDraggingBindings(actions, stop) {\n function cancel() {\n stop();\n actions.cancel();\n }\n\n function drop() {\n stop();\n actions.drop();\n }\n\n return [{\n eventName: 'keydown',\n fn: function fn(event) {\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n if (event.keyCode === space) {\n event.preventDefault();\n drop();\n return;\n }\n\n if (event.keyCode === arrowDown) {\n event.preventDefault();\n actions.moveDown();\n return;\n }\n\n if (event.keyCode === arrowUp) {\n event.preventDefault();\n actions.moveUp();\n return;\n }\n\n if (event.keyCode === arrowRight) {\n event.preventDefault();\n actions.moveRight();\n return;\n }\n\n if (event.keyCode === arrowLeft) {\n event.preventDefault();\n actions.moveLeft();\n return;\n }\n\n if (scrollJumpKeys[event.keyCode]) {\n event.preventDefault();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'mousedown',\n fn: cancel\n }, {\n eventName: 'mouseup',\n fn: cancel\n }, {\n eventName: 'click',\n fn: cancel\n }, {\n eventName: 'touchstart',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'wheel',\n fn: cancel,\n options: {\n passive: true\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useKeyboardSensor(api) {\n var unbindEventsRef = useRef(noop$1);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'keydown',\n fn: function onKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.keyCode !== space) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var preDrag = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!preDrag) {\n return;\n }\n\n event.preventDefault();\n var isCapturing = true;\n var actions = preDrag.snapLift();\n unbindEventsRef.current();\n\n function stop() {\n !isCapturing ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop capturing a keyboard drag when not capturing') : invariant(false) : void 0;\n isCapturing = false;\n unbindEventsRef.current();\n listenForCapture();\n }\n\n unbindEventsRef.current = bindEvents(window, getDraggingBindings(actions, stop), {\n capture: true,\n passive: false\n });\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function tryStartCapture() {\n var options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nvar idle$2 = {\n type: 'IDLE'\n};\nvar timeForLongPress = 120;\nvar forcePressThreshold = 0.15;\n\nfunction getWindowBindings(_ref) {\n var cancel = _ref.cancel,\n getPhase = _ref.getPhase;\n return [{\n eventName: 'orientationchange',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'contextmenu',\n fn: function fn(event) {\n event.preventDefault();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction getHandleBindings(_ref2) {\n var cancel = _ref2.cancel,\n completed = _ref2.completed,\n getPhase = _ref2.getPhase;\n return [{\n eventName: 'touchmove',\n options: {\n capture: false\n },\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n phase.hasMoved = true;\n var _event$touches$ = event.touches[0],\n clientX = _event$touches$.clientX,\n clientY = _event$touches$.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n event.preventDefault();\n phase.actions.move(point);\n }\n }, {\n eventName: 'touchend',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'touchcancel',\n fn: function fn(event) {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n cancel();\n }\n }, {\n eventName: 'touchforcechange',\n fn: function fn(event) {\n var phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var touch = event.touches[0];\n\n if (!touch) {\n return;\n }\n\n var isForcePress = touch.force >= forcePressThreshold;\n\n if (!isForcePress) {\n return;\n }\n\n var shouldRespect = phase.actions.shouldRespectForcePress();\n\n if (phase.type === 'PENDING') {\n if (shouldRespect) {\n cancel();\n }\n\n return;\n }\n\n if (shouldRespect) {\n if (phase.hasMoved) {\n event.preventDefault();\n return;\n }\n\n cancel();\n return;\n }\n\n event.preventDefault();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useTouchSensor(api) {\n var phaseRef = useRef(idle$2);\n var unbindEventsRef = useRef(noop);\n var getPhase = useCallback(function getPhase() {\n return phaseRef.current;\n }, []);\n var setPhase = useCallback(function setPhase(phase) {\n phaseRef.current = phase;\n }, []);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'touchstart',\n fn: function onTouchStart(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!actions) {\n return;\n }\n\n var touch = event.touches[0];\n var clientX = touch.clientX,\n clientY = touch.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function listenForCapture() {\n var options = {\n capture: true,\n passive: false\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n var stop = useCallback(function () {\n var current = phaseRef.current;\n\n if (current.type === 'IDLE') {\n return;\n }\n\n if (current.type === 'PENDING') {\n clearTimeout(current.longPressTimerId);\n }\n\n setPhase(idle$2);\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture, setPhase]);\n var cancel = useCallback(function () {\n var phase = phaseRef.current;\n stop();\n\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n var bindCapturingEvents = useCallback(function bindCapturingEvents() {\n var options = {\n capture: true,\n passive: false\n };\n var args = {\n cancel: cancel,\n completed: stop,\n getPhase: getPhase\n };\n var unbindTarget = bindEvents(window, getHandleBindings(args), options);\n var unbindWindow = bindEvents(window, getWindowBindings(args), options);\n\n unbindEventsRef.current = function unbindAll() {\n unbindTarget();\n unbindWindow();\n };\n }, [cancel, getPhase, stop]);\n var startDragging = useCallback(function startDragging() {\n var phase = getPhase();\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot start dragging from phase \" + phase.type) : invariant(false) : void 0;\n var actions = phase.actions.fluidLift(phase.point);\n setPhase({\n type: 'DRAGGING',\n actions: actions,\n hasMoved: false\n });\n }, [getPhase, setPhase]);\n var startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(getPhase().type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n var longPressTimerId = setTimeout(startDragging, timeForLongPress);\n setPhase({\n type: 'PENDING',\n point: point,\n actions: actions,\n longPressTimerId: longPressTimerId\n });\n bindCapturingEvents();\n }, [bindCapturingEvents, getPhase, setPhase, startDragging]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n var phase = getPhase();\n\n if (phase.type === 'PENDING') {\n clearTimeout(phase.longPressTimerId);\n setPhase(idle$2);\n }\n };\n }, [getPhase, listenForCapture, setPhase]);\n useIsomorphicLayoutEffect(function webkitHack() {\n var unbind = bindEvents(window, [{\n eventName: 'touchmove',\n fn: function fn() {},\n options: {\n capture: false,\n passive: false\n }\n }]);\n return unbind;\n }, []);\n}\n\nfunction useValidateSensorHooks(sensorHooks) {\n useDev(function () {\n var previousRef = usePrevious(sensorHooks);\n useDevSetupWarning(function () {\n !(previousRef.current.length === sensorHooks.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot change the amount of sensor hooks after mounting') : invariant(false) : void 0;\n });\n });\n}\n\nvar interactiveTagNames = {\n input: true,\n button: true,\n textarea: true,\n select: true,\n option: true,\n optgroup: true,\n video: true,\n audio: true\n};\n\nfunction isAnInteractiveElement(parent, current) {\n if (current == null) {\n return false;\n }\n\n var hasAnInteractiveTag = Boolean(interactiveTagNames[current.tagName.toLowerCase()]);\n\n if (hasAnInteractiveTag) {\n return true;\n }\n\n var attribute = current.getAttribute('contenteditable');\n\n if (attribute === 'true' || attribute === '') {\n return true;\n }\n\n if (current === parent) {\n return false;\n }\n\n return isAnInteractiveElement(parent, current.parentElement);\n}\n\nfunction isEventInInteractiveElement(draggable, event) {\n var target = event.target;\n\n if (!isHtmlElement(target)) {\n return false;\n }\n\n return isAnInteractiveElement(draggable, target);\n}\n\nvar getBorderBoxCenterPosition = function (el) {\n return getRect(el.getBoundingClientRect()).center;\n};\n\nfunction isElement(el) {\n return el instanceof getWindowFromEl(el).Element;\n}\n\nvar supportedMatchesName = function () {\n var base = 'matches';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, 'msMatchesSelector', 'webkitMatchesSelector'];\n var value = find(candidates, function (name) {\n return name in Element.prototype;\n });\n return value || base;\n}();\n\nfunction closestPonyfill(el, selector) {\n if (el == null) {\n return null;\n }\n\n if (el[supportedMatchesName](selector)) {\n return el;\n }\n\n return closestPonyfill(el.parentElement, selector);\n}\n\nfunction closest$1(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n }\n\n return closestPonyfill(el, selector);\n}\n\nfunction getSelector(contextId) {\n return \"[\" + dragHandle.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n}\n\nfunction findClosestDragHandleFromEvent(contextId, event) {\n var target = event.target;\n\n if (!isElement(target)) {\n process.env.NODE_ENV !== \"production\" ? warning('event.target must be a Element') : void 0;\n return null;\n }\n\n var selector = getSelector(contextId);\n var handle = closest$1(target, selector);\n\n if (!handle) {\n return null;\n }\n\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle must be a HTMLElement') : void 0;\n return null;\n }\n\n return handle;\n}\n\nfunction tryGetClosestDraggableIdFromEvent(contextId, event) {\n var handle = findClosestDragHandleFromEvent(contextId, event);\n\n if (!handle) {\n return null;\n }\n\n return handle.getAttribute(dragHandle.draggableId);\n}\n\nfunction findDraggable(contextId, draggableId) {\n var selector = \"[\" + draggable.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n var possible = toArray(document.querySelectorAll(selector));\n var draggable$1 = find(possible, function (el) {\n return el.getAttribute(draggable.id) === draggableId;\n });\n\n if (!draggable$1) {\n return null;\n }\n\n if (!isHtmlElement(draggable$1)) {\n process.env.NODE_ENV !== \"production\" ? warning('Draggable element is not a HTMLElement') : void 0;\n return null;\n }\n\n return draggable$1;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\n\nfunction _isActive(_ref) {\n var expected = _ref.expected,\n phase = _ref.phase,\n isLockActive = _ref.isLockActive,\n shouldWarn = _ref.shouldWarn;\n\n if (!isLockActive()) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Cannot perform action.\\n The sensor no longer has an action lock.\\n\\n Tips:\\n\\n - Throw away your action handlers when forceStop() is called\\n - Check actions.isActive() if you really need to\\n \") : void 0;\n }\n\n return false;\n }\n\n if (expected !== phase) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Cannot perform action.\\n The actions you used belong to an outdated phase\\n\\n Current phase: \" + expected + \"\\n You called an action from outdated phase: \" + phase + \"\\n\\n Tips:\\n\\n - Do not use preDragActions actions after calling preDragActions.lift()\\n \") : void 0;\n }\n\n return false;\n }\n\n return true;\n}\n\nfunction canStart(_ref2) {\n var lockAPI = _ref2.lockAPI,\n store = _ref2.store,\n registry = _ref2.registry,\n draggableId = _ref2.draggableId;\n\n if (lockAPI.isClaimed()) {\n return false;\n }\n\n var entry = registry.draggable.findById(draggableId);\n\n if (!entry) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find draggable with id: \" + draggableId) : void 0;\n return false;\n }\n\n if (!entry.options.isEnabled) {\n return false;\n }\n\n if (!canStartDrag(store.getState(), draggableId)) {\n return false;\n }\n\n return true;\n}\n\nfunction tryStart(_ref3) {\n var lockAPI = _ref3.lockAPI,\n contextId = _ref3.contextId,\n store = _ref3.store,\n registry = _ref3.registry,\n draggableId = _ref3.draggableId,\n forceSensorStop = _ref3.forceSensorStop,\n sourceEvent = _ref3.sourceEvent;\n var shouldStart = canStart({\n lockAPI: lockAPI,\n store: store,\n registry: registry,\n draggableId: draggableId\n });\n\n if (!shouldStart) {\n return null;\n }\n\n var entry = registry.draggable.getById(draggableId);\n var el = findDraggable(contextId, entry.descriptor.id);\n\n if (!el) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find draggable element with id: \" + draggableId) : void 0;\n return null;\n }\n\n if (sourceEvent && !entry.options.canDragInteractiveElements && isEventInInteractiveElement(el, sourceEvent)) {\n return null;\n }\n\n var lock = lockAPI.claim(forceSensorStop || noop);\n var phase = 'PRE_DRAG';\n\n function getShouldRespectForcePress() {\n return entry.options.shouldRespectForcePress;\n }\n\n function isLockActive() {\n return lockAPI.isActive(lock);\n }\n\n function tryDispatch(expected, getAction) {\n if (_isActive({\n expected: expected,\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: true\n })) {\n store.dispatch(getAction());\n }\n }\n\n var tryDispatchWhenDragging = tryDispatch.bind(null, 'DRAGGING');\n\n function lift$1(args) {\n function completed() {\n lockAPI.release();\n phase = 'COMPLETED';\n }\n\n if (phase !== 'PRE_DRAG') {\n completed();\n !(phase === 'PRE_DRAG') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot lift in phase \" + phase) : invariant(false) : void 0;\n }\n\n store.dispatch(lift(args.liftActionArgs));\n phase = 'DRAGGING';\n\n function finish(reason, options) {\n if (options === void 0) {\n options = {\n shouldBlockNextClick: false\n };\n }\n\n args.cleanup();\n\n if (options.shouldBlockNextClick) {\n var unbind = bindEvents(window, [{\n eventName: 'click',\n fn: preventDefault,\n options: {\n once: true,\n passive: false,\n capture: true\n }\n }]);\n setTimeout(unbind);\n }\n\n completed();\n store.dispatch(drop({\n reason: reason\n }));\n }\n\n return _extends({\n isActive: function isActive() {\n return _isActive({\n expected: 'DRAGGING',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: false\n });\n },\n shouldRespectForcePress: getShouldRespectForcePress,\n drop: function drop(options) {\n return finish('DROP', options);\n },\n cancel: function cancel(options) {\n return finish('CANCEL', options);\n }\n }, args.actions);\n }\n\n function fluidLift(clientSelection) {\n var move$1 = rafSchd(function (client) {\n tryDispatchWhenDragging(function () {\n return move({\n client: client\n });\n });\n });\n var api = lift$1({\n liftActionArgs: {\n id: draggableId,\n clientSelection: clientSelection,\n movementMode: 'FLUID'\n },\n cleanup: function cleanup() {\n return move$1.cancel();\n },\n actions: {\n move: move$1\n }\n });\n return _extends({}, api, {\n move: move$1\n });\n }\n\n function snapLift() {\n var actions = {\n moveUp: function moveUp$1() {\n return tryDispatchWhenDragging(moveUp);\n },\n moveRight: function moveRight$1() {\n return tryDispatchWhenDragging(moveRight);\n },\n moveDown: function moveDown$1() {\n return tryDispatchWhenDragging(moveDown);\n },\n moveLeft: function moveLeft$1() {\n return tryDispatchWhenDragging(moveLeft);\n }\n };\n return lift$1({\n liftActionArgs: {\n id: draggableId,\n clientSelection: getBorderBoxCenterPosition(el),\n movementMode: 'SNAP'\n },\n cleanup: noop,\n actions: actions\n });\n }\n\n function abortPreDrag() {\n var shouldRelease = _isActive({\n expected: 'PRE_DRAG',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: true\n });\n\n if (shouldRelease) {\n lockAPI.release();\n }\n }\n\n var preDrag = {\n isActive: function isActive() {\n return _isActive({\n expected: 'PRE_DRAG',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: false\n });\n },\n shouldRespectForcePress: getShouldRespectForcePress,\n fluidLift: fluidLift,\n snapLift: snapLift,\n abort: abortPreDrag\n };\n return preDrag;\n}\n\nvar defaultSensors = [useMouseSensor, useKeyboardSensor, useTouchSensor];\n\nfunction useSensorMarshal(_ref4) {\n var contextId = _ref4.contextId,\n store = _ref4.store,\n registry = _ref4.registry,\n customSensors = _ref4.customSensors,\n enableDefaultSensors = _ref4.enableDefaultSensors;\n var useSensors = [].concat(enableDefaultSensors ? defaultSensors : [], customSensors || []);\n var lockAPI = useState(function () {\n return create();\n })[0];\n var tryAbandonLock = useCallback(function tryAbandonLock(previous, current) {\n if (previous.isDragging && !current.isDragging) {\n lockAPI.tryAbandon();\n }\n }, [lockAPI]);\n useIsomorphicLayoutEffect(function listenToStore() {\n var previous = store.getState();\n var unsubscribe = store.subscribe(function () {\n var current = store.getState();\n tryAbandonLock(previous, current);\n previous = current;\n });\n return unsubscribe;\n }, [lockAPI, store, tryAbandonLock]);\n useIsomorphicLayoutEffect(function () {\n return lockAPI.tryAbandon;\n }, [lockAPI.tryAbandon]);\n var canGetLock = useCallback(function (draggableId) {\n return canStart({\n lockAPI: lockAPI,\n registry: registry,\n store: store,\n draggableId: draggableId\n });\n }, [lockAPI, registry, store]);\n var tryGetLock = useCallback(function (draggableId, forceStop, options) {\n return tryStart({\n lockAPI: lockAPI,\n registry: registry,\n contextId: contextId,\n store: store,\n draggableId: draggableId,\n forceSensorStop: forceStop,\n sourceEvent: options && options.sourceEvent ? options.sourceEvent : null\n });\n }, [contextId, lockAPI, registry, store]);\n var findClosestDraggableId = useCallback(function (event) {\n return tryGetClosestDraggableIdFromEvent(contextId, event);\n }, [contextId]);\n var findOptionsForDraggable = useCallback(function (id) {\n var entry = registry.draggable.findById(id);\n return entry ? entry.options : null;\n }, [registry.draggable]);\n var tryReleaseLock = useCallback(function tryReleaseLock() {\n if (!lockAPI.isClaimed()) {\n return;\n }\n\n lockAPI.tryAbandon();\n\n if (store.getState().phase !== 'IDLE') {\n store.dispatch(flush());\n }\n }, [lockAPI, store]);\n var isLockClaimed = useCallback(lockAPI.isClaimed, [lockAPI]);\n var api = useMemo(function () {\n return {\n canGetLock: canGetLock,\n tryGetLock: tryGetLock,\n findClosestDraggableId: findClosestDraggableId,\n findOptionsForDraggable: findOptionsForDraggable,\n tryReleaseLock: tryReleaseLock,\n isLockClaimed: isLockClaimed\n };\n }, [canGetLock, tryGetLock, findClosestDraggableId, findOptionsForDraggable, tryReleaseLock, isLockClaimed]);\n useValidateSensorHooks(useSensors);\n\n for (var i = 0; i < useSensors.length; i++) {\n useSensors[i](api);\n }\n}\n\nvar createResponders = function createResponders(props) {\n return {\n onBeforeCapture: props.onBeforeCapture,\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragUpdate: props.onDragUpdate\n };\n};\n\nfunction getStore(lazyRef) {\n !lazyRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find store from lazy ref') : invariant(false) : void 0;\n return lazyRef.current;\n}\n\nfunction App(props) {\n var contextId = props.contextId,\n setCallbacks = props.setCallbacks,\n sensors = props.sensors,\n nonce = props.nonce,\n dragHandleUsageInstructions = props.dragHandleUsageInstructions;\n var lazyStoreRef = useRef(null);\n useStartupValidation();\n var lastPropsRef = usePrevious(props);\n var getResponders = useCallback(function () {\n return createResponders(lastPropsRef.current);\n }, [lastPropsRef]);\n var announce = useAnnouncer(contextId);\n var dragHandleUsageInstructionsId = useHiddenTextElement({\n contextId: contextId,\n text: dragHandleUsageInstructions\n });\n var styleMarshal = useStyleMarshal(contextId, nonce);\n var lazyDispatch = useCallback(function (action) {\n getStore(lazyStoreRef).dispatch(action);\n }, []);\n var marshalCallbacks = useMemo(function () {\n return bindActionCreators({\n publishWhileDragging: publishWhileDragging,\n updateDroppableScroll: updateDroppableScroll,\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n collectionStarting: collectionStarting\n }, lazyDispatch);\n }, [lazyDispatch]);\n var registry = useRegistry();\n var dimensionMarshal = useMemo(function () {\n return createDimensionMarshal(registry, marshalCallbacks);\n }, [registry, marshalCallbacks]);\n var autoScroller = useMemo(function () {\n return createAutoScroller(_extends({\n scrollWindow: scrollWindow,\n scrollDroppable: dimensionMarshal.scrollDroppable\n }, bindActionCreators({\n move: move\n }, lazyDispatch)));\n }, [dimensionMarshal.scrollDroppable, lazyDispatch]);\n var focusMarshal = useFocusMarshal(contextId);\n var store = useMemo(function () {\n return createStore({\n announce: announce,\n autoScroller: autoScroller,\n dimensionMarshal: dimensionMarshal,\n focusMarshal: focusMarshal,\n getResponders: getResponders,\n styleMarshal: styleMarshal\n });\n }, [announce, autoScroller, dimensionMarshal, focusMarshal, getResponders, styleMarshal]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (lazyStoreRef.current && lazyStoreRef.current !== store) {\n process.env.NODE_ENV !== \"production\" ? warning('unexpected store change') : void 0;\n }\n }\n\n lazyStoreRef.current = store;\n var tryResetStore = useCallback(function () {\n var current = getStore(lazyStoreRef);\n var state = current.getState();\n\n if (state.phase !== 'IDLE') {\n current.dispatch(flush());\n }\n }, []);\n var isDragging = useCallback(function () {\n var state = getStore(lazyStoreRef).getState();\n return state.isDragging || state.phase === 'DROP_ANIMATING';\n }, []);\n var appCallbacks = useMemo(function () {\n return {\n isDragging: isDragging,\n tryAbort: tryResetStore\n };\n }, [isDragging, tryResetStore]);\n setCallbacks(appCallbacks);\n var getCanLift = useCallback(function (id) {\n return canStartDrag(getStore(lazyStoreRef).getState(), id);\n }, []);\n var getIsMovementAllowed = useCallback(function () {\n return isMovementAllowed(getStore(lazyStoreRef).getState());\n }, []);\n var appContext = useMemo(function () {\n return {\n marshal: dimensionMarshal,\n focus: focusMarshal,\n contextId: contextId,\n canLift: getCanLift,\n isMovementAllowed: getIsMovementAllowed,\n dragHandleUsageInstructionsId: dragHandleUsageInstructionsId,\n registry: registry\n };\n }, [contextId, dimensionMarshal, dragHandleUsageInstructionsId, focusMarshal, getCanLift, getIsMovementAllowed, registry]);\n useSensorMarshal({\n contextId: contextId,\n store: store,\n registry: registry,\n customSensors: sensors,\n enableDefaultSensors: props.enableDefaultSensors !== false\n });\n useEffect(function () {\n return tryResetStore;\n }, [tryResetStore]);\n return React.createElement(AppContext.Provider, {\n value: appContext\n }, React.createElement(Provider, {\n context: StoreContext,\n store: store\n }, props.children));\n}\n\nvar count$1 = 0;\n\nfunction reset$1() {\n count$1 = 0;\n}\n\nfunction useInstanceCount() {\n return useMemo(function () {\n return \"\" + count$1++;\n }, []);\n}\n\nfunction resetServerContext() {\n reset$1();\n reset();\n}\n\nfunction DragDropContext(props) {\n var contextId = useInstanceCount();\n var dragHandleUsageInstructions = props.dragHandleUsageInstructions || preset.dragHandleUsageInstructions;\n return React.createElement(ErrorBoundary, null, function (setCallbacks) {\n return React.createElement(App, {\n nonce: props.nonce,\n contextId: contextId,\n setCallbacks: setCallbacks,\n dragHandleUsageInstructions: dragHandleUsageInstructions,\n enableDefaultSensors: props.enableDefaultSensors,\n sensors: props.sensors,\n onBeforeCapture: props.onBeforeCapture,\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragUpdate: props.onDragUpdate,\n onDragEnd: props.onDragEnd\n }, props.children);\n });\n}\n\nvar isEqual$1 = function isEqual(base) {\n return function (value) {\n return base === value;\n };\n};\n\nvar isScroll = isEqual$1('scroll');\nvar isAuto = isEqual$1('auto');\nvar isVisible$1 = isEqual$1('visible');\n\nvar isEither = function isEither(overflow, fn) {\n return fn(overflow.overflowX) || fn(overflow.overflowY);\n};\n\nvar isBoth = function isBoth(overflow, fn) {\n return fn(overflow.overflowX) && fn(overflow.overflowY);\n};\n\nvar isElementScrollable = function isElementScrollable(el) {\n var style = window.getComputedStyle(el);\n var overflow = {\n overflowX: style.overflowX,\n overflowY: style.overflowY\n };\n return isEither(overflow, isScroll) || isEither(overflow, isAuto);\n};\n\nvar isBodyScrollable = function isBodyScrollable() {\n if (process.env.NODE_ENV === 'production') {\n return false;\n }\n\n var body = getBodyElement();\n var html = document.documentElement;\n !html ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n\n if (!isElementScrollable(body)) {\n return false;\n }\n\n var htmlStyle = window.getComputedStyle(html);\n var htmlOverflow = {\n overflowX: htmlStyle.overflowX,\n overflowY: htmlStyle.overflowY\n };\n\n if (isBoth(htmlOverflow, isVisible$1)) {\n return false;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n We have detected that your element might be a scroll container.\\n We have found no reliable way of detecting whether the element is a scroll container.\\n Under most circumstances a scroll bar will be on the element (document.documentElement)\\n\\n Because we cannot determine if the is a scroll container, and generally it is not one,\\n we will be treating the as *not* a scroll container\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/how-we-detect-scroll-containers.md\\n \") : void 0;\n return false;\n};\n\nvar getClosestScrollable = function getClosestScrollable(el) {\n if (el == null) {\n return null;\n }\n\n if (el === document.body) {\n return isBodyScrollable() ? el : null;\n }\n\n if (el === document.documentElement) {\n return null;\n }\n\n if (!isElementScrollable(el)) {\n return getClosestScrollable(el.parentElement);\n }\n\n return el;\n};\n\nvar checkForNestedScrollContainers = function (scrollable) {\n if (!scrollable) {\n return;\n }\n\n var anotherScrollParent = getClosestScrollable(scrollable.parentElement);\n\n if (!anotherScrollParent) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable: unsupported nested scroll container detected.\\n A Droppable can only have one scroll parent (which can be itself)\\n Nested scroll containers are currently not supported.\\n\\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\\n \") : void 0;\n};\n\nvar getScroll$1 = function (el) {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n };\n};\n\nvar getIsFixed = function getIsFixed(el) {\n if (!el) {\n return false;\n }\n\n var style = window.getComputedStyle(el);\n\n if (style.position === 'fixed') {\n return true;\n }\n\n return getIsFixed(el.parentElement);\n};\n\nvar getEnv = function (start) {\n var closestScrollable = getClosestScrollable(start);\n var isFixedOnPage = getIsFixed(start);\n return {\n closestScrollable: closestScrollable,\n isFixedOnPage: isFixedOnPage\n };\n};\n\nvar getDroppableDimension = function (_ref) {\n var descriptor = _ref.descriptor,\n isEnabled = _ref.isEnabled,\n isCombineEnabled = _ref.isCombineEnabled,\n isFixedOnPage = _ref.isFixedOnPage,\n direction = _ref.direction,\n client = _ref.client,\n page = _ref.page,\n closest = _ref.closest;\n\n var frame = function () {\n if (!closest) {\n return null;\n }\n\n var scrollSize = closest.scrollSize,\n frameClient = closest.client;\n var maxScroll = getMaxScroll({\n scrollHeight: scrollSize.scrollHeight,\n scrollWidth: scrollSize.scrollWidth,\n height: frameClient.paddingBox.height,\n width: frameClient.paddingBox.width\n });\n return {\n pageMarginBox: closest.page.marginBox,\n frameClient: frameClient,\n scrollSize: scrollSize,\n shouldClipSubject: closest.shouldClipSubject,\n scroll: {\n initial: closest.scroll,\n current: closest.scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n }();\n\n var axis = direction === 'vertical' ? vertical : horizontal;\n var subject = getSubject({\n page: page,\n withPlaceholder: null,\n axis: axis,\n frame: frame\n });\n var dimension = {\n descriptor: descriptor,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: isFixedOnPage,\n axis: axis,\n isEnabled: isEnabled,\n client: client,\n page: page,\n frame: frame,\n subject: subject\n };\n return dimension;\n};\n\nvar getClient = function getClient(targetRef, closestScrollable) {\n var base = getBox(targetRef);\n\n if (!closestScrollable) {\n return base;\n }\n\n if (targetRef !== closestScrollable) {\n return base;\n }\n\n var top = base.paddingBox.top - closestScrollable.scrollTop;\n var left = base.paddingBox.left - closestScrollable.scrollLeft;\n var bottom = top + closestScrollable.scrollHeight;\n var right = left + closestScrollable.scrollWidth;\n var paddingBox = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n var borderBox = expand(paddingBox, base.border);\n var client = createBox({\n borderBox: borderBox,\n margin: base.margin,\n border: base.border,\n padding: base.padding\n });\n return client;\n};\n\nvar getDimension = function (_ref) {\n var ref = _ref.ref,\n descriptor = _ref.descriptor,\n env = _ref.env,\n windowScroll = _ref.windowScroll,\n direction = _ref.direction,\n isDropDisabled = _ref.isDropDisabled,\n isCombineEnabled = _ref.isCombineEnabled,\n shouldClipSubject = _ref.shouldClipSubject;\n var closestScrollable = env.closestScrollable;\n var client = getClient(ref, closestScrollable);\n var page = withScroll(client, windowScroll);\n\n var closest = function () {\n if (!closestScrollable) {\n return null;\n }\n\n var frameClient = getBox(closestScrollable);\n var scrollSize = {\n scrollHeight: closestScrollable.scrollHeight,\n scrollWidth: closestScrollable.scrollWidth\n };\n return {\n client: frameClient,\n page: withScroll(frameClient, windowScroll),\n scroll: getScroll$1(closestScrollable),\n scrollSize: scrollSize,\n shouldClipSubject: shouldClipSubject\n };\n }();\n\n var dimension = getDroppableDimension({\n descriptor: descriptor,\n isEnabled: !isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: env.isFixedOnPage,\n direction: direction,\n client: client,\n page: page,\n closest: closest\n });\n return dimension;\n};\n\nvar immediate = {\n passive: false\n};\nvar delayed = {\n passive: true\n};\n\nvar getListenerOptions = function (options) {\n return options.shouldPublishImmediately ? immediate : delayed;\n};\n\nfunction useRequiredContext(Context) {\n var result = useContext(Context);\n !result ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find required context') : invariant(false) : void 0;\n return result;\n}\n\nvar getClosestScrollableFromDrag = function getClosestScrollableFromDrag(dragging) {\n return dragging && dragging.env.closestScrollable || null;\n};\n\nfunction useDroppablePublisher(args) {\n var whileDraggingRef = useRef(null);\n var appContext = useRequiredContext(AppContext);\n var uniqueId = useUniqueId('droppable');\n var registry = appContext.registry,\n marshal = appContext.marshal;\n var previousRef = usePrevious(args);\n var descriptor = useMemo(function () {\n return {\n id: args.droppableId,\n type: args.type,\n mode: args.mode\n };\n }, [args.droppableId, args.mode, args.type]);\n var publishedDescriptorRef = useRef(descriptor);\n var memoizedUpdateScroll = useMemo(function () {\n return memoizeOne(function (x, y) {\n !whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only update scroll when dragging') : invariant(false) : void 0;\n var scroll = {\n x: x,\n y: y\n };\n marshal.updateDroppableScroll(descriptor.id, scroll);\n });\n }, [descriptor.id, marshal]);\n var getClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n\n if (!dragging || !dragging.env.closestScrollable) {\n return origin;\n }\n\n return getScroll$1(dragging.env.closestScrollable);\n }, []);\n var updateScroll = useCallback(function () {\n var scroll = getClosestScroll();\n memoizedUpdateScroll(scroll.x, scroll.y);\n }, [getClosestScroll, memoizedUpdateScroll]);\n var scheduleScrollUpdate = useMemo(function () {\n return rafSchd(updateScroll);\n }, [updateScroll]);\n var onClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find scroll options while scrolling') : invariant(false) : void 0;\n var options = dragging.scrollOptions;\n\n if (options.shouldPublishImmediately) {\n updateScroll();\n return;\n }\n\n scheduleScrollUpdate();\n }, [scheduleScrollUpdate, updateScroll]);\n var getDimensionAndWatchScroll = useCallback(function (windowScroll, options) {\n !!whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect a droppable while a drag is occurring') : invariant(false) : void 0;\n var previous = previousRef.current;\n var ref = previous.getDroppableRef();\n !ref ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect without a droppable ref') : invariant(false) : void 0;\n var env = getEnv(ref);\n var dragging = {\n ref: ref,\n descriptor: descriptor,\n env: env,\n scrollOptions: options\n };\n whileDraggingRef.current = dragging;\n var dimension = getDimension({\n ref: ref,\n descriptor: descriptor,\n env: env,\n windowScroll: windowScroll,\n direction: previous.direction,\n isDropDisabled: previous.isDropDisabled,\n isCombineEnabled: previous.isCombineEnabled,\n shouldClipSubject: !previous.ignoreContainerClipping\n });\n var scrollable = env.closestScrollable;\n\n if (scrollable) {\n scrollable.setAttribute(scrollContainer.contextId, appContext.contextId);\n scrollable.addEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n\n if (process.env.NODE_ENV !== 'production') {\n checkForNestedScrollContainers(scrollable);\n }\n }\n\n return dimension;\n }, [appContext.contextId, descriptor, onClosestScroll, previousRef]);\n var getScrollWhileDragging = useCallback(function () {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only recollect Droppable client for Droppables that have a scroll container') : invariant(false) : void 0;\n return getScroll$1(closest);\n }, []);\n var dragStopped = useCallback(function () {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop drag when no active drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n whileDraggingRef.current = null;\n\n if (!closest) {\n return;\n }\n\n scheduleScrollUpdate.cancel();\n closest.removeAttribute(scrollContainer.contextId);\n closest.removeEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n }, [onClosestScroll, scheduleScrollUpdate]);\n var scroll = useCallback(function (change) {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll when there is no drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n !closest ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : invariant(false) : void 0;\n closest.scrollTop += change.y;\n closest.scrollLeft += change.x;\n }, []);\n var callbacks = useMemo(function () {\n return {\n getDimensionAndWatchScroll: getDimensionAndWatchScroll,\n getScrollWhileDragging: getScrollWhileDragging,\n dragStopped: dragStopped,\n scroll: scroll\n };\n }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]);\n var entry = useMemo(function () {\n return {\n uniqueId: uniqueId,\n descriptor: descriptor,\n callbacks: callbacks\n };\n }, [callbacks, descriptor, uniqueId]);\n useIsomorphicLayoutEffect(function () {\n publishedDescriptorRef.current = entry.descriptor;\n registry.droppable.register(entry);\n return function () {\n if (whileDraggingRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning('Unsupported: changing the droppableId or type of a Droppable during a drag') : void 0;\n dragStopped();\n }\n\n registry.droppable.unregister(entry);\n };\n }, [callbacks, descriptor, dragStopped, entry, marshal, registry.droppable]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsEnabled(publishedDescriptorRef.current.id, !args.isDropDisabled);\n }, [args.isDropDisabled, marshal]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsCombineEnabled(publishedDescriptorRef.current.id, args.isCombineEnabled);\n }, [args.isCombineEnabled, marshal]);\n}\n\nfunction noop$2() {}\n\nvar empty = {\n width: 0,\n height: 0,\n margin: noSpacing\n};\n\nvar getSize = function getSize(_ref) {\n var isAnimatingOpenOnMount = _ref.isAnimatingOpenOnMount,\n placeholder = _ref.placeholder,\n animate = _ref.animate;\n\n if (isAnimatingOpenOnMount) {\n return empty;\n }\n\n if (animate === 'close') {\n return empty;\n }\n\n return {\n height: placeholder.client.borderBox.height,\n width: placeholder.client.borderBox.width,\n margin: placeholder.client.margin\n };\n};\n\nvar getStyle = function getStyle(_ref2) {\n var isAnimatingOpenOnMount = _ref2.isAnimatingOpenOnMount,\n placeholder = _ref2.placeholder,\n animate = _ref2.animate;\n var size = getSize({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n placeholder: placeholder,\n animate: animate\n });\n return {\n display: placeholder.display,\n boxSizing: 'border-box',\n width: size.width,\n height: size.height,\n marginTop: size.margin.top,\n marginRight: size.margin.right,\n marginBottom: size.margin.bottom,\n marginLeft: size.margin.left,\n flexShrink: '0',\n flexGrow: '0',\n pointerEvents: 'none',\n transition: animate !== 'none' ? transitions.placeholder : null\n };\n};\n\nfunction Placeholder(props) {\n var animateOpenTimerRef = useRef(null);\n var tryClearAnimateOpenTimer = useCallback(function () {\n if (!animateOpenTimerRef.current) {\n return;\n }\n\n clearTimeout(animateOpenTimerRef.current);\n animateOpenTimerRef.current = null;\n }, []);\n var animate = props.animate,\n onTransitionEnd = props.onTransitionEnd,\n onClose = props.onClose,\n contextId = props.contextId;\n\n var _useState = useState(props.animate === 'open'),\n isAnimatingOpenOnMount = _useState[0],\n setIsAnimatingOpenOnMount = _useState[1];\n\n useEffect(function () {\n if (!isAnimatingOpenOnMount) {\n return noop$2;\n }\n\n if (animate !== 'open') {\n tryClearAnimateOpenTimer();\n setIsAnimatingOpenOnMount(false);\n return noop$2;\n }\n\n if (animateOpenTimerRef.current) {\n return noop$2;\n }\n\n animateOpenTimerRef.current = setTimeout(function () {\n animateOpenTimerRef.current = null;\n setIsAnimatingOpenOnMount(false);\n });\n return tryClearAnimateOpenTimer;\n }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]);\n var onSizeChangeEnd = useCallback(function (event) {\n if (event.propertyName !== 'height') {\n return;\n }\n\n onTransitionEnd();\n\n if (animate === 'close') {\n onClose();\n }\n }, [animate, onClose, onTransitionEnd]);\n var style = getStyle({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n animate: props.animate,\n placeholder: props.placeholder\n });\n return React.createElement(props.placeholder.tagName, {\n style: style,\n 'data-rbd-placeholder-context-id': contextId,\n onTransitionEnd: onSizeChangeEnd,\n ref: props.innerRef\n });\n}\n\nvar Placeholder$1 = React.memo(Placeholder);\nvar DroppableContext = React.createContext(null);\n\nfunction checkIsValidInnerRef(el) {\n !(el && isHtmlElement(el)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n provided.innerRef has not been provided with a HTMLElement.\\n\\n You can find a guide on using the innerRef callback functions at:\\n https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md\\n \") : invariant(false) : void 0;\n}\n\nfunction isBoolean(value) {\n return typeof value === 'boolean';\n}\n\nfunction runChecks(args, checks) {\n checks.forEach(function (check) {\n return check(args);\n });\n}\n\nvar shared = [function required(_ref) {\n var props = _ref.props;\n !props.droppableId ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A Droppable requires a droppableId prop') : invariant(false) : void 0;\n !(typeof props.droppableId === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"A Droppable requires a [string] droppableId. Provided: [\" + typeof props.droppableId + \"]\") : invariant(false) : void 0;\n}, function _boolean(_ref2) {\n var props = _ref2.props;\n !isBoolean(props.isDropDisabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isDropDisabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isCombineEnabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.ignoreContainerClipping) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ignoreContainerClipping must be a boolean') : invariant(false) : void 0;\n}, function ref(_ref3) {\n var getDroppableRef = _ref3.getDroppableRef;\n checkIsValidInnerRef(getDroppableRef());\n}];\nvar standard = [function placeholder(_ref4) {\n var props = _ref4.props,\n getPlaceholderRef = _ref4.getPlaceholderRef;\n\n if (!props.placeholder) {\n return;\n }\n\n var ref = getPlaceholderRef();\n\n if (ref) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable setup issue [droppableId: \\\"\" + props.droppableId + \"\\\"]:\\n DroppableProvided > placeholder could not be found.\\n\\n Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/droppable.md\\n \") : void 0;\n}];\nvar virtual = [function hasClone(_ref5) {\n var props = _ref5.props;\n !props.renderClone ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must provide a clone render function (renderClone) for virtual lists') : invariant(false) : void 0;\n}, function hasNoPlaceholder(_ref6) {\n var getPlaceholderRef = _ref6.getPlaceholderRef;\n !!getPlaceholderRef() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected virtual list to not have a placeholder') : invariant(false) : void 0;\n}];\n\nfunction useValidation(args) {\n useDevSetupWarning(function () {\n runChecks(args, shared);\n\n if (args.props.mode === 'standard') {\n runChecks(args, standard);\n }\n\n if (args.props.mode === 'virtual') {\n runChecks(args, virtual);\n }\n });\n}\n\nvar AnimateInOut = function (_React$PureComponent) {\n _inheritsLoose(AnimateInOut, _React$PureComponent);\n\n function AnimateInOut() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n _this.state = {\n isVisible: Boolean(_this.props.on),\n data: _this.props.on,\n animate: _this.props.shouldAnimate && _this.props.on ? 'open' : 'none'\n };\n\n _this.onClose = function () {\n if (_this.state.animate !== 'close') {\n return;\n }\n\n _this.setState({\n isVisible: false\n });\n };\n\n return _this;\n }\n\n AnimateInOut.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (!props.shouldAnimate) {\n return {\n isVisible: Boolean(props.on),\n data: props.on,\n animate: 'none'\n };\n }\n\n if (props.on) {\n return {\n isVisible: true,\n data: props.on,\n animate: 'open'\n };\n }\n\n if (state.isVisible) {\n return {\n isVisible: true,\n data: state.data,\n animate: 'close'\n };\n }\n\n return {\n isVisible: false,\n animate: 'close',\n data: null\n };\n };\n\n var _proto = AnimateInOut.prototype;\n\n _proto.render = function render() {\n if (!this.state.isVisible) {\n return null;\n }\n\n var provided = {\n onClose: this.onClose,\n data: this.state.data,\n animate: this.state.animate\n };\n return this.props.children(provided);\n };\n\n return AnimateInOut;\n}(React.PureComponent);\n\nvar zIndexOptions = {\n dragging: 5000,\n dropAnimating: 4500\n};\n\nvar getDraggingTransition = function getDraggingTransition(shouldAnimateDragMovement, dropping) {\n if (dropping) {\n return transitions.drop(dropping.duration);\n }\n\n if (shouldAnimateDragMovement) {\n return transitions.snap;\n }\n\n return transitions.fluid;\n};\n\nvar getDraggingOpacity = function getDraggingOpacity(isCombining, isDropAnimating) {\n if (!isCombining) {\n return null;\n }\n\n return isDropAnimating ? combine.opacity.drop : combine.opacity.combining;\n};\n\nvar getShouldDraggingAnimate = function getShouldDraggingAnimate(dragging) {\n if (dragging.forceShouldAnimate != null) {\n return dragging.forceShouldAnimate;\n }\n\n return dragging.mode === 'SNAP';\n};\n\nfunction getDraggingStyle(dragging) {\n var dimension = dragging.dimension;\n var box = dimension.client;\n var offset = dragging.offset,\n combineWith = dragging.combineWith,\n dropping = dragging.dropping;\n var isCombining = Boolean(combineWith);\n var shouldAnimate = getShouldDraggingAnimate(dragging);\n var isDropAnimating = Boolean(dropping);\n var transform = isDropAnimating ? transforms.drop(offset, isCombining) : transforms.moveTo(offset);\n var style = {\n position: 'fixed',\n top: box.marginBox.top,\n left: box.marginBox.left,\n boxSizing: 'border-box',\n width: box.borderBox.width,\n height: box.borderBox.height,\n transition: getDraggingTransition(shouldAnimate, dropping),\n transform: transform,\n opacity: getDraggingOpacity(isCombining, isDropAnimating),\n zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging,\n pointerEvents: 'none'\n };\n return style;\n}\n\nfunction getSecondaryStyle(secondary) {\n return {\n transform: transforms.moveTo(secondary.offset),\n transition: secondary.shouldAnimateDisplacement ? null : 'none'\n };\n}\n\nfunction getStyle$1(mapped) {\n return mapped.type === 'DRAGGING' ? getDraggingStyle(mapped) : getSecondaryStyle(mapped);\n}\n\nfunction getDimension$1(descriptor, el, windowScroll) {\n if (windowScroll === void 0) {\n windowScroll = origin;\n }\n\n var computedStyles = window.getComputedStyle(el);\n var borderBox = el.getBoundingClientRect();\n var client = calculateBox(borderBox, computedStyles);\n var page = withScroll(client, windowScroll);\n var placeholder = {\n client: client,\n tagName: el.tagName.toLowerCase(),\n display: computedStyles.display\n };\n var displaceBy = {\n x: client.marginBox.width,\n y: client.marginBox.height\n };\n var dimension = {\n descriptor: descriptor,\n placeholder: placeholder,\n displaceBy: displaceBy,\n client: client,\n page: page\n };\n return dimension;\n}\n\nfunction useDraggablePublisher(args) {\n var uniqueId = useUniqueId('draggable');\n var descriptor = args.descriptor,\n registry = args.registry,\n getDraggableRef = args.getDraggableRef,\n canDragInteractiveElements = args.canDragInteractiveElements,\n shouldRespectForcePress = args.shouldRespectForcePress,\n isEnabled = args.isEnabled;\n var options = useMemo(function () {\n return {\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress,\n isEnabled: isEnabled\n };\n }, [canDragInteractiveElements, isEnabled, shouldRespectForcePress]);\n var getDimension = useCallback(function (windowScroll) {\n var el = getDraggableRef();\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get dimension when no ref is set') : invariant(false) : void 0;\n return getDimension$1(descriptor, el, windowScroll);\n }, [descriptor, getDraggableRef]);\n var entry = useMemo(function () {\n return {\n uniqueId: uniqueId,\n descriptor: descriptor,\n options: options,\n getDimension: getDimension\n };\n }, [descriptor, getDimension, options, uniqueId]);\n var publishedRef = useRef(entry);\n var isFirstPublishRef = useRef(true);\n useIsomorphicLayoutEffect(function () {\n registry.draggable.register(publishedRef.current);\n return function () {\n return registry.draggable.unregister(publishedRef.current);\n };\n }, [registry.draggable]);\n useIsomorphicLayoutEffect(function () {\n if (isFirstPublishRef.current) {\n isFirstPublishRef.current = false;\n return;\n }\n\n var last = publishedRef.current;\n publishedRef.current = entry;\n registry.draggable.update(entry, last);\n }, [entry, registry.draggable]);\n}\n\nfunction useValidation$1(props, contextId, getRef) {\n useDevSetupWarning(function () {\n function prefix(id) {\n return \"Draggable[id: \" + id + \"]: \";\n }\n\n var id = props.draggableId;\n !id ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable requires a draggableId') : invariant(false) : void 0;\n !(typeof id === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Draggable requires a [string] draggableId.\\n Provided: [type: \" + typeof id + \"] (value: \" + id + \")\") : invariant(false) : void 0;\n !isInteger(props.index) ? process.env.NODE_ENV !== \"production\" ? invariant(false, prefix(id) + \" requires an integer index prop\") : invariant(false) : void 0;\n\n if (props.mapped.type === 'DRAGGING') {\n return;\n }\n\n checkIsValidInnerRef(getRef());\n\n if (props.isEnabled) {\n !findDragHandle(contextId, id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, prefix(id) + \" Unable to find drag handle\") : invariant(false) : void 0;\n }\n });\n}\n\nfunction useClonePropValidation(isClone) {\n useDev(function () {\n var initialRef = useRef(isClone);\n useDevSetupWarning(function () {\n !(isClone === initialRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable isClone prop value changed during component life') : invariant(false) : void 0;\n }, [isClone]);\n });\n}\n\nfunction preventHtml5Dnd(event) {\n event.preventDefault();\n}\n\nfunction Draggable(props) {\n var ref = useRef(null);\n var setRef = useCallback(function (el) {\n ref.current = el;\n }, []);\n var getRef = useCallback(function () {\n return ref.current;\n }, []);\n\n var _useRequiredContext = useRequiredContext(AppContext),\n contextId = _useRequiredContext.contextId,\n dragHandleUsageInstructionsId = _useRequiredContext.dragHandleUsageInstructionsId,\n registry = _useRequiredContext.registry;\n\n var _useRequiredContext2 = useRequiredContext(DroppableContext),\n type = _useRequiredContext2.type,\n droppableId = _useRequiredContext2.droppableId;\n\n var descriptor = useMemo(function () {\n return {\n id: props.draggableId,\n index: props.index,\n type: type,\n droppableId: droppableId\n };\n }, [props.draggableId, props.index, type, droppableId]);\n var children = props.children,\n draggableId = props.draggableId,\n isEnabled = props.isEnabled,\n shouldRespectForcePress = props.shouldRespectForcePress,\n canDragInteractiveElements = props.canDragInteractiveElements,\n isClone = props.isClone,\n mapped = props.mapped,\n dropAnimationFinishedAction = props.dropAnimationFinished;\n useValidation$1(props, contextId, getRef);\n useClonePropValidation(isClone);\n\n if (!isClone) {\n var forPublisher = useMemo(function () {\n return {\n descriptor: descriptor,\n registry: registry,\n getDraggableRef: getRef,\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress,\n isEnabled: isEnabled\n };\n }, [descriptor, registry, getRef, canDragInteractiveElements, shouldRespectForcePress, isEnabled]);\n useDraggablePublisher(forPublisher);\n }\n\n var dragHandleProps = useMemo(function () {\n return isEnabled ? {\n tabIndex: 0,\n role: 'button',\n 'aria-describedby': dragHandleUsageInstructionsId,\n 'data-rbd-drag-handle-draggable-id': draggableId,\n 'data-rbd-drag-handle-context-id': contextId,\n draggable: false,\n onDragStart: preventHtml5Dnd\n } : null;\n }, [contextId, dragHandleUsageInstructionsId, draggableId, isEnabled]);\n var onMoveEnd = useCallback(function (event) {\n if (mapped.type !== 'DRAGGING') {\n return;\n }\n\n if (!mapped.dropping) {\n return;\n }\n\n if (event.propertyName !== 'transform') {\n return;\n }\n\n dropAnimationFinishedAction();\n }, [dropAnimationFinishedAction, mapped]);\n var provided = useMemo(function () {\n var style = getStyle$1(mapped);\n var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null;\n var result = {\n innerRef: setRef,\n draggableProps: {\n 'data-rbd-draggable-context-id': contextId,\n 'data-rbd-draggable-id': draggableId,\n style: style,\n onTransitionEnd: onTransitionEnd\n },\n dragHandleProps: dragHandleProps\n };\n return result;\n }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]);\n var rubric = useMemo(function () {\n return {\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n };\n }, [descriptor.droppableId, descriptor.id, descriptor.index, descriptor.type]);\n return children(provided, mapped.snapshot, rubric);\n}\n\nvar isStrictEqual = function (a, b) {\n return a === b;\n};\n\nvar whatIsDraggedOverFromResult = function (result) {\n var combine = result.combine,\n destination = result.destination;\n\n if (destination) {\n return destination.droppableId;\n }\n\n if (combine) {\n return combine.droppableId;\n }\n\n return null;\n};\n\nvar getCombineWithFromResult = function getCombineWithFromResult(result) {\n return result.combine ? result.combine.draggableId : null;\n};\n\nvar getCombineWithFromImpact = function getCombineWithFromImpact(impact) {\n return impact.at && impact.at.type === 'COMBINE' ? impact.at.combine.draggableId : null;\n};\n\nfunction getDraggableSelector() {\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getMemoizedSnapshot = memoizeOne(function (mode, isClone, draggingOver, combineWith, dropping) {\n return {\n isDragging: true,\n isClone: isClone,\n isDropAnimating: Boolean(dropping),\n dropAnimation: dropping,\n mode: mode,\n draggingOver: draggingOver,\n combineWith: combineWith,\n combineTargetFor: null\n };\n });\n var getMemoizedProps = memoizeOne(function (offset, mode, dimension, isClone, draggingOver, combineWith, forceShouldAnimate) {\n return {\n mapped: {\n type: 'DRAGGING',\n dropping: null,\n draggingOver: draggingOver,\n combineWith: combineWith,\n mode: mode,\n offset: offset,\n dimension: dimension,\n forceShouldAnimate: forceShouldAnimate,\n snapshot: getMemoizedSnapshot(mode, isClone, draggingOver, combineWith, null)\n }\n };\n });\n\n var selector = function selector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id !== ownProps.draggableId) {\n return null;\n }\n\n var offset = state.current.client.offset;\n var dimension = state.dimensions.draggables[ownProps.draggableId];\n var draggingOver = whatIsDraggedOver(state.impact);\n var combineWith = getCombineWithFromImpact(state.impact);\n var forceShouldAnimate = state.forceShouldAnimate;\n return getMemoizedProps(memoizedOffset(offset.x, offset.y), state.movementMode, dimension, ownProps.isClone, draggingOver, combineWith, forceShouldAnimate);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId !== ownProps.draggableId) {\n return null;\n }\n\n var isClone = ownProps.isClone;\n var _dimension = state.dimensions.draggables[ownProps.draggableId];\n var result = completed.result;\n var mode = result.mode;\n\n var _draggingOver = whatIsDraggedOverFromResult(result);\n\n var _combineWith = getCombineWithFromResult(result);\n\n var duration = state.dropDuration;\n var dropping = {\n duration: duration,\n curve: curves.drop,\n moveTo: state.newHomeClientOffset,\n opacity: _combineWith ? combine.opacity.drop : null,\n scale: _combineWith ? combine.scale.drop : null\n };\n return {\n mapped: {\n type: 'DRAGGING',\n offset: state.newHomeClientOffset,\n dimension: _dimension,\n dropping: dropping,\n draggingOver: _draggingOver,\n combineWith: _combineWith,\n mode: mode,\n forceShouldAnimate: null,\n snapshot: getMemoizedSnapshot(mode, isClone, _draggingOver, _combineWith, dropping)\n }\n };\n }\n\n return null;\n };\n\n return selector;\n}\n\nfunction getSecondarySnapshot(combineTargetFor) {\n return {\n isDragging: false,\n isDropAnimating: false,\n isClone: false,\n dropAnimation: null,\n mode: null,\n draggingOver: null,\n combineTargetFor: combineTargetFor,\n combineWith: null\n };\n}\n\nvar atRest = {\n mapped: {\n type: 'SECONDARY',\n offset: origin,\n combineTargetFor: null,\n shouldAnimateDisplacement: true,\n snapshot: getSecondarySnapshot(null)\n }\n};\n\nfunction getSecondarySelector() {\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getMemoizedSnapshot = memoizeOne(getSecondarySnapshot);\n var getMemoizedProps = memoizeOne(function (offset, combineTargetFor, shouldAnimateDisplacement) {\n if (combineTargetFor === void 0) {\n combineTargetFor = null;\n }\n\n return {\n mapped: {\n type: 'SECONDARY',\n offset: offset,\n combineTargetFor: combineTargetFor,\n shouldAnimateDisplacement: shouldAnimateDisplacement,\n snapshot: getMemoizedSnapshot(combineTargetFor)\n }\n };\n });\n\n var getFallback = function getFallback(combineTargetFor) {\n return combineTargetFor ? getMemoizedProps(origin, combineTargetFor, true) : null;\n };\n\n var getProps = function getProps(ownId, draggingId, impact, afterCritical) {\n var visualDisplacement = impact.displaced.visible[ownId];\n var isAfterCriticalInVirtualList = Boolean(afterCritical.inVirtualList && afterCritical.effected[ownId]);\n var combine = tryGetCombine(impact);\n var combineTargetFor = combine && combine.draggableId === ownId ? draggingId : null;\n\n if (!visualDisplacement) {\n if (!isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n\n if (impact.displaced.invisible[ownId]) {\n return null;\n }\n\n var change = negate(afterCritical.displacedBy.point);\n\n var _offset = memoizedOffset(change.x, change.y);\n\n return getMemoizedProps(_offset, combineTargetFor, true);\n }\n\n if (isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n\n var displaceBy = impact.displacedBy.point;\n var offset = memoizedOffset(displaceBy.x, displaceBy.y);\n return getMemoizedProps(offset, combineTargetFor, visualDisplacement.shouldAnimate);\n };\n\n var selector = function selector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id === ownProps.draggableId) {\n return null;\n }\n\n return getProps(ownProps.draggableId, state.critical.draggable.id, state.impact, state.afterCritical);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId === ownProps.draggableId) {\n return null;\n }\n\n return getProps(ownProps.draggableId, completed.result.draggableId, completed.impact, completed.afterCritical);\n }\n\n return null;\n };\n\n return selector;\n}\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var draggingSelector = getDraggableSelector();\n var secondarySelector = getSecondarySelector();\n\n var selector = function selector(state, ownProps) {\n return draggingSelector(state, ownProps) || secondarySelector(state, ownProps) || atRest;\n };\n\n return selector;\n};\n\nvar mapDispatchToProps = {\n dropAnimationFinished: dropAnimationFinished\n};\nvar ConnectedDraggable = connect(makeMapStateToProps, mapDispatchToProps, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Draggable);\n\nfunction PrivateDraggable(props) {\n var droppableContext = useRequiredContext(DroppableContext);\n var isUsingCloneFor = droppableContext.isUsingCloneFor;\n\n if (isUsingCloneFor === props.draggableId && !props.isClone) {\n return null;\n }\n\n return React.createElement(ConnectedDraggable, props);\n}\n\nfunction PublicDraggable(props) {\n var isEnabled = typeof props.isDragDisabled === 'boolean' ? !props.isDragDisabled : true;\n var canDragInteractiveElements = Boolean(props.disableInteractiveElementBlocking);\n var shouldRespectForcePress = Boolean(props.shouldRespectForcePress);\n return React.createElement(PrivateDraggable, _extends({}, props, {\n isClone: false,\n isEnabled: isEnabled,\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress\n }));\n}\n\nfunction Droppable(props) {\n var appContext = useContext(AppContext);\n !appContext ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find app context') : invariant(false) : void 0;\n var contextId = appContext.contextId,\n isMovementAllowed = appContext.isMovementAllowed;\n var droppableRef = useRef(null);\n var placeholderRef = useRef(null);\n var children = props.children,\n droppableId = props.droppableId,\n type = props.type,\n mode = props.mode,\n direction = props.direction,\n ignoreContainerClipping = props.ignoreContainerClipping,\n isDropDisabled = props.isDropDisabled,\n isCombineEnabled = props.isCombineEnabled,\n snapshot = props.snapshot,\n useClone = props.useClone,\n updateViewportMaxScroll = props.updateViewportMaxScroll,\n getContainerForClone = props.getContainerForClone;\n var getDroppableRef = useCallback(function () {\n return droppableRef.current;\n }, []);\n var setDroppableRef = useCallback(function (value) {\n droppableRef.current = value;\n }, []);\n var getPlaceholderRef = useCallback(function () {\n return placeholderRef.current;\n }, []);\n var setPlaceholderRef = useCallback(function (value) {\n placeholderRef.current = value;\n }, []);\n useValidation({\n props: props,\n getDroppableRef: getDroppableRef,\n getPlaceholderRef: getPlaceholderRef\n });\n var onPlaceholderTransitionEnd = useCallback(function () {\n if (isMovementAllowed()) {\n updateViewportMaxScroll({\n maxScroll: getMaxWindowScroll()\n });\n }\n }, [isMovementAllowed, updateViewportMaxScroll]);\n useDroppablePublisher({\n droppableId: droppableId,\n type: type,\n mode: mode,\n direction: direction,\n isDropDisabled: isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n ignoreContainerClipping: ignoreContainerClipping,\n getDroppableRef: getDroppableRef\n });\n var placeholder = React.createElement(AnimateInOut, {\n on: props.placeholder,\n shouldAnimate: props.shouldAnimatePlaceholder\n }, function (_ref) {\n var onClose = _ref.onClose,\n data = _ref.data,\n animate = _ref.animate;\n return React.createElement(Placeholder$1, {\n placeholder: data,\n onClose: onClose,\n innerRef: setPlaceholderRef,\n animate: animate,\n contextId: contextId,\n onTransitionEnd: onPlaceholderTransitionEnd\n });\n });\n var provided = useMemo(function () {\n return {\n innerRef: setDroppableRef,\n placeholder: placeholder,\n droppableProps: {\n 'data-rbd-droppable-id': droppableId,\n 'data-rbd-droppable-context-id': contextId\n }\n };\n }, [contextId, droppableId, placeholder, setDroppableRef]);\n var isUsingCloneFor = useClone ? useClone.dragging.draggableId : null;\n var droppableContext = useMemo(function () {\n return {\n droppableId: droppableId,\n type: type,\n isUsingCloneFor: isUsingCloneFor\n };\n }, [droppableId, isUsingCloneFor, type]);\n\n function getClone() {\n if (!useClone) {\n return null;\n }\n\n var dragging = useClone.dragging,\n render = useClone.render;\n var node = React.createElement(PrivateDraggable, {\n draggableId: dragging.draggableId,\n index: dragging.source.index,\n isClone: true,\n isEnabled: true,\n shouldRespectForcePress: false,\n canDragInteractiveElements: true\n }, function (draggableProvided, draggableSnapshot) {\n return render(draggableProvided, draggableSnapshot, dragging);\n });\n return ReactDOM.createPortal(node, getContainerForClone());\n }\n\n return React.createElement(DroppableContext.Provider, {\n value: droppableContext\n }, children(provided, snapshot), getClone());\n}\n\nvar isMatchingType = function isMatchingType(type, critical) {\n return type === critical.droppable.type;\n};\n\nvar getDraggable = function getDraggable(critical, dimensions) {\n return dimensions.draggables[critical.draggable.id];\n};\n\nvar makeMapStateToProps$1 = function makeMapStateToProps() {\n var idleWithAnimation = {\n placeholder: null,\n shouldAnimatePlaceholder: true,\n snapshot: {\n isDraggingOver: false,\n draggingOverWith: null,\n draggingFromThisWith: null,\n isUsingPlaceholder: false\n },\n useClone: null\n };\n\n var idleWithoutAnimation = _extends({}, idleWithAnimation, {\n shouldAnimatePlaceholder: false\n });\n\n var getDraggableRubric = memoizeOne(function (descriptor) {\n return {\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n };\n });\n var getMapProps = memoizeOne(function (id, isEnabled, isDraggingOverForConsumer, isDraggingOverForImpact, dragging, renderClone) {\n var draggableId = dragging.descriptor.id;\n var isHome = dragging.descriptor.droppableId === id;\n\n if (isHome) {\n var useClone = renderClone ? {\n render: renderClone,\n dragging: getDraggableRubric(dragging.descriptor)\n } : null;\n var _snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: isDraggingOverForConsumer ? draggableId : null,\n draggingFromThisWith: draggableId,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: false,\n snapshot: _snapshot,\n useClone: useClone\n };\n }\n\n if (!isEnabled) {\n return idleWithoutAnimation;\n }\n\n if (!isDraggingOverForImpact) {\n return idleWithAnimation;\n }\n\n var snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: draggableId,\n draggingFromThisWith: null,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: true,\n snapshot: snapshot,\n useClone: null\n };\n });\n\n var selector = function selector(state, ownProps) {\n var id = ownProps.droppableId;\n var type = ownProps.type;\n var isEnabled = !ownProps.isDropDisabled;\n var renderClone = ownProps.renderClone;\n\n if (state.isDragging) {\n var critical = state.critical;\n\n if (!isMatchingType(type, critical)) {\n return idleWithoutAnimation;\n }\n\n var dragging = getDraggable(critical, state.dimensions);\n var isDraggingOver = whatIsDraggedOver(state.impact) === id;\n return getMapProps(id, isEnabled, isDraggingOver, isDraggingOver, dragging, renderClone);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (!isMatchingType(type, completed.critical)) {\n return idleWithoutAnimation;\n }\n\n var _dragging = getDraggable(completed.critical, state.dimensions);\n\n return getMapProps(id, isEnabled, whatIsDraggedOverFromResult(completed.result) === id, whatIsDraggedOver(completed.impact) === id, _dragging, renderClone);\n }\n\n if (state.phase === 'IDLE' && state.completed && !state.shouldFlush) {\n var _completed = state.completed;\n\n if (!isMatchingType(type, _completed.critical)) {\n return idleWithoutAnimation;\n }\n\n var wasOver = whatIsDraggedOver(_completed.impact) === id;\n var wasCombining = Boolean(_completed.impact.at && _completed.impact.at.type === 'COMBINE');\n var isHome = _completed.critical.droppable.id === id;\n\n if (wasOver) {\n return wasCombining ? idleWithAnimation : idleWithoutAnimation;\n }\n\n if (isHome) {\n return idleWithAnimation;\n }\n\n return idleWithoutAnimation;\n }\n\n return idleWithoutAnimation;\n };\n\n return selector;\n};\n\nvar mapDispatchToProps$1 = {\n updateViewportMaxScroll: updateViewportMaxScroll\n};\n\nfunction getBody() {\n !document.body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'document.body is not ready') : invariant(false) : void 0;\n return document.body;\n}\n\nvar defaultProps = {\n mode: 'standard',\n type: 'DEFAULT',\n direction: 'vertical',\n isDropDisabled: false,\n isCombineEnabled: false,\n ignoreContainerClipping: false,\n renderClone: null,\n getContainerForClone: getBody\n};\nvar ConnectedDroppable = connect(makeMapStateToProps$1, mapDispatchToProps$1, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Droppable);\nConnectedDroppable.defaultProps = defaultProps;\nexport { DragDropContext, PublicDraggable as Draggable, ConnectedDroppable as Droppable, resetServerContext, useKeyboardSensor, useMouseSensor, useTouchSensor };","map":{"version":3,"names":["React","useLayoutEffect","useEffect","useRef","useState","useContext","_inheritsLoose","_extends","createStore","createStore$1","applyMiddleware","compose","bindActionCreators","Provider","connect","useMemo","useCallback","getRect","expand","offset","withScroll","getBox","createBox","calculateBox","memoizeOne","rafSchd","ReactDOM","isProduction","process","env","NODE_ENV","spacesAndTabs","lineStartWithSpaces","clean","value","replace","trim","getDevMessage","message","getFormattedMessage","isDisabledFlag","log","type","_console","window","console","apply","warning","bind","error","noop","getOptions","shared","fromBinding","bindEvents","el","bindings","sharedOptions","unbindings","map","binding","options","addEventListener","eventName","fn","unbind","removeEventListener","unbindAll","forEach","isProduction$1","prefix","RbdInvariant","prototype","toString","invariant","condition","ErrorBoundary","_React$Component","_this","_len","arguments","length","args","Array","_key","call","concat","callbacks","onWindowError","event","getCallbacks","isDragging","tryAbort","err","preventDefault","Error","setCallbacks","_proto","componentDidMount","componentDidCatch","setState","componentWillUnmount","render","props","children","Component","dragHandleUsageInstructions","position","index","onDragStart","start","source","withLocation","destination","isInHomeList","droppableId","startPosition","endPosition","withCombine","id","combine","inHomeList","draggableId","onDragUpdate","update","location","returnedToStart","onDragEnd","result","reason","preset","origin","x","y","add","point1","point2","subtract","isEqual","negate","point","patch","line","otherValue","_ref","distance","Math","sqrt","pow","closest","target","points","min","executeClip","frame","subject","top","max","right","bottom","left","width","height","offsetByPosition","spacing","getCorners","noSpacing","scroll","diff","displacement","increase","axis","withPlaceholder","increasedBy","_extends2","end","clip","shouldClipSubject","pageMarginBox","getSubject","page","scrolled","marginBox","increased","clipped","active","scrollDroppable","droppable","newScroll","scrollable","scrollDiff","initial","scrollDisplacement","current","isInteger","Number","isFinite","floor","values","Object","keys","key","findIndex","list","predicate","i","find","undefined","toArray","slice","toDroppableMap","droppables","reduce","previous","descriptor","toDraggableMap","draggables","toDroppableList","toDraggableList","getDraggablesInsideDroppable","filter","draggable","sort","a","b","tryGetDestination","impact","at","tryGetCombine","removeDraggableFromList","remove","item","moveToNextCombine","isMovingForward","insideDestination","previousImpact","isCombineEnabled","getImpact","all","displaced","closestId","withoutDraggable","last","indexOfClosest","d","proposedIndex","before","isHomeOf","noDisplacedBy","emptyGroups","invisible","visible","noImpact","displacedBy","isWithin","lowerBound","upperBound","isPartiallyVisibleThroughFrame","isWithinVertical","isWithinHorizontal","isContained","isPartiallyVisibleVertically","isPartiallyVisibleHorizontally","isPartiallyContained","isBiggerVertically","isBiggerHorizontally","isTargetBiggerThanFrame","isTargetBiggerOnOneAxis","isTotallyVisibleThroughFrame","vertical","direction","crossAxisLine","size","crossAxisStart","crossAxisEnd","crossAxisSize","horizontal","isTotallyVisibleThroughFrameOnAxis","getDroppableDisplaced","isVisibleInDroppable","isVisibleThroughFrameFn","isVisibleInViewport","viewport","isVisible","toBeDisplaced","withDroppableDisplacement","displacedTarget","isPartiallyVisible","isTotallyVisible","isTotallyVisibleOnAxis","getShouldAnimate","forceShouldAnimate","shouldAnimate","getTarget","expandBy","getDisplacementGroups","afterDragging","groups","push","getIndexOfLastItem","indexOfLastItem","goAtEnd","newIndex","calculateReorderImpact","_ref2","match","withoutDragging","sliceFrom","indexOf","impacted","didStartAfterCritical","afterCritical","Boolean","effected","fromCombine","combineId","combineWith","combineWithIndex","didCombineWithStartAfterCritical","fromReorder","currentIndex","firstIndex","lastIndex","moveToNextIndex","wasAt","_newIndex","getCombinedItemDisplacement","isDisplaced","whenCombining","center","borderBox","displaceBy","distanceFromStartToBorderBoxCenter","box","margin","distanceFromEndToBorderBoxCenter","getCrossAxisBorderBoxCenter","isMoving","goAfter","moveRelativeTo","goBefore","goIntoStart","_ref3","moveInto","contentBox","whenReordering","draggablePage","closestAfter","withDisplacement","getResultWithoutDroppableDisplacement","original","getPageBorderBoxCenterFromImpact","withoutDisplacement","scrollViewport","updated","getDraggables","ids","tryGetVisible","speculativelyIncrease","maxScrollChange","scrolledViewport","scrolledDroppable","withViewportScroll","withDroppableScroll","newImpact","withViewportDisplacement","getClientFromPageBorderBoxCenter","pageBorderBoxCenter","withoutPageScrollChange","client","isTotallyVisibleInNewLocation","newPageBorderBoxCenter","_ref$onlyOnMainAxis","onlyOnMainAxis","changeNeeded","shifted","moveToNextPlace","previousPageBorderBoxCenter","previousClientSelection","isEnabled","isVisibleInNewLocation","clientSelection","scrollJumpRequest","cautious","getKnownActive","rect","getBestCrossAxisDroppable","isBetweenSourceClipped","candidates","activeOfTarget","isBetweenDestinationClipped","first","second","array","contains","isWithinDroppable","getCurrentPageBorderBoxCenter","getCurrentPageBorderBox","getClosestDraggable","sorted","distanceToA","distanceToB","getDisplacedBy","getRequiredGrowthForPlaceholder","placeholderSize","mode","availableSpace","insideDroppable","spaceUsed","sum","dimension","requiredSpace","needsToGrowBy","withMaxScroll","addPlaceholder","requiredGrowth","added","oldFrameMaxScroll","_subject","maxScroll","newFrame","removePlaceholder","_subject2","oldMaxScroll","moveToNewDroppable","proposed","proposedPageBorderBoxCenter","isGoingBeforeTarget","relativeTo","moveCrossAxis","isOver","whatIsDraggedOver","getDroppableOver","moveInDirection","state","isActuallyOver","dimensions","isMainAxisMovementAllowed","home","critical","isMovingOnMainAxis","borderBoxCenter","_state$dimensions","selection","isMovementAllowed","phase","isPositionInFrame","run","getHasOverlap","getFurthestAway","pageBorderBox","startCenter","candidate","getDroppableOver$1","childCenter","isStartContained","isEndContained","offsetRectByPosition","area","getIsDisplaced","atIndex","getReorderImpact","targetRect","pageBorderBoxWithDroppableScroll","targetStart","targetEnd","child","didStartAfterCritical$1","combineThresholdDivisor","getCombineImpact","childRect","childSize","threshold","getDragImpact","pageOffset","destinationId","patchDroppableMap","clearUnusedPlaceholder","now","lastDroppable","recomputePlaceholders","cleaned","patched","forcedClientSelection","forcedDimensions","forcedViewport","forcedImpact","withUpdatedPlaceholders","getDraggables$1","recompute","getClientBorderBoxCenter","refreshSnap","movementMode","needsVisibilityCheck","getHomeLocation","getLiftEffect","insideHome","rawIndex","inVirtualList","patchDimensionMap","finish","offsetDraggable","offset$1","initialWindowScroll","moved","placeholder","getFrame","adjustAdditionsForScrollChanges","additions","updatedDroppables","windowScrollChange","modified","droppableScrollChange","totalChange","publishWhileDraggingInVirtual","published","withScrollChange","existing","updatedAdditions","removals","wasOverId","wasOver","_getLiftEffect","onLiftImpact","draggingState","dropPending","isWaiting","isSnapping","postDroppableChange","isEnabledChanging","removeScrollJumpRequest","idle","completed","shouldFlush","reducer","action","_action$payload","payload","isWindowScrollAllowed","every","isFixedOnPage","_result","_clientSelection","_action$payload2","_action$payload3","_id","_target","String","_action$payload4","_id2","_target2","_updated","_newScroll","_viewport","_result2","newState","_action$payload5","dropDuration","newHomeClientOffset","_result3","_completed","beforeInitialCapture","lift","initialPublish","publishWhileDragging","collectionStarting","updateDroppableScroll","updateDroppableIsEnabled","updateDroppableIsCombineEnabled","move","moveByWindowScroll","updateViewportMaxScroll","moveUp","moveDown","moveRight","moveLeft","flush","animateDrop","completeDrop","drop","dropAnimationFinished","checkIndexes","indexes","errors","formatted","hasError","join","validateDimensions","lift$1","marshal","getState","dispatch","next","scrollOptions","shouldPublishImmediately","request","_marshal$startPublish","startPublishing","style","dragging","dropping","resting","curves","outOfTheWay","opacity","combining","scale","timings","minDropTime","maxDropTime","outOfTheWayTiming","transitions","fluid","snap","duration","timing","moveTo","transforms","isCombining","translate","dropTimeRange","maxDropTimeAtDistance","cancelDropModifier","getDropDuration","distance$1","percentage","withDuration","toFixed","getNewHomeClientOffset","newClientCenter","getDropImpact","lastImpact","recomputedHomeImpact","didDropInsideDroppable","withoutMovement","drop$1","isWaitingForDrop","_getDropImpact","isAnimationRequired","getWindowScroll","pageXOffset","pageYOffset","getWindowScrollBinding","passive","capture","document","getScrollListener","onWindowScroll","updateScroll","scheduled","isActive","stop","cancel","shouldEnd","scrollListener","store","listener","getExpiringAnnounce","announce","wasCalled","isExpired","timeoutId","setTimeout","clearTimeout","getAsyncMarshal","entries","execute","timerId","_entries$splice","splice","entry","callback","shallow","areLocationsEqual","isCombineEqual","isCriticalEqual","isDraggableEqual","isDroppableEqual","withTimings","getDragStart","responder","data","getDefaultMessage","willExpire","provided","getPublisher","getResponders","asyncMarshal","beforeCapture","onBeforeCapture","beforeStart","onBeforeDragStart","lastCritical","lastLocation","lastCombine","hasCriticalChanged","hasLocationChanged","hasGroupingChanged","abort","responders","publisher","dropAnimationFinish","dropAnimationFlushOnScroll","frameId","clear","cancelAnimationFrame","once","flushDropAnimation","requestAnimationFrame","dimensionMarshalStopper","stopPublishing","focus","isWatching","tryRecordFocus","tryRestoreFocusRecorded","tryShiftRecord","shouldStop","autoScroll","autoScroller","pendingDrop","postActionState","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","name","dimensionMarshal","focusMarshal","styleMarshal","clean$1","createPublisher","registry","staging","collect","_staging","getById","getDimension","getScrollWhileDragging","publish","getMaxScroll","scrollHeight","scrollWidth","adjustedMaxScroll","getDocumentElement","doc","documentElement","getMaxWindowScroll","clientWidth","clientHeight","getViewport","getInitialPublish","windowScroll","getAllByType","getDimensionAndWatchScroll","shouldPublishUpdate","createDimensionMarshal","collection","exists","change","dragStopped","unsubscribe","subscriber","subscribe","canStartDrag","scrollWindow","scrollBy","getScrollableDroppables","getScrollableDroppableOver","maybe","getBestScrollableDroppable","_dimension","config","startFromPercentage","maxScrollAtPercentage","maxPixelScroll","ease","durationDampening","stopDampeningAt","accelerateAt","getDistanceThresholds","container","startScrollingFrom","maxScrollValueAt","thresholds","getPercentage","startOfRange","endOfRange","range","currentInRange","minScroll","getValueFromDistance","distanceToEdge","percentageFromMaxScrollValueAt","percentageFromStartScrollingFrom","ceil","stopAt","dampenValueByTime","proposedScroll","dragStartTime","Date","runTime","betweenAccelerateAtAndStopAtPercentage","getValue","shouldUseTimeDampening","getScrollOnAxis","distanceToEdges","isCloserToEnd","adjustForSizeLimits","isTooBigVertically","isTooBigHorizontally","clean$2","getScroll","required","limited","smallestSigned","getOverlap","getRemainder","targetScroll","overlap","canPartiallyScroll","rawMax","smallestChange","canScrollWindow","getWindowOverlap","canScrollDroppable","getDroppableOverlap","getWindowScrollChange","getDroppableScrollChange","scroll$1","_change","createFluidScroller","scheduleWindowScroll","scheduleDroppableScroll","tryScroll","_dragging","start$1","wasScrollNeeded","fakeScrollCallback","createJumpScroller","moveByOffset","scrollDroppableAsMuchAsItCan","whatTheDroppableCanScroll","remainder","scrollWindowAsMuchAsItCan","whatTheWindowCanScroll","jumpScroller","droppableRemainder","windowRemainder","createAutoScroller","fluidScroller","jumpScroll","scroller","prefix$1","dragHandle","base","contextId","scrollContainer","makeGetSelector","context","attribute","getStyles","rules","property","rule","styles","selector","noPointerEvents","getStyles$1","getSelector","dragHandle$1","grabCursor","always","dropAnimating","draggable$1","transition","userCancel","droppable$1","body","useIsomorphicLayoutEffect","createElement","getHead","head","querySelector","createStyleEl","nonce","setAttribute","useStyleMarshal","alwaysRef","dynamicRef","setDynamicStyle","textContent","setAlwaysStyle","dynamic","appendChild","ref","removeChild","getWindowFromEl","ownerDocument","defaultView","isHtmlElement","HTMLElement","findDragHandle","possible","querySelectorAll","handle","getAttribute","useFocusMarshal","entriesRef","recordRef","restoreFocusFrameRef","isMountedRef","register","unregister","tryGiveFocus","tryGiveFocusTo","activeElement","redirectTo","record","focused","clearFrameOnUnmount","createRegistry","subscribers","cb","notify","findDraggableById","getDraggableById","draggableAPI","uniqueId","findById","findDroppableById","getDroppableById","droppableAPI","useRegistry","unmount","StoreContext","createContext","getBodyElement","visuallyHidden","border","padding","overflow","getId","useAnnouncer","setup","cleanup","count","defaults","separator","reset","useUniqueId","getElementId","useHiddenTextElement","text","mount","display","AppContext","peerDependencies","react","semver","getVersion","exec","major","minor","raw","isSatisfied","expected","actual","checkReactVersion","peerDepValue","actualValue","peerDep","suffix","checkDoctype","doctype","toLowerCase","publicId","useDev","useHook","useDevSetupWarning","inputs","e","useStartupValidation","version","usePrevious","create","lock","isClaimed","claim","abandon","newLock","release","tryAbandon","tab","enter","escape","space","pageUp","pageDown","arrowLeft","arrowUp","arrowRight","arrowDown","_preventedKeys","preventedKeys","preventStandardKeyEvents","keyCode","supportedEventName","supported","primaryButton","sloppyClickThreshold","isSloppyClickThresholdExceeded","abs","idle$1","getCaptureBindings","getPhase","setPhase","button","clientX","clientY","actions","pending","fluidLift","shouldBlockNextClick","shouldRespectForcePress","useMouseSensor","api","phaseRef","unbindEventsRef","startCaptureBinding","onMouseDown","defaultPrevented","ctrlKey","metaKey","shiftKey","altKey","findClosestDraggableId","tryGetLock","sourceEvent","startPendingDrag","preventForcePressBinding","findOptionsForDraggable","canGetLock","listenForCapture","bindCapturingEvents","_scrollJumpKeys","noop$1","scrollJumpKeys","getDraggingBindings","useKeyboardSensor","onKeyDown","preDrag","isCapturing","snapLift","tryStartCapture","idle$2","timeForLongPress","forcePressThreshold","getWindowBindings","getHandleBindings","hasMoved","_event$touches$","touches","touch","isForcePress","force","shouldRespect","useTouchSensor","onTouchStart","longPressTimerId","unbindTarget","unbindWindow","startDragging","webkitHack","useValidateSensorHooks","sensorHooks","previousRef","interactiveTagNames","input","textarea","select","option","optgroup","video","audio","isAnInteractiveElement","parent","hasAnInteractiveTag","tagName","parentElement","isEventInInteractiveElement","getBorderBoxCenterPosition","getBoundingClientRect","isElement","Element","supportedMatchesName","closestPonyfill","closest$1","findClosestDragHandleFromEvent","tryGetClosestDraggableIdFromEvent","findDraggable","_isActive","isLockActive","shouldWarn","canStart","lockAPI","tryStart","forceSensorStop","shouldStart","canDragInteractiveElements","getShouldRespectForcePress","tryDispatch","getAction","tryDispatchWhenDragging","liftActionArgs","move$1","moveUp$1","moveRight$1","moveDown$1","moveLeft$1","abortPreDrag","shouldRelease","defaultSensors","useSensorMarshal","_ref4","customSensors","enableDefaultSensors","useSensors","tryAbandonLock","listenToStore","forceStop","tryReleaseLock","isLockClaimed","createResponders","getStore","lazyRef","App","sensors","lazyStoreRef","lastPropsRef","dragHandleUsageInstructionsId","lazyDispatch","marshalCallbacks","tryResetStore","appCallbacks","getCanLift","getIsMovementAllowed","appContext","canLift","count$1","reset$1","useInstanceCount","resetServerContext","DragDropContext","isEqual$1","isScroll","isAuto","isVisible$1","isEither","overflowX","overflowY","isBoth","isElementScrollable","getComputedStyle","isBodyScrollable","html","htmlStyle","htmlOverflow","getClosestScrollable","checkForNestedScrollContainers","anotherScrollParent","getScroll$1","scrollLeft","scrollTop","getIsFixed","getEnv","closestScrollable","getDroppableDimension","scrollSize","frameClient","paddingBox","getClient","targetRef","isDropDisabled","immediate","delayed","getListenerOptions","useRequiredContext","Context","getClosestScrollableFromDrag","useDroppablePublisher","whileDraggingRef","publishedDescriptorRef","memoizedUpdateScroll","getClosestScroll","scheduleScrollUpdate","onClosestScroll","getDroppableRef","ignoreContainerClipping","removeAttribute","noop$2","empty","getSize","isAnimatingOpenOnMount","animate","getStyle","boxSizing","marginTop","marginRight","marginBottom","marginLeft","flexShrink","flexGrow","pointerEvents","Placeholder","animateOpenTimerRef","tryClearAnimateOpenTimer","onTransitionEnd","onClose","_useState","setIsAnimatingOpenOnMount","onSizeChangeEnd","propertyName","innerRef","Placeholder$1","memo","DroppableContext","checkIsValidInnerRef","isBoolean","runChecks","checks","check","_boolean","standard","getPlaceholderRef","virtual","hasClone","_ref5","renderClone","hasNoPlaceholder","_ref6","useValidation","AnimateInOut","_React$PureComponent","on","getDerivedStateFromProps","PureComponent","zIndexOptions","getDraggingTransition","shouldAnimateDragMovement","getDraggingOpacity","isDropAnimating","getShouldDraggingAnimate","getDraggingStyle","transform","zIndex","getSecondaryStyle","secondary","shouldAnimateDisplacement","getStyle$1","mapped","getDimension$1","computedStyles","useDraggablePublisher","getDraggableRef","publishedRef","isFirstPublishRef","useValidation$1","getRef","useClonePropValidation","isClone","initialRef","preventHtml5Dnd","Draggable","setRef","_useRequiredContext","_useRequiredContext2","dropAnimationFinishedAction","forPublisher","dragHandleProps","tabIndex","role","onMoveEnd","draggableProps","rubric","snapshot","isStrictEqual","whatIsDraggedOverFromResult","getCombineWithFromResult","getCombineWithFromImpact","getDraggableSelector","memoizedOffset","getMemoizedSnapshot","draggingOver","dropAnimation","combineTargetFor","getMemoizedProps","ownProps","_draggingOver","_combineWith","curve","getSecondarySnapshot","atRest","getSecondarySelector","getFallback","getProps","ownId","draggingId","visualDisplacement","isAfterCriticalInVirtualList","_offset","makeMapStateToProps","draggingSelector","secondarySelector","mapDispatchToProps","ConnectedDraggable","pure","areStatePropsEqual","PrivateDraggable","droppableContext","isUsingCloneFor","PublicDraggable","isDragDisabled","disableInteractiveElementBlocking","Droppable","droppableRef","placeholderRef","useClone","getContainerForClone","setDroppableRef","setPlaceholderRef","onPlaceholderTransitionEnd","shouldAnimatePlaceholder","droppableProps","getClone","node","draggableProvided","draggableSnapshot","createPortal","isMatchingType","getDraggable","makeMapStateToProps$1","idleWithAnimation","isDraggingOver","draggingOverWith","draggingFromThisWith","isUsingPlaceholder","idleWithoutAnimation","getDraggableRubric","getMapProps","isDraggingOverForConsumer","isDraggingOverForImpact","isHome","_snapshot","wasCombining","mapDispatchToProps$1","getBody","defaultProps","ConnectedDroppable"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js"],"sourcesContent":["import React, { useLayoutEffect, useEffect, useRef, useState, useContext } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport { createStore as createStore$1, applyMiddleware, compose, bindActionCreators } from 'redux';\nimport { Provider, connect } from 'react-redux';\nimport { useMemo, useCallback } from 'use-memo-one';\nimport { getRect, expand, offset, withScroll, getBox, createBox, calculateBox } from 'css-box-model';\nimport memoizeOne from 'memoize-one';\nimport rafSchd from 'raf-schd';\nimport ReactDOM from 'react-dom';\n\nvar isProduction = process.env.NODE_ENV === 'production';\nvar spacesAndTabs = /[ \\t]{2,}/g;\nvar lineStartWithSpaces = /^[ \\t]*/gm;\n\nvar clean = function clean(value) {\n return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();\n};\n\nvar getDevMessage = function getDevMessage(message) {\n return clean(\"\\n %creact-beautiful-dnd\\n\\n %c\" + clean(message) + \"\\n\\n %c\\uD83D\\uDC77\\u200D This is a development only message. It will be removed in production builds.\\n\");\n};\n\nvar getFormattedMessage = function getFormattedMessage(message) {\n return [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;'];\n};\nvar isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings';\nfunction log(type, message) {\n var _console;\n\n if (isProduction) {\n return;\n }\n\n if (typeof window !== 'undefined' && window[isDisabledFlag]) {\n return;\n }\n\n (_console = console)[type].apply(_console, getFormattedMessage(message));\n}\nvar warning = log.bind(null, 'warn');\nvar error = log.bind(null, 'error');\n\nfunction noop() {}\n\nfunction getOptions(shared, fromBinding) {\n return _extends({}, shared, {}, fromBinding);\n}\n\nfunction bindEvents(el, bindings, sharedOptions) {\n var unbindings = bindings.map(function (binding) {\n var options = getOptions(sharedOptions, binding.options);\n el.addEventListener(binding.eventName, binding.fn, options);\n return function unbind() {\n el.removeEventListener(binding.eventName, binding.fn, options);\n };\n });\n return function unbindAll() {\n unbindings.forEach(function (unbind) {\n unbind();\n });\n };\n}\n\nvar isProduction$1 = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction RbdInvariant(message) {\n this.message = message;\n}\n\nRbdInvariant.prototype.toString = function toString() {\n return this.message;\n};\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction$1) {\n throw new RbdInvariant(prefix);\n } else {\n throw new RbdInvariant(prefix + \": \" + (message || ''));\n }\n}\n\nvar ErrorBoundary = function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n\n function ErrorBoundary() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.callbacks = null;\n _this.unbind = noop;\n\n _this.onWindowError = function (event) {\n var callbacks = _this.getCallbacks();\n\n if (callbacks.isDragging()) {\n callbacks.tryAbort();\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n An error was caught by our window 'error' event listener while a drag was occurring.\\n The active drag has been aborted.\\n \") : void 0;\n }\n\n var err = event.error;\n\n if (err instanceof RbdInvariant) {\n event.preventDefault();\n\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n }\n };\n\n _this.getCallbacks = function () {\n if (!_this.callbacks) {\n throw new Error('Unable to find AppCallbacks in ');\n }\n\n return _this.callbacks;\n };\n\n _this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n\n return _this;\n }\n\n var _proto = ErrorBoundary.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.unbind = bindEvents(window, [{\n eventName: 'error',\n fn: this.onWindowError\n }]);\n };\n\n _proto.componentDidCatch = function componentDidCatch(err) {\n if (err instanceof RbdInvariant) {\n if (process.env.NODE_ENV !== 'production') {\n error(err.message);\n }\n\n this.setState({});\n return;\n }\n\n throw err;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.unbind();\n };\n\n _proto.render = function render() {\n return this.props.children(this.setCallbacks);\n };\n\n return ErrorBoundary;\n}(React.Component);\n\nvar dragHandleUsageInstructions = \"\\n Press space bar to start a drag.\\n When dragging you can use the arrow keys to move the item around and escape to cancel.\\n Some screen readers may require you to be in focus mode or to use your pass through key\\n\";\n\nvar position = function position(index) {\n return index + 1;\n};\n\nvar onDragStart = function onDragStart(start) {\n return \"\\n You have lifted an item in position \" + position(start.source.index) + \"\\n\";\n};\n\nvar withLocation = function withLocation(source, destination) {\n var isInHomeList = source.droppableId === destination.droppableId;\n var startPosition = position(source.index);\n var endPosition = position(destination.index);\n\n if (isInHomeList) {\n return \"\\n You have moved the item from position \" + startPosition + \"\\n to position \" + endPosition + \"\\n \";\n }\n\n return \"\\n You have moved the item from position \" + startPosition + \"\\n in list \" + source.droppableId + \"\\n to list \" + destination.droppableId + \"\\n in position \" + endPosition + \"\\n \";\n};\n\nvar withCombine = function withCombine(id, source, combine) {\n var inHomeList = source.droppableId === combine.droppableId;\n\n if (inHomeList) {\n return \"\\n The item \" + id + \"\\n has been combined with \" + combine.draggableId;\n }\n\n return \"\\n The item \" + id + \"\\n in list \" + source.droppableId + \"\\n has been combined with \" + combine.draggableId + \"\\n in list \" + combine.droppableId + \"\\n \";\n};\n\nvar onDragUpdate = function onDragUpdate(update) {\n var location = update.destination;\n\n if (location) {\n return withLocation(update.source, location);\n }\n\n var combine = update.combine;\n\n if (combine) {\n return withCombine(update.draggableId, update.source, combine);\n }\n\n return 'You are over an area that cannot be dropped on';\n};\n\nvar returnedToStart = function returnedToStart(source) {\n return \"\\n The item has returned to its starting position\\n of \" + position(source.index) + \"\\n\";\n};\n\nvar onDragEnd = function onDragEnd(result) {\n if (result.reason === 'CANCEL') {\n return \"\\n Movement cancelled.\\n \" + returnedToStart(result.source) + \"\\n \";\n }\n\n var location = result.destination;\n var combine = result.combine;\n\n if (location) {\n return \"\\n You have dropped the item.\\n \" + withLocation(result.source, location) + \"\\n \";\n }\n\n if (combine) {\n return \"\\n You have dropped the item.\\n \" + withCombine(result.draggableId, result.source, combine) + \"\\n \";\n }\n\n return \"\\n The item has been dropped while not over a drop area.\\n \" + returnedToStart(result.source) + \"\\n \";\n};\n\nvar preset = {\n dragHandleUsageInstructions: dragHandleUsageInstructions,\n onDragStart: onDragStart,\n onDragUpdate: onDragUpdate,\n onDragEnd: onDragEnd\n};\n\nvar origin = {\n x: 0,\n y: 0\n};\nvar add = function add(point1, point2) {\n return {\n x: point1.x + point2.x,\n y: point1.y + point2.y\n };\n};\nvar subtract = function subtract(point1, point2) {\n return {\n x: point1.x - point2.x,\n y: point1.y - point2.y\n };\n};\nvar isEqual = function isEqual(point1, point2) {\n return point1.x === point2.x && point1.y === point2.y;\n};\nvar negate = function negate(point) {\n return {\n x: point.x !== 0 ? -point.x : 0,\n y: point.y !== 0 ? -point.y : 0\n };\n};\nvar patch = function patch(line, value, otherValue) {\n var _ref;\n\n if (otherValue === void 0) {\n otherValue = 0;\n }\n\n return _ref = {}, _ref[line] = value, _ref[line === 'x' ? 'y' : 'x'] = otherValue, _ref;\n};\nvar distance = function distance(point1, point2) {\n return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2));\n};\nvar closest = function closest(target, points) {\n return Math.min.apply(Math, points.map(function (point) {\n return distance(target, point);\n }));\n};\nvar apply = function apply(fn) {\n return function (point) {\n return {\n x: fn(point.x),\n y: fn(point.y)\n };\n };\n};\n\nvar executeClip = (function (frame, subject) {\n var result = getRect({\n top: Math.max(subject.top, frame.top),\n right: Math.min(subject.right, frame.right),\n bottom: Math.min(subject.bottom, frame.bottom),\n left: Math.max(subject.left, frame.left)\n });\n\n if (result.width <= 0 || result.height <= 0) {\n return null;\n }\n\n return result;\n});\n\nvar offsetByPosition = function offsetByPosition(spacing, point) {\n return {\n top: spacing.top + point.y,\n left: spacing.left + point.x,\n bottom: spacing.bottom + point.y,\n right: spacing.right + point.x\n };\n};\nvar getCorners = function getCorners(spacing) {\n return [{\n x: spacing.left,\n y: spacing.top\n }, {\n x: spacing.right,\n y: spacing.top\n }, {\n x: spacing.left,\n y: spacing.bottom\n }, {\n x: spacing.right,\n y: spacing.bottom\n }];\n};\nvar noSpacing = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n\nvar scroll = function scroll(target, frame) {\n if (!frame) {\n return target;\n }\n\n return offsetByPosition(target, frame.scroll.diff.displacement);\n};\n\nvar increase = function increase(target, axis, withPlaceholder) {\n if (withPlaceholder && withPlaceholder.increasedBy) {\n var _extends2;\n\n return _extends({}, target, (_extends2 = {}, _extends2[axis.end] = target[axis.end] + withPlaceholder.increasedBy[axis.line], _extends2));\n }\n\n return target;\n};\n\nvar clip = function clip(target, frame) {\n if (frame && frame.shouldClipSubject) {\n return executeClip(frame.pageMarginBox, target);\n }\n\n return getRect(target);\n};\n\nvar getSubject = (function (_ref) {\n var page = _ref.page,\n withPlaceholder = _ref.withPlaceholder,\n axis = _ref.axis,\n frame = _ref.frame;\n var scrolled = scroll(page.marginBox, frame);\n var increased = increase(scrolled, axis, withPlaceholder);\n var clipped = clip(increased, frame);\n return {\n page: page,\n withPlaceholder: withPlaceholder,\n active: clipped\n };\n});\n\nvar scrollDroppable = (function (droppable, newScroll) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var scrollable = droppable.frame;\n var scrollDiff = subtract(newScroll, scrollable.scroll.initial);\n var scrollDisplacement = negate(scrollDiff);\n\n var frame = _extends({}, scrollable, {\n scroll: {\n initial: scrollable.scroll.initial,\n current: newScroll,\n diff: {\n value: scrollDiff,\n displacement: scrollDisplacement\n },\n max: scrollable.scroll.max\n }\n });\n\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: droppable.subject.withPlaceholder,\n axis: droppable.axis,\n frame: frame\n });\n\n var result = _extends({}, droppable, {\n frame: frame,\n subject: subject\n });\n\n return result;\n});\n\nfunction isInteger(value) {\n if (Number.isInteger) {\n return Number.isInteger(value);\n }\n\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\nfunction values(map) {\n if (Object.values) {\n return Object.values(map);\n }\n\n return Object.keys(map).map(function (key) {\n return map[key];\n });\n}\nfunction findIndex(list, predicate) {\n if (list.findIndex) {\n return list.findIndex(predicate);\n }\n\n for (var i = 0; i < list.length; i++) {\n if (predicate(list[i])) {\n return i;\n }\n }\n\n return -1;\n}\nfunction find(list, predicate) {\n if (list.find) {\n return list.find(predicate);\n }\n\n var index = findIndex(list, predicate);\n\n if (index !== -1) {\n return list[index];\n }\n\n return undefined;\n}\nfunction toArray(list) {\n return Array.prototype.slice.call(list);\n}\n\nvar toDroppableMap = memoizeOne(function (droppables) {\n return droppables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDraggableMap = memoizeOne(function (draggables) {\n return draggables.reduce(function (previous, current) {\n previous[current.descriptor.id] = current;\n return previous;\n }, {});\n});\nvar toDroppableList = memoizeOne(function (droppables) {\n return values(droppables);\n});\nvar toDraggableList = memoizeOne(function (draggables) {\n return values(draggables);\n});\n\nvar getDraggablesInsideDroppable = memoizeOne(function (droppableId, draggables) {\n var result = toDraggableList(draggables).filter(function (draggable) {\n return droppableId === draggable.descriptor.droppableId;\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n return result;\n});\n\nfunction tryGetDestination(impact) {\n if (impact.at && impact.at.type === 'REORDER') {\n return impact.at.destination;\n }\n\n return null;\n}\nfunction tryGetCombine(impact) {\n if (impact.at && impact.at.type === 'COMBINE') {\n return impact.at.combine;\n }\n\n return null;\n}\n\nvar removeDraggableFromList = memoizeOne(function (remove, list) {\n return list.filter(function (item) {\n return item.descriptor.id !== remove.descriptor.id;\n });\n});\n\nvar moveToNextCombine = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggable = _ref.draggable,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var location = tryGetDestination(previousImpact);\n\n if (!location) {\n return null;\n }\n\n function getImpact(target) {\n var at = {\n type: 'COMBINE',\n combine: {\n draggableId: target,\n droppableId: destination.descriptor.id\n }\n };\n return _extends({}, previousImpact, {\n at: at\n });\n }\n\n var all = previousImpact.displaced.all;\n var closestId = all.length ? all[0] : null;\n\n if (isMovingForward) {\n return closestId ? getImpact(closestId) : null;\n }\n\n var withoutDraggable = removeDraggableFromList(draggable, insideDestination);\n\n if (!closestId) {\n if (!withoutDraggable.length) {\n return null;\n }\n\n var last = withoutDraggable[withoutDraggable.length - 1];\n return getImpact(last.descriptor.id);\n }\n\n var indexOfClosest = findIndex(withoutDraggable, function (d) {\n return d.descriptor.id === closestId;\n });\n !(indexOfClosest !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find displaced item in set') : invariant(false) : void 0;\n var proposedIndex = indexOfClosest - 1;\n\n if (proposedIndex < 0) {\n return null;\n }\n\n var before = withoutDraggable[proposedIndex];\n return getImpact(before.descriptor.id);\n});\n\nvar isHomeOf = (function (draggable, destination) {\n return draggable.descriptor.droppableId === destination.descriptor.id;\n});\n\nvar noDisplacedBy = {\n point: origin,\n value: 0\n};\nvar emptyGroups = {\n invisible: {},\n visible: {},\n all: []\n};\nvar noImpact = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: null\n};\n\nvar isWithin = (function (lowerBound, upperBound) {\n return function (value) {\n return lowerBound <= value && value <= upperBound;\n };\n});\n\nvar isPartiallyVisibleThroughFrame = (function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n\n if (isContained) {\n return true;\n }\n\n var isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom);\n var isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right);\n var isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally;\n\n if (isPartiallyContained) {\n return true;\n }\n\n var isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom;\n var isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right;\n var isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally;\n\n if (isTargetBiggerThanFrame) {\n return true;\n }\n\n var isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically;\n return isTargetBiggerOnOneAxis;\n };\n});\n\nvar isTotallyVisibleThroughFrame = (function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n return isContained;\n };\n});\n\nvar vertical = {\n direction: 'vertical',\n line: 'y',\n crossAxisLine: 'x',\n start: 'top',\n end: 'bottom',\n size: 'height',\n crossAxisStart: 'left',\n crossAxisEnd: 'right',\n crossAxisSize: 'width'\n};\nvar horizontal = {\n direction: 'horizontal',\n line: 'x',\n crossAxisLine: 'y',\n start: 'left',\n end: 'right',\n size: 'width',\n crossAxisStart: 'top',\n crossAxisEnd: 'bottom',\n crossAxisSize: 'height'\n};\n\nvar isTotallyVisibleThroughFrameOnAxis = (function (axis) {\n return function (frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function (subject) {\n if (axis === vertical) {\n return isWithinVertical(subject.top) && isWithinVertical(subject.bottom);\n }\n\n return isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right);\n };\n };\n});\n\nvar getDroppableDisplaced = function getDroppableDisplaced(target, destination) {\n var displacement = destination.frame ? destination.frame.scroll.diff.displacement : origin;\n return offsetByPosition(target, displacement);\n};\n\nvar isVisibleInDroppable = function isVisibleInDroppable(target, destination, isVisibleThroughFrameFn) {\n if (!destination.subject.active) {\n return false;\n }\n\n return isVisibleThroughFrameFn(destination.subject.active)(target);\n};\n\nvar isVisibleInViewport = function isVisibleInViewport(target, viewport, isVisibleThroughFrameFn) {\n return isVisibleThroughFrameFn(viewport)(target);\n};\n\nvar isVisible = function isVisible(_ref) {\n var toBeDisplaced = _ref.target,\n destination = _ref.destination,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n isVisibleThroughFrameFn = _ref.isVisibleThroughFrameFn;\n var displacedTarget = withDroppableDisplacement ? getDroppableDisplaced(toBeDisplaced, destination) : toBeDisplaced;\n return isVisibleInDroppable(displacedTarget, destination, isVisibleThroughFrameFn) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn);\n};\n\nvar isPartiallyVisible = function isPartiallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame\n }));\n};\nvar isTotallyVisible = function isTotallyVisible(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrame\n }));\n};\nvar isTotallyVisibleOnAxis = function isTotallyVisibleOnAxis(args) {\n return isVisible(_extends({}, args, {\n isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis(args.destination.axis)\n }));\n};\n\nvar getShouldAnimate = function getShouldAnimate(id, last, forceShouldAnimate) {\n if (typeof forceShouldAnimate === 'boolean') {\n return forceShouldAnimate;\n }\n\n if (!last) {\n return true;\n }\n\n var invisible = last.invisible,\n visible = last.visible;\n\n if (invisible[id]) {\n return false;\n }\n\n var previous = visible[id];\n return previous ? previous.shouldAnimate : true;\n};\n\nfunction getTarget(draggable, displacedBy) {\n var marginBox = draggable.page.marginBox;\n var expandBy = {\n top: displacedBy.point.y,\n right: 0,\n bottom: 0,\n left: displacedBy.point.x\n };\n return getRect(expand(marginBox, expandBy));\n}\n\nfunction getDisplacementGroups(_ref) {\n var afterDragging = _ref.afterDragging,\n destination = _ref.destination,\n displacedBy = _ref.displacedBy,\n viewport = _ref.viewport,\n forceShouldAnimate = _ref.forceShouldAnimate,\n last = _ref.last;\n return afterDragging.reduce(function process(groups, draggable) {\n var target = getTarget(draggable, displacedBy);\n var id = draggable.descriptor.id;\n groups.all.push(id);\n var isVisible = isPartiallyVisible({\n target: target,\n destination: destination,\n viewport: viewport,\n withDroppableDisplacement: true\n });\n\n if (!isVisible) {\n groups.invisible[draggable.descriptor.id] = true;\n return groups;\n }\n\n var shouldAnimate = getShouldAnimate(id, last, forceShouldAnimate);\n var displacement = {\n draggableId: id,\n shouldAnimate: shouldAnimate\n };\n groups.visible[id] = displacement;\n return groups;\n }, {\n all: [],\n visible: {},\n invisible: {}\n });\n}\n\nfunction getIndexOfLastItem(draggables, options) {\n if (!draggables.length) {\n return 0;\n }\n\n var indexOfLastItem = draggables[draggables.length - 1].descriptor.index;\n return options.inHomeList ? indexOfLastItem : indexOfLastItem + 1;\n}\n\nfunction goAtEnd(_ref) {\n var insideDestination = _ref.insideDestination,\n inHomeList = _ref.inHomeList,\n displacedBy = _ref.displacedBy,\n destination = _ref.destination;\n var newIndex = getIndexOfLastItem(insideDestination, {\n inHomeList: inHomeList\n });\n return {\n displaced: emptyGroups,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: newIndex\n }\n }\n };\n}\n\nfunction calculateReorderImpact(_ref2) {\n var draggable = _ref2.draggable,\n insideDestination = _ref2.insideDestination,\n destination = _ref2.destination,\n viewport = _ref2.viewport,\n displacedBy = _ref2.displacedBy,\n last = _ref2.last,\n index = _ref2.index,\n forceShouldAnimate = _ref2.forceShouldAnimate;\n var inHomeList = isHomeOf(draggable, destination);\n\n if (index == null) {\n return goAtEnd({\n insideDestination: insideDestination,\n inHomeList: inHomeList,\n displacedBy: displacedBy,\n destination: destination\n });\n }\n\n var match = find(insideDestination, function (item) {\n return item.descriptor.index === index;\n });\n\n if (!match) {\n return goAtEnd({\n insideDestination: insideDestination,\n inHomeList: inHomeList,\n displacedBy: displacedBy,\n destination: destination\n });\n }\n\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var sliceFrom = insideDestination.indexOf(match);\n var impacted = withoutDragging.slice(sliceFrom);\n var displaced = getDisplacementGroups({\n afterDragging: impacted,\n destination: destination,\n displacedBy: displacedBy,\n last: last,\n viewport: viewport.frame,\n forceShouldAnimate: forceShouldAnimate\n });\n return {\n displaced: displaced,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: index\n }\n }\n };\n}\n\nfunction didStartAfterCritical(draggableId, afterCritical) {\n return Boolean(afterCritical.effected[draggableId]);\n}\n\nvar fromCombine = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n destination = _ref.destination,\n draggables = _ref.draggables,\n combine = _ref.combine,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var combineId = combine.draggableId;\n var combineWith = draggables[combineId];\n var combineWithIndex = combineWith.descriptor.index;\n var didCombineWithStartAfterCritical = didStartAfterCritical(combineId, afterCritical);\n\n if (didCombineWithStartAfterCritical) {\n if (isMovingForward) {\n return combineWithIndex;\n }\n\n return combineWithIndex - 1;\n }\n\n if (isMovingForward) {\n return combineWithIndex + 1;\n }\n\n return combineWithIndex;\n});\n\nvar fromReorder = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n insideDestination = _ref.insideDestination,\n location = _ref.location;\n\n if (!insideDestination.length) {\n return null;\n }\n\n var currentIndex = location.index;\n var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1;\n var firstIndex = insideDestination[0].descriptor.index;\n var lastIndex = insideDestination[insideDestination.length - 1].descriptor.index;\n var upperBound = isInHomeList ? lastIndex : lastIndex + 1;\n\n if (proposedIndex < firstIndex) {\n return null;\n }\n\n if (proposedIndex > upperBound) {\n return null;\n }\n\n return proposedIndex;\n});\n\nvar moveToNextIndex = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n isInHomeList = _ref.isInHomeList,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var wasAt = previousImpact.at;\n !wasAt ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot move in direction without previous impact location') : invariant(false) : void 0;\n\n if (wasAt.type === 'REORDER') {\n var _newIndex = fromReorder({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n location: wasAt.destination,\n insideDestination: insideDestination\n });\n\n if (_newIndex == null) {\n return null;\n }\n\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: _newIndex\n });\n }\n\n var newIndex = fromCombine({\n isMovingForward: isMovingForward,\n destination: destination,\n displaced: previousImpact.displaced,\n draggables: draggables,\n combine: wasAt.combine,\n afterCritical: afterCritical\n });\n\n if (newIndex == null) {\n return null;\n }\n\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: previousImpact.displaced,\n displacedBy: previousImpact.displacedBy,\n index: newIndex\n });\n});\n\nvar getCombinedItemDisplacement = (function (_ref) {\n var displaced = _ref.displaced,\n afterCritical = _ref.afterCritical,\n combineWith = _ref.combineWith,\n displacedBy = _ref.displacedBy;\n var isDisplaced = Boolean(displaced.visible[combineWith] || displaced.invisible[combineWith]);\n\n if (didStartAfterCritical(combineWith, afterCritical)) {\n return isDisplaced ? origin : negate(displacedBy.point);\n }\n\n return isDisplaced ? displacedBy.point : origin;\n});\n\nvar whenCombining = (function (_ref) {\n var afterCritical = _ref.afterCritical,\n impact = _ref.impact,\n draggables = _ref.draggables;\n var combine = tryGetCombine(impact);\n !combine ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var combineWith = combine.draggableId;\n var center = draggables[combineWith].page.borderBox.center;\n var displaceBy = getCombinedItemDisplacement({\n displaced: impact.displaced,\n afterCritical: afterCritical,\n combineWith: combineWith,\n displacedBy: impact.displacedBy\n });\n return add(center, displaceBy);\n});\n\nvar distanceFromStartToBorderBoxCenter = function distanceFromStartToBorderBoxCenter(axis, box) {\n return box.margin[axis.start] + box.borderBox[axis.size] / 2;\n};\n\nvar distanceFromEndToBorderBoxCenter = function distanceFromEndToBorderBoxCenter(axis, box) {\n return box.margin[axis.end] + box.borderBox[axis.size] / 2;\n};\n\nvar getCrossAxisBorderBoxCenter = function getCrossAxisBorderBoxCenter(axis, target, isMoving) {\n return target[axis.crossAxisStart] + isMoving.margin[axis.crossAxisStart] + isMoving.borderBox[axis.crossAxisSize] / 2;\n};\n\nvar goAfter = function goAfter(_ref) {\n var axis = _ref.axis,\n moveRelativeTo = _ref.moveRelativeTo,\n isMoving = _ref.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.end] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nvar goBefore = function goBefore(_ref2) {\n var axis = _ref2.axis,\n moveRelativeTo = _ref2.moveRelativeTo,\n isMoving = _ref2.isMoving;\n return patch(axis.line, moveRelativeTo.marginBox[axis.start] - distanceFromEndToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving));\n};\nvar goIntoStart = function goIntoStart(_ref3) {\n var axis = _ref3.axis,\n moveInto = _ref3.moveInto,\n isMoving = _ref3.isMoving;\n return patch(axis.line, moveInto.contentBox[axis.start] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving));\n};\n\nvar whenReordering = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppable = _ref.droppable,\n afterCritical = _ref.afterCritical;\n var insideDestination = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var draggablePage = draggable.page;\n var axis = droppable.axis;\n\n if (!insideDestination.length) {\n return goIntoStart({\n axis: axis,\n moveInto: droppable.page,\n isMoving: draggablePage\n });\n }\n\n var displaced = impact.displaced,\n displacedBy = impact.displacedBy;\n var closestAfter = displaced.all[0];\n\n if (closestAfter) {\n var closest = draggables[closestAfter];\n\n if (didStartAfterCritical(closestAfter, afterCritical)) {\n return goBefore({\n axis: axis,\n moveRelativeTo: closest.page,\n isMoving: draggablePage\n });\n }\n\n var withDisplacement = offset(closest.page, displacedBy.point);\n return goBefore({\n axis: axis,\n moveRelativeTo: withDisplacement,\n isMoving: draggablePage\n });\n }\n\n var last = insideDestination[insideDestination.length - 1];\n\n if (last.descriptor.id === draggable.descriptor.id) {\n return draggablePage.borderBox.center;\n }\n\n if (didStartAfterCritical(last.descriptor.id, afterCritical)) {\n var page = offset(last.page, negate(afterCritical.displacedBy.point));\n return goAfter({\n axis: axis,\n moveRelativeTo: page,\n isMoving: draggablePage\n });\n }\n\n return goAfter({\n axis: axis,\n moveRelativeTo: last.page,\n isMoving: draggablePage\n });\n});\n\nvar withDroppableDisplacement = (function (droppable, point) {\n var frame = droppable.frame;\n\n if (!frame) {\n return point;\n }\n\n return add(point, frame.scroll.diff.displacement);\n});\n\nvar getResultWithoutDroppableDisplacement = function getResultWithoutDroppableDisplacement(_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n afterCritical = _ref.afterCritical;\n var original = draggable.page.borderBox.center;\n var at = impact.at;\n\n if (!droppable) {\n return original;\n }\n\n if (!at) {\n return original;\n }\n\n if (at.type === 'REORDER') {\n return whenReordering({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n afterCritical: afterCritical\n });\n }\n\n return whenCombining({\n impact: impact,\n draggables: draggables,\n afterCritical: afterCritical\n });\n};\n\nvar getPageBorderBoxCenterFromImpact = (function (args) {\n var withoutDisplacement = getResultWithoutDroppableDisplacement(args);\n var droppable = args.droppable;\n var withDisplacement = droppable ? withDroppableDisplacement(droppable, withoutDisplacement) : withoutDisplacement;\n return withDisplacement;\n});\n\nvar scrollViewport = (function (viewport, newScroll) {\n var diff = subtract(newScroll, viewport.scroll.initial);\n var displacement = negate(diff);\n var frame = getRect({\n top: newScroll.y,\n bottom: newScroll.y + viewport.frame.height,\n left: newScroll.x,\n right: newScroll.x + viewport.frame.width\n });\n var updated = {\n frame: frame,\n scroll: {\n initial: viewport.scroll.initial,\n max: viewport.scroll.max,\n current: newScroll,\n diff: {\n value: diff,\n displacement: displacement\n }\n }\n };\n return updated;\n});\n\nfunction getDraggables(ids, draggables) {\n return ids.map(function (id) {\n return draggables[id];\n });\n}\n\nfunction tryGetVisible(id, groups) {\n for (var i = 0; i < groups.length; i++) {\n var displacement = groups[i].visible[id];\n\n if (displacement) {\n return displacement;\n }\n }\n\n return null;\n}\n\nvar speculativelyIncrease = (function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n destination = _ref.destination,\n draggables = _ref.draggables,\n maxScrollChange = _ref.maxScrollChange;\n var scrolledViewport = scrollViewport(viewport, add(viewport.scroll.current, maxScrollChange));\n var scrolledDroppable = destination.frame ? scrollDroppable(destination, add(destination.frame.scroll.current, maxScrollChange)) : destination;\n var last = impact.displaced;\n var withViewportScroll = getDisplacementGroups({\n afterDragging: getDraggables(last.all, draggables),\n destination: destination,\n displacedBy: impact.displacedBy,\n viewport: scrolledViewport.frame,\n last: last,\n forceShouldAnimate: false\n });\n var withDroppableScroll = getDisplacementGroups({\n afterDragging: getDraggables(last.all, draggables),\n destination: scrolledDroppable,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n last: last,\n forceShouldAnimate: false\n });\n var invisible = {};\n var visible = {};\n var groups = [last, withViewportScroll, withDroppableScroll];\n last.all.forEach(function (id) {\n var displacement = tryGetVisible(id, groups);\n\n if (displacement) {\n visible[id] = displacement;\n return;\n }\n\n invisible[id] = true;\n });\n\n var newImpact = _extends({}, impact, {\n displaced: {\n all: last.all,\n invisible: invisible,\n visible: visible\n }\n });\n\n return newImpact;\n});\n\nvar withViewportDisplacement = (function (viewport, point) {\n return add(viewport.scroll.diff.displacement, point);\n});\n\nvar getClientFromPageBorderBoxCenter = (function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n draggable = _ref.draggable,\n viewport = _ref.viewport;\n var withoutPageScrollChange = withViewportDisplacement(viewport, pageBorderBoxCenter);\n var offset = subtract(withoutPageScrollChange, draggable.page.borderBox.center);\n return add(draggable.client.borderBox.center, offset);\n});\n\nvar isTotallyVisibleInNewLocation = (function (_ref) {\n var draggable = _ref.draggable,\n destination = _ref.destination,\n newPageBorderBoxCenter = _ref.newPageBorderBoxCenter,\n viewport = _ref.viewport,\n withDroppableDisplacement = _ref.withDroppableDisplacement,\n _ref$onlyOnMainAxis = _ref.onlyOnMainAxis,\n onlyOnMainAxis = _ref$onlyOnMainAxis === void 0 ? false : _ref$onlyOnMainAxis;\n var changeNeeded = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center);\n var shifted = offsetByPosition(draggable.page.borderBox, changeNeeded);\n var args = {\n target: shifted,\n destination: destination,\n withDroppableDisplacement: withDroppableDisplacement,\n viewport: viewport\n };\n return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args);\n});\n\nvar moveToNextPlace = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n draggable = _ref.draggable,\n destination = _ref.destination,\n draggables = _ref.draggables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n previousClientSelection = _ref.previousClientSelection,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isEnabled) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var isInHomeList = isHomeOf(draggable, destination);\n var impact = moveToNextCombine({\n isMovingForward: isMovingForward,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact\n }) || moveToNextIndex({\n isMovingForward: isMovingForward,\n isInHomeList: isInHomeList,\n draggable: draggable,\n draggables: draggables,\n destination: destination,\n insideDestination: insideDestination,\n previousImpact: previousImpact,\n viewport: viewport,\n afterCritical: afterCritical\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: destination,\n newPageBorderBoxCenter: pageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n\n if (isVisibleInNewLocation) {\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n }\n\n var distance = subtract(pageBorderBoxCenter, previousPageBorderBoxCenter);\n var cautious = speculativelyIncrease({\n impact: impact,\n viewport: viewport,\n destination: destination,\n draggables: draggables,\n maxScrollChange: distance\n });\n return {\n clientSelection: previousClientSelection,\n impact: cautious,\n scrollJumpRequest: distance\n };\n});\n\nvar getKnownActive = function getKnownActive(droppable) {\n var rect = droppable.subject.active;\n !rect ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get clipped area from droppable') : invariant(false) : void 0;\n return rect;\n};\n\nvar getBestCrossAxisDroppable = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n source = _ref.source,\n droppables = _ref.droppables,\n viewport = _ref.viewport;\n var active = source.subject.active;\n\n if (!active) {\n return null;\n }\n\n var axis = source.axis;\n var isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]);\n var candidates = toDroppableList(droppables).filter(function (droppable) {\n return droppable !== source;\n }).filter(function (droppable) {\n return droppable.isEnabled;\n }).filter(function (droppable) {\n return Boolean(droppable.subject.active);\n }).filter(function (droppable) {\n return isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable));\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n\n if (isMovingForward) {\n return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd];\n }\n\n return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart];\n }).filter(function (droppable) {\n var activeOfTarget = getKnownActive(droppable);\n var isBetweenDestinationClipped = isWithin(activeOfTarget[axis.start], activeOfTarget[axis.end]);\n return isBetweenSourceClipped(activeOfTarget[axis.start]) || isBetweenSourceClipped(activeOfTarget[axis.end]) || isBetweenDestinationClipped(active[axis.start]) || isBetweenDestinationClipped(active[axis.end]);\n }).sort(function (a, b) {\n var first = getKnownActive(a)[axis.crossAxisStart];\n var second = getKnownActive(b)[axis.crossAxisStart];\n\n if (isMovingForward) {\n return first - second;\n }\n\n return second - first;\n }).filter(function (droppable, index, array) {\n return getKnownActive(droppable)[axis.crossAxisStart] === getKnownActive(array[0])[axis.crossAxisStart];\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0];\n }\n\n var contains = candidates.filter(function (droppable) {\n var isWithinDroppable = isWithin(getKnownActive(droppable)[axis.start], getKnownActive(droppable)[axis.end]);\n return isWithinDroppable(pageBorderBoxCenter[axis.line]);\n });\n\n if (contains.length === 1) {\n return contains[0];\n }\n\n if (contains.length > 1) {\n return contains.sort(function (a, b) {\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n }\n\n return candidates.sort(function (a, b) {\n var first = closest(pageBorderBoxCenter, getCorners(getKnownActive(a)));\n var second = closest(pageBorderBoxCenter, getCorners(getKnownActive(b)));\n\n if (first !== second) {\n return first - second;\n }\n\n return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start];\n })[0];\n});\n\nvar getCurrentPageBorderBoxCenter = function getCurrentPageBorderBoxCenter(draggable, afterCritical) {\n var original = draggable.page.borderBox.center;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? subtract(original, afterCritical.displacedBy.point) : original;\n};\nvar getCurrentPageBorderBox = function getCurrentPageBorderBox(draggable, afterCritical) {\n var original = draggable.page.borderBox;\n return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? offsetByPosition(original, negate(afterCritical.displacedBy.point)) : original;\n};\n\nvar getClosestDraggable = (function (_ref) {\n var pageBorderBoxCenter = _ref.pageBorderBoxCenter,\n viewport = _ref.viewport,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n afterCritical = _ref.afterCritical;\n var sorted = insideDestination.filter(function (draggable) {\n return isTotallyVisible({\n target: getCurrentPageBorderBox(draggable, afterCritical),\n destination: destination,\n viewport: viewport.frame,\n withDroppableDisplacement: true\n });\n }).sort(function (a, b) {\n var distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(a, afterCritical)));\n var distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(b, afterCritical)));\n\n if (distanceToA < distanceToB) {\n return -1;\n }\n\n if (distanceToB < distanceToA) {\n return 1;\n }\n\n return a.descriptor.index - b.descriptor.index;\n });\n return sorted[0] || null;\n});\n\nvar getDisplacedBy = memoizeOne(function getDisplacedBy(axis, displaceBy) {\n var displacement = displaceBy[axis.line];\n return {\n value: displacement,\n point: patch(axis.line, displacement)\n };\n});\n\nvar getRequiredGrowthForPlaceholder = function getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables) {\n var axis = droppable.axis;\n\n if (droppable.descriptor.mode === 'virtual') {\n return patch(axis.line, placeholderSize[axis.line]);\n }\n\n var availableSpace = droppable.subject.page.contentBox[axis.size];\n var insideDroppable = getDraggablesInsideDroppable(droppable.descriptor.id, draggables);\n var spaceUsed = insideDroppable.reduce(function (sum, dimension) {\n return sum + dimension.client.marginBox[axis.size];\n }, 0);\n var requiredSpace = spaceUsed + placeholderSize[axis.line];\n var needsToGrowBy = requiredSpace - availableSpace;\n\n if (needsToGrowBy <= 0) {\n return null;\n }\n\n return patch(axis.line, needsToGrowBy);\n};\n\nvar withMaxScroll = function withMaxScroll(frame, max) {\n return _extends({}, frame, {\n scroll: _extends({}, frame.scroll, {\n max: max\n })\n });\n};\n\nvar addPlaceholder = function addPlaceholder(droppable, draggable, draggables) {\n var frame = droppable.frame;\n !!isHomeOf(draggable, droppable) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should not add placeholder space to home list') : invariant(false) : void 0;\n !!droppable.subject.withPlaceholder ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot add placeholder size to a subject when it already has one') : invariant(false) : void 0;\n var placeholderSize = getDisplacedBy(droppable.axis, draggable.displaceBy).point;\n var requiredGrowth = getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables);\n var added = {\n placeholderSize: placeholderSize,\n increasedBy: requiredGrowth,\n oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null\n };\n\n if (!frame) {\n var _subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: droppable.frame\n });\n\n return _extends({}, droppable, {\n subject: _subject\n });\n }\n\n var maxScroll = requiredGrowth ? add(frame.scroll.max, requiredGrowth) : frame.scroll.max;\n var newFrame = withMaxScroll(frame, maxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n withPlaceholder: added,\n axis: droppable.axis,\n frame: newFrame\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\nvar removePlaceholder = function removePlaceholder(droppable) {\n var added = droppable.subject.withPlaceholder;\n !added ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot remove placeholder form subject when there was none') : invariant(false) : void 0;\n var frame = droppable.frame;\n\n if (!frame) {\n var _subject2 = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: null,\n withPlaceholder: null\n });\n\n return _extends({}, droppable, {\n subject: _subject2\n });\n }\n\n var oldMaxScroll = added.oldFrameMaxScroll;\n !oldMaxScroll ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected droppable with frame to have old max frame scroll when removing placeholder') : invariant(false) : void 0;\n var newFrame = withMaxScroll(frame, oldMaxScroll);\n var subject = getSubject({\n page: droppable.subject.page,\n axis: droppable.axis,\n frame: newFrame,\n withPlaceholder: null\n });\n return _extends({}, droppable, {\n subject: subject,\n frame: newFrame\n });\n};\n\nvar moveToNewDroppable = (function (_ref) {\n var previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n moveRelativeTo = _ref.moveRelativeTo,\n insideDestination = _ref.insideDestination,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n destination = _ref.destination,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n\n if (!moveRelativeTo) {\n if (insideDestination.length) {\n return null;\n }\n\n var proposed = {\n displaced: emptyGroups,\n displacedBy: noDisplacedBy,\n at: {\n type: 'REORDER',\n destination: {\n droppableId: destination.descriptor.id,\n index: 0\n }\n }\n };\n var proposedPageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: proposed,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var withPlaceholder = isHomeOf(draggable, destination) ? destination : addPlaceholder(destination, draggable, draggables);\n var isVisibleInNewLocation = isTotallyVisibleInNewLocation({\n draggable: draggable,\n destination: withPlaceholder,\n newPageBorderBoxCenter: proposedPageBorderBoxCenter,\n viewport: viewport.frame,\n withDroppableDisplacement: false,\n onlyOnMainAxis: true\n });\n return isVisibleInNewLocation ? proposed : null;\n }\n\n var isGoingBeforeTarget = Boolean(previousPageBorderBoxCenter[destination.axis.line] <= moveRelativeTo.page.borderBox.center[destination.axis.line]);\n\n var proposedIndex = function () {\n var relativeTo = moveRelativeTo.descriptor.index;\n\n if (moveRelativeTo.descriptor.id === draggable.descriptor.id) {\n return relativeTo;\n }\n\n if (isGoingBeforeTarget) {\n return relativeTo;\n }\n\n return relativeTo + 1;\n }();\n\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n displacedBy: displacedBy,\n last: emptyGroups,\n index: proposedIndex\n });\n});\n\nvar moveCrossAxis = (function (_ref) {\n var isMovingForward = _ref.isMovingForward,\n previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter,\n draggable = _ref.draggable,\n isOver = _ref.isOver,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var destination = getBestCrossAxisDroppable({\n isMovingForward: isMovingForward,\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n source: isOver,\n droppables: droppables,\n viewport: viewport\n });\n\n if (!destination) {\n return null;\n }\n\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var moveRelativeTo = getClosestDraggable({\n pageBorderBoxCenter: previousPageBorderBoxCenter,\n viewport: viewport,\n destination: destination,\n insideDestination: insideDestination,\n afterCritical: afterCritical\n });\n var impact = moveToNewDroppable({\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n destination: destination,\n draggable: draggable,\n draggables: draggables,\n moveRelativeTo: moveRelativeTo,\n insideDestination: insideDestination,\n viewport: viewport,\n afterCritical: afterCritical\n });\n\n if (!impact) {\n return null;\n }\n\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n afterCritical: afterCritical\n });\n var clientSelection = getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n return {\n clientSelection: clientSelection,\n impact: impact,\n scrollJumpRequest: null\n };\n});\n\nvar whatIsDraggedOver = (function (impact) {\n var at = impact.at;\n\n if (!at) {\n return null;\n }\n\n if (at.type === 'REORDER') {\n return at.destination.droppableId;\n }\n\n return at.combine.droppableId;\n});\n\nvar getDroppableOver = function getDroppableOver(impact, droppables) {\n var id = whatIsDraggedOver(impact);\n return id ? droppables[id] : null;\n};\n\nvar moveInDirection = (function (_ref) {\n var state = _ref.state,\n type = _ref.type;\n var isActuallyOver = getDroppableOver(state.impact, state.dimensions.droppables);\n var isMainAxisMovementAllowed = Boolean(isActuallyOver);\n var home = state.dimensions.droppables[state.critical.droppable.id];\n var isOver = isActuallyOver || home;\n var direction = isOver.axis.direction;\n var isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT');\n\n if (isMovingOnMainAxis && !isMainAxisMovementAllowed) {\n return null;\n }\n\n var isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT';\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var previousPageBorderBoxCenter = state.current.page.borderBoxCenter;\n var _state$dimensions = state.dimensions,\n draggables = _state$dimensions.draggables,\n droppables = _state$dimensions.droppables;\n return isMovingOnMainAxis ? moveToNextPlace({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n destination: isOver,\n draggables: draggables,\n viewport: state.viewport,\n previousClientSelection: state.current.client.selection,\n previousImpact: state.impact,\n afterCritical: state.afterCritical\n }) : moveCrossAxis({\n isMovingForward: isMovingForward,\n previousPageBorderBoxCenter: previousPageBorderBoxCenter,\n draggable: draggable,\n isOver: isOver,\n draggables: draggables,\n droppables: droppables,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n});\n\nfunction isMovementAllowed(state) {\n return state.phase === 'DRAGGING' || state.phase === 'COLLECTING';\n}\n\nfunction isPositionInFrame(frame) {\n var isWithinVertical = isWithin(frame.top, frame.bottom);\n var isWithinHorizontal = isWithin(frame.left, frame.right);\n return function run(point) {\n return isWithinVertical(point.y) && isWithinHorizontal(point.x);\n };\n}\n\nfunction getHasOverlap(first, second) {\n return first.left < second.right && first.right > second.left && first.top < second.bottom && first.bottom > second.top;\n}\n\nfunction getFurthestAway(_ref) {\n var pageBorderBox = _ref.pageBorderBox,\n draggable = _ref.draggable,\n candidates = _ref.candidates;\n var startCenter = draggable.page.borderBox.center;\n var sorted = candidates.map(function (candidate) {\n var axis = candidate.axis;\n var target = patch(candidate.axis.line, pageBorderBox.center[axis.line], candidate.page.borderBox.center[axis.crossAxisLine]);\n return {\n id: candidate.descriptor.id,\n distance: distance(startCenter, target)\n };\n }).sort(function (a, b) {\n return b.distance - a.distance;\n });\n return sorted[0] ? sorted[0].id : null;\n}\n\nfunction getDroppableOver$1(_ref2) {\n var pageBorderBox = _ref2.pageBorderBox,\n draggable = _ref2.draggable,\n droppables = _ref2.droppables;\n var candidates = toDroppableList(droppables).filter(function (item) {\n if (!item.isEnabled) {\n return false;\n }\n\n var active = item.subject.active;\n\n if (!active) {\n return false;\n }\n\n if (!getHasOverlap(pageBorderBox, active)) {\n return false;\n }\n\n if (isPositionInFrame(active)(pageBorderBox.center)) {\n return true;\n }\n\n var axis = item.axis;\n var childCenter = active.center[axis.crossAxisLine];\n var crossAxisStart = pageBorderBox[axis.crossAxisStart];\n var crossAxisEnd = pageBorderBox[axis.crossAxisEnd];\n var isContained = isWithin(active[axis.crossAxisStart], active[axis.crossAxisEnd]);\n var isStartContained = isContained(crossAxisStart);\n var isEndContained = isContained(crossAxisEnd);\n\n if (!isStartContained && !isEndContained) {\n return true;\n }\n\n if (isStartContained) {\n return crossAxisStart < childCenter;\n }\n\n return crossAxisEnd > childCenter;\n });\n\n if (!candidates.length) {\n return null;\n }\n\n if (candidates.length === 1) {\n return candidates[0].descriptor.id;\n }\n\n return getFurthestAway({\n pageBorderBox: pageBorderBox,\n draggable: draggable,\n candidates: candidates\n });\n}\n\nvar offsetRectByPosition = function offsetRectByPosition(rect, point) {\n return getRect(offsetByPosition(rect, point));\n};\n\nvar withDroppableScroll = (function (droppable, area) {\n var frame = droppable.frame;\n\n if (!frame) {\n return area;\n }\n\n return offsetRectByPosition(area, frame.scroll.diff.value);\n});\n\nfunction getIsDisplaced(_ref) {\n var displaced = _ref.displaced,\n id = _ref.id;\n return Boolean(displaced.visible[id] || displaced.invisible[id]);\n}\n\nfunction atIndex(_ref) {\n var draggable = _ref.draggable,\n closest = _ref.closest,\n inHomeList = _ref.inHomeList;\n\n if (!closest) {\n return null;\n }\n\n if (!inHomeList) {\n return closest.descriptor.index;\n }\n\n if (closest.descriptor.index > draggable.descriptor.index) {\n return closest.descriptor.index - 1;\n }\n\n return closest.descriptor.index;\n}\n\nvar getReorderImpact = (function (_ref2) {\n var targetRect = _ref2.pageBorderBoxWithDroppableScroll,\n draggable = _ref2.draggable,\n destination = _ref2.destination,\n insideDestination = _ref2.insideDestination,\n last = _ref2.last,\n viewport = _ref2.viewport,\n afterCritical = _ref2.afterCritical;\n var axis = destination.axis;\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var displacement = displacedBy.value;\n var targetStart = targetRect[axis.start];\n var targetEnd = targetRect[axis.end];\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var closest = find(withoutDragging, function (child) {\n var id = child.descriptor.id;\n var childCenter = child.page.borderBox.center[axis.line];\n var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n var isDisplaced = getIsDisplaced({\n displaced: last,\n id: id\n });\n\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd <= childCenter;\n }\n\n return targetStart < childCenter - displacement;\n }\n\n if (isDisplaced) {\n return targetEnd <= childCenter + displacement;\n }\n\n return targetStart < childCenter;\n });\n var newIndex = atIndex({\n draggable: draggable,\n closest: closest,\n inHomeList: isHomeOf(draggable, destination)\n });\n return calculateReorderImpact({\n draggable: draggable,\n insideDestination: insideDestination,\n destination: destination,\n viewport: viewport,\n last: last,\n displacedBy: displacedBy,\n index: newIndex\n });\n});\n\nvar combineThresholdDivisor = 4;\nvar getCombineImpact = (function (_ref) {\n var draggable = _ref.draggable,\n targetRect = _ref.pageBorderBoxWithDroppableScroll,\n previousImpact = _ref.previousImpact,\n destination = _ref.destination,\n insideDestination = _ref.insideDestination,\n afterCritical = _ref.afterCritical;\n\n if (!destination.isCombineEnabled) {\n return null;\n }\n\n var axis = destination.axis;\n var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy);\n var displacement = displacedBy.value;\n var targetStart = targetRect[axis.start];\n var targetEnd = targetRect[axis.end];\n var withoutDragging = removeDraggableFromList(draggable, insideDestination);\n var combineWith = find(withoutDragging, function (child) {\n var id = child.descriptor.id;\n var childRect = child.page.borderBox;\n var childSize = childRect[axis.size];\n var threshold = childSize / combineThresholdDivisor;\n var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical);\n var isDisplaced = getIsDisplaced({\n displaced: previousImpact.displaced,\n id: id\n });\n\n if (didStartAfterCritical$1) {\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + threshold && targetEnd < childRect[axis.end] - threshold;\n }\n\n return targetStart > childRect[axis.start] - displacement + threshold && targetStart < childRect[axis.end] - displacement - threshold;\n }\n\n if (isDisplaced) {\n return targetEnd > childRect[axis.start] + displacement + threshold && targetEnd < childRect[axis.end] + displacement - threshold;\n }\n\n return targetStart > childRect[axis.start] + threshold && targetStart < childRect[axis.end] - threshold;\n });\n\n if (!combineWith) {\n return null;\n }\n\n var impact = {\n displacedBy: displacedBy,\n displaced: previousImpact.displaced,\n at: {\n type: 'COMBINE',\n combine: {\n draggableId: combineWith.descriptor.id,\n droppableId: destination.descriptor.id\n }\n }\n };\n return impact;\n});\n\nvar getDragImpact = (function (_ref) {\n var pageOffset = _ref.pageOffset,\n draggable = _ref.draggable,\n draggables = _ref.draggables,\n droppables = _ref.droppables,\n previousImpact = _ref.previousImpact,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var pageBorderBox = offsetRectByPosition(draggable.page.borderBox, pageOffset);\n var destinationId = getDroppableOver$1({\n pageBorderBox: pageBorderBox,\n draggable: draggable,\n droppables: droppables\n });\n\n if (!destinationId) {\n return noImpact;\n }\n\n var destination = droppables[destinationId];\n var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables);\n var pageBorderBoxWithDroppableScroll = withDroppableScroll(destination, pageBorderBox);\n return getCombineImpact({\n pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll,\n draggable: draggable,\n previousImpact: previousImpact,\n destination: destination,\n insideDestination: insideDestination,\n afterCritical: afterCritical\n }) || getReorderImpact({\n pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll,\n draggable: draggable,\n destination: destination,\n insideDestination: insideDestination,\n last: previousImpact.displaced,\n viewport: viewport,\n afterCritical: afterCritical\n });\n});\n\nvar patchDroppableMap = (function (droppables, updated) {\n var _extends2;\n\n return _extends({}, droppables, (_extends2 = {}, _extends2[updated.descriptor.id] = updated, _extends2));\n});\n\nvar clearUnusedPlaceholder = function clearUnusedPlaceholder(_ref) {\n var previousImpact = _ref.previousImpact,\n impact = _ref.impact,\n droppables = _ref.droppables;\n var last = whatIsDraggedOver(previousImpact);\n var now = whatIsDraggedOver(impact);\n\n if (!last) {\n return droppables;\n }\n\n if (last === now) {\n return droppables;\n }\n\n var lastDroppable = droppables[last];\n\n if (!lastDroppable.subject.withPlaceholder) {\n return droppables;\n }\n\n var updated = removePlaceholder(lastDroppable);\n return patchDroppableMap(droppables, updated);\n};\n\nvar recomputePlaceholders = (function (_ref2) {\n var draggable = _ref2.draggable,\n draggables = _ref2.draggables,\n droppables = _ref2.droppables,\n previousImpact = _ref2.previousImpact,\n impact = _ref2.impact;\n var cleaned = clearUnusedPlaceholder({\n previousImpact: previousImpact,\n impact: impact,\n droppables: droppables\n });\n var isOver = whatIsDraggedOver(impact);\n\n if (!isOver) {\n return cleaned;\n }\n\n var droppable = droppables[isOver];\n\n if (isHomeOf(draggable, droppable)) {\n return cleaned;\n }\n\n if (droppable.subject.withPlaceholder) {\n return cleaned;\n }\n\n var patched = addPlaceholder(droppable, draggable, draggables);\n return patchDroppableMap(cleaned, patched);\n});\n\nvar update = (function (_ref) {\n var state = _ref.state,\n forcedClientSelection = _ref.clientSelection,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport,\n forcedImpact = _ref.impact,\n scrollJumpRequest = _ref.scrollJumpRequest;\n var viewport = forcedViewport || state.viewport;\n var dimensions = forcedDimensions || state.dimensions;\n var clientSelection = forcedClientSelection || state.current.client.selection;\n var offset = subtract(clientSelection, state.initial.client.selection);\n var client = {\n offset: offset,\n selection: clientSelection,\n borderBoxCenter: add(state.initial.client.borderBoxCenter, offset)\n };\n var page = {\n selection: add(client.selection, viewport.scroll.current),\n borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current),\n offset: add(client.offset, viewport.scroll.diff.value)\n };\n var current = {\n client: client,\n page: page\n };\n\n if (state.phase === 'COLLECTING') {\n return _extends({\n phase: 'COLLECTING'\n }, state, {\n dimensions: dimensions,\n viewport: viewport,\n current: current\n });\n }\n\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var newImpact = forcedImpact || getDragImpact({\n pageOffset: page.offset,\n draggable: draggable,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: state.impact,\n viewport: viewport,\n afterCritical: state.afterCritical\n });\n var withUpdatedPlaceholders = recomputePlaceholders({\n draggable: draggable,\n impact: newImpact,\n previousImpact: state.impact,\n draggables: dimensions.draggables,\n droppables: dimensions.droppables\n });\n\n var result = _extends({}, state, {\n current: current,\n dimensions: {\n draggables: dimensions.draggables,\n droppables: withUpdatedPlaceholders\n },\n impact: newImpact,\n viewport: viewport,\n scrollJumpRequest: scrollJumpRequest || null,\n forceShouldAnimate: scrollJumpRequest ? false : null\n });\n\n return result;\n});\n\nfunction getDraggables$1(ids, draggables) {\n return ids.map(function (id) {\n return draggables[id];\n });\n}\n\nvar recompute = (function (_ref) {\n var impact = _ref.impact,\n viewport = _ref.viewport,\n draggables = _ref.draggables,\n destination = _ref.destination,\n forceShouldAnimate = _ref.forceShouldAnimate;\n var last = impact.displaced;\n var afterDragging = getDraggables$1(last.all, draggables);\n var displaced = getDisplacementGroups({\n afterDragging: afterDragging,\n destination: destination,\n displacedBy: impact.displacedBy,\n viewport: viewport.frame,\n forceShouldAnimate: forceShouldAnimate,\n last: last\n });\n return _extends({}, impact, {\n displaced: displaced\n });\n});\n\nvar getClientBorderBoxCenter = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n droppable = _ref.droppable,\n draggables = _ref.draggables,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n droppable: droppable,\n afterCritical: afterCritical\n });\n return getClientFromPageBorderBoxCenter({\n pageBorderBoxCenter: pageBorderBoxCenter,\n draggable: draggable,\n viewport: viewport\n });\n});\n\nvar refreshSnap = (function (_ref) {\n var state = _ref.state,\n forcedDimensions = _ref.dimensions,\n forcedViewport = _ref.viewport;\n !(state.movementMode === 'SNAP') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var needsVisibilityCheck = state.impact;\n var viewport = forcedViewport || state.viewport;\n var dimensions = forcedDimensions || state.dimensions;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var draggable = draggables[state.critical.draggable.id];\n var isOver = whatIsDraggedOver(needsVisibilityCheck);\n !isOver ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must be over a destination in SNAP movement mode') : invariant(false) : void 0;\n var destination = droppables[isOver];\n var impact = recompute({\n impact: needsVisibilityCheck,\n viewport: viewport,\n destination: destination,\n draggables: draggables\n });\n var clientSelection = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n droppable: destination,\n draggables: draggables,\n viewport: viewport,\n afterCritical: state.afterCritical\n });\n return update({\n impact: impact,\n clientSelection: clientSelection,\n state: state,\n dimensions: dimensions,\n viewport: viewport\n });\n});\n\nvar getHomeLocation = (function (descriptor) {\n return {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n };\n});\n\nvar getLiftEffect = (function (_ref) {\n var draggable = _ref.draggable,\n home = _ref.home,\n draggables = _ref.draggables,\n viewport = _ref.viewport;\n var displacedBy = getDisplacedBy(home.axis, draggable.displaceBy);\n var insideHome = getDraggablesInsideDroppable(home.descriptor.id, draggables);\n var rawIndex = insideHome.indexOf(draggable);\n !(rawIndex !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected draggable to be inside home list') : invariant(false) : void 0;\n var afterDragging = insideHome.slice(rawIndex + 1);\n var effected = afterDragging.reduce(function (previous, item) {\n previous[item.descriptor.id] = true;\n return previous;\n }, {});\n var afterCritical = {\n inVirtualList: home.descriptor.mode === 'virtual',\n displacedBy: displacedBy,\n effected: effected\n };\n var displaced = getDisplacementGroups({\n afterDragging: afterDragging,\n destination: home,\n displacedBy: displacedBy,\n last: null,\n viewport: viewport.frame,\n forceShouldAnimate: false\n });\n var impact = {\n displaced: displaced,\n displacedBy: displacedBy,\n at: {\n type: 'REORDER',\n destination: getHomeLocation(draggable.descriptor)\n }\n };\n return {\n impact: impact,\n afterCritical: afterCritical\n };\n});\n\nvar patchDimensionMap = (function (dimensions, updated) {\n return {\n draggables: dimensions.draggables,\n droppables: patchDroppableMap(dimensions.droppables, updated)\n };\n});\n\nvar start = function start(key) {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\nvar finish = function finish(key) {\n if (process.env.NODE_ENV !== 'production') {\n {\n return;\n }\n }\n};\n\nvar offsetDraggable = (function (_ref) {\n var draggable = _ref.draggable,\n offset$1 = _ref.offset,\n initialWindowScroll = _ref.initialWindowScroll;\n var client = offset(draggable.client, offset$1);\n var page = withScroll(client, initialWindowScroll);\n\n var moved = _extends({}, draggable, {\n placeholder: _extends({}, draggable.placeholder, {\n client: client\n }),\n client: client,\n page: page\n });\n\n return moved;\n});\n\nvar getFrame = (function (droppable) {\n var frame = droppable.frame;\n !frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected Droppable to have a frame') : invariant(false) : void 0;\n return frame;\n});\n\nvar adjustAdditionsForScrollChanges = (function (_ref) {\n var additions = _ref.additions,\n updatedDroppables = _ref.updatedDroppables,\n viewport = _ref.viewport;\n var windowScrollChange = viewport.scroll.diff.value;\n return additions.map(function (draggable) {\n var droppableId = draggable.descriptor.droppableId;\n var modified = updatedDroppables[droppableId];\n var frame = getFrame(modified);\n var droppableScrollChange = frame.scroll.diff.value;\n var totalChange = add(windowScrollChange, droppableScrollChange);\n var moved = offsetDraggable({\n draggable: draggable,\n offset: totalChange,\n initialWindowScroll: viewport.scroll.initial\n });\n return moved;\n });\n});\n\nvar publishWhileDraggingInVirtual = (function (_ref) {\n var state = _ref.state,\n published = _ref.published;\n start();\n var withScrollChange = published.modified.map(function (update) {\n var existing = state.dimensions.droppables[update.droppableId];\n var scrolled = scrollDroppable(existing, update.scroll);\n return scrolled;\n });\n\n var droppables = _extends({}, state.dimensions.droppables, {}, toDroppableMap(withScrollChange));\n\n var updatedAdditions = toDraggableMap(adjustAdditionsForScrollChanges({\n additions: published.additions,\n updatedDroppables: droppables,\n viewport: state.viewport\n }));\n\n var draggables = _extends({}, state.dimensions.draggables, {}, updatedAdditions);\n\n published.removals.forEach(function (id) {\n delete draggables[id];\n });\n var dimensions = {\n droppables: droppables,\n draggables: draggables\n };\n var wasOverId = whatIsDraggedOver(state.impact);\n var wasOver = wasOverId ? dimensions.droppables[wasOverId] : null;\n var draggable = dimensions.draggables[state.critical.draggable.id];\n var home = dimensions.droppables[state.critical.droppable.id];\n\n var _getLiftEffect = getLiftEffect({\n draggable: draggable,\n home: home,\n draggables: draggables,\n viewport: state.viewport\n }),\n onLiftImpact = _getLiftEffect.impact,\n afterCritical = _getLiftEffect.afterCritical;\n\n var previousImpact = wasOver && wasOver.isCombineEnabled ? state.impact : onLiftImpact;\n var impact = getDragImpact({\n pageOffset: state.current.page.offset,\n draggable: dimensions.draggables[state.critical.draggable.id],\n draggables: dimensions.draggables,\n droppables: dimensions.droppables,\n previousImpact: previousImpact,\n viewport: state.viewport,\n afterCritical: afterCritical\n });\n finish();\n\n var draggingState = _extends({\n phase: 'DRAGGING'\n }, state, {\n phase: 'DRAGGING',\n impact: impact,\n onLiftImpact: onLiftImpact,\n dimensions: dimensions,\n afterCritical: afterCritical,\n forceShouldAnimate: false\n });\n\n if (state.phase === 'COLLECTING') {\n return draggingState;\n }\n\n var dropPending = _extends({\n phase: 'DROP_PENDING'\n }, draggingState, {\n phase: 'DROP_PENDING',\n reason: state.reason,\n isWaiting: false\n });\n\n return dropPending;\n});\n\nvar isSnapping = function isSnapping(state) {\n return state.movementMode === 'SNAP';\n};\n\nvar postDroppableChange = function postDroppableChange(state, updated, isEnabledChanging) {\n var dimensions = patchDimensionMap(state.dimensions, updated);\n\n if (!isSnapping(state) || isEnabledChanging) {\n return update({\n state: state,\n dimensions: dimensions\n });\n }\n\n return refreshSnap({\n state: state,\n dimensions: dimensions\n });\n};\n\nfunction removeScrollJumpRequest(state) {\n if (state.isDragging && state.movementMode === 'SNAP') {\n return _extends({\n phase: 'DRAGGING'\n }, state, {\n scrollJumpRequest: null\n });\n }\n\n return state;\n}\n\nvar idle = {\n phase: 'IDLE',\n completed: null,\n shouldFlush: false\n};\nvar reducer = (function (state, action) {\n if (state === void 0) {\n state = idle;\n }\n\n if (action.type === 'FLUSH') {\n return _extends({}, idle, {\n shouldFlush: true\n });\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n !(state.phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'INITIAL_PUBLISH must come after a IDLE phase') : invariant(false) : void 0;\n var _action$payload = action.payload,\n critical = _action$payload.critical,\n clientSelection = _action$payload.clientSelection,\n viewport = _action$payload.viewport,\n dimensions = _action$payload.dimensions,\n movementMode = _action$payload.movementMode;\n var draggable = dimensions.draggables[critical.draggable.id];\n var home = dimensions.droppables[critical.droppable.id];\n var client = {\n selection: clientSelection,\n borderBoxCenter: draggable.client.borderBox.center,\n offset: origin\n };\n var initial = {\n client: client,\n page: {\n selection: add(client.selection, viewport.scroll.initial),\n borderBoxCenter: add(client.selection, viewport.scroll.initial),\n offset: add(client.selection, viewport.scroll.diff.value)\n }\n };\n var isWindowScrollAllowed = toDroppableList(dimensions.droppables).every(function (item) {\n return !item.isFixedOnPage;\n });\n\n var _getLiftEffect = getLiftEffect({\n draggable: draggable,\n home: home,\n draggables: dimensions.draggables,\n viewport: viewport\n }),\n impact = _getLiftEffect.impact,\n afterCritical = _getLiftEffect.afterCritical;\n\n var result = {\n phase: 'DRAGGING',\n isDragging: true,\n critical: critical,\n movementMode: movementMode,\n dimensions: dimensions,\n initial: initial,\n current: initial,\n isWindowScrollAllowed: isWindowScrollAllowed,\n impact: impact,\n afterCritical: afterCritical,\n onLiftImpact: impact,\n viewport: viewport,\n scrollJumpRequest: null,\n forceShouldAnimate: null\n };\n return result;\n }\n\n if (action.type === 'COLLECTION_STARTING') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Collection cannot start from phase \" + state.phase) : invariant(false) : void 0;\n\n var _result = _extends({\n phase: 'COLLECTING'\n }, state, {\n phase: 'COLLECTING'\n });\n\n return _result;\n }\n\n if (action.type === 'PUBLISH_WHILE_DRAGGING') {\n !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unexpected \" + action.type + \" received in phase \" + state.phase) : invariant(false) : void 0;\n return publishWhileDraggingInVirtual({\n state: state,\n published: action.payload\n });\n }\n\n if (action.type === 'MOVE') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _clientSelection = action.payload.client;\n\n if (isEqual(_clientSelection, state.current.client.selection)) {\n return state;\n }\n\n return update({\n state: state,\n clientSelection: _clientSelection,\n impact: isSnapping(state) ? state.impact : null\n });\n }\n\n if (action.type === 'UPDATE_DROPPABLE_SCROLL') {\n if (state.phase === 'DROP_PENDING') {\n return removeScrollJumpRequest(state);\n }\n\n if (state.phase === 'COLLECTING') {\n return removeScrollJumpRequest(state);\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" not permitted in phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload2 = action.payload,\n id = _action$payload2.id,\n newScroll = _action$payload2.newScroll;\n var target = state.dimensions.droppables[id];\n\n if (!target) {\n return state;\n }\n\n var scrolled = scrollDroppable(target, newScroll);\n return postDroppableChange(state, scrolled, false);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload3 = action.payload,\n _id = _action$payload3.id,\n isEnabled = _action$payload3.isEnabled;\n var _target = state.dimensions.droppables[_id];\n !_target ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id + \"] to toggle its enabled state\") : invariant(false) : void 0;\n !(_target.isEnabled !== isEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isEnabled to \" + String(isEnabled) + \"\\n but it is already \" + String(_target.isEnabled)) : invariant(false) : void 0;\n\n var updated = _extends({}, _target, {\n isEnabled: isEnabled\n });\n\n return postDroppableChange(state, updated, true);\n }\n\n if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') {\n if (state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Attempting to move in an unsupported phase \" + state.phase) : invariant(false) : void 0;\n var _action$payload4 = action.payload,\n _id2 = _action$payload4.id,\n isCombineEnabled = _action$payload4.isCombineEnabled;\n var _target2 = state.dimensions.droppables[_id2];\n !_target2 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find Droppable[id: \" + _id2 + \"] to toggle its isCombineEnabled state\") : invariant(false) : void 0;\n !(_target2.isCombineEnabled !== isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Trying to set droppable isCombineEnabled to \" + String(isCombineEnabled) + \"\\n but it is already \" + String(_target2.isCombineEnabled)) : invariant(false) : void 0;\n\n var _updated = _extends({}, _target2, {\n isCombineEnabled: isCombineEnabled\n });\n\n return postDroppableChange(state, _updated, true);\n }\n\n if (action.type === 'MOVE_BY_WINDOW_SCROLL') {\n if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') {\n return state;\n }\n\n !isMovementAllowed(state) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot move by window in phase \" + state.phase) : invariant(false) : void 0;\n !state.isWindowScrollAllowed ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Window scrolling is currently not supported for fixed lists') : invariant(false) : void 0;\n var _newScroll = action.payload.newScroll;\n\n if (isEqual(state.viewport.scroll.current, _newScroll)) {\n return removeScrollJumpRequest(state);\n }\n\n var _viewport = scrollViewport(state.viewport, _newScroll);\n\n if (isSnapping(state)) {\n return refreshSnap({\n state: state,\n viewport: _viewport\n });\n }\n\n return update({\n state: state,\n viewport: _viewport\n });\n }\n\n if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') {\n if (!isMovementAllowed(state)) {\n return state;\n }\n\n var maxScroll = action.payload.maxScroll;\n\n if (isEqual(maxScroll, state.viewport.scroll.max)) {\n return state;\n }\n\n var withMaxScroll = _extends({}, state.viewport, {\n scroll: _extends({}, state.viewport.scroll, {\n max: maxScroll\n })\n });\n\n return _extends({\n phase: 'DRAGGING'\n }, state, {\n viewport: withMaxScroll\n });\n }\n\n if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') {\n if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') {\n return state;\n }\n\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, action.type + \" received while not in DRAGGING phase\") : invariant(false) : void 0;\n\n var _result2 = moveInDirection({\n state: state,\n type: action.type\n });\n\n if (!_result2) {\n return state;\n }\n\n return update({\n state: state,\n impact: _result2.impact,\n clientSelection: _result2.clientSelection,\n scrollJumpRequest: _result2.scrollJumpRequest\n });\n }\n\n if (action.type === 'DROP_PENDING') {\n var reason = action.payload.reason;\n !(state.phase === 'COLLECTING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : invariant(false) : void 0;\n\n var newState = _extends({\n phase: 'DROP_PENDING'\n }, state, {\n phase: 'DROP_PENDING',\n isWaiting: true,\n reason: reason\n });\n\n return newState;\n }\n\n if (action.type === 'DROP_ANIMATE') {\n var _action$payload5 = action.payload,\n completed = _action$payload5.completed,\n dropDuration = _action$payload5.dropDuration,\n newHomeClientOffset = _action$payload5.newHomeClientOffset;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot animate drop from phase \" + state.phase) : invariant(false) : void 0;\n var _result3 = {\n phase: 'DROP_ANIMATING',\n completed: completed,\n dropDuration: dropDuration,\n newHomeClientOffset: newHomeClientOffset,\n dimensions: state.dimensions\n };\n return _result3;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var _completed = action.payload.completed;\n return {\n phase: 'IDLE',\n completed: _completed,\n shouldFlush: false\n };\n }\n\n return state;\n});\n\nvar beforeInitialCapture = function beforeInitialCapture(args) {\n return {\n type: 'BEFORE_INITIAL_CAPTURE',\n payload: args\n };\n};\nvar lift = function lift(args) {\n return {\n type: 'LIFT',\n payload: args\n };\n};\nvar initialPublish = function initialPublish(args) {\n return {\n type: 'INITIAL_PUBLISH',\n payload: args\n };\n};\nvar publishWhileDragging = function publishWhileDragging(args) {\n return {\n type: 'PUBLISH_WHILE_DRAGGING',\n payload: args\n };\n};\nvar collectionStarting = function collectionStarting() {\n return {\n type: 'COLLECTION_STARTING',\n payload: null\n };\n};\nvar updateDroppableScroll = function updateDroppableScroll(args) {\n return {\n type: 'UPDATE_DROPPABLE_SCROLL',\n payload: args\n };\n};\nvar updateDroppableIsEnabled = function updateDroppableIsEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_ENABLED',\n payload: args\n };\n};\nvar updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(args) {\n return {\n type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED',\n payload: args\n };\n};\nvar move = function move(args) {\n return {\n type: 'MOVE',\n payload: args\n };\n};\nvar moveByWindowScroll = function moveByWindowScroll(args) {\n return {\n type: 'MOVE_BY_WINDOW_SCROLL',\n payload: args\n };\n};\nvar updateViewportMaxScroll = function updateViewportMaxScroll(args) {\n return {\n type: 'UPDATE_VIEWPORT_MAX_SCROLL',\n payload: args\n };\n};\nvar moveUp = function moveUp() {\n return {\n type: 'MOVE_UP',\n payload: null\n };\n};\nvar moveDown = function moveDown() {\n return {\n type: 'MOVE_DOWN',\n payload: null\n };\n};\nvar moveRight = function moveRight() {\n return {\n type: 'MOVE_RIGHT',\n payload: null\n };\n};\nvar moveLeft = function moveLeft() {\n return {\n type: 'MOVE_LEFT',\n payload: null\n };\n};\nvar flush = function flush() {\n return {\n type: 'FLUSH',\n payload: null\n };\n};\nvar animateDrop = function animateDrop(args) {\n return {\n type: 'DROP_ANIMATE',\n payload: args\n };\n};\nvar completeDrop = function completeDrop(args) {\n return {\n type: 'DROP_COMPLETE',\n payload: args\n };\n};\nvar drop = function drop(args) {\n return {\n type: 'DROP',\n payload: args\n };\n};\nvar dropPending = function dropPending(args) {\n return {\n type: 'DROP_PENDING',\n payload: args\n };\n};\nvar dropAnimationFinished = function dropAnimationFinished() {\n return {\n type: 'DROP_ANIMATION_FINISHED',\n payload: null\n };\n};\n\nfunction checkIndexes(insideDestination) {\n if (insideDestination.length <= 1) {\n return;\n }\n\n var indexes = insideDestination.map(function (d) {\n return d.descriptor.index;\n });\n var errors = {};\n\n for (var i = 1; i < indexes.length; i++) {\n var current = indexes[i];\n var previous = indexes[i - 1];\n\n if (current !== previous + 1) {\n errors[current] = true;\n }\n }\n\n if (!Object.keys(errors).length) {\n return;\n }\n\n var formatted = indexes.map(function (index) {\n var hasError = Boolean(errors[index]);\n return hasError ? \"[\\uD83D\\uDD25\" + index + \"]\" : \"\" + index;\n }).join(', ');\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected non-consecutive indexes.\\n\\n (This can cause unexpected bugs)\\n\\n \" + formatted + \"\\n \") : void 0;\n}\n\nfunction validateDimensions(critical, dimensions) {\n if (process.env.NODE_ENV !== 'production') {\n var insideDestination = getDraggablesInsideDroppable(critical.droppable.id, dimensions.draggables);\n checkIndexes(insideDestination);\n }\n}\n\nvar lift$1 = (function (marshal) {\n return function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'LIFT') {\n next(action);\n return;\n }\n\n var _action$payload = action.payload,\n id = _action$payload.id,\n clientSelection = _action$payload.clientSelection,\n movementMode = _action$payload.movementMode;\n var initial = getState();\n\n if (initial.phase === 'DROP_ANIMATING') {\n dispatch(completeDrop({\n completed: initial.completed\n }));\n }\n\n !(getState().phase === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase to start a drag') : invariant(false) : void 0;\n dispatch(flush());\n dispatch(beforeInitialCapture({\n draggableId: id,\n movementMode: movementMode\n }));\n var scrollOptions = {\n shouldPublishImmediately: movementMode === 'SNAP'\n };\n var request = {\n draggableId: id,\n scrollOptions: scrollOptions\n };\n\n var _marshal$startPublish = marshal.startPublishing(request),\n critical = _marshal$startPublish.critical,\n dimensions = _marshal$startPublish.dimensions,\n viewport = _marshal$startPublish.viewport;\n\n validateDimensions(critical, dimensions);\n dispatch(initialPublish({\n critical: critical,\n dimensions: dimensions,\n clientSelection: clientSelection,\n movementMode: movementMode,\n viewport: viewport\n }));\n };\n };\n };\n});\n\nvar style = (function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n marshal.dragging();\n }\n\n if (action.type === 'DROP_ANIMATE') {\n marshal.dropping(action.payload.completed.result.reason);\n }\n\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE') {\n marshal.resting();\n }\n\n next(action);\n };\n };\n };\n});\n\nvar curves = {\n outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)',\n drop: 'cubic-bezier(.2,1,.1,1)'\n};\nvar combine = {\n opacity: {\n drop: 0,\n combining: 0.7\n },\n scale: {\n drop: 0.75\n }\n};\nvar timings = {\n outOfTheWay: 0.2,\n minDropTime: 0.33,\n maxDropTime: 0.55\n};\nvar outOfTheWayTiming = timings.outOfTheWay + \"s \" + curves.outOfTheWay;\nvar transitions = {\n fluid: \"opacity \" + outOfTheWayTiming,\n snap: \"transform \" + outOfTheWayTiming + \", opacity \" + outOfTheWayTiming,\n drop: function drop(duration) {\n var timing = duration + \"s \" + curves.drop;\n return \"transform \" + timing + \", opacity \" + timing;\n },\n outOfTheWay: \"transform \" + outOfTheWayTiming,\n placeholder: \"height \" + outOfTheWayTiming + \", width \" + outOfTheWayTiming + \", margin \" + outOfTheWayTiming\n};\n\nvar moveTo = function moveTo(offset) {\n return isEqual(offset, origin) ? null : \"translate(\" + offset.x + \"px, \" + offset.y + \"px)\";\n};\n\nvar transforms = {\n moveTo: moveTo,\n drop: function drop(offset, isCombining) {\n var translate = moveTo(offset);\n\n if (!translate) {\n return null;\n }\n\n if (!isCombining) {\n return translate;\n }\n\n return translate + \" scale(\" + combine.scale.drop + \")\";\n }\n};\n\nvar minDropTime = timings.minDropTime,\n maxDropTime = timings.maxDropTime;\nvar dropTimeRange = maxDropTime - minDropTime;\nvar maxDropTimeAtDistance = 1500;\nvar cancelDropModifier = 0.6;\nvar getDropDuration = (function (_ref) {\n var current = _ref.current,\n destination = _ref.destination,\n reason = _ref.reason;\n var distance$1 = distance(current, destination);\n\n if (distance$1 <= 0) {\n return minDropTime;\n }\n\n if (distance$1 >= maxDropTimeAtDistance) {\n return maxDropTime;\n }\n\n var percentage = distance$1 / maxDropTimeAtDistance;\n var duration = minDropTime + dropTimeRange * percentage;\n var withDuration = reason === 'CANCEL' ? duration * cancelDropModifier : duration;\n return Number(withDuration.toFixed(2));\n});\n\nvar getNewHomeClientOffset = (function (_ref) {\n var impact = _ref.impact,\n draggable = _ref.draggable,\n dimensions = _ref.dimensions,\n viewport = _ref.viewport,\n afterCritical = _ref.afterCritical;\n var draggables = dimensions.draggables,\n droppables = dimensions.droppables;\n var droppableId = whatIsDraggedOver(impact);\n var destination = droppableId ? droppables[droppableId] : null;\n var home = droppables[draggable.descriptor.droppableId];\n var newClientCenter = getClientBorderBoxCenter({\n impact: impact,\n draggable: draggable,\n draggables: draggables,\n afterCritical: afterCritical,\n droppable: destination || home,\n viewport: viewport\n });\n var offset = subtract(newClientCenter, draggable.client.borderBox.center);\n return offset;\n});\n\nvar getDropImpact = (function (_ref) {\n var draggables = _ref.draggables,\n reason = _ref.reason,\n lastImpact = _ref.lastImpact,\n home = _ref.home,\n viewport = _ref.viewport,\n onLiftImpact = _ref.onLiftImpact;\n\n if (!lastImpact.at || reason !== 'DROP') {\n var recomputedHomeImpact = recompute({\n draggables: draggables,\n impact: onLiftImpact,\n destination: home,\n viewport: viewport,\n forceShouldAnimate: true\n });\n return {\n impact: recomputedHomeImpact,\n didDropInsideDroppable: false\n };\n }\n\n if (lastImpact.at.type === 'REORDER') {\n return {\n impact: lastImpact,\n didDropInsideDroppable: true\n };\n }\n\n var withoutMovement = _extends({}, lastImpact, {\n displaced: emptyGroups\n });\n\n return {\n impact: withoutMovement,\n didDropInsideDroppable: true\n };\n});\n\nvar drop$1 = (function (_ref) {\n var getState = _ref.getState,\n dispatch = _ref.dispatch;\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP') {\n next(action);\n return;\n }\n\n var state = getState();\n var reason = action.payload.reason;\n\n if (state.phase === 'COLLECTING') {\n dispatch(dropPending({\n reason: reason\n }));\n return;\n }\n\n if (state.phase === 'IDLE') {\n return;\n }\n\n var isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting;\n !!isWaitingForDrop ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : invariant(false) : void 0;\n !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot drop in phase: \" + state.phase) : invariant(false) : void 0;\n var critical = state.critical;\n var dimensions = state.dimensions;\n var draggable = dimensions.draggables[state.critical.draggable.id];\n\n var _getDropImpact = getDropImpact({\n reason: reason,\n lastImpact: state.impact,\n afterCritical: state.afterCritical,\n onLiftImpact: state.onLiftImpact,\n home: state.dimensions.droppables[state.critical.droppable.id],\n viewport: state.viewport,\n draggables: state.dimensions.draggables\n }),\n impact = _getDropImpact.impact,\n didDropInsideDroppable = _getDropImpact.didDropInsideDroppable;\n\n var destination = didDropInsideDroppable ? tryGetDestination(impact) : null;\n var combine = didDropInsideDroppable ? tryGetCombine(impact) : null;\n var source = {\n index: critical.draggable.index,\n droppableId: critical.droppable.id\n };\n var result = {\n draggableId: draggable.descriptor.id,\n type: draggable.descriptor.type,\n source: source,\n reason: reason,\n mode: state.movementMode,\n destination: destination,\n combine: combine\n };\n var newHomeClientOffset = getNewHomeClientOffset({\n impact: impact,\n draggable: draggable,\n dimensions: dimensions,\n viewport: state.viewport,\n afterCritical: state.afterCritical\n });\n var completed = {\n critical: state.critical,\n afterCritical: state.afterCritical,\n result: result,\n impact: impact\n };\n var isAnimationRequired = !isEqual(state.current.client.offset, newHomeClientOffset) || Boolean(result.combine);\n\n if (!isAnimationRequired) {\n dispatch(completeDrop({\n completed: completed\n }));\n return;\n }\n\n var dropDuration = getDropDuration({\n current: state.current.client.offset,\n destination: newHomeClientOffset,\n reason: reason\n });\n var args = {\n newHomeClientOffset: newHomeClientOffset,\n dropDuration: dropDuration,\n completed: completed\n };\n dispatch(animateDrop(args));\n };\n };\n});\n\nvar getWindowScroll = (function () {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n});\n\nfunction getWindowScrollBinding(update) {\n return {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn(event) {\n if (event.target !== window && event.target !== window.document) {\n return;\n }\n\n update();\n }\n };\n}\n\nfunction getScrollListener(_ref) {\n var onWindowScroll = _ref.onWindowScroll;\n\n function updateScroll() {\n onWindowScroll(getWindowScroll());\n }\n\n var scheduled = rafSchd(updateScroll);\n var binding = getWindowScrollBinding(scheduled);\n var unbind = noop;\n\n function isActive() {\n return unbind !== noop;\n }\n\n function start() {\n !!isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start scroll listener when already active') : invariant(false) : void 0;\n unbind = bindEvents(window, [binding]);\n }\n\n function stop() {\n !isActive() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop scroll listener when not active') : invariant(false) : void 0;\n scheduled.cancel();\n unbind();\n unbind = noop;\n }\n\n return {\n start: start,\n stop: stop,\n isActive: isActive\n };\n}\n\nvar shouldEnd = function shouldEnd(action) {\n return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\n};\n\nvar scrollListener = (function (store) {\n var listener = getScrollListener({\n onWindowScroll: function onWindowScroll(newScroll) {\n store.dispatch(moveByWindowScroll({\n newScroll: newScroll\n }));\n }\n });\n return function (next) {\n return function (action) {\n if (!listener.isActive() && action.type === 'INITIAL_PUBLISH') {\n listener.start();\n }\n\n if (listener.isActive() && shouldEnd(action)) {\n listener.stop();\n }\n\n next(action);\n };\n };\n});\n\nvar getExpiringAnnounce = (function (announce) {\n var wasCalled = false;\n var isExpired = false;\n var timeoutId = setTimeout(function () {\n isExpired = true;\n });\n\n var result = function result(message) {\n if (wasCalled) {\n process.env.NODE_ENV !== \"production\" ? warning('Announcement already made. Not making a second announcement') : void 0;\n return;\n }\n\n if (isExpired) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Announcements cannot be made asynchronously.\\n Default message has already been announced.\\n \") : void 0;\n return;\n }\n\n wasCalled = true;\n announce(message);\n clearTimeout(timeoutId);\n };\n\n result.wasCalled = function () {\n return wasCalled;\n };\n\n return result;\n});\n\nvar getAsyncMarshal = (function () {\n var entries = [];\n\n var execute = function execute(timerId) {\n var index = findIndex(entries, function (item) {\n return item.timerId === timerId;\n });\n !(index !== -1) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find timer') : invariant(false) : void 0;\n\n var _entries$splice = entries.splice(index, 1),\n entry = _entries$splice[0];\n\n entry.callback();\n };\n\n var add = function add(fn) {\n var timerId = setTimeout(function () {\n return execute(timerId);\n });\n var entry = {\n timerId: timerId,\n callback: fn\n };\n entries.push(entry);\n };\n\n var flush = function flush() {\n if (!entries.length) {\n return;\n }\n\n var shallow = [].concat(entries);\n entries.length = 0;\n shallow.forEach(function (entry) {\n clearTimeout(entry.timerId);\n entry.callback();\n });\n };\n\n return {\n add: add,\n flush: flush\n };\n});\n\nvar areLocationsEqual = function areLocationsEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.droppableId === second.droppableId && first.index === second.index;\n};\nvar isCombineEqual = function isCombineEqual(first, second) {\n if (first == null && second == null) {\n return true;\n }\n\n if (first == null || second == null) {\n return false;\n }\n\n return first.draggableId === second.draggableId && first.droppableId === second.droppableId;\n};\nvar isCriticalEqual = function isCriticalEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n var isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index;\n var isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type;\n return isDraggableEqual && isDroppableEqual;\n};\n\nvar withTimings = function withTimings(key, fn) {\n start();\n fn();\n finish();\n};\n\nvar getDragStart = function getDragStart(critical, mode) {\n return {\n draggableId: critical.draggable.id,\n type: critical.droppable.type,\n source: {\n droppableId: critical.droppable.id,\n index: critical.draggable.index\n },\n mode: mode\n };\n};\n\nvar execute = function execute(responder, data, announce, getDefaultMessage) {\n if (!responder) {\n announce(getDefaultMessage(data));\n return;\n }\n\n var willExpire = getExpiringAnnounce(announce);\n var provided = {\n announce: willExpire\n };\n responder(data, provided);\n\n if (!willExpire.wasCalled()) {\n announce(getDefaultMessage(data));\n }\n};\n\nvar getPublisher = (function (getResponders, announce) {\n var asyncMarshal = getAsyncMarshal();\n var dragging = null;\n\n var beforeCapture = function beforeCapture(draggableId, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeCapture as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeCapture', function () {\n var fn = getResponders().onBeforeCapture;\n\n if (fn) {\n var before = {\n draggableId: draggableId,\n mode: mode\n };\n fn(before);\n }\n });\n };\n\n var beforeStart = function beforeStart(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n withTimings('onBeforeDragStart', function () {\n var fn = getResponders().onBeforeDragStart;\n\n if (fn) {\n fn(getDragStart(critical, mode));\n }\n });\n };\n\n var start = function start(critical, mode) {\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0;\n var data = getDragStart(critical, mode);\n dragging = {\n mode: mode,\n lastCritical: critical,\n lastLocation: data.source,\n lastCombine: null\n };\n asyncMarshal.add(function () {\n withTimings('onDragStart', function () {\n return execute(getResponders().onDragStart, data, announce, preset.onDragStart);\n });\n });\n };\n\n var update = function update(critical, impact) {\n var location = tryGetDestination(impact);\n var combine = tryGetCombine(impact);\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : invariant(false) : void 0;\n var hasCriticalChanged = !isCriticalEqual(critical, dragging.lastCritical);\n\n if (hasCriticalChanged) {\n dragging.lastCritical = critical;\n }\n\n var hasLocationChanged = !areLocationsEqual(dragging.lastLocation, location);\n\n if (hasLocationChanged) {\n dragging.lastLocation = location;\n }\n\n var hasGroupingChanged = !isCombineEqual(dragging.lastCombine, combine);\n\n if (hasGroupingChanged) {\n dragging.lastCombine = combine;\n }\n\n if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) {\n return;\n }\n\n var data = _extends({}, getDragStart(critical, dragging.mode), {\n combine: combine,\n destination: location\n });\n\n asyncMarshal.add(function () {\n withTimings('onDragUpdate', function () {\n return execute(getResponders().onDragUpdate, data, announce, preset.onDragUpdate);\n });\n });\n };\n\n var flush = function flush() {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only flush responders while dragging') : invariant(false) : void 0;\n asyncMarshal.flush();\n };\n\n var drop = function drop(result) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : invariant(false) : void 0;\n dragging = null;\n withTimings('onDragEnd', function () {\n return execute(getResponders().onDragEnd, result, announce, preset.onDragEnd);\n });\n };\n\n var abort = function abort() {\n if (!dragging) {\n return;\n }\n\n var result = _extends({}, getDragStart(dragging.lastCritical, dragging.mode), {\n combine: null,\n destination: null,\n reason: 'CANCEL'\n });\n\n drop(result);\n };\n\n return {\n beforeCapture: beforeCapture,\n beforeStart: beforeStart,\n start: start,\n update: update,\n flush: flush,\n drop: drop,\n abort: abort\n };\n});\n\nvar responders = (function (getResponders, announce) {\n var publisher = getPublisher(getResponders, announce);\n return function (store) {\n return function (next) {\n return function (action) {\n if (action.type === 'BEFORE_INITIAL_CAPTURE') {\n publisher.beforeCapture(action.payload.draggableId, action.payload.movementMode);\n return;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n var critical = action.payload.critical;\n publisher.beforeStart(critical, action.payload.movementMode);\n next(action);\n publisher.start(critical, action.payload.movementMode);\n return;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n var result = action.payload.completed.result;\n publisher.flush();\n next(action);\n publisher.drop(result);\n return;\n }\n\n next(action);\n\n if (action.type === 'FLUSH') {\n publisher.abort();\n return;\n }\n\n var state = store.getState();\n\n if (state.phase === 'DRAGGING') {\n publisher.update(state.critical, state.impact);\n }\n };\n };\n };\n});\n\nvar dropAnimationFinish = (function (store) {\n return function (next) {\n return function (action) {\n if (action.type !== 'DROP_ANIMATION_FINISHED') {\n next(action);\n return;\n }\n\n var state = store.getState();\n !(state.phase === 'DROP_ANIMATING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : invariant(false) : void 0;\n store.dispatch(completeDrop({\n completed: state.completed\n }));\n };\n };\n});\n\nvar dropAnimationFlushOnScroll = (function (store) {\n var unbind = null;\n var frameId = null;\n\n function clear() {\n if (frameId) {\n cancelAnimationFrame(frameId);\n frameId = null;\n }\n\n if (unbind) {\n unbind();\n unbind = null;\n }\n }\n\n return function (next) {\n return function (action) {\n if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATION_FINISHED') {\n clear();\n }\n\n next(action);\n\n if (action.type !== 'DROP_ANIMATE') {\n return;\n }\n\n var binding = {\n eventName: 'scroll',\n options: {\n capture: true,\n passive: false,\n once: true\n },\n fn: function flushDropAnimation() {\n var state = store.getState();\n\n if (state.phase === 'DROP_ANIMATING') {\n store.dispatch(dropAnimationFinished());\n }\n }\n };\n frameId = requestAnimationFrame(function () {\n frameId = null;\n unbind = bindEvents(window, [binding]);\n });\n };\n };\n});\n\nvar dimensionMarshalStopper = (function (marshal) {\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'DROP_COMPLETE' || action.type === 'FLUSH' || action.type === 'DROP_ANIMATE') {\n marshal.stopPublishing();\n }\n\n next(action);\n };\n };\n };\n});\n\nvar focus = (function (marshal) {\n var isWatching = false;\n return function () {\n return function (next) {\n return function (action) {\n if (action.type === 'INITIAL_PUBLISH') {\n isWatching = true;\n marshal.tryRecordFocus(action.payload.critical.draggable.id);\n next(action);\n marshal.tryRestoreFocusRecorded();\n return;\n }\n\n next(action);\n\n if (!isWatching) {\n return;\n }\n\n if (action.type === 'FLUSH') {\n isWatching = false;\n marshal.tryRestoreFocusRecorded();\n return;\n }\n\n if (action.type === 'DROP_COMPLETE') {\n isWatching = false;\n var result = action.payload.completed.result;\n\n if (result.combine) {\n marshal.tryShiftRecord(result.draggableId, result.combine.draggableId);\n }\n\n marshal.tryRestoreFocusRecorded();\n }\n };\n };\n };\n});\n\nvar shouldStop = function shouldStop(action) {\n return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH';\n};\n\nvar autoScroll = (function (autoScroller) {\n return function (store) {\n return function (next) {\n return function (action) {\n if (shouldStop(action)) {\n autoScroller.stop();\n next(action);\n return;\n }\n\n if (action.type === 'INITIAL_PUBLISH') {\n next(action);\n var state = store.getState();\n !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected phase to be DRAGGING after INITIAL_PUBLISH') : invariant(false) : void 0;\n autoScroller.start(state);\n return;\n }\n\n next(action);\n autoScroller.scroll(store.getState());\n };\n };\n };\n});\n\nvar pendingDrop = (function (store) {\n return function (next) {\n return function (action) {\n next(action);\n\n if (action.type !== 'PUBLISH_WHILE_DRAGGING') {\n return;\n }\n\n var postActionState = store.getState();\n\n if (postActionState.phase !== 'DROP_PENDING') {\n return;\n }\n\n if (postActionState.isWaiting) {\n return;\n }\n\n store.dispatch(drop({\n reason: postActionState.reason\n }));\n };\n };\n});\n\nvar composeEnhancers = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\n name: 'react-beautiful-dnd'\n}) : compose;\nvar createStore = (function (_ref) {\n var dimensionMarshal = _ref.dimensionMarshal,\n focusMarshal = _ref.focusMarshal,\n styleMarshal = _ref.styleMarshal,\n getResponders = _ref.getResponders,\n announce = _ref.announce,\n autoScroller = _ref.autoScroller;\n return createStore$1(reducer, composeEnhancers(applyMiddleware(style(styleMarshal), dimensionMarshalStopper(dimensionMarshal), lift$1(dimensionMarshal), drop$1, dropAnimationFinish, dropAnimationFlushOnScroll, pendingDrop, autoScroll(autoScroller), scrollListener, focus(focusMarshal), responders(getResponders, announce))));\n});\n\nvar clean$1 = function clean() {\n return {\n additions: {},\n removals: {},\n modified: {}\n };\n};\nfunction createPublisher(_ref) {\n var registry = _ref.registry,\n callbacks = _ref.callbacks;\n var staging = clean$1();\n var frameId = null;\n\n var collect = function collect() {\n if (frameId) {\n return;\n }\n\n callbacks.collectionStarting();\n frameId = requestAnimationFrame(function () {\n frameId = null;\n start();\n var _staging = staging,\n additions = _staging.additions,\n removals = _staging.removals,\n modified = _staging.modified;\n var added = Object.keys(additions).map(function (id) {\n return registry.draggable.getById(id).getDimension(origin);\n }).sort(function (a, b) {\n return a.descriptor.index - b.descriptor.index;\n });\n var updated = Object.keys(modified).map(function (id) {\n var entry = registry.droppable.getById(id);\n var scroll = entry.callbacks.getScrollWhileDragging();\n return {\n droppableId: id,\n scroll: scroll\n };\n });\n var result = {\n additions: added,\n removals: Object.keys(removals),\n modified: updated\n };\n staging = clean$1();\n finish();\n callbacks.publish(result);\n });\n };\n\n var add = function add(entry) {\n var id = entry.descriptor.id;\n staging.additions[id] = entry;\n staging.modified[entry.descriptor.droppableId] = true;\n\n if (staging.removals[id]) {\n delete staging.removals[id];\n }\n\n collect();\n };\n\n var remove = function remove(entry) {\n var descriptor = entry.descriptor;\n staging.removals[descriptor.id] = true;\n staging.modified[descriptor.droppableId] = true;\n\n if (staging.additions[descriptor.id]) {\n delete staging.additions[descriptor.id];\n }\n\n collect();\n };\n\n var stop = function stop() {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n staging = clean$1();\n };\n\n return {\n add: add,\n remove: remove,\n stop: stop\n };\n}\n\nvar getMaxScroll = (function (_ref) {\n var scrollHeight = _ref.scrollHeight,\n scrollWidth = _ref.scrollWidth,\n height = _ref.height,\n width = _ref.width;\n var maxScroll = subtract({\n x: scrollWidth,\n y: scrollHeight\n }, {\n x: width,\n y: height\n });\n var adjustedMaxScroll = {\n x: Math.max(0, maxScroll.x),\n y: Math.max(0, maxScroll.y)\n };\n return adjustedMaxScroll;\n});\n\nvar getDocumentElement = (function () {\n var doc = document.documentElement;\n !doc ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.documentElement') : invariant(false) : void 0;\n return doc;\n});\n\nvar getMaxWindowScroll = (function () {\n var doc = getDocumentElement();\n var maxScroll = getMaxScroll({\n scrollHeight: doc.scrollHeight,\n scrollWidth: doc.scrollWidth,\n width: doc.clientWidth,\n height: doc.clientHeight\n });\n return maxScroll;\n});\n\nvar getViewport = (function () {\n var scroll = getWindowScroll();\n var maxScroll = getMaxWindowScroll();\n var top = scroll.y;\n var left = scroll.x;\n var doc = getDocumentElement();\n var width = doc.clientWidth;\n var height = doc.clientHeight;\n var right = left + width;\n var bottom = top + height;\n var frame = getRect({\n top: top,\n left: left,\n right: right,\n bottom: bottom\n });\n var viewport = {\n frame: frame,\n scroll: {\n initial: scroll,\n current: scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n return viewport;\n});\n\nvar getInitialPublish = (function (_ref) {\n var critical = _ref.critical,\n scrollOptions = _ref.scrollOptions,\n registry = _ref.registry;\n start();\n var viewport = getViewport();\n var windowScroll = viewport.scroll.current;\n var home = critical.droppable;\n var droppables = registry.droppable.getAllByType(home.type).map(function (entry) {\n return entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions);\n });\n var draggables = registry.draggable.getAllByType(critical.draggable.type).map(function (entry) {\n return entry.getDimension(windowScroll);\n });\n var dimensions = {\n draggables: toDraggableMap(draggables),\n droppables: toDroppableMap(droppables)\n };\n finish();\n var result = {\n dimensions: dimensions,\n critical: critical,\n viewport: viewport\n };\n return result;\n});\n\nfunction shouldPublishUpdate(registry, dragging, entry) {\n if (entry.descriptor.id === dragging.id) {\n return false;\n }\n\n if (entry.descriptor.type !== dragging.type) {\n return false;\n }\n\n var home = registry.droppable.getById(entry.descriptor.droppableId);\n\n if (home.descriptor.mode !== 'virtual') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n You are attempting to add or remove a Draggable [id: \" + entry.descriptor.id + \"]\\n while a drag is occurring. This is only supported for virtual lists.\\n\\n See https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/patterns/virtual-lists.md\\n \") : void 0;\n return false;\n }\n\n return true;\n}\n\nvar createDimensionMarshal = (function (registry, callbacks) {\n var collection = null;\n var publisher = createPublisher({\n callbacks: {\n publish: callbacks.publishWhileDragging,\n collectionStarting: callbacks.collectionStarting\n },\n registry: registry\n });\n\n var updateDroppableIsEnabled = function updateDroppableIsEnabled(id, isEnabled) {\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update is enabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n\n if (!collection) {\n return;\n }\n\n callbacks.updateDroppableIsEnabled({\n id: id,\n isEnabled: isEnabled\n });\n };\n\n var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(id, isCombineEnabled) {\n if (!collection) {\n return;\n }\n\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update isCombineEnabled flag of Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n callbacks.updateDroppableIsCombineEnabled({\n id: id,\n isCombineEnabled: isCombineEnabled\n });\n };\n\n var updateDroppableScroll = function updateDroppableScroll(id, newScroll) {\n if (!collection) {\n return;\n }\n\n !registry.droppable.exists(id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot update the scroll on Droppable \" + id + \" as it is not registered\") : invariant(false) : void 0;\n callbacks.updateDroppableScroll({\n id: id,\n newScroll: newScroll\n });\n };\n\n var scrollDroppable = function scrollDroppable(id, change) {\n if (!collection) {\n return;\n }\n\n registry.droppable.getById(id).callbacks.scroll(change);\n };\n\n var stopPublishing = function stopPublishing() {\n if (!collection) {\n return;\n }\n\n publisher.stop();\n var home = collection.critical.droppable;\n registry.droppable.getAllByType(home.type).forEach(function (entry) {\n return entry.callbacks.dragStopped();\n });\n collection.unsubscribe();\n collection = null;\n };\n\n var subscriber = function subscriber(event) {\n !collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Should only be subscribed when a collection is occurring') : invariant(false) : void 0;\n var dragging = collection.critical.draggable;\n\n if (event.type === 'ADDITION') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.add(event.value);\n }\n }\n\n if (event.type === 'REMOVAL') {\n if (shouldPublishUpdate(registry, dragging, event.value)) {\n publisher.remove(event.value);\n }\n }\n };\n\n var startPublishing = function startPublishing(request) {\n !!collection ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : invariant(false) : void 0;\n var entry = registry.draggable.getById(request.draggableId);\n var home = registry.droppable.getById(entry.descriptor.droppableId);\n var critical = {\n draggable: entry.descriptor,\n droppable: home.descriptor\n };\n var unsubscribe = registry.subscribe(subscriber);\n collection = {\n critical: critical,\n unsubscribe: unsubscribe\n };\n return getInitialPublish({\n critical: critical,\n registry: registry,\n scrollOptions: request.scrollOptions\n });\n };\n\n var marshal = {\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n scrollDroppable: scrollDroppable,\n updateDroppableScroll: updateDroppableScroll,\n startPublishing: startPublishing,\n stopPublishing: stopPublishing\n };\n return marshal;\n});\n\nvar canStartDrag = (function (state, id) {\n if (state.phase === 'IDLE') {\n return true;\n }\n\n if (state.phase !== 'DROP_ANIMATING') {\n return false;\n }\n\n if (state.completed.result.draggableId === id) {\n return false;\n }\n\n return state.completed.result.reason === 'DROP';\n});\n\nvar scrollWindow = (function (change) {\n window.scrollBy(change.x, change.y);\n});\n\nvar getScrollableDroppables = memoizeOne(function (droppables) {\n return toDroppableList(droppables).filter(function (droppable) {\n if (!droppable.isEnabled) {\n return false;\n }\n\n if (!droppable.frame) {\n return false;\n }\n\n return true;\n });\n});\n\nvar getScrollableDroppableOver = function getScrollableDroppableOver(target, droppables) {\n var maybe = find(getScrollableDroppables(droppables), function (droppable) {\n !droppable.frame ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Invalid result') : invariant(false) : void 0;\n return isPositionInFrame(droppable.frame.pageMarginBox)(target);\n });\n return maybe;\n};\n\nvar getBestScrollableDroppable = (function (_ref) {\n var center = _ref.center,\n destination = _ref.destination,\n droppables = _ref.droppables;\n\n if (destination) {\n var _dimension = droppables[destination];\n\n if (!_dimension.frame) {\n return null;\n }\n\n return _dimension;\n }\n\n var dimension = getScrollableDroppableOver(center, droppables);\n return dimension;\n});\n\nvar config = {\n startFromPercentage: 0.25,\n maxScrollAtPercentage: 0.05,\n maxPixelScroll: 28,\n ease: function ease(percentage) {\n return Math.pow(percentage, 2);\n },\n durationDampening: {\n stopDampeningAt: 1200,\n accelerateAt: 360\n }\n};\n\nvar getDistanceThresholds = (function (container, axis) {\n var startScrollingFrom = container[axis.size] * config.startFromPercentage;\n var maxScrollValueAt = container[axis.size] * config.maxScrollAtPercentage;\n var thresholds = {\n startScrollingFrom: startScrollingFrom,\n maxScrollValueAt: maxScrollValueAt\n };\n return thresholds;\n});\n\nvar getPercentage = (function (_ref) {\n var startOfRange = _ref.startOfRange,\n endOfRange = _ref.endOfRange,\n current = _ref.current;\n var range = endOfRange - startOfRange;\n\n if (range === 0) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Detected distance range of 0 in the fluid auto scroller\\n This is unexpected and would cause a divide by 0 issue.\\n Not allowing an auto scroll\\n \") : void 0;\n return 0;\n }\n\n var currentInRange = current - startOfRange;\n var percentage = currentInRange / range;\n return percentage;\n});\n\nvar minScroll = 1;\n\nvar getValueFromDistance = (function (distanceToEdge, thresholds) {\n if (distanceToEdge > thresholds.startScrollingFrom) {\n return 0;\n }\n\n if (distanceToEdge <= thresholds.maxScrollValueAt) {\n return config.maxPixelScroll;\n }\n\n if (distanceToEdge === thresholds.startScrollingFrom) {\n return minScroll;\n }\n\n var percentageFromMaxScrollValueAt = getPercentage({\n startOfRange: thresholds.maxScrollValueAt,\n endOfRange: thresholds.startScrollingFrom,\n current: distanceToEdge\n });\n var percentageFromStartScrollingFrom = 1 - percentageFromMaxScrollValueAt;\n var scroll = config.maxPixelScroll * config.ease(percentageFromStartScrollingFrom);\n return Math.ceil(scroll);\n});\n\nvar accelerateAt = config.durationDampening.accelerateAt;\nvar stopAt = config.durationDampening.stopDampeningAt;\nvar dampenValueByTime = (function (proposedScroll, dragStartTime) {\n var startOfRange = dragStartTime;\n var endOfRange = stopAt;\n var now = Date.now();\n var runTime = now - startOfRange;\n\n if (runTime >= stopAt) {\n return proposedScroll;\n }\n\n if (runTime < accelerateAt) {\n return minScroll;\n }\n\n var betweenAccelerateAtAndStopAtPercentage = getPercentage({\n startOfRange: accelerateAt,\n endOfRange: endOfRange,\n current: runTime\n });\n var scroll = proposedScroll * config.ease(betweenAccelerateAtAndStopAtPercentage);\n return Math.ceil(scroll);\n});\n\nvar getValue = (function (_ref) {\n var distanceToEdge = _ref.distanceToEdge,\n thresholds = _ref.thresholds,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getValueFromDistance(distanceToEdge, thresholds);\n\n if (scroll === 0) {\n return 0;\n }\n\n if (!shouldUseTimeDampening) {\n return scroll;\n }\n\n return Math.max(dampenValueByTime(scroll, dragStartTime), minScroll);\n});\n\nvar getScrollOnAxis = (function (_ref) {\n var container = _ref.container,\n distanceToEdges = _ref.distanceToEdges,\n dragStartTime = _ref.dragStartTime,\n axis = _ref.axis,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var thresholds = getDistanceThresholds(container, axis);\n var isCloserToEnd = distanceToEdges[axis.end] < distanceToEdges[axis.start];\n\n if (isCloserToEnd) {\n return getValue({\n distanceToEdge: distanceToEdges[axis.end],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n }\n\n return -1 * getValue({\n distanceToEdge: distanceToEdges[axis.start],\n thresholds: thresholds,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n});\n\nvar adjustForSizeLimits = (function (_ref) {\n var container = _ref.container,\n subject = _ref.subject,\n proposedScroll = _ref.proposedScroll;\n var isTooBigVertically = subject.height > container.height;\n var isTooBigHorizontally = subject.width > container.width;\n\n if (!isTooBigHorizontally && !isTooBigVertically) {\n return proposedScroll;\n }\n\n if (isTooBigHorizontally && isTooBigVertically) {\n return null;\n }\n\n return {\n x: isTooBigHorizontally ? 0 : proposedScroll.x,\n y: isTooBigVertically ? 0 : proposedScroll.y\n };\n});\n\nvar clean$2 = apply(function (value) {\n return value === 0 ? 0 : value;\n});\nvar getScroll = (function (_ref) {\n var dragStartTime = _ref.dragStartTime,\n container = _ref.container,\n subject = _ref.subject,\n center = _ref.center,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var distanceToEdges = {\n top: center.y - container.top,\n right: container.right - center.x,\n bottom: container.bottom - center.y,\n left: center.x - container.left\n };\n var y = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: vertical,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var x = getScrollOnAxis({\n container: container,\n distanceToEdges: distanceToEdges,\n dragStartTime: dragStartTime,\n axis: horizontal,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n var required = clean$2({\n x: x,\n y: y\n });\n\n if (isEqual(required, origin)) {\n return null;\n }\n\n var limited = adjustForSizeLimits({\n container: container,\n subject: subject,\n proposedScroll: required\n });\n\n if (!limited) {\n return null;\n }\n\n return isEqual(limited, origin) ? null : limited;\n});\n\nvar smallestSigned = apply(function (value) {\n if (value === 0) {\n return 0;\n }\n\n return value > 0 ? 1 : -1;\n});\nvar getOverlap = function () {\n var getRemainder = function getRemainder(target, max) {\n if (target < 0) {\n return target;\n }\n\n if (target > max) {\n return target - max;\n }\n\n return 0;\n };\n\n return function (_ref) {\n var current = _ref.current,\n max = _ref.max,\n change = _ref.change;\n var targetScroll = add(current, change);\n var overlap = {\n x: getRemainder(targetScroll.x, max.x),\n y: getRemainder(targetScroll.y, max.y)\n };\n\n if (isEqual(overlap, origin)) {\n return null;\n }\n\n return overlap;\n };\n}();\nvar canPartiallyScroll = function canPartiallyScroll(_ref2) {\n var rawMax = _ref2.max,\n current = _ref2.current,\n change = _ref2.change;\n var max = {\n x: Math.max(current.x, rawMax.x),\n y: Math.max(current.y, rawMax.y)\n };\n var smallestChange = smallestSigned(change);\n var overlap = getOverlap({\n max: max,\n current: current,\n change: smallestChange\n });\n\n if (!overlap) {\n return true;\n }\n\n if (smallestChange.x !== 0 && overlap.x === 0) {\n return true;\n }\n\n if (smallestChange.y !== 0 && overlap.y === 0) {\n return true;\n }\n\n return false;\n};\nvar canScrollWindow = function canScrollWindow(viewport, change) {\n return canPartiallyScroll({\n current: viewport.scroll.current,\n max: viewport.scroll.max,\n change: change\n });\n};\nvar getWindowOverlap = function getWindowOverlap(viewport, change) {\n if (!canScrollWindow(viewport, change)) {\n return null;\n }\n\n var max = viewport.scroll.max;\n var current = viewport.scroll.current;\n return getOverlap({\n current: current,\n max: max,\n change: change\n });\n};\nvar canScrollDroppable = function canScrollDroppable(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return false;\n }\n\n return canPartiallyScroll({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\nvar getDroppableOverlap = function getDroppableOverlap(droppable, change) {\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n if (!canScrollDroppable(droppable, change)) {\n return null;\n }\n\n return getOverlap({\n current: frame.scroll.current,\n max: frame.scroll.max,\n change: change\n });\n};\n\nvar getWindowScrollChange = (function (_ref) {\n var viewport = _ref.viewport,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: viewport.frame,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollWindow(viewport, scroll) ? scroll : null;\n});\n\nvar getDroppableScrollChange = (function (_ref) {\n var droppable = _ref.droppable,\n subject = _ref.subject,\n center = _ref.center,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening;\n var frame = droppable.frame;\n\n if (!frame) {\n return null;\n }\n\n var scroll = getScroll({\n dragStartTime: dragStartTime,\n container: frame.pageMarginBox,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n return scroll && canScrollDroppable(droppable, scroll) ? scroll : null;\n});\n\nvar scroll$1 = (function (_ref) {\n var state = _ref.state,\n dragStartTime = _ref.dragStartTime,\n shouldUseTimeDampening = _ref.shouldUseTimeDampening,\n scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var center = state.current.page.borderBoxCenter;\n var draggable = state.dimensions.draggables[state.critical.draggable.id];\n var subject = draggable.page.marginBox;\n\n if (state.isWindowScrollAllowed) {\n var viewport = state.viewport;\n\n var _change = getWindowScrollChange({\n dragStartTime: dragStartTime,\n viewport: viewport,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (_change) {\n scrollWindow(_change);\n return;\n }\n }\n\n var droppable = getBestScrollableDroppable({\n center: center,\n destination: whatIsDraggedOver(state.impact),\n droppables: state.dimensions.droppables\n });\n\n if (!droppable) {\n return;\n }\n\n var change = getDroppableScrollChange({\n dragStartTime: dragStartTime,\n droppable: droppable,\n subject: subject,\n center: center,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n\n if (change) {\n scrollDroppable(droppable.descriptor.id, change);\n }\n});\n\nvar createFluidScroller = (function (_ref) {\n var scrollWindow = _ref.scrollWindow,\n scrollDroppable = _ref.scrollDroppable;\n var scheduleWindowScroll = rafSchd(scrollWindow);\n var scheduleDroppableScroll = rafSchd(scrollDroppable);\n var dragging = null;\n\n var tryScroll = function tryScroll(state) {\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot fluid scroll if not dragging') : invariant(false) : void 0;\n var _dragging = dragging,\n shouldUseTimeDampening = _dragging.shouldUseTimeDampening,\n dragStartTime = _dragging.dragStartTime;\n scroll$1({\n state: state,\n scrollWindow: scheduleWindowScroll,\n scrollDroppable: scheduleDroppableScroll,\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: shouldUseTimeDampening\n });\n };\n\n var start$1 = function start$1(state) {\n start();\n !!dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot start auto scrolling when already started') : invariant(false) : void 0;\n var dragStartTime = Date.now();\n var wasScrollNeeded = false;\n\n var fakeScrollCallback = function fakeScrollCallback() {\n wasScrollNeeded = true;\n };\n\n scroll$1({\n state: state,\n dragStartTime: 0,\n shouldUseTimeDampening: false,\n scrollWindow: fakeScrollCallback,\n scrollDroppable: fakeScrollCallback\n });\n dragging = {\n dragStartTime: dragStartTime,\n shouldUseTimeDampening: wasScrollNeeded\n };\n finish();\n\n if (wasScrollNeeded) {\n tryScroll(state);\n }\n };\n\n var stop = function stop() {\n if (!dragging) {\n return;\n }\n\n scheduleWindowScroll.cancel();\n scheduleDroppableScroll.cancel();\n dragging = null;\n };\n\n return {\n start: start$1,\n stop: stop,\n scroll: tryScroll\n };\n});\n\nvar createJumpScroller = (function (_ref) {\n var move = _ref.move,\n scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow;\n\n var moveByOffset = function moveByOffset(state, offset) {\n var client = add(state.current.client.selection, offset);\n move({\n client: client\n });\n };\n\n var scrollDroppableAsMuchAsItCan = function scrollDroppableAsMuchAsItCan(droppable, change) {\n if (!canScrollDroppable(droppable, change)) {\n return change;\n }\n\n var overlap = getDroppableOverlap(droppable, change);\n\n if (!overlap) {\n scrollDroppable(droppable.descriptor.id, change);\n return null;\n }\n\n var whatTheDroppableCanScroll = subtract(change, overlap);\n scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll);\n var remainder = subtract(change, whatTheDroppableCanScroll);\n return remainder;\n };\n\n var scrollWindowAsMuchAsItCan = function scrollWindowAsMuchAsItCan(isWindowScrollAllowed, viewport, change) {\n if (!isWindowScrollAllowed) {\n return change;\n }\n\n if (!canScrollWindow(viewport, change)) {\n return change;\n }\n\n var overlap = getWindowOverlap(viewport, change);\n\n if (!overlap) {\n scrollWindow(change);\n return null;\n }\n\n var whatTheWindowCanScroll = subtract(change, overlap);\n scrollWindow(whatTheWindowCanScroll);\n var remainder = subtract(change, whatTheWindowCanScroll);\n return remainder;\n };\n\n var jumpScroller = function jumpScroller(state) {\n var request = state.scrollJumpRequest;\n\n if (!request) {\n return;\n }\n\n var destination = whatIsDraggedOver(state.impact);\n !destination ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : invariant(false) : void 0;\n var droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination], request);\n\n if (!droppableRemainder) {\n return;\n }\n\n var viewport = state.viewport;\n var windowRemainder = scrollWindowAsMuchAsItCan(state.isWindowScrollAllowed, viewport, droppableRemainder);\n\n if (!windowRemainder) {\n return;\n }\n\n moveByOffset(state, windowRemainder);\n };\n\n return jumpScroller;\n});\n\nvar createAutoScroller = (function (_ref) {\n var scrollDroppable = _ref.scrollDroppable,\n scrollWindow = _ref.scrollWindow,\n move = _ref.move;\n var fluidScroller = createFluidScroller({\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n var jumpScroll = createJumpScroller({\n move: move,\n scrollWindow: scrollWindow,\n scrollDroppable: scrollDroppable\n });\n\n var scroll = function scroll(state) {\n if (state.phase !== 'DRAGGING') {\n return;\n }\n\n if (state.movementMode === 'FLUID') {\n fluidScroller.scroll(state);\n return;\n }\n\n if (!state.scrollJumpRequest) {\n return;\n }\n\n jumpScroll(state);\n };\n\n var scroller = {\n scroll: scroll,\n start: fluidScroller.start,\n stop: fluidScroller.stop\n };\n return scroller;\n});\n\nvar prefix$1 = 'data-rbd';\nvar dragHandle = function () {\n var base = prefix$1 + \"-drag-handle\";\n return {\n base: base,\n draggableId: base + \"-draggable-id\",\n contextId: base + \"-context-id\"\n };\n}();\nvar draggable = function () {\n var base = prefix$1 + \"-draggable\";\n return {\n base: base,\n contextId: base + \"-context-id\",\n id: base + \"-id\"\n };\n}();\nvar droppable = function () {\n var base = prefix$1 + \"-droppable\";\n return {\n base: base,\n contextId: base + \"-context-id\",\n id: base + \"-id\"\n };\n}();\nvar scrollContainer = {\n contextId: prefix$1 + \"-scroll-container-context-id\"\n};\n\nvar makeGetSelector = function makeGetSelector(context) {\n return function (attribute) {\n return \"[\" + attribute + \"=\\\"\" + context + \"\\\"]\";\n };\n};\n\nvar getStyles = function getStyles(rules, property) {\n return rules.map(function (rule) {\n var value = rule.styles[property];\n\n if (!value) {\n return '';\n }\n\n return rule.selector + \" { \" + value + \" }\";\n }).join(' ');\n};\n\nvar noPointerEvents = 'pointer-events: none;';\nvar getStyles$1 = (function (contextId) {\n var getSelector = makeGetSelector(contextId);\n\n var dragHandle$1 = function () {\n var grabCursor = \"\\n cursor: -webkit-grab;\\n cursor: grab;\\n \";\n return {\n selector: getSelector(dragHandle.contextId),\n styles: {\n always: \"\\n -webkit-touch-callout: none;\\n -webkit-tap-highlight-color: rgba(0,0,0,0);\\n touch-action: manipulation;\\n \",\n resting: grabCursor,\n dragging: noPointerEvents,\n dropAnimating: grabCursor\n }\n };\n }();\n\n var draggable$1 = function () {\n var transition = \"\\n transition: \" + transitions.outOfTheWay + \";\\n \";\n return {\n selector: getSelector(draggable.contextId),\n styles: {\n dragging: transition,\n dropAnimating: transition,\n userCancel: transition\n }\n };\n }();\n\n var droppable$1 = {\n selector: getSelector(droppable.contextId),\n styles: {\n always: \"overflow-anchor: none;\"\n }\n };\n var body = {\n selector: 'body',\n styles: {\n dragging: \"\\n cursor: grabbing;\\n cursor: -webkit-grabbing;\\n user-select: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n overflow-anchor: none;\\n \"\n }\n };\n var rules = [draggable$1, dragHandle$1, droppable$1, body];\n return {\n always: getStyles(rules, 'always'),\n resting: getStyles(rules, 'resting'),\n dragging: getStyles(rules, 'dragging'),\n dropAnimating: getStyles(rules, 'dropAnimating'),\n userCancel: getStyles(rules, 'userCancel')\n };\n});\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar getHead = function getHead() {\n var head = document.querySelector('head');\n !head ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find the head to append a style to') : invariant(false) : void 0;\n return head;\n};\n\nvar createStyleEl = function createStyleEl(nonce) {\n var el = document.createElement('style');\n\n if (nonce) {\n el.setAttribute('nonce', nonce);\n }\n\n el.type = 'text/css';\n return el;\n};\n\nfunction useStyleMarshal(contextId, nonce) {\n var styles = useMemo(function () {\n return getStyles$1(contextId);\n }, [contextId]);\n var alwaysRef = useRef(null);\n var dynamicRef = useRef(null);\n var setDynamicStyle = useCallback(memoizeOne(function (proposed) {\n var el = dynamicRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }), []);\n var setAlwaysStyle = useCallback(function (proposed) {\n var el = alwaysRef.current;\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0;\n el.textContent = proposed;\n }, []);\n useIsomorphicLayoutEffect(function () {\n !(!alwaysRef.current && !dynamicRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'style elements already mounted') : invariant(false) : void 0;\n var always = createStyleEl(nonce);\n var dynamic = createStyleEl(nonce);\n alwaysRef.current = always;\n dynamicRef.current = dynamic;\n always.setAttribute(prefix$1 + \"-always\", contextId);\n dynamic.setAttribute(prefix$1 + \"-dynamic\", contextId);\n getHead().appendChild(always);\n getHead().appendChild(dynamic);\n setAlwaysStyle(styles.always);\n setDynamicStyle(styles.resting);\n return function () {\n var remove = function remove(ref) {\n var current = ref.current;\n !current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot unmount ref as it is not set') : invariant(false) : void 0;\n getHead().removeChild(current);\n ref.current = null;\n };\n\n remove(alwaysRef);\n remove(dynamicRef);\n };\n }, [nonce, setAlwaysStyle, setDynamicStyle, styles.always, styles.resting, contextId]);\n var dragging = useCallback(function () {\n return setDynamicStyle(styles.dragging);\n }, [setDynamicStyle, styles.dragging]);\n var dropping = useCallback(function (reason) {\n if (reason === 'DROP') {\n setDynamicStyle(styles.dropAnimating);\n return;\n }\n\n setDynamicStyle(styles.userCancel);\n }, [setDynamicStyle, styles.dropAnimating, styles.userCancel]);\n var resting = useCallback(function () {\n if (!dynamicRef.current) {\n return;\n }\n\n setDynamicStyle(styles.resting);\n }, [setDynamicStyle, styles.resting]);\n var marshal = useMemo(function () {\n return {\n dragging: dragging,\n dropping: dropping,\n resting: resting\n };\n }, [dragging, dropping, resting]);\n return marshal;\n}\n\nvar getWindowFromEl = (function (el) {\n return el && el.ownerDocument ? el.ownerDocument.defaultView : window;\n});\n\nfunction isHtmlElement(el) {\n return el instanceof getWindowFromEl(el).HTMLElement;\n}\n\nfunction findDragHandle(contextId, draggableId) {\n var selector = \"[\" + dragHandle.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n var possible = toArray(document.querySelectorAll(selector));\n\n if (!possible.length) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find any drag handles in the context \\\"\" + contextId + \"\\\"\") : void 0;\n return null;\n }\n\n var handle = find(possible, function (el) {\n return el.getAttribute(dragHandle.draggableId) === draggableId;\n });\n\n if (!handle) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find drag handle with id \\\"\" + draggableId + \"\\\" as no handle with a matching id was found\") : void 0;\n return null;\n }\n\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle needs to be a HTMLElement') : void 0;\n return null;\n }\n\n return handle;\n}\n\nfunction useFocusMarshal(contextId) {\n var entriesRef = useRef({});\n var recordRef = useRef(null);\n var restoreFocusFrameRef = useRef(null);\n var isMountedRef = useRef(false);\n var register = useCallback(function register(id, focus) {\n var entry = {\n id: id,\n focus: focus\n };\n entriesRef.current[id] = entry;\n return function unregister() {\n var entries = entriesRef.current;\n var current = entries[id];\n\n if (current !== entry) {\n delete entries[id];\n }\n };\n }, []);\n var tryGiveFocus = useCallback(function tryGiveFocus(tryGiveFocusTo) {\n var handle = findDragHandle(contextId, tryGiveFocusTo);\n\n if (handle && handle !== document.activeElement) {\n handle.focus();\n }\n }, [contextId]);\n var tryShiftRecord = useCallback(function tryShiftRecord(previous, redirectTo) {\n if (recordRef.current === previous) {\n recordRef.current = redirectTo;\n }\n }, []);\n var tryRestoreFocusRecorded = useCallback(function tryRestoreFocusRecorded() {\n if (restoreFocusFrameRef.current) {\n return;\n }\n\n if (!isMountedRef.current) {\n return;\n }\n\n restoreFocusFrameRef.current = requestAnimationFrame(function () {\n restoreFocusFrameRef.current = null;\n var record = recordRef.current;\n\n if (record) {\n tryGiveFocus(record);\n }\n });\n }, [tryGiveFocus]);\n var tryRecordFocus = useCallback(function tryRecordFocus(id) {\n recordRef.current = null;\n var focused = document.activeElement;\n\n if (!focused) {\n return;\n }\n\n if (focused.getAttribute(dragHandle.draggableId) !== id) {\n return;\n }\n\n recordRef.current = id;\n }, []);\n useIsomorphicLayoutEffect(function () {\n isMountedRef.current = true;\n return function clearFrameOnUnmount() {\n isMountedRef.current = false;\n var frameId = restoreFocusFrameRef.current;\n\n if (frameId) {\n cancelAnimationFrame(frameId);\n }\n };\n }, []);\n var marshal = useMemo(function () {\n return {\n register: register,\n tryRecordFocus: tryRecordFocus,\n tryRestoreFocusRecorded: tryRestoreFocusRecorded,\n tryShiftRecord: tryShiftRecord\n };\n }, [register, tryRecordFocus, tryRestoreFocusRecorded, tryShiftRecord]);\n return marshal;\n}\n\nfunction createRegistry() {\n var entries = {\n draggables: {},\n droppables: {}\n };\n var subscribers = [];\n\n function subscribe(cb) {\n subscribers.push(cb);\n return function unsubscribe() {\n var index = subscribers.indexOf(cb);\n\n if (index === -1) {\n return;\n }\n\n subscribers.splice(index, 1);\n };\n }\n\n function notify(event) {\n if (subscribers.length) {\n subscribers.forEach(function (cb) {\n return cb(event);\n });\n }\n }\n\n function findDraggableById(id) {\n return entries.draggables[id] || null;\n }\n\n function getDraggableById(id) {\n var entry = findDraggableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find draggable entry with id [\" + id + \"]\") : invariant(false) : void 0;\n return entry;\n }\n\n var draggableAPI = {\n register: function register(entry) {\n entries.draggables[entry.descriptor.id] = entry;\n notify({\n type: 'ADDITION',\n value: entry\n });\n },\n update: function update(entry, last) {\n var current = entries.draggables[last.descriptor.id];\n\n if (!current) {\n return;\n }\n\n if (current.uniqueId !== entry.uniqueId) {\n return;\n }\n\n delete entries.draggables[last.descriptor.id];\n entries.draggables[entry.descriptor.id] = entry;\n },\n unregister: function unregister(entry) {\n var draggableId = entry.descriptor.id;\n var current = findDraggableById(draggableId);\n\n if (!current) {\n return;\n }\n\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n\n delete entries.draggables[draggableId];\n notify({\n type: 'REMOVAL',\n value: entry\n });\n },\n getById: getDraggableById,\n findById: findDraggableById,\n exists: function exists(id) {\n return Boolean(findDraggableById(id));\n },\n getAllByType: function getAllByType(type) {\n return values(entries.draggables).filter(function (entry) {\n return entry.descriptor.type === type;\n });\n }\n };\n\n function findDroppableById(id) {\n return entries.droppables[id] || null;\n }\n\n function getDroppableById(id) {\n var entry = findDroppableById(id);\n !entry ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot find droppable entry with id [\" + id + \"]\") : invariant(false) : void 0;\n return entry;\n }\n\n var droppableAPI = {\n register: function register(entry) {\n entries.droppables[entry.descriptor.id] = entry;\n },\n unregister: function unregister(entry) {\n var current = findDroppableById(entry.descriptor.id);\n\n if (!current) {\n return;\n }\n\n if (entry.uniqueId !== current.uniqueId) {\n return;\n }\n\n delete entries.droppables[entry.descriptor.id];\n },\n getById: getDroppableById,\n findById: findDroppableById,\n exists: function exists(id) {\n return Boolean(findDroppableById(id));\n },\n getAllByType: function getAllByType(type) {\n return values(entries.droppables).filter(function (entry) {\n return entry.descriptor.type === type;\n });\n }\n };\n\n function clean() {\n entries.draggables = {};\n entries.droppables = {};\n subscribers.length = 0;\n }\n\n return {\n draggable: draggableAPI,\n droppable: droppableAPI,\n subscribe: subscribe,\n clean: clean\n };\n}\n\nfunction useRegistry() {\n var registry = useMemo(createRegistry, []);\n useEffect(function () {\n return function unmount() {\n requestAnimationFrame(registry.clean);\n };\n }, [registry]);\n return registry;\n}\n\nvar StoreContext = React.createContext(null);\n\nvar getBodyElement = (function () {\n var body = document.body;\n !body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot find document.body') : invariant(false) : void 0;\n return body;\n});\n\nvar visuallyHidden = {\n position: 'absolute',\n width: '1px',\n height: '1px',\n margin: '-1px',\n border: '0',\n padding: '0',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n 'clip-path': 'inset(100%)'\n};\n\nvar getId = function getId(contextId) {\n return \"rbd-announcement-\" + contextId;\n};\nfunction useAnnouncer(contextId) {\n var id = useMemo(function () {\n return getId(contextId);\n }, [contextId]);\n var ref = useRef(null);\n useEffect(function setup() {\n var el = document.createElement('div');\n ref.current = el;\n el.id = id;\n el.setAttribute('aria-live', 'assertive');\n el.setAttribute('aria-atomic', 'true');\n\n _extends(el.style, visuallyHidden);\n\n getBodyElement().appendChild(el);\n return function cleanup() {\n setTimeout(function remove() {\n var body = getBodyElement();\n\n if (body.contains(el)) {\n body.removeChild(el);\n }\n\n if (el === ref.current) {\n ref.current = null;\n }\n });\n };\n }, [id]);\n var announce = useCallback(function (message) {\n var el = ref.current;\n\n if (el) {\n el.textContent = message;\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n A screen reader message was trying to be announced but it was unable to do so.\\n This can occur if you unmount your in your onDragEnd.\\n Consider calling provided.announce() before the unmount so that the instruction will\\n not be lost for users relying on a screen reader.\\n\\n Message not passed to screen reader:\\n\\n \\\"\" + message + \"\\\"\\n \") : void 0;\n }, []);\n return announce;\n}\n\nvar count = 0;\nvar defaults = {\n separator: '::'\n};\nfunction reset() {\n count = 0;\n}\nfunction useUniqueId(prefix, options) {\n if (options === void 0) {\n options = defaults;\n }\n\n return useMemo(function () {\n return \"\" + prefix + options.separator + count++;\n }, [options.separator, prefix]);\n}\n\nfunction getElementId(_ref) {\n var contextId = _ref.contextId,\n uniqueId = _ref.uniqueId;\n return \"rbd-hidden-text-\" + contextId + \"-\" + uniqueId;\n}\nfunction useHiddenTextElement(_ref2) {\n var contextId = _ref2.contextId,\n text = _ref2.text;\n var uniqueId = useUniqueId('hidden-text', {\n separator: '-'\n });\n var id = useMemo(function () {\n return getElementId({\n contextId: contextId,\n uniqueId: uniqueId\n });\n }, [uniqueId, contextId]);\n useEffect(function mount() {\n var el = document.createElement('div');\n el.id = id;\n el.textContent = text;\n el.style.display = 'none';\n getBodyElement().appendChild(el);\n return function unmount() {\n var body = getBodyElement();\n\n if (body.contains(el)) {\n body.removeChild(el);\n }\n };\n }, [id, text]);\n return id;\n}\n\nvar AppContext = React.createContext(null);\n\nvar peerDependencies = {\n\treact: \"^16.8.5 || ^17.0.0\",\n\t\"react-dom\": \"^16.8.5 || ^17.0.0\"\n};\n\nvar semver = /(\\d+)\\.(\\d+)\\.(\\d+)/;\n\nvar getVersion = function getVersion(value) {\n var result = semver.exec(value);\n !(result != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Unable to parse React version \" + value) : invariant(false) : void 0;\n var major = Number(result[1]);\n var minor = Number(result[2]);\n var patch = Number(result[3]);\n return {\n major: major,\n minor: minor,\n patch: patch,\n raw: value\n };\n};\n\nvar isSatisfied = function isSatisfied(expected, actual) {\n if (actual.major > expected.major) {\n return true;\n }\n\n if (actual.major < expected.major) {\n return false;\n }\n\n if (actual.minor > expected.minor) {\n return true;\n }\n\n if (actual.minor < expected.minor) {\n return false;\n }\n\n return actual.patch >= expected.patch;\n};\n\nvar checkReactVersion = (function (peerDepValue, actualValue) {\n var peerDep = getVersion(peerDepValue);\n var actual = getVersion(actualValue);\n\n if (isSatisfied(peerDep, actual)) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n React version: [\" + actual.raw + \"]\\n does not satisfy expected peer dependency version: [\" + peerDep.raw + \"]\\n\\n This can result in run time bugs, and even fatal crashes\\n \") : void 0;\n});\n\nvar suffix = \"\\n We expect a html5 doctype: \\n This is to ensure consistent browser layout and measurement\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md\\n\";\nvar checkDoctype = (function (doc) {\n var doctype = doc.doctype;\n\n if (!doctype) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n No found.\\n\\n \" + suffix + \"\\n \") : void 0;\n return;\n }\n\n if (doctype.name.toLowerCase() !== 'html') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected found: (\" + doctype.name + \")\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n\n if (doctype.publicId !== '') {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Unexpected publicId found: (\" + doctype.publicId + \")\\n A html5 doctype does not have a publicId\\n\\n \" + suffix + \"\\n \") : void 0;\n }\n});\n\nfunction useDev(useHook) {\n if (process.env.NODE_ENV !== 'production') {\n useHook();\n }\n}\n\nfunction useDevSetupWarning(fn, inputs) {\n useDev(function () {\n useEffect(function () {\n try {\n fn();\n } catch (e) {\n error(\"\\n A setup problem was encountered.\\n\\n > \" + e.message + \"\\n \");\n }\n }, inputs);\n });\n}\n\nfunction useStartupValidation() {\n useDevSetupWarning(function () {\n checkReactVersion(peerDependencies.react, React.version);\n checkDoctype(document);\n }, []);\n}\n\nfunction usePrevious(current) {\n var ref = useRef(current);\n useEffect(function () {\n ref.current = current;\n });\n return ref;\n}\n\nfunction create() {\n var lock = null;\n\n function isClaimed() {\n return Boolean(lock);\n }\n\n function isActive(value) {\n return value === lock;\n }\n\n function claim(abandon) {\n !!lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot claim lock as it is already claimed') : invariant(false) : void 0;\n var newLock = {\n abandon: abandon\n };\n lock = newLock;\n return newLock;\n }\n\n function release() {\n !lock ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot release lock when there is no lock') : invariant(false) : void 0;\n lock = null;\n }\n\n function tryAbandon() {\n if (lock) {\n lock.abandon();\n release();\n }\n }\n\n return {\n isClaimed: isClaimed,\n isActive: isActive,\n claim: claim,\n release: release,\n tryAbandon: tryAbandon\n };\n}\n\nvar tab = 9;\nvar enter = 13;\nvar escape = 27;\nvar space = 32;\nvar pageUp = 33;\nvar pageDown = 34;\nvar end = 35;\nvar home = 36;\nvar arrowLeft = 37;\nvar arrowUp = 38;\nvar arrowRight = 39;\nvar arrowDown = 40;\n\nvar _preventedKeys;\nvar preventedKeys = (_preventedKeys = {}, _preventedKeys[enter] = true, _preventedKeys[tab] = true, _preventedKeys);\nvar preventStandardKeyEvents = (function (event) {\n if (preventedKeys[event.keyCode]) {\n event.preventDefault();\n }\n});\n\nvar supportedEventName = function () {\n var base = 'visibilitychange';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, \"ms\" + base, \"webkit\" + base, \"moz\" + base, \"o\" + base];\n var supported = find(candidates, function (eventName) {\n return \"on\" + eventName in document;\n });\n return supported || base;\n}();\n\nvar primaryButton = 0;\nvar sloppyClickThreshold = 5;\n\nfunction isSloppyClickThresholdExceeded(original, current) {\n return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold;\n}\n\nvar idle$1 = {\n type: 'IDLE'\n};\n\nfunction getCaptureBindings(_ref) {\n var cancel = _ref.cancel,\n completed = _ref.completed,\n getPhase = _ref.getPhase,\n setPhase = _ref.setPhase;\n return [{\n eventName: 'mousemove',\n fn: function fn(event) {\n var button = event.button,\n clientX = event.clientX,\n clientY = event.clientY;\n\n if (button !== primaryButton) {\n return;\n }\n\n var point = {\n x: clientX,\n y: clientY\n };\n var phase = getPhase();\n\n if (phase.type === 'DRAGGING') {\n event.preventDefault();\n phase.actions.move(point);\n return;\n }\n\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot be IDLE') : invariant(false) : void 0;\n var pending = phase.point;\n\n if (!isSloppyClickThresholdExceeded(pending, point)) {\n return;\n }\n\n event.preventDefault();\n var actions = phase.actions.fluidLift(point);\n setPhase({\n type: 'DRAGGING',\n actions: actions\n });\n }\n }, {\n eventName: 'mouseup',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'mousedown',\n fn: function fn(event) {\n if (getPhase().type === 'DRAGGING') {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type === 'PENDING') {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'scroll',\n options: {\n passive: true,\n capture: false\n },\n fn: function fn() {\n if (getPhase().type === 'PENDING') {\n cancel();\n }\n }\n }, {\n eventName: 'webkitmouseforcedown',\n fn: function fn(event) {\n var phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Unexpected phase') : invariant(false) : void 0;\n\n if (phase.actions.shouldRespectForcePress()) {\n cancel();\n return;\n }\n\n event.preventDefault();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useMouseSensor(api) {\n var phaseRef = useRef(idle$1);\n var unbindEventsRef = useRef(noop);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'mousedown',\n fn: function onMouseDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.button !== primaryButton) {\n return;\n }\n\n if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!actions) {\n return;\n }\n\n event.preventDefault();\n var point = {\n x: event.clientX,\n y: event.clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n };\n }, [api]);\n var preventForcePressBinding = useMemo(function () {\n return {\n eventName: 'webkitmouseforcewillbegin',\n fn: function fn(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n var id = api.findClosestDraggableId(event);\n\n if (!id) {\n return;\n }\n\n var options = api.findOptionsForDraggable(id);\n\n if (!options) {\n return;\n }\n\n if (options.shouldRespectForcePress) {\n return;\n }\n\n if (!api.canGetLock(id)) {\n return;\n }\n\n event.preventDefault();\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function listenForCapture() {\n var options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [preventForcePressBinding, startCaptureBinding], options);\n }, [preventForcePressBinding, startCaptureBinding]);\n var stop = useCallback(function () {\n var current = phaseRef.current;\n\n if (current.type === 'IDLE') {\n return;\n }\n\n phaseRef.current = idle$1;\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture]);\n var cancel = useCallback(function () {\n var phase = phaseRef.current;\n stop();\n\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n var bindCapturingEvents = useCallback(function bindCapturingEvents() {\n var options = {\n capture: true,\n passive: false\n };\n var bindings = getCaptureBindings({\n cancel: cancel,\n completed: stop,\n getPhase: function getPhase() {\n return phaseRef.current;\n },\n setPhase: function setPhase(phase) {\n phaseRef.current = phase;\n }\n });\n unbindEventsRef.current = bindEvents(window, bindings, options);\n }, [cancel, stop]);\n var startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(phaseRef.current.type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n phaseRef.current = {\n type: 'PENDING',\n point: point,\n actions: actions\n };\n bindCapturingEvents();\n }, [bindCapturingEvents]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nvar _scrollJumpKeys;\n\nfunction noop$1() {}\n\nvar scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys);\n\nfunction getDraggingBindings(actions, stop) {\n function cancel() {\n stop();\n actions.cancel();\n }\n\n function drop() {\n stop();\n actions.drop();\n }\n\n return [{\n eventName: 'keydown',\n fn: function fn(event) {\n if (event.keyCode === escape) {\n event.preventDefault();\n cancel();\n return;\n }\n\n if (event.keyCode === space) {\n event.preventDefault();\n drop();\n return;\n }\n\n if (event.keyCode === arrowDown) {\n event.preventDefault();\n actions.moveDown();\n return;\n }\n\n if (event.keyCode === arrowUp) {\n event.preventDefault();\n actions.moveUp();\n return;\n }\n\n if (event.keyCode === arrowRight) {\n event.preventDefault();\n actions.moveRight();\n return;\n }\n\n if (event.keyCode === arrowLeft) {\n event.preventDefault();\n actions.moveLeft();\n return;\n }\n\n if (scrollJumpKeys[event.keyCode]) {\n event.preventDefault();\n return;\n }\n\n preventStandardKeyEvents(event);\n }\n }, {\n eventName: 'mousedown',\n fn: cancel\n }, {\n eventName: 'mouseup',\n fn: cancel\n }, {\n eventName: 'click',\n fn: cancel\n }, {\n eventName: 'touchstart',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'wheel',\n fn: cancel,\n options: {\n passive: true\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useKeyboardSensor(api) {\n var unbindEventsRef = useRef(noop$1);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'keydown',\n fn: function onKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n if (event.keyCode !== space) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var preDrag = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!preDrag) {\n return;\n }\n\n event.preventDefault();\n var isCapturing = true;\n var actions = preDrag.snapLift();\n unbindEventsRef.current();\n\n function stop() {\n !isCapturing ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop capturing a keyboard drag when not capturing') : invariant(false) : void 0;\n isCapturing = false;\n unbindEventsRef.current();\n listenForCapture();\n }\n\n unbindEventsRef.current = bindEvents(window, getDraggingBindings(actions, stop), {\n capture: true,\n passive: false\n });\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function tryStartCapture() {\n var options = {\n passive: false,\n capture: true\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n };\n }, [listenForCapture]);\n}\n\nvar idle$2 = {\n type: 'IDLE'\n};\nvar timeForLongPress = 120;\nvar forcePressThreshold = 0.15;\n\nfunction getWindowBindings(_ref) {\n var cancel = _ref.cancel,\n getPhase = _ref.getPhase;\n return [{\n eventName: 'orientationchange',\n fn: cancel\n }, {\n eventName: 'resize',\n fn: cancel\n }, {\n eventName: 'contextmenu',\n fn: function fn(event) {\n event.preventDefault();\n }\n }, {\n eventName: 'keydown',\n fn: function fn(event) {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n if (event.keyCode === escape) {\n event.preventDefault();\n }\n\n cancel();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction getHandleBindings(_ref2) {\n var cancel = _ref2.cancel,\n completed = _ref2.completed,\n getPhase = _ref2.getPhase;\n return [{\n eventName: 'touchmove',\n options: {\n capture: false\n },\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n phase.hasMoved = true;\n var _event$touches$ = event.touches[0],\n clientX = _event$touches$.clientX,\n clientY = _event$touches$.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n event.preventDefault();\n phase.actions.move(point);\n }\n }, {\n eventName: 'touchend',\n fn: function fn(event) {\n var phase = getPhase();\n\n if (phase.type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n phase.actions.drop({\n shouldBlockNextClick: true\n });\n completed();\n }\n }, {\n eventName: 'touchcancel',\n fn: function fn(event) {\n if (getPhase().type !== 'DRAGGING') {\n cancel();\n return;\n }\n\n event.preventDefault();\n cancel();\n }\n }, {\n eventName: 'touchforcechange',\n fn: function fn(event) {\n var phase = getPhase();\n !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n var touch = event.touches[0];\n\n if (!touch) {\n return;\n }\n\n var isForcePress = touch.force >= forcePressThreshold;\n\n if (!isForcePress) {\n return;\n }\n\n var shouldRespect = phase.actions.shouldRespectForcePress();\n\n if (phase.type === 'PENDING') {\n if (shouldRespect) {\n cancel();\n }\n\n return;\n }\n\n if (shouldRespect) {\n if (phase.hasMoved) {\n event.preventDefault();\n return;\n }\n\n cancel();\n return;\n }\n\n event.preventDefault();\n }\n }, {\n eventName: supportedEventName,\n fn: cancel\n }];\n}\n\nfunction useTouchSensor(api) {\n var phaseRef = useRef(idle$2);\n var unbindEventsRef = useRef(noop);\n var getPhase = useCallback(function getPhase() {\n return phaseRef.current;\n }, []);\n var setPhase = useCallback(function setPhase(phase) {\n phaseRef.current = phase;\n }, []);\n var startCaptureBinding = useMemo(function () {\n return {\n eventName: 'touchstart',\n fn: function onTouchStart(event) {\n if (event.defaultPrevented) {\n return;\n }\n\n var draggableId = api.findClosestDraggableId(event);\n\n if (!draggableId) {\n return;\n }\n\n var actions = api.tryGetLock(draggableId, stop, {\n sourceEvent: event\n });\n\n if (!actions) {\n return;\n }\n\n var touch = event.touches[0];\n var clientX = touch.clientX,\n clientY = touch.clientY;\n var point = {\n x: clientX,\n y: clientY\n };\n unbindEventsRef.current();\n startPendingDrag(actions, point);\n }\n };\n }, [api]);\n var listenForCapture = useCallback(function listenForCapture() {\n var options = {\n capture: true,\n passive: false\n };\n unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options);\n }, [startCaptureBinding]);\n var stop = useCallback(function () {\n var current = phaseRef.current;\n\n if (current.type === 'IDLE') {\n return;\n }\n\n if (current.type === 'PENDING') {\n clearTimeout(current.longPressTimerId);\n }\n\n setPhase(idle$2);\n unbindEventsRef.current();\n listenForCapture();\n }, [listenForCapture, setPhase]);\n var cancel = useCallback(function () {\n var phase = phaseRef.current;\n stop();\n\n if (phase.type === 'DRAGGING') {\n phase.actions.cancel({\n shouldBlockNextClick: true\n });\n }\n\n if (phase.type === 'PENDING') {\n phase.actions.abort();\n }\n }, [stop]);\n var bindCapturingEvents = useCallback(function bindCapturingEvents() {\n var options = {\n capture: true,\n passive: false\n };\n var args = {\n cancel: cancel,\n completed: stop,\n getPhase: getPhase\n };\n var unbindTarget = bindEvents(window, getHandleBindings(args), options);\n var unbindWindow = bindEvents(window, getWindowBindings(args), options);\n\n unbindEventsRef.current = function unbindAll() {\n unbindTarget();\n unbindWindow();\n };\n }, [cancel, getPhase, stop]);\n var startDragging = useCallback(function startDragging() {\n var phase = getPhase();\n !(phase.type === 'PENDING') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot start dragging from phase \" + phase.type) : invariant(false) : void 0;\n var actions = phase.actions.fluidLift(phase.point);\n setPhase({\n type: 'DRAGGING',\n actions: actions,\n hasMoved: false\n });\n }, [getPhase, setPhase]);\n var startPendingDrag = useCallback(function startPendingDrag(actions, point) {\n !(getPhase().type === 'IDLE') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0;\n var longPressTimerId = setTimeout(startDragging, timeForLongPress);\n setPhase({\n type: 'PENDING',\n point: point,\n actions: actions,\n longPressTimerId: longPressTimerId\n });\n bindCapturingEvents();\n }, [bindCapturingEvents, getPhase, setPhase, startDragging]);\n useIsomorphicLayoutEffect(function mount() {\n listenForCapture();\n return function unmount() {\n unbindEventsRef.current();\n var phase = getPhase();\n\n if (phase.type === 'PENDING') {\n clearTimeout(phase.longPressTimerId);\n setPhase(idle$2);\n }\n };\n }, [getPhase, listenForCapture, setPhase]);\n useIsomorphicLayoutEffect(function webkitHack() {\n var unbind = bindEvents(window, [{\n eventName: 'touchmove',\n fn: function fn() {},\n options: {\n capture: false,\n passive: false\n }\n }]);\n return unbind;\n }, []);\n}\n\nfunction useValidateSensorHooks(sensorHooks) {\n useDev(function () {\n var previousRef = usePrevious(sensorHooks);\n useDevSetupWarning(function () {\n !(previousRef.current.length === sensorHooks.length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot change the amount of sensor hooks after mounting') : invariant(false) : void 0;\n });\n });\n}\n\nvar interactiveTagNames = {\n input: true,\n button: true,\n textarea: true,\n select: true,\n option: true,\n optgroup: true,\n video: true,\n audio: true\n};\n\nfunction isAnInteractiveElement(parent, current) {\n if (current == null) {\n return false;\n }\n\n var hasAnInteractiveTag = Boolean(interactiveTagNames[current.tagName.toLowerCase()]);\n\n if (hasAnInteractiveTag) {\n return true;\n }\n\n var attribute = current.getAttribute('contenteditable');\n\n if (attribute === 'true' || attribute === '') {\n return true;\n }\n\n if (current === parent) {\n return false;\n }\n\n return isAnInteractiveElement(parent, current.parentElement);\n}\n\nfunction isEventInInteractiveElement(draggable, event) {\n var target = event.target;\n\n if (!isHtmlElement(target)) {\n return false;\n }\n\n return isAnInteractiveElement(draggable, target);\n}\n\nvar getBorderBoxCenterPosition = (function (el) {\n return getRect(el.getBoundingClientRect()).center;\n});\n\nfunction isElement(el) {\n return el instanceof getWindowFromEl(el).Element;\n}\n\nvar supportedMatchesName = function () {\n var base = 'matches';\n\n if (typeof document === 'undefined') {\n return base;\n }\n\n var candidates = [base, 'msMatchesSelector', 'webkitMatchesSelector'];\n var value = find(candidates, function (name) {\n return name in Element.prototype;\n });\n return value || base;\n}();\n\nfunction closestPonyfill(el, selector) {\n if (el == null) {\n return null;\n }\n\n if (el[supportedMatchesName](selector)) {\n return el;\n }\n\n return closestPonyfill(el.parentElement, selector);\n}\n\nfunction closest$1(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n }\n\n return closestPonyfill(el, selector);\n}\n\nfunction getSelector(contextId) {\n return \"[\" + dragHandle.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n}\n\nfunction findClosestDragHandleFromEvent(contextId, event) {\n var target = event.target;\n\n if (!isElement(target)) {\n process.env.NODE_ENV !== \"production\" ? warning('event.target must be a Element') : void 0;\n return null;\n }\n\n var selector = getSelector(contextId);\n var handle = closest$1(target, selector);\n\n if (!handle) {\n return null;\n }\n\n if (!isHtmlElement(handle)) {\n process.env.NODE_ENV !== \"production\" ? warning('drag handle must be a HTMLElement') : void 0;\n return null;\n }\n\n return handle;\n}\n\nfunction tryGetClosestDraggableIdFromEvent(contextId, event) {\n var handle = findClosestDragHandleFromEvent(contextId, event);\n\n if (!handle) {\n return null;\n }\n\n return handle.getAttribute(dragHandle.draggableId);\n}\n\nfunction findDraggable(contextId, draggableId) {\n var selector = \"[\" + draggable.contextId + \"=\\\"\" + contextId + \"\\\"]\";\n var possible = toArray(document.querySelectorAll(selector));\n var draggable$1 = find(possible, function (el) {\n return el.getAttribute(draggable.id) === draggableId;\n });\n\n if (!draggable$1) {\n return null;\n }\n\n if (!isHtmlElement(draggable$1)) {\n process.env.NODE_ENV !== \"production\" ? warning('Draggable element is not a HTMLElement') : void 0;\n return null;\n }\n\n return draggable$1;\n}\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\n\nfunction _isActive(_ref) {\n var expected = _ref.expected,\n phase = _ref.phase,\n isLockActive = _ref.isLockActive,\n shouldWarn = _ref.shouldWarn;\n\n if (!isLockActive()) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Cannot perform action.\\n The sensor no longer has an action lock.\\n\\n Tips:\\n\\n - Throw away your action handlers when forceStop() is called\\n - Check actions.isActive() if you really need to\\n \") : void 0;\n }\n\n return false;\n }\n\n if (expected !== phase) {\n if (shouldWarn) {\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Cannot perform action.\\n The actions you used belong to an outdated phase\\n\\n Current phase: \" + expected + \"\\n You called an action from outdated phase: \" + phase + \"\\n\\n Tips:\\n\\n - Do not use preDragActions actions after calling preDragActions.lift()\\n \") : void 0;\n }\n\n return false;\n }\n\n return true;\n}\n\nfunction canStart(_ref2) {\n var lockAPI = _ref2.lockAPI,\n store = _ref2.store,\n registry = _ref2.registry,\n draggableId = _ref2.draggableId;\n\n if (lockAPI.isClaimed()) {\n return false;\n }\n\n var entry = registry.draggable.findById(draggableId);\n\n if (!entry) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find draggable with id: \" + draggableId) : void 0;\n return false;\n }\n\n if (!entry.options.isEnabled) {\n return false;\n }\n\n if (!canStartDrag(store.getState(), draggableId)) {\n return false;\n }\n\n return true;\n}\n\nfunction tryStart(_ref3) {\n var lockAPI = _ref3.lockAPI,\n contextId = _ref3.contextId,\n store = _ref3.store,\n registry = _ref3.registry,\n draggableId = _ref3.draggableId,\n forceSensorStop = _ref3.forceSensorStop,\n sourceEvent = _ref3.sourceEvent;\n var shouldStart = canStart({\n lockAPI: lockAPI,\n store: store,\n registry: registry,\n draggableId: draggableId\n });\n\n if (!shouldStart) {\n return null;\n }\n\n var entry = registry.draggable.getById(draggableId);\n var el = findDraggable(contextId, entry.descriptor.id);\n\n if (!el) {\n process.env.NODE_ENV !== \"production\" ? warning(\"Unable to find draggable element with id: \" + draggableId) : void 0;\n return null;\n }\n\n if (sourceEvent && !entry.options.canDragInteractiveElements && isEventInInteractiveElement(el, sourceEvent)) {\n return null;\n }\n\n var lock = lockAPI.claim(forceSensorStop || noop);\n var phase = 'PRE_DRAG';\n\n function getShouldRespectForcePress() {\n return entry.options.shouldRespectForcePress;\n }\n\n function isLockActive() {\n return lockAPI.isActive(lock);\n }\n\n function tryDispatch(expected, getAction) {\n if (_isActive({\n expected: expected,\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: true\n })) {\n store.dispatch(getAction());\n }\n }\n\n var tryDispatchWhenDragging = tryDispatch.bind(null, 'DRAGGING');\n\n function lift$1(args) {\n function completed() {\n lockAPI.release();\n phase = 'COMPLETED';\n }\n\n if (phase !== 'PRE_DRAG') {\n completed();\n !(phase === 'PRE_DRAG') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Cannot lift in phase \" + phase) : invariant(false) : void 0;\n }\n\n store.dispatch(lift(args.liftActionArgs));\n phase = 'DRAGGING';\n\n function finish(reason, options) {\n if (options === void 0) {\n options = {\n shouldBlockNextClick: false\n };\n }\n\n args.cleanup();\n\n if (options.shouldBlockNextClick) {\n var unbind = bindEvents(window, [{\n eventName: 'click',\n fn: preventDefault,\n options: {\n once: true,\n passive: false,\n capture: true\n }\n }]);\n setTimeout(unbind);\n }\n\n completed();\n store.dispatch(drop({\n reason: reason\n }));\n }\n\n return _extends({\n isActive: function isActive() {\n return _isActive({\n expected: 'DRAGGING',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: false\n });\n },\n shouldRespectForcePress: getShouldRespectForcePress,\n drop: function drop(options) {\n return finish('DROP', options);\n },\n cancel: function cancel(options) {\n return finish('CANCEL', options);\n }\n }, args.actions);\n }\n\n function fluidLift(clientSelection) {\n var move$1 = rafSchd(function (client) {\n tryDispatchWhenDragging(function () {\n return move({\n client: client\n });\n });\n });\n var api = lift$1({\n liftActionArgs: {\n id: draggableId,\n clientSelection: clientSelection,\n movementMode: 'FLUID'\n },\n cleanup: function cleanup() {\n return move$1.cancel();\n },\n actions: {\n move: move$1\n }\n });\n return _extends({}, api, {\n move: move$1\n });\n }\n\n function snapLift() {\n var actions = {\n moveUp: function moveUp$1() {\n return tryDispatchWhenDragging(moveUp);\n },\n moveRight: function moveRight$1() {\n return tryDispatchWhenDragging(moveRight);\n },\n moveDown: function moveDown$1() {\n return tryDispatchWhenDragging(moveDown);\n },\n moveLeft: function moveLeft$1() {\n return tryDispatchWhenDragging(moveLeft);\n }\n };\n return lift$1({\n liftActionArgs: {\n id: draggableId,\n clientSelection: getBorderBoxCenterPosition(el),\n movementMode: 'SNAP'\n },\n cleanup: noop,\n actions: actions\n });\n }\n\n function abortPreDrag() {\n var shouldRelease = _isActive({\n expected: 'PRE_DRAG',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: true\n });\n\n if (shouldRelease) {\n lockAPI.release();\n }\n }\n\n var preDrag = {\n isActive: function isActive() {\n return _isActive({\n expected: 'PRE_DRAG',\n phase: phase,\n isLockActive: isLockActive,\n shouldWarn: false\n });\n },\n shouldRespectForcePress: getShouldRespectForcePress,\n fluidLift: fluidLift,\n snapLift: snapLift,\n abort: abortPreDrag\n };\n return preDrag;\n}\n\nvar defaultSensors = [useMouseSensor, useKeyboardSensor, useTouchSensor];\nfunction useSensorMarshal(_ref4) {\n var contextId = _ref4.contextId,\n store = _ref4.store,\n registry = _ref4.registry,\n customSensors = _ref4.customSensors,\n enableDefaultSensors = _ref4.enableDefaultSensors;\n var useSensors = [].concat(enableDefaultSensors ? defaultSensors : [], customSensors || []);\n var lockAPI = useState(function () {\n return create();\n })[0];\n var tryAbandonLock = useCallback(function tryAbandonLock(previous, current) {\n if (previous.isDragging && !current.isDragging) {\n lockAPI.tryAbandon();\n }\n }, [lockAPI]);\n useIsomorphicLayoutEffect(function listenToStore() {\n var previous = store.getState();\n var unsubscribe = store.subscribe(function () {\n var current = store.getState();\n tryAbandonLock(previous, current);\n previous = current;\n });\n return unsubscribe;\n }, [lockAPI, store, tryAbandonLock]);\n useIsomorphicLayoutEffect(function () {\n return lockAPI.tryAbandon;\n }, [lockAPI.tryAbandon]);\n var canGetLock = useCallback(function (draggableId) {\n return canStart({\n lockAPI: lockAPI,\n registry: registry,\n store: store,\n draggableId: draggableId\n });\n }, [lockAPI, registry, store]);\n var tryGetLock = useCallback(function (draggableId, forceStop, options) {\n return tryStart({\n lockAPI: lockAPI,\n registry: registry,\n contextId: contextId,\n store: store,\n draggableId: draggableId,\n forceSensorStop: forceStop,\n sourceEvent: options && options.sourceEvent ? options.sourceEvent : null\n });\n }, [contextId, lockAPI, registry, store]);\n var findClosestDraggableId = useCallback(function (event) {\n return tryGetClosestDraggableIdFromEvent(contextId, event);\n }, [contextId]);\n var findOptionsForDraggable = useCallback(function (id) {\n var entry = registry.draggable.findById(id);\n return entry ? entry.options : null;\n }, [registry.draggable]);\n var tryReleaseLock = useCallback(function tryReleaseLock() {\n if (!lockAPI.isClaimed()) {\n return;\n }\n\n lockAPI.tryAbandon();\n\n if (store.getState().phase !== 'IDLE') {\n store.dispatch(flush());\n }\n }, [lockAPI, store]);\n var isLockClaimed = useCallback(lockAPI.isClaimed, [lockAPI]);\n var api = useMemo(function () {\n return {\n canGetLock: canGetLock,\n tryGetLock: tryGetLock,\n findClosestDraggableId: findClosestDraggableId,\n findOptionsForDraggable: findOptionsForDraggable,\n tryReleaseLock: tryReleaseLock,\n isLockClaimed: isLockClaimed\n };\n }, [canGetLock, tryGetLock, findClosestDraggableId, findOptionsForDraggable, tryReleaseLock, isLockClaimed]);\n useValidateSensorHooks(useSensors);\n\n for (var i = 0; i < useSensors.length; i++) {\n useSensors[i](api);\n }\n}\n\nvar createResponders = function createResponders(props) {\n return {\n onBeforeCapture: props.onBeforeCapture,\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragEnd: props.onDragEnd,\n onDragUpdate: props.onDragUpdate\n };\n};\n\nfunction getStore(lazyRef) {\n !lazyRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find store from lazy ref') : invariant(false) : void 0;\n return lazyRef.current;\n}\n\nfunction App(props) {\n var contextId = props.contextId,\n setCallbacks = props.setCallbacks,\n sensors = props.sensors,\n nonce = props.nonce,\n dragHandleUsageInstructions = props.dragHandleUsageInstructions;\n var lazyStoreRef = useRef(null);\n useStartupValidation();\n var lastPropsRef = usePrevious(props);\n var getResponders = useCallback(function () {\n return createResponders(lastPropsRef.current);\n }, [lastPropsRef]);\n var announce = useAnnouncer(contextId);\n var dragHandleUsageInstructionsId = useHiddenTextElement({\n contextId: contextId,\n text: dragHandleUsageInstructions\n });\n var styleMarshal = useStyleMarshal(contextId, nonce);\n var lazyDispatch = useCallback(function (action) {\n getStore(lazyStoreRef).dispatch(action);\n }, []);\n var marshalCallbacks = useMemo(function () {\n return bindActionCreators({\n publishWhileDragging: publishWhileDragging,\n updateDroppableScroll: updateDroppableScroll,\n updateDroppableIsEnabled: updateDroppableIsEnabled,\n updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled,\n collectionStarting: collectionStarting\n }, lazyDispatch);\n }, [lazyDispatch]);\n var registry = useRegistry();\n var dimensionMarshal = useMemo(function () {\n return createDimensionMarshal(registry, marshalCallbacks);\n }, [registry, marshalCallbacks]);\n var autoScroller = useMemo(function () {\n return createAutoScroller(_extends({\n scrollWindow: scrollWindow,\n scrollDroppable: dimensionMarshal.scrollDroppable\n }, bindActionCreators({\n move: move\n }, lazyDispatch)));\n }, [dimensionMarshal.scrollDroppable, lazyDispatch]);\n var focusMarshal = useFocusMarshal(contextId);\n var store = useMemo(function () {\n return createStore({\n announce: announce,\n autoScroller: autoScroller,\n dimensionMarshal: dimensionMarshal,\n focusMarshal: focusMarshal,\n getResponders: getResponders,\n styleMarshal: styleMarshal\n });\n }, [announce, autoScroller, dimensionMarshal, focusMarshal, getResponders, styleMarshal]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (lazyStoreRef.current && lazyStoreRef.current !== store) {\n process.env.NODE_ENV !== \"production\" ? warning('unexpected store change') : void 0;\n }\n }\n\n lazyStoreRef.current = store;\n var tryResetStore = useCallback(function () {\n var current = getStore(lazyStoreRef);\n var state = current.getState();\n\n if (state.phase !== 'IDLE') {\n current.dispatch(flush());\n }\n }, []);\n var isDragging = useCallback(function () {\n var state = getStore(lazyStoreRef).getState();\n return state.isDragging || state.phase === 'DROP_ANIMATING';\n }, []);\n var appCallbacks = useMemo(function () {\n return {\n isDragging: isDragging,\n tryAbort: tryResetStore\n };\n }, [isDragging, tryResetStore]);\n setCallbacks(appCallbacks);\n var getCanLift = useCallback(function (id) {\n return canStartDrag(getStore(lazyStoreRef).getState(), id);\n }, []);\n var getIsMovementAllowed = useCallback(function () {\n return isMovementAllowed(getStore(lazyStoreRef).getState());\n }, []);\n var appContext = useMemo(function () {\n return {\n marshal: dimensionMarshal,\n focus: focusMarshal,\n contextId: contextId,\n canLift: getCanLift,\n isMovementAllowed: getIsMovementAllowed,\n dragHandleUsageInstructionsId: dragHandleUsageInstructionsId,\n registry: registry\n };\n }, [contextId, dimensionMarshal, dragHandleUsageInstructionsId, focusMarshal, getCanLift, getIsMovementAllowed, registry]);\n useSensorMarshal({\n contextId: contextId,\n store: store,\n registry: registry,\n customSensors: sensors,\n enableDefaultSensors: props.enableDefaultSensors !== false\n });\n useEffect(function () {\n return tryResetStore;\n }, [tryResetStore]);\n return React.createElement(AppContext.Provider, {\n value: appContext\n }, React.createElement(Provider, {\n context: StoreContext,\n store: store\n }, props.children));\n}\n\nvar count$1 = 0;\nfunction reset$1() {\n count$1 = 0;\n}\nfunction useInstanceCount() {\n return useMemo(function () {\n return \"\" + count$1++;\n }, []);\n}\n\nfunction resetServerContext() {\n reset$1();\n reset();\n}\nfunction DragDropContext(props) {\n var contextId = useInstanceCount();\n var dragHandleUsageInstructions = props.dragHandleUsageInstructions || preset.dragHandleUsageInstructions;\n return React.createElement(ErrorBoundary, null, function (setCallbacks) {\n return React.createElement(App, {\n nonce: props.nonce,\n contextId: contextId,\n setCallbacks: setCallbacks,\n dragHandleUsageInstructions: dragHandleUsageInstructions,\n enableDefaultSensors: props.enableDefaultSensors,\n sensors: props.sensors,\n onBeforeCapture: props.onBeforeCapture,\n onBeforeDragStart: props.onBeforeDragStart,\n onDragStart: props.onDragStart,\n onDragUpdate: props.onDragUpdate,\n onDragEnd: props.onDragEnd\n }, props.children);\n });\n}\n\nvar isEqual$1 = function isEqual(base) {\n return function (value) {\n return base === value;\n };\n};\n\nvar isScroll = isEqual$1('scroll');\nvar isAuto = isEqual$1('auto');\nvar isVisible$1 = isEqual$1('visible');\n\nvar isEither = function isEither(overflow, fn) {\n return fn(overflow.overflowX) || fn(overflow.overflowY);\n};\n\nvar isBoth = function isBoth(overflow, fn) {\n return fn(overflow.overflowX) && fn(overflow.overflowY);\n};\n\nvar isElementScrollable = function isElementScrollable(el) {\n var style = window.getComputedStyle(el);\n var overflow = {\n overflowX: style.overflowX,\n overflowY: style.overflowY\n };\n return isEither(overflow, isScroll) || isEither(overflow, isAuto);\n};\n\nvar isBodyScrollable = function isBodyScrollable() {\n if (process.env.NODE_ENV === 'production') {\n return false;\n }\n\n var body = getBodyElement();\n var html = document.documentElement;\n !html ? process.env.NODE_ENV !== \"production\" ? invariant(false) : invariant(false) : void 0;\n\n if (!isElementScrollable(body)) {\n return false;\n }\n\n var htmlStyle = window.getComputedStyle(html);\n var htmlOverflow = {\n overflowX: htmlStyle.overflowX,\n overflowY: htmlStyle.overflowY\n };\n\n if (isBoth(htmlOverflow, isVisible$1)) {\n return false;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n We have detected that your element might be a scroll container.\\n We have found no reliable way of detecting whether the element is a scroll container.\\n Under most circumstances a scroll bar will be on the element (document.documentElement)\\n\\n Because we cannot determine if the is a scroll container, and generally it is not one,\\n we will be treating the as *not* a scroll container\\n\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/how-we-detect-scroll-containers.md\\n \") : void 0;\n return false;\n};\n\nvar getClosestScrollable = function getClosestScrollable(el) {\n if (el == null) {\n return null;\n }\n\n if (el === document.body) {\n return isBodyScrollable() ? el : null;\n }\n\n if (el === document.documentElement) {\n return null;\n }\n\n if (!isElementScrollable(el)) {\n return getClosestScrollable(el.parentElement);\n }\n\n return el;\n};\n\nvar checkForNestedScrollContainers = (function (scrollable) {\n if (!scrollable) {\n return;\n }\n\n var anotherScrollParent = getClosestScrollable(scrollable.parentElement);\n\n if (!anotherScrollParent) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable: unsupported nested scroll container detected.\\n A Droppable can only have one scroll parent (which can be itself)\\n Nested scroll containers are currently not supported.\\n\\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\\n \") : void 0;\n});\n\nvar getScroll$1 = (function (el) {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n };\n});\n\nvar getIsFixed = function getIsFixed(el) {\n if (!el) {\n return false;\n }\n\n var style = window.getComputedStyle(el);\n\n if (style.position === 'fixed') {\n return true;\n }\n\n return getIsFixed(el.parentElement);\n};\n\nvar getEnv = (function (start) {\n var closestScrollable = getClosestScrollable(start);\n var isFixedOnPage = getIsFixed(start);\n return {\n closestScrollable: closestScrollable,\n isFixedOnPage: isFixedOnPage\n };\n});\n\nvar getDroppableDimension = (function (_ref) {\n var descriptor = _ref.descriptor,\n isEnabled = _ref.isEnabled,\n isCombineEnabled = _ref.isCombineEnabled,\n isFixedOnPage = _ref.isFixedOnPage,\n direction = _ref.direction,\n client = _ref.client,\n page = _ref.page,\n closest = _ref.closest;\n\n var frame = function () {\n if (!closest) {\n return null;\n }\n\n var scrollSize = closest.scrollSize,\n frameClient = closest.client;\n var maxScroll = getMaxScroll({\n scrollHeight: scrollSize.scrollHeight,\n scrollWidth: scrollSize.scrollWidth,\n height: frameClient.paddingBox.height,\n width: frameClient.paddingBox.width\n });\n return {\n pageMarginBox: closest.page.marginBox,\n frameClient: frameClient,\n scrollSize: scrollSize,\n shouldClipSubject: closest.shouldClipSubject,\n scroll: {\n initial: closest.scroll,\n current: closest.scroll,\n max: maxScroll,\n diff: {\n value: origin,\n displacement: origin\n }\n }\n };\n }();\n\n var axis = direction === 'vertical' ? vertical : horizontal;\n var subject = getSubject({\n page: page,\n withPlaceholder: null,\n axis: axis,\n frame: frame\n });\n var dimension = {\n descriptor: descriptor,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: isFixedOnPage,\n axis: axis,\n isEnabled: isEnabled,\n client: client,\n page: page,\n frame: frame,\n subject: subject\n };\n return dimension;\n});\n\nvar getClient = function getClient(targetRef, closestScrollable) {\n var base = getBox(targetRef);\n\n if (!closestScrollable) {\n return base;\n }\n\n if (targetRef !== closestScrollable) {\n return base;\n }\n\n var top = base.paddingBox.top - closestScrollable.scrollTop;\n var left = base.paddingBox.left - closestScrollable.scrollLeft;\n var bottom = top + closestScrollable.scrollHeight;\n var right = left + closestScrollable.scrollWidth;\n var paddingBox = {\n top: top,\n right: right,\n bottom: bottom,\n left: left\n };\n var borderBox = expand(paddingBox, base.border);\n var client = createBox({\n borderBox: borderBox,\n margin: base.margin,\n border: base.border,\n padding: base.padding\n });\n return client;\n};\n\nvar getDimension = (function (_ref) {\n var ref = _ref.ref,\n descriptor = _ref.descriptor,\n env = _ref.env,\n windowScroll = _ref.windowScroll,\n direction = _ref.direction,\n isDropDisabled = _ref.isDropDisabled,\n isCombineEnabled = _ref.isCombineEnabled,\n shouldClipSubject = _ref.shouldClipSubject;\n var closestScrollable = env.closestScrollable;\n var client = getClient(ref, closestScrollable);\n var page = withScroll(client, windowScroll);\n\n var closest = function () {\n if (!closestScrollable) {\n return null;\n }\n\n var frameClient = getBox(closestScrollable);\n var scrollSize = {\n scrollHeight: closestScrollable.scrollHeight,\n scrollWidth: closestScrollable.scrollWidth\n };\n return {\n client: frameClient,\n page: withScroll(frameClient, windowScroll),\n scroll: getScroll$1(closestScrollable),\n scrollSize: scrollSize,\n shouldClipSubject: shouldClipSubject\n };\n }();\n\n var dimension = getDroppableDimension({\n descriptor: descriptor,\n isEnabled: !isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n isFixedOnPage: env.isFixedOnPage,\n direction: direction,\n client: client,\n page: page,\n closest: closest\n });\n return dimension;\n});\n\nvar immediate = {\n passive: false\n};\nvar delayed = {\n passive: true\n};\nvar getListenerOptions = (function (options) {\n return options.shouldPublishImmediately ? immediate : delayed;\n});\n\nfunction useRequiredContext(Context) {\n var result = useContext(Context);\n !result ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find required context') : invariant(false) : void 0;\n return result;\n}\n\nvar getClosestScrollableFromDrag = function getClosestScrollableFromDrag(dragging) {\n return dragging && dragging.env.closestScrollable || null;\n};\n\nfunction useDroppablePublisher(args) {\n var whileDraggingRef = useRef(null);\n var appContext = useRequiredContext(AppContext);\n var uniqueId = useUniqueId('droppable');\n var registry = appContext.registry,\n marshal = appContext.marshal;\n var previousRef = usePrevious(args);\n var descriptor = useMemo(function () {\n return {\n id: args.droppableId,\n type: args.type,\n mode: args.mode\n };\n }, [args.droppableId, args.mode, args.type]);\n var publishedDescriptorRef = useRef(descriptor);\n var memoizedUpdateScroll = useMemo(function () {\n return memoizeOne(function (x, y) {\n !whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only update scroll when dragging') : invariant(false) : void 0;\n var scroll = {\n x: x,\n y: y\n };\n marshal.updateDroppableScroll(descriptor.id, scroll);\n });\n }, [descriptor.id, marshal]);\n var getClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n\n if (!dragging || !dragging.env.closestScrollable) {\n return origin;\n }\n\n return getScroll$1(dragging.env.closestScrollable);\n }, []);\n var updateScroll = useCallback(function () {\n var scroll = getClosestScroll();\n memoizedUpdateScroll(scroll.x, scroll.y);\n }, [getClosestScroll, memoizedUpdateScroll]);\n var scheduleScrollUpdate = useMemo(function () {\n return rafSchd(updateScroll);\n }, [updateScroll]);\n var onClosestScroll = useCallback(function () {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find scroll options while scrolling') : invariant(false) : void 0;\n var options = dragging.scrollOptions;\n\n if (options.shouldPublishImmediately) {\n updateScroll();\n return;\n }\n\n scheduleScrollUpdate();\n }, [scheduleScrollUpdate, updateScroll]);\n var getDimensionAndWatchScroll = useCallback(function (windowScroll, options) {\n !!whileDraggingRef.current ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect a droppable while a drag is occurring') : invariant(false) : void 0;\n var previous = previousRef.current;\n var ref = previous.getDroppableRef();\n !ref ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot collect without a droppable ref') : invariant(false) : void 0;\n var env = getEnv(ref);\n var dragging = {\n ref: ref,\n descriptor: descriptor,\n env: env,\n scrollOptions: options\n };\n whileDraggingRef.current = dragging;\n var dimension = getDimension({\n ref: ref,\n descriptor: descriptor,\n env: env,\n windowScroll: windowScroll,\n direction: previous.direction,\n isDropDisabled: previous.isDropDisabled,\n isCombineEnabled: previous.isCombineEnabled,\n shouldClipSubject: !previous.ignoreContainerClipping\n });\n var scrollable = env.closestScrollable;\n\n if (scrollable) {\n scrollable.setAttribute(scrollContainer.contextId, appContext.contextId);\n scrollable.addEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n\n if (process.env.NODE_ENV !== 'production') {\n checkForNestedScrollContainers(scrollable);\n }\n }\n\n return dimension;\n }, [appContext.contextId, descriptor, onClosestScroll, previousRef]);\n var getScrollWhileDragging = useCallback(function () {\n var dragging = whileDraggingRef.current;\n var closest = getClosestScrollableFromDrag(dragging);\n !(dragging && closest) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Can only recollect Droppable client for Droppables that have a scroll container') : invariant(false) : void 0;\n return getScroll$1(closest);\n }, []);\n var dragStopped = useCallback(function () {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot stop drag when no active drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n whileDraggingRef.current = null;\n\n if (!closest) {\n return;\n }\n\n scheduleScrollUpdate.cancel();\n closest.removeAttribute(scrollContainer.contextId);\n closest.removeEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions));\n }, [onClosestScroll, scheduleScrollUpdate]);\n var scroll = useCallback(function (change) {\n var dragging = whileDraggingRef.current;\n !dragging ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll when there is no drag') : invariant(false) : void 0;\n var closest = getClosestScrollableFromDrag(dragging);\n !closest ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : invariant(false) : void 0;\n closest.scrollTop += change.y;\n closest.scrollLeft += change.x;\n }, []);\n var callbacks = useMemo(function () {\n return {\n getDimensionAndWatchScroll: getDimensionAndWatchScroll,\n getScrollWhileDragging: getScrollWhileDragging,\n dragStopped: dragStopped,\n scroll: scroll\n };\n }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]);\n var entry = useMemo(function () {\n return {\n uniqueId: uniqueId,\n descriptor: descriptor,\n callbacks: callbacks\n };\n }, [callbacks, descriptor, uniqueId]);\n useIsomorphicLayoutEffect(function () {\n publishedDescriptorRef.current = entry.descriptor;\n registry.droppable.register(entry);\n return function () {\n if (whileDraggingRef.current) {\n process.env.NODE_ENV !== \"production\" ? warning('Unsupported: changing the droppableId or type of a Droppable during a drag') : void 0;\n dragStopped();\n }\n\n registry.droppable.unregister(entry);\n };\n }, [callbacks, descriptor, dragStopped, entry, marshal, registry.droppable]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsEnabled(publishedDescriptorRef.current.id, !args.isDropDisabled);\n }, [args.isDropDisabled, marshal]);\n useIsomorphicLayoutEffect(function () {\n if (!whileDraggingRef.current) {\n return;\n }\n\n marshal.updateDroppableIsCombineEnabled(publishedDescriptorRef.current.id, args.isCombineEnabled);\n }, [args.isCombineEnabled, marshal]);\n}\n\nfunction noop$2() {}\n\nvar empty = {\n width: 0,\n height: 0,\n margin: noSpacing\n};\n\nvar getSize = function getSize(_ref) {\n var isAnimatingOpenOnMount = _ref.isAnimatingOpenOnMount,\n placeholder = _ref.placeholder,\n animate = _ref.animate;\n\n if (isAnimatingOpenOnMount) {\n return empty;\n }\n\n if (animate === 'close') {\n return empty;\n }\n\n return {\n height: placeholder.client.borderBox.height,\n width: placeholder.client.borderBox.width,\n margin: placeholder.client.margin\n };\n};\n\nvar getStyle = function getStyle(_ref2) {\n var isAnimatingOpenOnMount = _ref2.isAnimatingOpenOnMount,\n placeholder = _ref2.placeholder,\n animate = _ref2.animate;\n var size = getSize({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n placeholder: placeholder,\n animate: animate\n });\n return {\n display: placeholder.display,\n boxSizing: 'border-box',\n width: size.width,\n height: size.height,\n marginTop: size.margin.top,\n marginRight: size.margin.right,\n marginBottom: size.margin.bottom,\n marginLeft: size.margin.left,\n flexShrink: '0',\n flexGrow: '0',\n pointerEvents: 'none',\n transition: animate !== 'none' ? transitions.placeholder : null\n };\n};\n\nfunction Placeholder(props) {\n var animateOpenTimerRef = useRef(null);\n var tryClearAnimateOpenTimer = useCallback(function () {\n if (!animateOpenTimerRef.current) {\n return;\n }\n\n clearTimeout(animateOpenTimerRef.current);\n animateOpenTimerRef.current = null;\n }, []);\n var animate = props.animate,\n onTransitionEnd = props.onTransitionEnd,\n onClose = props.onClose,\n contextId = props.contextId;\n\n var _useState = useState(props.animate === 'open'),\n isAnimatingOpenOnMount = _useState[0],\n setIsAnimatingOpenOnMount = _useState[1];\n\n useEffect(function () {\n if (!isAnimatingOpenOnMount) {\n return noop$2;\n }\n\n if (animate !== 'open') {\n tryClearAnimateOpenTimer();\n setIsAnimatingOpenOnMount(false);\n return noop$2;\n }\n\n if (animateOpenTimerRef.current) {\n return noop$2;\n }\n\n animateOpenTimerRef.current = setTimeout(function () {\n animateOpenTimerRef.current = null;\n setIsAnimatingOpenOnMount(false);\n });\n return tryClearAnimateOpenTimer;\n }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]);\n var onSizeChangeEnd = useCallback(function (event) {\n if (event.propertyName !== 'height') {\n return;\n }\n\n onTransitionEnd();\n\n if (animate === 'close') {\n onClose();\n }\n }, [animate, onClose, onTransitionEnd]);\n var style = getStyle({\n isAnimatingOpenOnMount: isAnimatingOpenOnMount,\n animate: props.animate,\n placeholder: props.placeholder\n });\n return React.createElement(props.placeholder.tagName, {\n style: style,\n 'data-rbd-placeholder-context-id': contextId,\n onTransitionEnd: onSizeChangeEnd,\n ref: props.innerRef\n });\n}\n\nvar Placeholder$1 = React.memo(Placeholder);\n\nvar DroppableContext = React.createContext(null);\n\nfunction checkIsValidInnerRef(el) {\n !(el && isHtmlElement(el)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"\\n provided.innerRef has not been provided with a HTMLElement.\\n\\n You can find a guide on using the innerRef callback functions at:\\n https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md\\n \") : invariant(false) : void 0;\n}\n\nfunction isBoolean(value) {\n return typeof value === 'boolean';\n}\n\nfunction runChecks(args, checks) {\n checks.forEach(function (check) {\n return check(args);\n });\n}\n\nvar shared = [function required(_ref) {\n var props = _ref.props;\n !props.droppableId ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'A Droppable requires a droppableId prop') : invariant(false) : void 0;\n !(typeof props.droppableId === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"A Droppable requires a [string] droppableId. Provided: [\" + typeof props.droppableId + \"]\") : invariant(false) : void 0;\n}, function _boolean(_ref2) {\n var props = _ref2.props;\n !isBoolean(props.isDropDisabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isDropDisabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.isCombineEnabled) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'isCombineEnabled must be a boolean') : invariant(false) : void 0;\n !isBoolean(props.ignoreContainerClipping) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ignoreContainerClipping must be a boolean') : invariant(false) : void 0;\n}, function ref(_ref3) {\n var getDroppableRef = _ref3.getDroppableRef;\n checkIsValidInnerRef(getDroppableRef());\n}];\nvar standard = [function placeholder(_ref4) {\n var props = _ref4.props,\n getPlaceholderRef = _ref4.getPlaceholderRef;\n\n if (!props.placeholder) {\n return;\n }\n\n var ref = getPlaceholderRef();\n\n if (ref) {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(\"\\n Droppable setup issue [droppableId: \\\"\" + props.droppableId + \"\\\"]:\\n DroppableProvided > placeholder could not be found.\\n\\n Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.\\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/droppable.md\\n \") : void 0;\n}];\nvar virtual = [function hasClone(_ref5) {\n var props = _ref5.props;\n !props.renderClone ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Must provide a clone render function (renderClone) for virtual lists') : invariant(false) : void 0;\n}, function hasNoPlaceholder(_ref6) {\n var getPlaceholderRef = _ref6.getPlaceholderRef;\n !!getPlaceholderRef() ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Expected virtual list to not have a placeholder') : invariant(false) : void 0;\n}];\nfunction useValidation(args) {\n useDevSetupWarning(function () {\n runChecks(args, shared);\n\n if (args.props.mode === 'standard') {\n runChecks(args, standard);\n }\n\n if (args.props.mode === 'virtual') {\n runChecks(args, virtual);\n }\n });\n}\n\nvar AnimateInOut = function (_React$PureComponent) {\n _inheritsLoose(AnimateInOut, _React$PureComponent);\n\n function AnimateInOut() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;\n _this.state = {\n isVisible: Boolean(_this.props.on),\n data: _this.props.on,\n animate: _this.props.shouldAnimate && _this.props.on ? 'open' : 'none'\n };\n\n _this.onClose = function () {\n if (_this.state.animate !== 'close') {\n return;\n }\n\n _this.setState({\n isVisible: false\n });\n };\n\n return _this;\n }\n\n AnimateInOut.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (!props.shouldAnimate) {\n return {\n isVisible: Boolean(props.on),\n data: props.on,\n animate: 'none'\n };\n }\n\n if (props.on) {\n return {\n isVisible: true,\n data: props.on,\n animate: 'open'\n };\n }\n\n if (state.isVisible) {\n return {\n isVisible: true,\n data: state.data,\n animate: 'close'\n };\n }\n\n return {\n isVisible: false,\n animate: 'close',\n data: null\n };\n };\n\n var _proto = AnimateInOut.prototype;\n\n _proto.render = function render() {\n if (!this.state.isVisible) {\n return null;\n }\n\n var provided = {\n onClose: this.onClose,\n data: this.state.data,\n animate: this.state.animate\n };\n return this.props.children(provided);\n };\n\n return AnimateInOut;\n}(React.PureComponent);\n\nvar zIndexOptions = {\n dragging: 5000,\n dropAnimating: 4500\n};\n\nvar getDraggingTransition = function getDraggingTransition(shouldAnimateDragMovement, dropping) {\n if (dropping) {\n return transitions.drop(dropping.duration);\n }\n\n if (shouldAnimateDragMovement) {\n return transitions.snap;\n }\n\n return transitions.fluid;\n};\n\nvar getDraggingOpacity = function getDraggingOpacity(isCombining, isDropAnimating) {\n if (!isCombining) {\n return null;\n }\n\n return isDropAnimating ? combine.opacity.drop : combine.opacity.combining;\n};\n\nvar getShouldDraggingAnimate = function getShouldDraggingAnimate(dragging) {\n if (dragging.forceShouldAnimate != null) {\n return dragging.forceShouldAnimate;\n }\n\n return dragging.mode === 'SNAP';\n};\n\nfunction getDraggingStyle(dragging) {\n var dimension = dragging.dimension;\n var box = dimension.client;\n var offset = dragging.offset,\n combineWith = dragging.combineWith,\n dropping = dragging.dropping;\n var isCombining = Boolean(combineWith);\n var shouldAnimate = getShouldDraggingAnimate(dragging);\n var isDropAnimating = Boolean(dropping);\n var transform = isDropAnimating ? transforms.drop(offset, isCombining) : transforms.moveTo(offset);\n var style = {\n position: 'fixed',\n top: box.marginBox.top,\n left: box.marginBox.left,\n boxSizing: 'border-box',\n width: box.borderBox.width,\n height: box.borderBox.height,\n transition: getDraggingTransition(shouldAnimate, dropping),\n transform: transform,\n opacity: getDraggingOpacity(isCombining, isDropAnimating),\n zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging,\n pointerEvents: 'none'\n };\n return style;\n}\n\nfunction getSecondaryStyle(secondary) {\n return {\n transform: transforms.moveTo(secondary.offset),\n transition: secondary.shouldAnimateDisplacement ? null : 'none'\n };\n}\n\nfunction getStyle$1(mapped) {\n return mapped.type === 'DRAGGING' ? getDraggingStyle(mapped) : getSecondaryStyle(mapped);\n}\n\nfunction getDimension$1(descriptor, el, windowScroll) {\n if (windowScroll === void 0) {\n windowScroll = origin;\n }\n\n var computedStyles = window.getComputedStyle(el);\n var borderBox = el.getBoundingClientRect();\n var client = calculateBox(borderBox, computedStyles);\n var page = withScroll(client, windowScroll);\n var placeholder = {\n client: client,\n tagName: el.tagName.toLowerCase(),\n display: computedStyles.display\n };\n var displaceBy = {\n x: client.marginBox.width,\n y: client.marginBox.height\n };\n var dimension = {\n descriptor: descriptor,\n placeholder: placeholder,\n displaceBy: displaceBy,\n client: client,\n page: page\n };\n return dimension;\n}\n\nfunction useDraggablePublisher(args) {\n var uniqueId = useUniqueId('draggable');\n var descriptor = args.descriptor,\n registry = args.registry,\n getDraggableRef = args.getDraggableRef,\n canDragInteractiveElements = args.canDragInteractiveElements,\n shouldRespectForcePress = args.shouldRespectForcePress,\n isEnabled = args.isEnabled;\n var options = useMemo(function () {\n return {\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress,\n isEnabled: isEnabled\n };\n }, [canDragInteractiveElements, isEnabled, shouldRespectForcePress]);\n var getDimension = useCallback(function (windowScroll) {\n var el = getDraggableRef();\n !el ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Cannot get dimension when no ref is set') : invariant(false) : void 0;\n return getDimension$1(descriptor, el, windowScroll);\n }, [descriptor, getDraggableRef]);\n var entry = useMemo(function () {\n return {\n uniqueId: uniqueId,\n descriptor: descriptor,\n options: options,\n getDimension: getDimension\n };\n }, [descriptor, getDimension, options, uniqueId]);\n var publishedRef = useRef(entry);\n var isFirstPublishRef = useRef(true);\n useIsomorphicLayoutEffect(function () {\n registry.draggable.register(publishedRef.current);\n return function () {\n return registry.draggable.unregister(publishedRef.current);\n };\n }, [registry.draggable]);\n useIsomorphicLayoutEffect(function () {\n if (isFirstPublishRef.current) {\n isFirstPublishRef.current = false;\n return;\n }\n\n var last = publishedRef.current;\n publishedRef.current = entry;\n registry.draggable.update(entry, last);\n }, [entry, registry.draggable]);\n}\n\nfunction useValidation$1(props, contextId, getRef) {\n useDevSetupWarning(function () {\n function prefix(id) {\n return \"Draggable[id: \" + id + \"]: \";\n }\n\n var id = props.draggableId;\n !id ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable requires a draggableId') : invariant(false) : void 0;\n !(typeof id === 'string') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Draggable requires a [string] draggableId.\\n Provided: [type: \" + typeof id + \"] (value: \" + id + \")\") : invariant(false) : void 0;\n !isInteger(props.index) ? process.env.NODE_ENV !== \"production\" ? invariant(false, prefix(id) + \" requires an integer index prop\") : invariant(false) : void 0;\n\n if (props.mapped.type === 'DRAGGING') {\n return;\n }\n\n checkIsValidInnerRef(getRef());\n\n if (props.isEnabled) {\n !findDragHandle(contextId, id) ? process.env.NODE_ENV !== \"production\" ? invariant(false, prefix(id) + \" Unable to find drag handle\") : invariant(false) : void 0;\n }\n });\n}\nfunction useClonePropValidation(isClone) {\n useDev(function () {\n var initialRef = useRef(isClone);\n useDevSetupWarning(function () {\n !(isClone === initialRef.current) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Draggable isClone prop value changed during component life') : invariant(false) : void 0;\n }, [isClone]);\n });\n}\n\nfunction preventHtml5Dnd(event) {\n event.preventDefault();\n}\n\nfunction Draggable(props) {\n var ref = useRef(null);\n var setRef = useCallback(function (el) {\n ref.current = el;\n }, []);\n var getRef = useCallback(function () {\n return ref.current;\n }, []);\n\n var _useRequiredContext = useRequiredContext(AppContext),\n contextId = _useRequiredContext.contextId,\n dragHandleUsageInstructionsId = _useRequiredContext.dragHandleUsageInstructionsId,\n registry = _useRequiredContext.registry;\n\n var _useRequiredContext2 = useRequiredContext(DroppableContext),\n type = _useRequiredContext2.type,\n droppableId = _useRequiredContext2.droppableId;\n\n var descriptor = useMemo(function () {\n return {\n id: props.draggableId,\n index: props.index,\n type: type,\n droppableId: droppableId\n };\n }, [props.draggableId, props.index, type, droppableId]);\n var children = props.children,\n draggableId = props.draggableId,\n isEnabled = props.isEnabled,\n shouldRespectForcePress = props.shouldRespectForcePress,\n canDragInteractiveElements = props.canDragInteractiveElements,\n isClone = props.isClone,\n mapped = props.mapped,\n dropAnimationFinishedAction = props.dropAnimationFinished;\n useValidation$1(props, contextId, getRef);\n useClonePropValidation(isClone);\n\n if (!isClone) {\n var forPublisher = useMemo(function () {\n return {\n descriptor: descriptor,\n registry: registry,\n getDraggableRef: getRef,\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress,\n isEnabled: isEnabled\n };\n }, [descriptor, registry, getRef, canDragInteractiveElements, shouldRespectForcePress, isEnabled]);\n useDraggablePublisher(forPublisher);\n }\n\n var dragHandleProps = useMemo(function () {\n return isEnabled ? {\n tabIndex: 0,\n role: 'button',\n 'aria-describedby': dragHandleUsageInstructionsId,\n 'data-rbd-drag-handle-draggable-id': draggableId,\n 'data-rbd-drag-handle-context-id': contextId,\n draggable: false,\n onDragStart: preventHtml5Dnd\n } : null;\n }, [contextId, dragHandleUsageInstructionsId, draggableId, isEnabled]);\n var onMoveEnd = useCallback(function (event) {\n if (mapped.type !== 'DRAGGING') {\n return;\n }\n\n if (!mapped.dropping) {\n return;\n }\n\n if (event.propertyName !== 'transform') {\n return;\n }\n\n dropAnimationFinishedAction();\n }, [dropAnimationFinishedAction, mapped]);\n var provided = useMemo(function () {\n var style = getStyle$1(mapped);\n var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null;\n var result = {\n innerRef: setRef,\n draggableProps: {\n 'data-rbd-draggable-context-id': contextId,\n 'data-rbd-draggable-id': draggableId,\n style: style,\n onTransitionEnd: onTransitionEnd\n },\n dragHandleProps: dragHandleProps\n };\n return result;\n }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]);\n var rubric = useMemo(function () {\n return {\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n };\n }, [descriptor.droppableId, descriptor.id, descriptor.index, descriptor.type]);\n return children(provided, mapped.snapshot, rubric);\n}\n\nvar isStrictEqual = (function (a, b) {\n return a === b;\n});\n\nvar whatIsDraggedOverFromResult = (function (result) {\n var combine = result.combine,\n destination = result.destination;\n\n if (destination) {\n return destination.droppableId;\n }\n\n if (combine) {\n return combine.droppableId;\n }\n\n return null;\n});\n\nvar getCombineWithFromResult = function getCombineWithFromResult(result) {\n return result.combine ? result.combine.draggableId : null;\n};\n\nvar getCombineWithFromImpact = function getCombineWithFromImpact(impact) {\n return impact.at && impact.at.type === 'COMBINE' ? impact.at.combine.draggableId : null;\n};\n\nfunction getDraggableSelector() {\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getMemoizedSnapshot = memoizeOne(function (mode, isClone, draggingOver, combineWith, dropping) {\n return {\n isDragging: true,\n isClone: isClone,\n isDropAnimating: Boolean(dropping),\n dropAnimation: dropping,\n mode: mode,\n draggingOver: draggingOver,\n combineWith: combineWith,\n combineTargetFor: null\n };\n });\n var getMemoizedProps = memoizeOne(function (offset, mode, dimension, isClone, draggingOver, combineWith, forceShouldAnimate) {\n return {\n mapped: {\n type: 'DRAGGING',\n dropping: null,\n draggingOver: draggingOver,\n combineWith: combineWith,\n mode: mode,\n offset: offset,\n dimension: dimension,\n forceShouldAnimate: forceShouldAnimate,\n snapshot: getMemoizedSnapshot(mode, isClone, draggingOver, combineWith, null)\n }\n };\n });\n\n var selector = function selector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id !== ownProps.draggableId) {\n return null;\n }\n\n var offset = state.current.client.offset;\n var dimension = state.dimensions.draggables[ownProps.draggableId];\n var draggingOver = whatIsDraggedOver(state.impact);\n var combineWith = getCombineWithFromImpact(state.impact);\n var forceShouldAnimate = state.forceShouldAnimate;\n return getMemoizedProps(memoizedOffset(offset.x, offset.y), state.movementMode, dimension, ownProps.isClone, draggingOver, combineWith, forceShouldAnimate);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId !== ownProps.draggableId) {\n return null;\n }\n\n var isClone = ownProps.isClone;\n var _dimension = state.dimensions.draggables[ownProps.draggableId];\n var result = completed.result;\n var mode = result.mode;\n\n var _draggingOver = whatIsDraggedOverFromResult(result);\n\n var _combineWith = getCombineWithFromResult(result);\n\n var duration = state.dropDuration;\n var dropping = {\n duration: duration,\n curve: curves.drop,\n moveTo: state.newHomeClientOffset,\n opacity: _combineWith ? combine.opacity.drop : null,\n scale: _combineWith ? combine.scale.drop : null\n };\n return {\n mapped: {\n type: 'DRAGGING',\n offset: state.newHomeClientOffset,\n dimension: _dimension,\n dropping: dropping,\n draggingOver: _draggingOver,\n combineWith: _combineWith,\n mode: mode,\n forceShouldAnimate: null,\n snapshot: getMemoizedSnapshot(mode, isClone, _draggingOver, _combineWith, dropping)\n }\n };\n }\n\n return null;\n };\n\n return selector;\n}\n\nfunction getSecondarySnapshot(combineTargetFor) {\n return {\n isDragging: false,\n isDropAnimating: false,\n isClone: false,\n dropAnimation: null,\n mode: null,\n draggingOver: null,\n combineTargetFor: combineTargetFor,\n combineWith: null\n };\n}\n\nvar atRest = {\n mapped: {\n type: 'SECONDARY',\n offset: origin,\n combineTargetFor: null,\n shouldAnimateDisplacement: true,\n snapshot: getSecondarySnapshot(null)\n }\n};\n\nfunction getSecondarySelector() {\n var memoizedOffset = memoizeOne(function (x, y) {\n return {\n x: x,\n y: y\n };\n });\n var getMemoizedSnapshot = memoizeOne(getSecondarySnapshot);\n var getMemoizedProps = memoizeOne(function (offset, combineTargetFor, shouldAnimateDisplacement) {\n if (combineTargetFor === void 0) {\n combineTargetFor = null;\n }\n\n return {\n mapped: {\n type: 'SECONDARY',\n offset: offset,\n combineTargetFor: combineTargetFor,\n shouldAnimateDisplacement: shouldAnimateDisplacement,\n snapshot: getMemoizedSnapshot(combineTargetFor)\n }\n };\n });\n\n var getFallback = function getFallback(combineTargetFor) {\n return combineTargetFor ? getMemoizedProps(origin, combineTargetFor, true) : null;\n };\n\n var getProps = function getProps(ownId, draggingId, impact, afterCritical) {\n var visualDisplacement = impact.displaced.visible[ownId];\n var isAfterCriticalInVirtualList = Boolean(afterCritical.inVirtualList && afterCritical.effected[ownId]);\n var combine = tryGetCombine(impact);\n var combineTargetFor = combine && combine.draggableId === ownId ? draggingId : null;\n\n if (!visualDisplacement) {\n if (!isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n\n if (impact.displaced.invisible[ownId]) {\n return null;\n }\n\n var change = negate(afterCritical.displacedBy.point);\n\n var _offset = memoizedOffset(change.x, change.y);\n\n return getMemoizedProps(_offset, combineTargetFor, true);\n }\n\n if (isAfterCriticalInVirtualList) {\n return getFallback(combineTargetFor);\n }\n\n var displaceBy = impact.displacedBy.point;\n var offset = memoizedOffset(displaceBy.x, displaceBy.y);\n return getMemoizedProps(offset, combineTargetFor, visualDisplacement.shouldAnimate);\n };\n\n var selector = function selector(state, ownProps) {\n if (state.isDragging) {\n if (state.critical.draggable.id === ownProps.draggableId) {\n return null;\n }\n\n return getProps(ownProps.draggableId, state.critical.draggable.id, state.impact, state.afterCritical);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (completed.result.draggableId === ownProps.draggableId) {\n return null;\n }\n\n return getProps(ownProps.draggableId, completed.result.draggableId, completed.impact, completed.afterCritical);\n }\n\n return null;\n };\n\n return selector;\n}\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var draggingSelector = getDraggableSelector();\n var secondarySelector = getSecondarySelector();\n\n var selector = function selector(state, ownProps) {\n return draggingSelector(state, ownProps) || secondarySelector(state, ownProps) || atRest;\n };\n\n return selector;\n};\nvar mapDispatchToProps = {\n dropAnimationFinished: dropAnimationFinished\n};\nvar ConnectedDraggable = connect(makeMapStateToProps, mapDispatchToProps, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Draggable);\n\nfunction PrivateDraggable(props) {\n var droppableContext = useRequiredContext(DroppableContext);\n var isUsingCloneFor = droppableContext.isUsingCloneFor;\n\n if (isUsingCloneFor === props.draggableId && !props.isClone) {\n return null;\n }\n\n return React.createElement(ConnectedDraggable, props);\n}\nfunction PublicDraggable(props) {\n var isEnabled = typeof props.isDragDisabled === 'boolean' ? !props.isDragDisabled : true;\n var canDragInteractiveElements = Boolean(props.disableInteractiveElementBlocking);\n var shouldRespectForcePress = Boolean(props.shouldRespectForcePress);\n return React.createElement(PrivateDraggable, _extends({}, props, {\n isClone: false,\n isEnabled: isEnabled,\n canDragInteractiveElements: canDragInteractiveElements,\n shouldRespectForcePress: shouldRespectForcePress\n }));\n}\n\nfunction Droppable(props) {\n var appContext = useContext(AppContext);\n !appContext ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find app context') : invariant(false) : void 0;\n var contextId = appContext.contextId,\n isMovementAllowed = appContext.isMovementAllowed;\n var droppableRef = useRef(null);\n var placeholderRef = useRef(null);\n var children = props.children,\n droppableId = props.droppableId,\n type = props.type,\n mode = props.mode,\n direction = props.direction,\n ignoreContainerClipping = props.ignoreContainerClipping,\n isDropDisabled = props.isDropDisabled,\n isCombineEnabled = props.isCombineEnabled,\n snapshot = props.snapshot,\n useClone = props.useClone,\n updateViewportMaxScroll = props.updateViewportMaxScroll,\n getContainerForClone = props.getContainerForClone;\n var getDroppableRef = useCallback(function () {\n return droppableRef.current;\n }, []);\n var setDroppableRef = useCallback(function (value) {\n droppableRef.current = value;\n }, []);\n var getPlaceholderRef = useCallback(function () {\n return placeholderRef.current;\n }, []);\n var setPlaceholderRef = useCallback(function (value) {\n placeholderRef.current = value;\n }, []);\n useValidation({\n props: props,\n getDroppableRef: getDroppableRef,\n getPlaceholderRef: getPlaceholderRef\n });\n var onPlaceholderTransitionEnd = useCallback(function () {\n if (isMovementAllowed()) {\n updateViewportMaxScroll({\n maxScroll: getMaxWindowScroll()\n });\n }\n }, [isMovementAllowed, updateViewportMaxScroll]);\n useDroppablePublisher({\n droppableId: droppableId,\n type: type,\n mode: mode,\n direction: direction,\n isDropDisabled: isDropDisabled,\n isCombineEnabled: isCombineEnabled,\n ignoreContainerClipping: ignoreContainerClipping,\n getDroppableRef: getDroppableRef\n });\n var placeholder = React.createElement(AnimateInOut, {\n on: props.placeholder,\n shouldAnimate: props.shouldAnimatePlaceholder\n }, function (_ref) {\n var onClose = _ref.onClose,\n data = _ref.data,\n animate = _ref.animate;\n return React.createElement(Placeholder$1, {\n placeholder: data,\n onClose: onClose,\n innerRef: setPlaceholderRef,\n animate: animate,\n contextId: contextId,\n onTransitionEnd: onPlaceholderTransitionEnd\n });\n });\n var provided = useMemo(function () {\n return {\n innerRef: setDroppableRef,\n placeholder: placeholder,\n droppableProps: {\n 'data-rbd-droppable-id': droppableId,\n 'data-rbd-droppable-context-id': contextId\n }\n };\n }, [contextId, droppableId, placeholder, setDroppableRef]);\n var isUsingCloneFor = useClone ? useClone.dragging.draggableId : null;\n var droppableContext = useMemo(function () {\n return {\n droppableId: droppableId,\n type: type,\n isUsingCloneFor: isUsingCloneFor\n };\n }, [droppableId, isUsingCloneFor, type]);\n\n function getClone() {\n if (!useClone) {\n return null;\n }\n\n var dragging = useClone.dragging,\n render = useClone.render;\n var node = React.createElement(PrivateDraggable, {\n draggableId: dragging.draggableId,\n index: dragging.source.index,\n isClone: true,\n isEnabled: true,\n shouldRespectForcePress: false,\n canDragInteractiveElements: true\n }, function (draggableProvided, draggableSnapshot) {\n return render(draggableProvided, draggableSnapshot, dragging);\n });\n return ReactDOM.createPortal(node, getContainerForClone());\n }\n\n return React.createElement(DroppableContext.Provider, {\n value: droppableContext\n }, children(provided, snapshot), getClone());\n}\n\nvar isMatchingType = function isMatchingType(type, critical) {\n return type === critical.droppable.type;\n};\n\nvar getDraggable = function getDraggable(critical, dimensions) {\n return dimensions.draggables[critical.draggable.id];\n};\n\nvar makeMapStateToProps$1 = function makeMapStateToProps() {\n var idleWithAnimation = {\n placeholder: null,\n shouldAnimatePlaceholder: true,\n snapshot: {\n isDraggingOver: false,\n draggingOverWith: null,\n draggingFromThisWith: null,\n isUsingPlaceholder: false\n },\n useClone: null\n };\n\n var idleWithoutAnimation = _extends({}, idleWithAnimation, {\n shouldAnimatePlaceholder: false\n });\n\n var getDraggableRubric = memoizeOne(function (descriptor) {\n return {\n draggableId: descriptor.id,\n type: descriptor.type,\n source: {\n index: descriptor.index,\n droppableId: descriptor.droppableId\n }\n };\n });\n var getMapProps = memoizeOne(function (id, isEnabled, isDraggingOverForConsumer, isDraggingOverForImpact, dragging, renderClone) {\n var draggableId = dragging.descriptor.id;\n var isHome = dragging.descriptor.droppableId === id;\n\n if (isHome) {\n var useClone = renderClone ? {\n render: renderClone,\n dragging: getDraggableRubric(dragging.descriptor)\n } : null;\n var _snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: isDraggingOverForConsumer ? draggableId : null,\n draggingFromThisWith: draggableId,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: false,\n snapshot: _snapshot,\n useClone: useClone\n };\n }\n\n if (!isEnabled) {\n return idleWithoutAnimation;\n }\n\n if (!isDraggingOverForImpact) {\n return idleWithAnimation;\n }\n\n var snapshot = {\n isDraggingOver: isDraggingOverForConsumer,\n draggingOverWith: draggableId,\n draggingFromThisWith: null,\n isUsingPlaceholder: true\n };\n return {\n placeholder: dragging.placeholder,\n shouldAnimatePlaceholder: true,\n snapshot: snapshot,\n useClone: null\n };\n });\n\n var selector = function selector(state, ownProps) {\n var id = ownProps.droppableId;\n var type = ownProps.type;\n var isEnabled = !ownProps.isDropDisabled;\n var renderClone = ownProps.renderClone;\n\n if (state.isDragging) {\n var critical = state.critical;\n\n if (!isMatchingType(type, critical)) {\n return idleWithoutAnimation;\n }\n\n var dragging = getDraggable(critical, state.dimensions);\n var isDraggingOver = whatIsDraggedOver(state.impact) === id;\n return getMapProps(id, isEnabled, isDraggingOver, isDraggingOver, dragging, renderClone);\n }\n\n if (state.phase === 'DROP_ANIMATING') {\n var completed = state.completed;\n\n if (!isMatchingType(type, completed.critical)) {\n return idleWithoutAnimation;\n }\n\n var _dragging = getDraggable(completed.critical, state.dimensions);\n\n return getMapProps(id, isEnabled, whatIsDraggedOverFromResult(completed.result) === id, whatIsDraggedOver(completed.impact) === id, _dragging, renderClone);\n }\n\n if (state.phase === 'IDLE' && state.completed && !state.shouldFlush) {\n var _completed = state.completed;\n\n if (!isMatchingType(type, _completed.critical)) {\n return idleWithoutAnimation;\n }\n\n var wasOver = whatIsDraggedOver(_completed.impact) === id;\n var wasCombining = Boolean(_completed.impact.at && _completed.impact.at.type === 'COMBINE');\n var isHome = _completed.critical.droppable.id === id;\n\n if (wasOver) {\n return wasCombining ? idleWithAnimation : idleWithoutAnimation;\n }\n\n if (isHome) {\n return idleWithAnimation;\n }\n\n return idleWithoutAnimation;\n }\n\n return idleWithoutAnimation;\n };\n\n return selector;\n};\nvar mapDispatchToProps$1 = {\n updateViewportMaxScroll: updateViewportMaxScroll\n};\n\nfunction getBody() {\n !document.body ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'document.body is not ready') : invariant(false) : void 0;\n return document.body;\n}\n\nvar defaultProps = {\n mode: 'standard',\n type: 'DEFAULT',\n direction: 'vertical',\n isDropDisabled: false,\n isCombineEnabled: false,\n ignoreContainerClipping: false,\n renderClone: null,\n getContainerForClone: getBody\n};\nvar ConnectedDroppable = connect(makeMapStateToProps$1, mapDispatchToProps$1, null, {\n context: StoreContext,\n pure: true,\n areStatePropsEqual: isStrictEqual\n})(Droppable);\nConnectedDroppable.defaultProps = defaultProps;\n\nexport { DragDropContext, PublicDraggable as Draggable, ConnectedDroppable as Droppable, resetServerContext, useKeyboardSensor, useMouseSensor, useTouchSensor };\n"],"mappings":"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"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/f8363238c68d7781b927b7d225a3b4e1.json b/node_modules/.cache/babel-loader/f8363238c68d7781b927b7d225a3b4e1.json new file mode 100644 index 00000000..9fdad477 --- /dev/null +++ b/node_modules/.cache/babel-loader/f8363238c68d7781b927b7d225a3b4e1.json @@ -0,0 +1 @@ +{"ast":null,"code":"export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };","map":{"version":3,"names":["unstable_batchedUpdates","batch","setBatch"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/node_modules/react-redux/es/index.js"],"sourcesContent":["export * from './exports';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };"],"mappings":"AAAA,cAAc,WAAd;AACA,SAASA,uBAAuB,IAAIC,KAApC,QAAiD,6BAAjD;AACA,SAASC,QAAT,QAAyB,eAAzB,C,CAA0C;AAC1C;;AAEAA,QAAQ,CAACD,KAAD,CAAR;AACA,SAASA,KAAT"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/fc8048b238ee76407a051b96f524274d.json b/node_modules/.cache/babel-loader/fc8048b238ee76407a051b96f524274d.json new file mode 100644 index 00000000..ec3e747c --- /dev/null +++ b/node_modules/.cache/babel-loader/fc8048b238ee76407a051b96f524274d.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js\";\nimport React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../TitleSubtitle\";\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\n\nconst CardDesign1 = () => {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"w-fit flex flex-col p-4 bg-surface shadow rounded\",\n children: [/*#__PURE__*/_jsxDEV(TitleSubtitle, {\n subTitle: false,\n title: \"طبقه سوم\",\n titleClassName: \"font-bold text-primaryText\",\n titleBorderClassName: \"w-1 h-5 bg-warning ml-1\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 9,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(IconText, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 15,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CustomToast, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 16,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 8,\n columnNumber: 5\n }, this);\n};\n\n_c = CardDesign1;\nexport default CardDesign1;\nCardDesign1.defaultProps = {};\n\nvar _c;\n\n$RefreshReg$(_c, \"CardDesign1\");","map":{"version":3,"names":["React","CustomToast","IconText","TitleSubtitle","CardDesign1","defaultProps"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/components/CardDesign1/index.js"],"sourcesContent":["import React from \"react\";\nimport CustomToast from \"../CustomToast\";\nimport IconText from \"../IconText\";\nimport TitleSubtitle from \"../TitleSubtitle\";\n\nconst CardDesign1 = () => {\n return (\n
    \n \n \n \n
    \n );\n};\n\nexport default CardDesign1;\n\nCardDesign1.defaultProps = {};\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,OAAOC,aAAP,MAA0B,kBAA1B;;;AAEA,MAAMC,WAAW,GAAG,MAAM;EACxB,oBACE;IAAK,SAAS,EAAC,mDAAf;IAAA,wBACE,QAAC,aAAD;MACE,QAAQ,EAAE,KADZ;MAEE,KAAK,EAAE,UAFT;MAGE,cAAc,EAAE,4BAHlB;MAIE,oBAAoB,EAAE;IAJxB;MAAA;MAAA;MAAA;IAAA,QADF,eAOE,QAAC,QAAD;MAAA;MAAA;MAAA;IAAA,QAPF,eAQE,QAAC,WAAD;MAAA;MAAA;MAAA;IAAA,QARF;EAAA;IAAA;IAAA;IAAA;EAAA,QADF;AAYD,CAbD;;KAAMA,W;AAeN,eAAeA,WAAf;AAEAA,WAAW,CAACC,YAAZ,GAA2B,EAA3B"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/babel-loader/fd90fbb191e47ea6085d9faba7dba55c.json b/node_modules/.cache/babel-loader/fd90fbb191e47ea6085d9faba7dba55c.json new file mode 100644 index 00000000..3bc9055c --- /dev/null +++ b/node_modules/.cache/babel-loader/fd90fbb191e47ea6085d9faba7dba55c.json @@ -0,0 +1 @@ +{"ast":null,"code":"var _jsxFileName = \"/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js\";\nimport \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign1 from \"./components/CardDesign1\"; // import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nimport { jsxDEV as _jsxDEV } from \"react/jsx-dev-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-dev-runtime\";\n\nfunction App() {\n return (\n /*#__PURE__*/\n // \n // \n // \n _jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(LeafletMap, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 17,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(CardDesign1, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 18,\n columnNumber: 7\n }, this)]\n }, void 0, true)\n );\n}\n\n_c = App;\nexport default App;\n\nvar _c;\n\n$RefreshReg$(_c, \"App\");","map":{"version":3,"names":["Homepage","ContactUs","LeafletMap","CardDesign1","App"],"sources":["/Users/mahdi/Documents/work/programming/barnameNegar/arbaeenWebApp/src/App.js"],"sourcesContent":["import \"./App.scss\";\nimport Homepage from \"./components/Homepage\";\nimport ContactUs from \"./components/ContactUs\";\nimport LeafletMap from \"./components/LeafletMap\";\nimport CardDesign1 from \"./components/CardDesign1\";\n// import { Provider } from \"react-redux\";\n// import store from \"./redux/store\";\n\nfunction App() {\n return (\n // \n // \n // \n <>\n {/* */}\n {/* */}\n \n \n \n );\n}\n\nexport default App;\n"],"mappings":";AAAA,OAAO,YAAP;AACA,OAAOA,QAAP,MAAqB,uBAArB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;AACA,OAAOC,UAAP,MAAuB,yBAAvB;AACA,OAAOC,WAAP,MAAwB,0BAAxB,C,CACA;AACA;;;;;AAEA,SAASC,GAAT,GAAe;EACb;IAAA;IACE;IACA;IACA;IACA;MAAA,wBAGE,QAAC,UAAD;QAAA;QAAA;QAAA;MAAA,QAHF,eAIE,QAAC,WAAD;QAAA;QAAA;QAAA;MAAA,QAJF;IAAA;EAJF;AAWD;;KAZQA,G;AAcT,eAAeA,GAAf"},"metadata":{},"sourceType":"module"} \ No newline at end of file diff --git a/node_modules/.cache/default-development/0.pack b/node_modules/.cache/default-development/0.pack index 1f243c71..bdd1a06e 100644 Binary files a/node_modules/.cache/default-development/0.pack and b/node_modules/.cache/default-development/0.pack differ diff --git a/node_modules/.cache/default-development/1.pack b/node_modules/.cache/default-development/1.pack index 6f0082ba..422399f0 100644 Binary files a/node_modules/.cache/default-development/1.pack and b/node_modules/.cache/default-development/1.pack differ diff --git a/node_modules/.cache/default-development/10.pack b/node_modules/.cache/default-development/10.pack index e2289ee4..7402a4b8 100644 Binary files a/node_modules/.cache/default-development/10.pack and b/node_modules/.cache/default-development/10.pack differ diff --git a/node_modules/.cache/default-development/11.pack b/node_modules/.cache/default-development/11.pack index 648aac82..e16d9fa9 100644 Binary files a/node_modules/.cache/default-development/11.pack and b/node_modules/.cache/default-development/11.pack differ diff --git a/node_modules/.cache/default-development/12.pack b/node_modules/.cache/default-development/12.pack index ad0e06e2..3308d00c 100644 Binary files a/node_modules/.cache/default-development/12.pack and b/node_modules/.cache/default-development/12.pack differ diff --git a/node_modules/.cache/default-development/13.pack b/node_modules/.cache/default-development/13.pack index dff8eaa1..f42d8523 100644 Binary files a/node_modules/.cache/default-development/13.pack and b/node_modules/.cache/default-development/13.pack differ diff --git a/node_modules/.cache/default-development/14.pack b/node_modules/.cache/default-development/14.pack index c41b850c..dfe453a0 100644 Binary files a/node_modules/.cache/default-development/14.pack and b/node_modules/.cache/default-development/14.pack differ diff --git a/node_modules/.cache/default-development/15.pack b/node_modules/.cache/default-development/15.pack index 99bbea29..8ba4831a 100644 Binary files a/node_modules/.cache/default-development/15.pack and b/node_modules/.cache/default-development/15.pack differ diff --git a/node_modules/.cache/default-development/16.pack b/node_modules/.cache/default-development/16.pack new file mode 100644 index 00000000..2481911c Binary files /dev/null and b/node_modules/.cache/default-development/16.pack differ diff --git a/node_modules/.cache/default-development/2.pack b/node_modules/.cache/default-development/2.pack index 5d2e9d23..99f8c1d9 100644 Binary files a/node_modules/.cache/default-development/2.pack and b/node_modules/.cache/default-development/2.pack differ diff --git a/node_modules/.cache/default-development/3.pack b/node_modules/.cache/default-development/3.pack index a287e639..6ee6750b 100644 Binary files a/node_modules/.cache/default-development/3.pack and b/node_modules/.cache/default-development/3.pack differ diff --git a/node_modules/.cache/default-development/4.pack b/node_modules/.cache/default-development/4.pack index d034ce8d..2d63b1e6 100644 Binary files a/node_modules/.cache/default-development/4.pack and b/node_modules/.cache/default-development/4.pack differ diff --git a/node_modules/.cache/default-development/5.pack b/node_modules/.cache/default-development/5.pack index 0ca48521..27405d57 100644 Binary files a/node_modules/.cache/default-development/5.pack and b/node_modules/.cache/default-development/5.pack differ diff --git a/node_modules/.cache/default-development/6.pack b/node_modules/.cache/default-development/6.pack index 2623a471..b216091f 100644 Binary files a/node_modules/.cache/default-development/6.pack and b/node_modules/.cache/default-development/6.pack differ diff --git a/node_modules/.cache/default-development/7.pack b/node_modules/.cache/default-development/7.pack index e97d0707..c22475e9 100644 Binary files a/node_modules/.cache/default-development/7.pack and b/node_modules/.cache/default-development/7.pack differ diff --git a/node_modules/.cache/default-development/8.pack b/node_modules/.cache/default-development/8.pack index 89a9a6c0..28b612e9 100644 Binary files a/node_modules/.cache/default-development/8.pack and b/node_modules/.cache/default-development/8.pack differ diff --git a/node_modules/.cache/default-development/9.pack b/node_modules/.cache/default-development/9.pack index 63de0608..8a68cdc1 100644 Binary files a/node_modules/.cache/default-development/9.pack and b/node_modules/.cache/default-development/9.pack differ diff --git a/node_modules/.cache/default-development/index.pack b/node_modules/.cache/default-development/index.pack index 74d8a543..5210bbeb 100644 Binary files a/node_modules/.cache/default-development/index.pack and b/node_modules/.cache/default-development/index.pack differ diff --git a/node_modules/.cache/default-development/index.pack.old b/node_modules/.cache/default-development/index.pack.old index 406e02c0..f95861c5 100644 Binary files a/node_modules/.cache/default-development/index.pack.old and b/node_modules/.cache/default-development/index.pack.old differ diff --git a/node_modules/.yarn-integrity b/node_modules/.yarn-integrity index 8b5aca88..d755942c 100644 --- a/node_modules/.yarn-integrity +++ b/node_modules/.yarn-integrity @@ -14,6 +14,7 @@ "leaflet@^1.8.0", "node-sass@^7.0.1", "postcss@^8.4.14", + "react-beautiful-dnd@^13.1.0", "react-dom@^18.2.0", "react-hook-form@^7.33.1", "react-leaflet-draw@^0.20.1", @@ -186,6 +187,7 @@ "@babel/runtime@^7.10.2": "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580", "@babel/runtime@^7.11.2": "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580", "@babel/runtime@^7.12.5": "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580", + "@babel/runtime@^7.15.4": "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a", "@babel/runtime@^7.16.3": "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580", "@babel/runtime@^7.18.3": "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580", "@babel/runtime@^7.8.4": "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580", @@ -310,6 +312,7 @@ "@types/express@*": "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034", "@types/express@^4.17.13": "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034", "@types/graceful-fs@^4.1.2": "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15", + "@types/hoist-non-react-statics@^3.3.0": "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz#1124aafe5118cb591977aeb1ceaaed1070eb039f", "@types/html-minifier-terser@^6.0.0": "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35", "@types/http-proxy@^1.17.8": "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.9.tgz#7f0e7931343761efde1e2bf48c40f02f3f75705a", "@types/istanbul-lib-coverage@*": "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44", @@ -335,6 +338,7 @@ "@types/qs@*": "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb", "@types/range-parser@*": "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc", "@types/react-dom@^18.0.0": "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.6.tgz#36652900024842b74607a17786b6662dd1e103a1", + "@types/react-redux@^7.1.20": "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.24.tgz#6caaff1603aba17b27d20f8ad073e4c077e975c0", "@types/react@*": "https://registry.yarnpkg.com/@types/react/-/react-18.0.14.tgz#e016616ffff51dba01b04945610fe3671fdbe06d", "@types/resolve@1.17.1": "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6", "@types/retry@0.12.0": "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d", @@ -583,6 +587,7 @@ "cross-spawn@^7.0.3": "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6", "crypto-random-string@^2.0.0": "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5", "css-blank-pseudo@^3.0.3": "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz#36523b01c12a25d812df343a32c322d2a2324561", + "css-box-model@^1.2.0": "https://registry.yarnpkg.com/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1", "css-declaration-sorter@^6.3.0": "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.0.tgz#72ebd995c8f4532ff0036631f7365cce9759df14", "css-has-pseudo@^3.0.4": "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz#57f6be91ca242d5c9020ee3e51bbb5b89fc7af73", "css-loader@^6.5.1": "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.1.tgz#e98106f154f6e1baf3fc3bc455cb9981c1d5fd2e", @@ -850,6 +855,8 @@ "has-unicode@^2.0.1": "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9", "has@^1.0.3": "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796", "he@^1.2.0": "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f", + "hoist-non-react-statics@^3.3.0": "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45", + "hoist-non-react-statics@^3.3.2": "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45", "hoopy@^0.1.4": "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d", "hosted-git-info@^2.1.4": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9", "hosted-git-info@^4.0.1": "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224", @@ -1074,6 +1081,7 @@ "media-typer@0.3.0": "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748", "memfs@^3.1.2": "https://registry.yarnpkg.com/memfs/-/memfs-3.4.7.tgz#e5252ad2242a724f938cb937e3c4f7ceb1f70e5a", "memfs@^3.4.3": "https://registry.yarnpkg.com/memfs/-/memfs-3.4.7.tgz#e5252ad2242a724f938cb937e3c4f7ceb1f70e5a", + "memoize-one@^5.1.1": "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e", "meow@^9.0.0": "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364", "merge-descriptors@1.0.1": "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61", "merge-stream@^2.0.0": "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60", @@ -1328,12 +1336,14 @@ "queue-microtask@^1.2.2": "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243", "quick-lru@^4.0.1": "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f", "quick-lru@^5.1.1": "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932", + "raf-schd@^4.0.2": "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a", "raf@^3.4.1": "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39", "randombytes@^2.1.0": "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a", "range-parser@^1.2.1": "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031", "range-parser@~1.2.1": "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031", "raw-body@2.5.1": "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857", "react-app-polyfill@^3.0.0": "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz#95221e0a9bd259e5ca6b177c7bb1cb6768f68fd7", + "react-beautiful-dnd@^13.1.0": "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz#ec97c81093593526454b0de69852ae433783844d", "react-date-object@^2.1.5": "https://registry.yarnpkg.com/react-date-object/-/react-date-object-2.1.5.tgz#9f139cf0fbd9b8033cc18699be2ea14a772dbd73", "react-dev-utils@^12.0.1": "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz#ba92edb4a1f379bd46ccd6bcd4e7bc398df33e73", "react-dom@^18.2.0": "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d", @@ -1341,12 +1351,15 @@ "react-error-overlay@^6.0.11": "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz#92835de5841c5cf08ba00ddd2d677b6d17ff9adb", "react-hook-form@^7.33.1": "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.33.1.tgz#8c4410e3420788d3b804d62cc4c142915c2e46d0", "react-is@^16.13.1": "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4", + "react-is@^16.7.0": "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4", "react-is@^17.0.1": "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0", + "react-is@^17.0.2": "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0", "react-is@^18.0.0": "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b", "react-leaflet-draw@^0.20.1": "https://registry.yarnpkg.com/react-leaflet-draw/-/react-leaflet-draw-0.20.1.tgz#f0d119c2b2d413f04e79eb278befcab233935889", "react-leaflet@^4.0.1": "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-4.0.1.tgz#84f085241c741b43184808c2038642e88de7655e", "react-multi-date-picker@^3.3.0": "https://registry.yarnpkg.com/react-multi-date-picker/-/react-multi-date-picker-3.3.0.tgz#89036a1bf013fc65bc12dda640d5a979a640b453", "react-qr-code@^2.0.7": "https://registry.yarnpkg.com/react-qr-code/-/react-qr-code-2.0.7.tgz#508304e031e82426a044f5e9490aca87d7c3de38", + "react-redux@^7.2.0": "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.8.tgz#a894068315e65de5b1b68899f9c6ee0923dd28de", "react-refresh@^0.11.0": "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.11.0.tgz#77198b944733f0f1f1a90e791de4541f9f074046", "react-scripts@5.0.1": "https://registry.yarnpkg.com/react-scripts/-/react-scripts-5.0.1.tgz#6285dbd65a8ba6e49ca8d651ce30645a6d980003", "react@^18.2.0": "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5", @@ -1359,6 +1372,8 @@ "readdirp@~3.6.0": "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7", "recursive-readdir@^2.2.2": "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f", "redent@^3.0.0": "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f", + "redux@^4.0.0": "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13", + "redux@^4.0.4": "https://registry.yarnpkg.com/redux/-/redux-4.2.0.tgz#46f10d6e29b6666df758780437651eeb2b969f13", "regenerate-unicode-properties@^10.0.1": "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56", "regenerate@^1.4.2": "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a", "regenerator-runtime@^0.13.4": "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52", @@ -1548,6 +1563,7 @@ "text-table@^0.2.0": "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4", "throat@^6.0.1": "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375", "thunky@^1.0.2": "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d", + "tiny-invariant@^1.0.6": "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9", "tmpl@1.0.5": "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc", "to-fast-properties@^2.0.0": "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e", "to-regex-range@^5.0.1": "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4", @@ -1594,6 +1610,7 @@ "upath@^1.2.0": "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894", "update-browserslist-db@^1.0.4": "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824", "uri-js@^4.2.2": "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e", + "use-memo-one@^1.1.1": "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.2.tgz#0c8203a329f76e040047a35a1197defe342fab20", "util-deprecate@^1.0.1": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", "util-deprecate@^1.0.2": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", "util-deprecate@~1.0.1": "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf", diff --git a/node_modules/@types/hoist-non-react-statics/LICENSE b/node_modules/@types/hoist-non-react-statics/LICENSE new file mode 100644 index 00000000..4b1ad51b --- /dev/null +++ b/node_modules/@types/hoist-non-react-statics/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/node_modules/@types/hoist-non-react-statics/README.md b/node_modules/@types/hoist-non-react-statics/README.md new file mode 100644 index 00000000..ce1afb78 --- /dev/null +++ b/node_modules/@types/hoist-non-react-statics/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/hoist-non-react-statics` + +# Summary +This package contains type definitions for hoist-non-react-statics ( https://github.com/mridgway/hoist-non-react-statics#readme ). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/hoist-non-react-statics + +Additional Details + * Last updated: Thu, 04 Apr 2019 18:42:22 GMT + * Dependencies: @types/react + * Global values: none + +# Credits +These definitions were written by JounQin , James Reggio . diff --git a/node_modules/@types/hoist-non-react-statics/index.d.ts b/node_modules/@types/hoist-non-react-statics/index.d.ts new file mode 100644 index 00000000..fc90d971 --- /dev/null +++ b/node_modules/@types/hoist-non-react-statics/index.d.ts @@ -0,0 +1,80 @@ +// Type definitions for hoist-non-react-statics 3.3 +// Project: https://github.com/mridgway/hoist-non-react-statics#readme +// Definitions by: JounQin , James Reggio +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +import * as React from 'react'; + +interface REACT_STATICS { + childContextTypes: true; + contextType: true; + contextTypes: true; + defaultProps: true; + displayName: true; + getDefaultProps: true; + getDerivedStateFromError: true; + getDerivedStateFromProps: true; + mixins: true; + propTypes: true; + type: true; +} + +interface KNOWN_STATICS { + name: true; + length: true; + prototype: true; + caller: true; + callee: true; + arguments: true; + arity: true; +} + +interface MEMO_STATICS { + '$$typeof': true; + compare: true; + defaultProps: true; + displayName: true; + propTypes: true; + type: true; +} + +interface FORWARD_REF_STATICS { + '$$typeof': true; + render: true; + defaultProps: true; + displayName: true; + propTypes: true; +} + +declare namespace hoistNonReactStatics { + type NonReactStatics< + S extends React.ComponentType, + C extends { + [key: string]: true + } = {} + > = { + [key in Exclude< + keyof S, + S extends React.MemoExoticComponent + ? keyof MEMO_STATICS | keyof C + : S extends React.ForwardRefExoticComponent + ? keyof FORWARD_REF_STATICS | keyof C + : keyof REACT_STATICS | keyof KNOWN_STATICS | keyof C + >]: S[key] + }; +} + +declare function hoistNonReactStatics< + T extends React.ComponentType, + S extends React.ComponentType, + C extends { + [key: string]: true + } = {} +>( + TargetComponent: T, + SourceComponent: S, + customStatic?: C, +): T & hoistNonReactStatics.NonReactStatics; + +export = hoistNonReactStatics; diff --git a/node_modules/@types/hoist-non-react-statics/package.json b/node_modules/@types/hoist-non-react-statics/package.json new file mode 100644 index 00000000..1e486421 --- /dev/null +++ b/node_modules/@types/hoist-non-react-statics/package.json @@ -0,0 +1,32 @@ +{ + "name": "@types/hoist-non-react-statics", + "version": "3.3.1", + "description": "TypeScript definitions for hoist-non-react-statics", + "license": "MIT", + "contributors": [ + { + "name": "JounQin", + "url": "https://github.com/JounQin", + "githubUsername": "JounQin" + }, + { + "name": "James Reggio", + "url": "https://github.com/jamesreggio", + "githubUsername": "jamesreggio" + } + ], + "main": "", + "types": "index", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/hoist-non-react-statics" + }, + "scripts": {}, + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + }, + "typesPublisherContentHash": "666e47d028495104f280da8e5a0caa7bfd4d6ecc4f113c4b60bec065e6e4c5f2", + "typeScriptVersion": "2.8" +} \ No newline at end of file diff --git a/node_modules/@types/react-redux/LICENSE b/node_modules/@types/react-redux/LICENSE new file mode 100755 index 00000000..9e841e7a --- /dev/null +++ b/node_modules/@types/react-redux/LICENSE @@ -0,0 +1,21 @@ + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/node_modules/@types/react-redux/README.md b/node_modules/@types/react-redux/README.md new file mode 100755 index 00000000..0f2bdb5d --- /dev/null +++ b/node_modules/@types/react-redux/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/react-redux` + +# Summary +This package contains type definitions for react-redux (https://github.com/reduxjs/react-redux). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-redux. + +### Additional Details + * Last updated: Wed, 13 Apr 2022 23:01:26 GMT + * Dependencies: [@types/react](https://npmjs.com/package/@types/react), [@types/redux](https://npmjs.com/package/@types/redux), [@types/hoist-non-react-statics](https://npmjs.com/package/@types/hoist-non-react-statics) + * Global values: none + +# Credits +These definitions were written by [Qubo](https://github.com/tkqubo), [Curits Layne](https://github.com/clayne11), [Frank Tan](https://github.com/tansongyang), [Nicholas Boll](https://github.com/nicholasboll), [Dibyo Majumdar](https://github.com/mdibyo), [Valentin Descamps](https://github.com/val1984), [Johann Rakotoharisoa](https://github.com/jrakotoharisoa), [Anatoli Papirovski](https://github.com/apapirovski), [Boris Sergeyev](https://github.com/surgeboris), [Søren Bruus Frank](https://github.com/soerenbf), [Jonathan Ziller](https://github.com/mrwolfz), [Dylan Vann](https://github.com/dylanvann), [Yuki Ito](https://github.com/Lazyuki), [Kazuma Ebina](https://github.com/kazuma1989), [Michael Lebedev](https://github.com/megazazik), [jun-sheaf](https://github.com/jun-sheaf), [Lenz Weber](https://github.com/phryneas), and [Mark Erikson](https://github.com/markerikson). diff --git a/node_modules/@types/react-redux/index.d.ts b/node_modules/@types/react-redux/index.d.ts new file mode 100755 index 00000000..78df99e6 --- /dev/null +++ b/node_modules/@types/react-redux/index.d.ts @@ -0,0 +1,645 @@ +// Type definitions for react-redux 7.1 +// Project: https://github.com/reduxjs/react-redux +// Definitions by: Qubo +// Curits Layne +// Frank Tan +// Nicholas Boll +// Dibyo Majumdar +// Valentin Descamps +// Johann Rakotoharisoa +// Anatoli Papirovski +// Boris Sergeyev +// Søren Bruus Frank +// Jonathan Ziller +// Dylan Vann +// Yuki Ito +// Kazuma Ebina +// Michael Lebedev +// jun-sheaf +// Lenz Weber +// Mark Erikson +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 3.0 + +import { + ClassAttributes, + Component, + ComponentClass, + Context, + JSXElementConstructor, + NamedExoticComponent, + ReactNode +} from 'react'; + +import { + Action, + AnyAction, + Dispatch, + Store +} from 'redux'; + +import hoistNonReactStatics = require('hoist-non-react-statics'); + +/** + * This interface can be augmented by users to add default types for the root state when + * using `react-redux`. + * Use module augmentation to append your own type definition in a your_custom_type.d.ts file. + * https://www.typescriptlang.org/docs/handbook/declaration-merging.html#module-augmentation + */ +// tslint:disable-next-line:no-empty-interface +export interface DefaultRootState {} + +export type AnyIfEmpty = keyof T extends never ? any : T; +export type RootStateOrAny = AnyIfEmpty; + +// Omit taken from https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html +export type Omit = Pick>; + +export type DistributiveOmit = T extends unknown ? Omit : never; + +export interface DispatchProp { + dispatch: Dispatch; +} + +export type AdvancedComponentDecorator = + (component: JSXElementConstructor) => NamedExoticComponent; + +/** + * A property P will be present if: + * - it is present in DecorationTargetProps + * + * Its value will be dependent on the following conditions + * - if property P is present in InjectedProps and its definition extends the definition + * in DecorationTargetProps, then its definition will be that of DecorationTargetProps[P] + * - if property P is not present in InjectedProps then its definition will be that of + * DecorationTargetProps[P] + * - if property P is present in InjectedProps but does not extend the + * DecorationTargetProps[P] definition, its definition will be that of InjectedProps[P] + */ +export type Matching = { + [P in keyof DecorationTargetProps]: P extends keyof InjectedProps + ? InjectedProps[P] extends DecorationTargetProps[P] + ? DecorationTargetProps[P] + : InjectedProps[P] + : DecorationTargetProps[P]; +}; + +/** + * a property P will be present if : + * - it is present in both DecorationTargetProps and InjectedProps + * - InjectedProps[P] can satisfy DecorationTargetProps[P] + * ie: decorated component can accept more types than decorator is injecting + * + * For decoration, inject props or ownProps are all optionally + * required by the decorated (right hand side) component. + * But any property required by the decorated component must be satisfied by the injected property. + */ +export type Shared< + InjectedProps, + DecorationTargetProps + > = { + [P in Extract]?: InjectedProps[P] extends DecorationTargetProps[P] ? DecorationTargetProps[P] : never; + }; + +// Infers prop type from component C +export type GetProps = C extends JSXElementConstructor + ? C extends ComponentClass

    ? ClassAttributes> & P : P + : never; + +// Applies LibraryManagedAttributes (proper handling of defaultProps +// and propTypes). +export type GetLibraryManagedProps = JSX.LibraryManagedAttributes>; + +// Defines WrappedComponent and derives non-react statics. +export type ConnectedComponent< + C extends JSXElementConstructor, + P +> = NamedExoticComponent

    & hoistNonReactStatics.NonReactStatics & { + WrappedComponent: C; +}; + +// Injects props and removes them from the prop requirements. +// Will not pass through the injected props if they are passed in during +// render. Also adds new prop requirements from TNeedsProps. +// Uses distributive omit to preserve discriminated unions part of original prop type +export type InferableComponentEnhancerWithProps = + >>>( + component: C + ) => ConnectedComponent, keyof Shared>> & TNeedsProps>; + +// Injects props and removes them from the prop requirements. +// Will not pass through the injected props if they are passed in during +// render. +export type InferableComponentEnhancer = + InferableComponentEnhancerWithProps; + +export type InferThunkActionCreatorType any> = + TActionCreator extends (...args: infer TParams) => (...args: any[]) => infer TReturn + ? (...args: TParams) => TReturn + : TActionCreator; + +export type HandleThunkActionCreator = + TActionCreator extends (...args: any[]) => any + ? InferThunkActionCreatorType + : TActionCreator; + +// redux-thunk middleware returns thunk's return value from dispatch call +// https://github.com/reduxjs/redux-thunk#composition +export type ResolveThunks = + TDispatchProps extends { [key: string]: any } + ? { + [C in keyof TDispatchProps]: HandleThunkActionCreator + } + : TDispatchProps; + +// the conditional type is to support TypeScript 3.0, which does not support mapping over tuples and arrays; +// once the typings are updated to at least TypeScript 3.1, a simple mapped type can replace this mess +export type ResolveArrayThunks> = + TDispatchProps extends [infer A1, infer A2, infer A3, infer A4, infer A5, infer A6, infer A7, infer A8, infer A9] + ? [HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, + HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator] + : TDispatchProps extends [infer A1, infer A2, infer A3, infer A4, infer A5, infer A6, infer A7, infer A8] + ? [HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, + HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator] + : TDispatchProps extends [infer A1, infer A2, infer A3, infer A4, infer A5, infer A6, infer A7] + ? [HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, + HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator] + : TDispatchProps extends [infer A1, infer A2, infer A3, infer A4, infer A5, infer A6] + ? [HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator] + : TDispatchProps extends [infer A1, infer A2, infer A3, infer A4, infer A5] + ? [HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator] + : TDispatchProps extends [infer A1, infer A2, infer A3, infer A4] ? [HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator] + : TDispatchProps extends [infer A1, infer A2, infer A3] ? [HandleThunkActionCreator, HandleThunkActionCreator, HandleThunkActionCreator] + : TDispatchProps extends [infer A1, infer A2] ? [HandleThunkActionCreator, HandleThunkActionCreator] + : TDispatchProps extends [infer A1] ? [HandleThunkActionCreator] + : TDispatchProps extends Array ? Array> + : TDispatchProps extends ReadonlyArray ? ReadonlyArray> + : never + ; + +/** + * Connects a React component to a Redux store. + * + * - Without arguments, just wraps the component, without changing the behavior / props + * + * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior + * is to override ownProps (as stated in the docs), so what remains is everything that's + * not a state or dispatch prop + * + * - When 3rd param is passed, we don't know if ownProps propagate and whether they + * should be valid component props, because it depends on mergeProps implementation. + * As such, it is the user's responsibility to extend ownProps interface from state or + * dispatch props or both when applicable + * + * @param mapStateToProps + * @param mapDispatchToProps + * @param mergeProps + * @param options + */ +export interface Connect { + // tslint:disable:no-unnecessary-generics + (): InferableComponentEnhancer; + + ( + mapStateToProps: MapStateToPropsParam + ): InferableComponentEnhancerWithProps; + + ( + mapStateToProps: null | undefined, + mapDispatchToProps: MapDispatchToPropsNonObject + ): InferableComponentEnhancerWithProps; + + ( + mapStateToProps: null | undefined, + mapDispatchToProps: MapDispatchToPropsParam, + ): InferableComponentEnhancerWithProps< + ResolveThunks, + TOwnProps + >; + + ( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: MapDispatchToPropsNonObject + ): InferableComponentEnhancerWithProps; + + ( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: MapDispatchToPropsParam, + ): InferableComponentEnhancerWithProps< + TStateProps & ResolveThunks, + TOwnProps + >; + + ( + mapStateToProps: null | undefined, + mapDispatchToProps: null | undefined, + mergeProps: MergeProps, + ): InferableComponentEnhancerWithProps; + + ( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: null | undefined, + mergeProps: MergeProps, + ): InferableComponentEnhancerWithProps; + + ( + mapStateToProps: null | undefined, + mapDispatchToProps: MapDispatchToPropsParam, + mergeProps: MergeProps, + ): InferableComponentEnhancerWithProps; + + ( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: null | undefined, + mergeProps: null | undefined, + options: Options + ): InferableComponentEnhancerWithProps; + + ( + mapStateToProps: null | undefined, + mapDispatchToProps: MapDispatchToPropsNonObject, + mergeProps: null | undefined, + options: Options<{}, TStateProps, TOwnProps> + ): InferableComponentEnhancerWithProps; + + ( + mapStateToProps: null | undefined, + mapDispatchToProps: MapDispatchToPropsParam, + mergeProps: null | undefined, + options: Options<{}, TStateProps, TOwnProps> + ): InferableComponentEnhancerWithProps< + ResolveThunks, + TOwnProps + >; + + ( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: MapDispatchToPropsNonObject, + mergeProps: null | undefined, + options: Options + ): InferableComponentEnhancerWithProps; + + ( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: MapDispatchToPropsParam, + mergeProps: null | undefined, + options: Options + ): InferableComponentEnhancerWithProps< + TStateProps & ResolveThunks, + TOwnProps + >; + + ( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: MapDispatchToPropsParam, + mergeProps: MergeProps, + options?: Options + ): InferableComponentEnhancerWithProps; + // tslint:enable:no-unnecessary-generics +} + +/** + * Infers the type of props that a connector will inject into a component. + */ +export type ConnectedProps = + TConnector extends InferableComponentEnhancerWithProps + ? unknown extends TInjectedProps + ? TConnector extends InferableComponentEnhancer + ? TInjectedProps + : never + : TInjectedProps + : never; + +/** + * The connect function. See {@type Connect} for details. + */ +export const connect: Connect; + +export type MapStateToProps = + (state: State, ownProps: TOwnProps) => TStateProps; + +export type MapStateToPropsFactory = + (initialState: State, ownProps: TOwnProps) => MapStateToProps; + +export type MapStateToPropsParam = + MapStateToPropsFactory | MapStateToProps | null | undefined; + +export type MapDispatchToPropsFunction = + (dispatch: Dispatch, ownProps: TOwnProps) => TDispatchProps; + +export type MapDispatchToProps = + MapDispatchToPropsFunction | TDispatchProps; + +export type MapDispatchToPropsFactory = + (dispatch: Dispatch, ownProps: TOwnProps) => MapDispatchToPropsFunction; + +export type MapDispatchToPropsParam = MapDispatchToPropsFactory | MapDispatchToProps; + +export type MapDispatchToPropsNonObject = MapDispatchToPropsFactory | MapDispatchToPropsFunction; + +export type MergeProps = + (stateProps: TStateProps, dispatchProps: TDispatchProps, ownProps: TOwnProps) => TMergedProps; + +export interface Options extends ConnectOptions { + /** + * If true, implements shouldComponentUpdate and shallowly compares the result of mergeProps, + * preventing unnecessary updates, assuming that the component is a “pure” component + * and does not rely on any input or state other than its props and the selected Redux store’s state. + * Defaults to true. + * @default true + */ + pure?: boolean | undefined; + + /** + * When pure, compares incoming store state to its previous value. + * @default strictEqual + */ + areStatesEqual?: ((nextState: State, prevState: State) => boolean) | undefined; + + /** + * When pure, compares incoming props to its previous value. + * @default shallowEqual + */ + areOwnPropsEqual?: ((nextOwnProps: TOwnProps, prevOwnProps: TOwnProps) => boolean) | undefined; + + /** + * When pure, compares the result of mapStateToProps to its previous value. + * @default shallowEqual + */ + areStatePropsEqual?: ((nextStateProps: TStateProps, prevStateProps: TStateProps) => boolean) | undefined; + + /** + * When pure, compares the result of mergeProps to its previous value. + * @default shallowEqual + */ + areMergedPropsEqual?: ((nextMergedProps: TMergedProps, prevMergedProps: TMergedProps) => boolean) | undefined; + + /** + * If true, use React's forwardRef to expose a ref of the wrapped component + * + * @default false + */ + forwardRef?: boolean | undefined; +} + +/** + * Connects a React component to a Redux store. It is the base for {@link connect} but is less opinionated about + * how to combine state, props, and dispatch into your final props. It makes no + * assumptions about defaults or memoization of results, leaving those responsibilities to the caller.It does not + * modify the component class passed to it; instead, it returns a new, connected component for you to use. + * + * @param selectorFactory The selector factory. See SelectorFactory type for details. + * @param connectOptions If specified, further customizes the behavior of the connector. Additionally, any extra + * options will be passed through to your selectorFactory in the factoryOptions argument. + */ +export function connectAdvanced( + // tslint:disable-next-line no-unnecessary-generics + selectorFactory: SelectorFactory, + connectOptions?: ConnectOptions & TFactoryOptions +): AdvancedComponentDecorator; + +/** + * Initializes a selector function (during each instance's constructor). That selector function is called any time the + * connector component needs to compute new props, as a result of a store state change or receiving new props. The + * result of selector is expected to be a plain object, which is passed as the props to the wrapped + * component. If a consecutive call to selector returns the same object (===) as its previous + * call, the component will not be re-rendered. It's the responsibility of selector to return that + * previous object when appropriate. + */ +export type SelectorFactory = + (dispatch: Dispatch, factoryOptions: TFactoryOptions) => Selector; + +export type Selector = TOwnProps extends null | undefined + ? (state: S) => TProps + : (state: S, ownProps: TOwnProps) => TProps; + +export interface ConnectOptions { + /** + * Computes the connector component's displayName property relative to that of the wrapped component. Usually + * overridden by wrapper functions. + * + * @default name => 'ConnectAdvanced('+name+')' + * @param componentName + */ + getDisplayName?: ((componentName: string) => string) | undefined; + /** + * Shown in error messages. Usually overridden by wrapper functions. + * + * @default 'connectAdvanced' + */ + methodName?: string | undefined; + /** + * If defined, a property named this value will be added to the props passed to the wrapped component. Its value + * will be the number of times the component has been rendered, which can be useful for tracking down unnecessary + * re-renders. + * + * @default undefined + */ + renderCountProp?: string | undefined; + /** + * Controls whether the connector component subscribes to redux store state changes. If set to false, it will only + * re-render on componentWillReceiveProps. + * + * @default true + */ + shouldHandleStateChanges?: boolean | undefined; + /** + * The key of props/context to get the store. You probably only need this if you are in the inadvisable position of + * having multiple stores. + * + * @default 'store' + */ + storeKey?: string | undefined; + /** + * @deprecated Use forwardRef + * + * @default false + */ + withRef?: boolean | undefined; + /** + * The react context to get the store from. + * + * @default ReactReduxContext + */ + context?: Context | undefined; +} + +export interface ReactReduxContextValue { + store: Store; + storeState: SS; +} + +export interface ProviderProps { + /** + * The single Redux store in your application. + */ + store: Store; + /** + * Optional context to be used internally in react-redux. Use React.createContext() to create a context to be used. + * If this is used, generate own connect HOC by using connectAdvanced, supplying the same context provided to the + * Provider. Initial value doesn't matter, as it is overwritten with the internal state of Provider. + */ + context?: Context | undefined; + children?: ReactNode; +} + +/** + * Makes the Redux store available to the connect() calls in the component hierarchy below. + */ +export class Provider extends Component> { } + +/** + * Exposes the internal context used in react-redux. It is generally advised to use the connect HOC to connect to the + * redux store instead of this approach. + */ +export const ReactReduxContext: Context; + +/** + * Wraps ReactDOM or React Native's internal unstable_batchedUpdate function. You can use it to ensure that + * multiple actions dispatched outside of React only result in a single render update. + */ +export function batch(cb: () => void): void; + +// tslint:disable:no-unnecessary-generics + +/** + * Compares two arbitrary values for shallow equality. Object values are compared based on their keys, i.e. they must + * have the same keys and for each key the value must be equal according to the `Object.is()` algorithm. Non-object + * values are also compared with the same algorithm as `Object.is()`. + */ +export function shallowEqual(left: T, right: any): boolean; + +/** + * A hook to access the redux `dispatch` function. + * + * Note for `redux-thunk` users: the return type of the returned `dispatch` functions for thunks is incorrect. + * However, it is possible to get a correctly typed `dispatch` function by creating your own custom hook typed + * from the store's dispatch function like this: `const useThunkDispatch = () => useDispatch();` + * + * @returns redux store's `dispatch` function + * + * @example + * + * import React from 'react' + * import { useDispatch } from 'react-redux' + * + * export const CounterComponent = ({ value }) => { + * const dispatch = useDispatch() + * return ( + *

    + * ) + * } + */ +// NOTE: the first overload below and note above can be removed if redux-thunk typings add an overload for +// the Dispatch function (see also this PR: https://github.com/reduxjs/redux-thunk/pull/247) +export function useDispatch>(): TDispatch; +export function useDispatch(): Dispatch; + +/** + * A hook to access the redux store's state. This hook takes a selector function + * as an argument. The selector is called with the store state. + * + * This hook takes an optional equality comparison function as the second parameter + * that allows you to customize the way the selected state is compared to determine + * whether the component needs to be re-rendered. + * + * If you do not want to have to specify the root state type for whenever you use + * this hook with an inline selector you can use the `TypedUseSelectorHook` interface + * to create a version of this hook that is properly typed for your root state. + * + * @param selector the selector function + * @param equalityFn the function that will be used to determine equality + * + * @returns the selected state + * + * @example + * + * import React from 'react' + * import { useSelector } from 'react-redux' + * import { RootState } from './store' + * + * export const CounterComponent = () => { + * const counter = useSelector((state: RootState) => state.counter) + * return
    {counter}
    + * } + */ +export function useSelector( + selector: (state: TState) => TSelected, + equalityFn?: (left: TSelected, right: TSelected) => boolean +): TSelected; + +/** + * This interface allows you to easily create a hook that is properly typed for your + * store's root state. + * + * @example + * + * interface RootState { + * property: string; + * } + * + * const useTypedSelector: TypedUseSelectorHook = useSelector; + */ +export interface TypedUseSelectorHook { + ( + selector: (state: TState) => TSelected, + equalityFn?: (left: TSelected, right: TSelected) => boolean + ): TSelected; +} + +/** + * A hook to access the redux store. + * + * @returns the redux store + * + * @example + * + * import React from 'react' + * import { useStore } from 'react-redux' + * + * export const ExampleComponent = () => { + * const store = useStore() + * return
    {store.getState()}
    + * } + */ +export function useStore(): Store; + +/** + * Hook factory, which creates a `useSelector` hook bound to a given context. + * + * @param Context passed to your ``. + * @returns A `useSelector` hook bound to the specified context. + */ +export function createSelectorHook( + context?: Context>, +): ( + selector: (state: S) => Selected, + equalityFn?: (previous: Selected, next: Selected) => boolean, +) => Selected; + +/** + * Hook factory, which creates a `useStore` hook bound to a given context. + * + * @param Context passed to your ``. + * @returns A `useStore` hook bound to the specified context. + */ +export function createStoreHook( + context?: Context>, +): () => Store; + +/** + * Hook factory, which creates a `useDispatch` hook bound to a given context. + * + * @param Context passed to your ``. + * @returns A `useDispatch` hook bound to the specified context. + */ +export function createDispatchHook( + context?: Context>, +): () => Dispatch
    ; + +// tslint:enable:no-unnecessary-generics diff --git a/node_modules/@types/react-redux/package.json b/node_modules/@types/react-redux/package.json new file mode 100755 index 00000000..dde67a9b --- /dev/null +++ b/node_modules/@types/react-redux/package.json @@ -0,0 +1,115 @@ +{ + "name": "@types/react-redux", + "version": "7.1.24", + "description": "TypeScript definitions for react-redux", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-redux", + "license": "MIT", + "contributors": [ + { + "name": "Qubo", + "url": "https://github.com/tkqubo", + "githubUsername": "tkqubo" + }, + { + "name": "Curits Layne", + "url": "https://github.com/clayne11", + "githubUsername": "clayne11" + }, + { + "name": "Frank Tan", + "url": "https://github.com/tansongyang", + "githubUsername": "tansongyang" + }, + { + "name": "Nicholas Boll", + "url": "https://github.com/nicholasboll", + "githubUsername": "nicholasboll" + }, + { + "name": "Dibyo Majumdar", + "url": "https://github.com/mdibyo", + "githubUsername": "mdibyo" + }, + { + "name": "Valentin Descamps", + "url": "https://github.com/val1984", + "githubUsername": "val1984" + }, + { + "name": "Johann Rakotoharisoa", + "url": "https://github.com/jrakotoharisoa", + "githubUsername": "jrakotoharisoa" + }, + { + "name": "Anatoli Papirovski", + "url": "https://github.com/apapirovski", + "githubUsername": "apapirovski" + }, + { + "name": "Boris Sergeyev", + "url": "https://github.com/surgeboris", + "githubUsername": "surgeboris" + }, + { + "name": "Søren Bruus Frank", + "url": "https://github.com/soerenbf", + "githubUsername": "soerenbf" + }, + { + "name": "Jonathan Ziller", + "url": "https://github.com/mrwolfz", + "githubUsername": "mrwolfz" + }, + { + "name": "Dylan Vann", + "url": "https://github.com/dylanvann", + "githubUsername": "dylanvann" + }, + { + "name": "Yuki Ito", + "url": "https://github.com/Lazyuki", + "githubUsername": "Lazyuki" + }, + { + "name": "Kazuma Ebina", + "url": "https://github.com/kazuma1989", + "githubUsername": "kazuma1989" + }, + { + "name": "Michael Lebedev", + "url": "https://github.com/megazazik", + "githubUsername": "megazazik" + }, + { + "name": "jun-sheaf", + "url": "https://github.com/jun-sheaf", + "githubUsername": "jun-sheaf" + }, + { + "name": "Lenz Weber", + "url": "https://github.com/phryneas", + "githubUsername": "phryneas" + }, + { + "name": "Mark Erikson", + "url": "https://github.com/markerikson", + "githubUsername": "markerikson" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/react-redux" + }, + "scripts": {}, + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.0", + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0", + "redux": "^4.0.0" + }, + "typesPublisherContentHash": "278864156dcd43e1341f1cc442df6b6cc2addf2f95640d935da4b942810c2353", + "typeScriptVersion": "3.9" +} \ No newline at end of file diff --git a/node_modules/css-box-model/LICENSE b/node_modules/css-box-model/LICENSE new file mode 100644 index 00000000..2931b7cd --- /dev/null +++ b/node_modules/css-box-model/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Alex Reardon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/css-box-model/README.md b/node_modules/css-box-model/README.md new file mode 100644 index 00000000..9ce8e0e2 --- /dev/null +++ b/node_modules/css-box-model/README.md @@ -0,0 +1,290 @@ +# `css-box-model` 📦 + +Get accurate and well named [CSS Box Model](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model) information about a [`Element`](https://developer.mozilla.org/en-US/docs/Web/API/Element). + +[![Build Status](https://travis-ci.org/alexreardon/css-box-model.svg?branch=master)](https://travis-ci.org/alexreardon/css-box-model) +[![npm](https://img.shields.io/npm/v/css-box-model.svg)](https://www.npmjs.com/package/css-box-model) +[![dependencies](https://david-dm.org/alexreardon/css-box-model.svg)](https://david-dm.org/alexreardon/css-box-model) +[![Downloads per month](https://img.shields.io/npm/dm/css-box-model.svg)](https://www.npmjs.com/package/css-box-model) +[![min](https://img.shields.io/bundlephobia/min/css-box-model.svg)](https://www.npmjs.com/package/css-box-model) +[![minzip](https://img.shields.io/bundlephobia/minzip/css-box-model.svg)](https://www.npmjs.com/package/css-box-model) + +Any time you are using [`Element.getBoundingClientRect()`](https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect) you might want to consider using `css-box-model` instead to get more detailed box model information. + +## Usage + +```js +// @flow +import { getBox } from 'css-box-model'; + +const el: HTMLElement = document.getElementById('foo'); +const box: BoxModel = getBox(el); + +// profit +``` + +## Installation + +```bash +## yarn +yarn add css-box-model + +# npm +npm install css-box-model --save +``` + +## The [CSS Box Model](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model) + +![the box model](https://user-images.githubusercontent.com/2182637/46847224-f8a23e80-ce2e-11e8-80d6-0ca62a1871a7.png) + +| Box type | Composition | +| ----------- | ----------------------------------- | +| Margin box | margin + border + padding + content | +| Border box | border + padding + content | +| Padding box | padding + content | +| Content box | content | + +This our returned `BoxModel`: + +```js +export type BoxModel = {| + // content + padding + border + margin + marginBox: Rect, + // content + padding + border + borderBox: Rect, + // content + padding + paddingBox: Rect, + // content + contentBox: Rect, + // for your own consumption + border: Spacing, + padding: Spacing, + margin: Spacing, +|}; + +// Supporting types + +// This is an extension of DOMRect and ClientRect +export type Rect = {| + // ClientRect + top: number, + right: number, + bottom: number, + left: number, + width: number, + height: number, + // DOMRect + x: number, + y: number, + // Rect + center: Position, +|}; + +export type Position = {| + x: number, + y: number, +|}; + +export type Spacing = { + top: number, + right: number, + bottom: number, + left: number, +}; +``` + +## API + +### `getBox` + +> (el: HTMLElement) => BoxModel + +Use `getBox` to return the box model for an element + +### `withScroll` + +> `(original: BoxModel, scroll?: Position = getWindowScroll()) => BoxModel` + +This is useful if you want to know the box model for an element relative to a page + +```js +const el: HTMLElement = document.getElementById('app'); +const box: BoxModel = getBox(el); +const withScroll: BoxModel = withScroll(box); +``` + +You are welcome to pass in your own `scroll`. By default we we use the window scroll: + +```js +const getWindowScroll = (): Position => ({ + x: window.pageXOffset, + y: window.pageYOffset, +}); +``` + +### `calculateBox` + +> `(borderBox: AnyRectType, styles: CSSStyleDeclaration) => BoxModel` + +This will do the box model calculations without needing to read from the DOM. This is useful if you have already got a `ClientRect` / `DOMRect` and a `CSSStyleDeclaration` as then we can skip computing these values. + +```js +const el: HTMLElement = document.getElementById('app'); +const borderBox: ClientRect = el.getBoundingClientRect(); +const styles: CSSStyleDeclaration = window.getComputedStyles(el); + +const box: BoxModel = calculateBox(borderBox, styles); +``` + +**`AnyRectType`** allows for simple interoperability with any rect type + +```js +type AnyRectType = ClientRect | DOMRect | Rect | Spacing; +``` + +### `createBox` + +> `({ borderBox, margin, border, padding }: CreateBoxArgs) => BoxModel` + +Allows you to create a `BoxModel` by passing in a `Rect` like shape (`AnyRectType`) and optionally your own `margin`, `border` and or `padding`. + +```js +type CreateBoxArgs = {| + borderBox: AnyRectType, + margin?: Spacing, + border?: Spacing, + padding?: Spacing, +|}; +``` + +```js +const borderBox: Spacing = { + top: 10, + right: 100, + left: 20, + bottom: 80, +}; +const padding: Spacing = { + top: 10, + right: 20, + left: 20, + bottom: 10, +}; + +const box: BoxModel = createBox({ borderBox, padding }); +``` + +## Utility API + +> Functions to help you interact with the objects we provide + +### `getRect` + +> `(spacing: AnyRectType) => Rect` + +Given any `Rect` like shape, return a `Rect`. Accepts any object that has `top`, `right`, `bottom` and `right` (eg `ClientRect`, `DOMRect`); + +```js +const spacing: Spacing = { + top: 0, + right: 100, + bottom: 50, + left: 50, +}; + +const rect: Rect = getRect(spacing); + +console.log(rect); + +/* +{ + top: 0, + right: 100, + bottom: 50, + left: 50, + width: 100, + height: 50, + x: 0, + y: 0, + center: { x: 50, y: 50 }, +} +*/ +``` + +### `expand` + +Used to expand a `Spacing` + +```js +(target: Spacing, expandBy: Spacing) => Spacing; +``` + +```js +const original: Spacing = { + top: 10, + left: 11, + right: 21, + bottom: 22, +}; + +const expandBy: Spacing = { + top: 1, + left: 2, + right: 3, + bottom: 4, +}; + +const expanded: Spacing = expand(original, expandBy); + +console.log(expanded); + +/* +{ + // pulled back + top: 8, + left: 8 + // pushed forward + bottom: 22, + right: 22, +} +*/ +``` + +### `shrink` + +Used to shrink a `Spacing` + +```js +(target: Spacing, shrinkBy: Spacing) => Spacing; +``` + +```js +const original: Spacing = { + top: 10, + left: 10, + right: 20, + bottom: 20, +}; + +const shrinkBy: Spacing = { + top: 2, + left: 2, + right: 2, + bottom: 2, +}; + +const smaller: Spacing = shrink(original, shrinkBy); + +console.log(smaller); + +/* +{ + // pushed forward + top: 12, + left: 12 + // pulled back + bottom: 18, + right: 18, +} +*/ +``` diff --git a/node_modules/css-box-model/dist/css-box-model.cjs.js b/node_modules/css-box-model/dist/css-box-model.cjs.js new file mode 100644 index 00000000..ac9019b9 --- /dev/null +++ b/node_modules/css-box-model/dist/css-box-model.cjs.js @@ -0,0 +1,165 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var invariant = _interopDefault(require('tiny-invariant')); + +var getRect = function getRect(_ref) { + var top = _ref.top, + right = _ref.right, + bottom = _ref.bottom, + left = _ref.left; + var width = right - left; + var height = bottom - top; + var rect = { + top: top, + right: right, + bottom: bottom, + left: left, + width: width, + height: height, + x: left, + y: top, + center: { + x: (right + left) / 2, + y: (bottom + top) / 2 + } + }; + return rect; +}; +var expand = function expand(target, expandBy) { + return { + top: target.top - expandBy.top, + left: target.left - expandBy.left, + bottom: target.bottom + expandBy.bottom, + right: target.right + expandBy.right + }; +}; +var shrink = function shrink(target, shrinkBy) { + return { + top: target.top + shrinkBy.top, + left: target.left + shrinkBy.left, + bottom: target.bottom - shrinkBy.bottom, + right: target.right - shrinkBy.right + }; +}; + +var shift = function shift(target, shiftBy) { + return { + top: target.top + shiftBy.y, + left: target.left + shiftBy.x, + bottom: target.bottom + shiftBy.y, + right: target.right + shiftBy.x + }; +}; + +var noSpacing = { + top: 0, + right: 0, + bottom: 0, + left: 0 +}; +var createBox = function createBox(_ref2) { + var borderBox = _ref2.borderBox, + _ref2$margin = _ref2.margin, + margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin, + _ref2$border = _ref2.border, + border = _ref2$border === void 0 ? noSpacing : _ref2$border, + _ref2$padding = _ref2.padding, + padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding; + var marginBox = getRect(expand(borderBox, margin)); + var paddingBox = getRect(shrink(borderBox, border)); + var contentBox = getRect(shrink(paddingBox, padding)); + return { + marginBox: marginBox, + borderBox: getRect(borderBox), + paddingBox: paddingBox, + contentBox: contentBox, + margin: margin, + border: border, + padding: padding + }; +}; + +var parse = function parse(raw) { + var value = raw.slice(0, -2); + var suffix = raw.slice(-2); + + if (suffix !== 'px') { + return 0; + } + + var result = Number(value); + !!isNaN(result) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : invariant(false) : void 0; + return result; +}; + +var getWindowScroll = function getWindowScroll() { + return { + x: window.pageXOffset, + y: window.pageYOffset + }; +}; + +var offset = function offset(original, change) { + var borderBox = original.borderBox, + border = original.border, + margin = original.margin, + padding = original.padding; + var shifted = shift(borderBox, change); + return createBox({ + borderBox: shifted, + border: border, + margin: margin, + padding: padding + }); +}; +var withScroll = function withScroll(original, scroll) { + if (scroll === void 0) { + scroll = getWindowScroll(); + } + + return offset(original, scroll); +}; +var calculateBox = function calculateBox(borderBox, styles) { + var margin = { + top: parse(styles.marginTop), + right: parse(styles.marginRight), + bottom: parse(styles.marginBottom), + left: parse(styles.marginLeft) + }; + var padding = { + top: parse(styles.paddingTop), + right: parse(styles.paddingRight), + bottom: parse(styles.paddingBottom), + left: parse(styles.paddingLeft) + }; + var border = { + top: parse(styles.borderTopWidth), + right: parse(styles.borderRightWidth), + bottom: parse(styles.borderBottomWidth), + left: parse(styles.borderLeftWidth) + }; + return createBox({ + borderBox: borderBox, + margin: margin, + padding: padding, + border: border + }); +}; +var getBox = function getBox(el) { + var borderBox = el.getBoundingClientRect(); + var styles = window.getComputedStyle(el); + return calculateBox(borderBox, styles); +}; + +exports.calculateBox = calculateBox; +exports.createBox = createBox; +exports.expand = expand; +exports.getBox = getBox; +exports.getRect = getRect; +exports.offset = offset; +exports.shrink = shrink; +exports.withScroll = withScroll; diff --git a/node_modules/css-box-model/dist/css-box-model.cjs.js.flow b/node_modules/css-box-model/dist/css-box-model.cjs.js.flow new file mode 100644 index 00000000..6a6528bb --- /dev/null +++ b/node_modules/css-box-model/dist/css-box-model.cjs.js.flow @@ -0,0 +1,3 @@ +// @flow + +export * from '../src'; diff --git a/node_modules/css-box-model/dist/css-box-model.esm.js b/node_modules/css-box-model/dist/css-box-model.esm.js new file mode 100644 index 00000000..32da50e8 --- /dev/null +++ b/node_modules/css-box-model/dist/css-box-model.esm.js @@ -0,0 +1,152 @@ +import invariant from 'tiny-invariant'; + +var getRect = function getRect(_ref) { + var top = _ref.top, + right = _ref.right, + bottom = _ref.bottom, + left = _ref.left; + var width = right - left; + var height = bottom - top; + var rect = { + top: top, + right: right, + bottom: bottom, + left: left, + width: width, + height: height, + x: left, + y: top, + center: { + x: (right + left) / 2, + y: (bottom + top) / 2 + } + }; + return rect; +}; +var expand = function expand(target, expandBy) { + return { + top: target.top - expandBy.top, + left: target.left - expandBy.left, + bottom: target.bottom + expandBy.bottom, + right: target.right + expandBy.right + }; +}; +var shrink = function shrink(target, shrinkBy) { + return { + top: target.top + shrinkBy.top, + left: target.left + shrinkBy.left, + bottom: target.bottom - shrinkBy.bottom, + right: target.right - shrinkBy.right + }; +}; + +var shift = function shift(target, shiftBy) { + return { + top: target.top + shiftBy.y, + left: target.left + shiftBy.x, + bottom: target.bottom + shiftBy.y, + right: target.right + shiftBy.x + }; +}; + +var noSpacing = { + top: 0, + right: 0, + bottom: 0, + left: 0 +}; +var createBox = function createBox(_ref2) { + var borderBox = _ref2.borderBox, + _ref2$margin = _ref2.margin, + margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin, + _ref2$border = _ref2.border, + border = _ref2$border === void 0 ? noSpacing : _ref2$border, + _ref2$padding = _ref2.padding, + padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding; + var marginBox = getRect(expand(borderBox, margin)); + var paddingBox = getRect(shrink(borderBox, border)); + var contentBox = getRect(shrink(paddingBox, padding)); + return { + marginBox: marginBox, + borderBox: getRect(borderBox), + paddingBox: paddingBox, + contentBox: contentBox, + margin: margin, + border: border, + padding: padding + }; +}; + +var parse = function parse(raw) { + var value = raw.slice(0, -2); + var suffix = raw.slice(-2); + + if (suffix !== 'px') { + return 0; + } + + var result = Number(value); + !!isNaN(result) ? process.env.NODE_ENV !== "production" ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : invariant(false) : void 0; + return result; +}; + +var getWindowScroll = function getWindowScroll() { + return { + x: window.pageXOffset, + y: window.pageYOffset + }; +}; + +var offset = function offset(original, change) { + var borderBox = original.borderBox, + border = original.border, + margin = original.margin, + padding = original.padding; + var shifted = shift(borderBox, change); + return createBox({ + borderBox: shifted, + border: border, + margin: margin, + padding: padding + }); +}; +var withScroll = function withScroll(original, scroll) { + if (scroll === void 0) { + scroll = getWindowScroll(); + } + + return offset(original, scroll); +}; +var calculateBox = function calculateBox(borderBox, styles) { + var margin = { + top: parse(styles.marginTop), + right: parse(styles.marginRight), + bottom: parse(styles.marginBottom), + left: parse(styles.marginLeft) + }; + var padding = { + top: parse(styles.paddingTop), + right: parse(styles.paddingRight), + bottom: parse(styles.paddingBottom), + left: parse(styles.paddingLeft) + }; + var border = { + top: parse(styles.borderTopWidth), + right: parse(styles.borderRightWidth), + bottom: parse(styles.borderBottomWidth), + left: parse(styles.borderLeftWidth) + }; + return createBox({ + borderBox: borderBox, + margin: margin, + padding: padding, + border: border + }); +}; +var getBox = function getBox(el) { + var borderBox = el.getBoundingClientRect(); + var styles = window.getComputedStyle(el); + return calculateBox(borderBox, styles); +}; + +export { calculateBox, createBox, expand, getBox, getRect, offset, shrink, withScroll }; diff --git a/node_modules/css-box-model/dist/css-box-model.js b/node_modules/css-box-model/dist/css-box-model.js new file mode 100644 index 00000000..ed078c57 --- /dev/null +++ b/node_modules/css-box-model/dist/css-box-model.js @@ -0,0 +1,179 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = global || self, factory(global.cssBoxModel = {})); +}(this, function (exports) { 'use strict'; + + var prefix = 'Invariant failed'; + + function invariant(condition, message) { + if (condition) { + return; + } + + { + throw new Error(prefix + ": " + (message || '')); + } + } + + var getRect = function getRect(_ref) { + var top = _ref.top, + right = _ref.right, + bottom = _ref.bottom, + left = _ref.left; + var width = right - left; + var height = bottom - top; + var rect = { + top: top, + right: right, + bottom: bottom, + left: left, + width: width, + height: height, + x: left, + y: top, + center: { + x: (right + left) / 2, + y: (bottom + top) / 2 + } + }; + return rect; + }; + var expand = function expand(target, expandBy) { + return { + top: target.top - expandBy.top, + left: target.left - expandBy.left, + bottom: target.bottom + expandBy.bottom, + right: target.right + expandBy.right + }; + }; + var shrink = function shrink(target, shrinkBy) { + return { + top: target.top + shrinkBy.top, + left: target.left + shrinkBy.left, + bottom: target.bottom - shrinkBy.bottom, + right: target.right - shrinkBy.right + }; + }; + + var shift = function shift(target, shiftBy) { + return { + top: target.top + shiftBy.y, + left: target.left + shiftBy.x, + bottom: target.bottom + shiftBy.y, + right: target.right + shiftBy.x + }; + }; + + var noSpacing = { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + var createBox = function createBox(_ref2) { + var borderBox = _ref2.borderBox, + _ref2$margin = _ref2.margin, + margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin, + _ref2$border = _ref2.border, + border = _ref2$border === void 0 ? noSpacing : _ref2$border, + _ref2$padding = _ref2.padding, + padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding; + var marginBox = getRect(expand(borderBox, margin)); + var paddingBox = getRect(shrink(borderBox, border)); + var contentBox = getRect(shrink(paddingBox, padding)); + return { + marginBox: marginBox, + borderBox: getRect(borderBox), + paddingBox: paddingBox, + contentBox: contentBox, + margin: margin, + border: border, + padding: padding + }; + }; + + var parse = function parse(raw) { + var value = raw.slice(0, -2); + var suffix = raw.slice(-2); + + if (suffix !== 'px') { + return 0; + } + + var result = Number(value); + !!isNaN(result) ? invariant(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : void 0; + return result; + }; + + var getWindowScroll = function getWindowScroll() { + return { + x: window.pageXOffset, + y: window.pageYOffset + }; + }; + + var offset = function offset(original, change) { + var borderBox = original.borderBox, + border = original.border, + margin = original.margin, + padding = original.padding; + var shifted = shift(borderBox, change); + return createBox({ + borderBox: shifted, + border: border, + margin: margin, + padding: padding + }); + }; + var withScroll = function withScroll(original, scroll) { + if (scroll === void 0) { + scroll = getWindowScroll(); + } + + return offset(original, scroll); + }; + var calculateBox = function calculateBox(borderBox, styles) { + var margin = { + top: parse(styles.marginTop), + right: parse(styles.marginRight), + bottom: parse(styles.marginBottom), + left: parse(styles.marginLeft) + }; + var padding = { + top: parse(styles.paddingTop), + right: parse(styles.paddingRight), + bottom: parse(styles.paddingBottom), + left: parse(styles.paddingLeft) + }; + var border = { + top: parse(styles.borderTopWidth), + right: parse(styles.borderRightWidth), + bottom: parse(styles.borderBottomWidth), + left: parse(styles.borderLeftWidth) + }; + return createBox({ + borderBox: borderBox, + margin: margin, + padding: padding, + border: border + }); + }; + var getBox = function getBox(el) { + var borderBox = el.getBoundingClientRect(); + var styles = window.getComputedStyle(el); + return calculateBox(borderBox, styles); + }; + + exports.calculateBox = calculateBox; + exports.createBox = createBox; + exports.expand = expand; + exports.getBox = getBox; + exports.getRect = getRect; + exports.offset = offset; + exports.shrink = shrink; + exports.withScroll = withScroll; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/node_modules/css-box-model/dist/css-box-model.min.js b/node_modules/css-box-model/dist/css-box-model.min.js new file mode 100644 index 00000000..81568f9f --- /dev/null +++ b/node_modules/css-box-model/dist/css-box-model.min.js @@ -0,0 +1 @@ +!function(t,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((t=t||self).cssBoxModel={})}(this,function(t){"use strict";var o="Invariant failed";var r=function(t){var o=t.top,r=t.right,e=t.bottom,i=t.left;return{top:o,right:r,bottom:e,left:i,width:r-i,height:e-o,x:i,y:o,center:{x:(r+i)/2,y:(e+o)/2}}},e=function(t,o){return{top:t.top-o.top,left:t.left-o.left,bottom:t.bottom+o.bottom,right:t.right+o.right}},i=function(t,o){return{top:t.top+o.top,left:t.left+o.left,bottom:t.bottom-o.bottom,right:t.right-o.right}},n={top:0,right:0,bottom:0,left:0},d=function(t){var o=t.borderBox,d=t.margin,f=void 0===d?n:d,g=t.border,a=void 0===g?n:g,p=t.padding,u=void 0===p?n:p,b=r(e(o,f)),m=r(i(o,a)),h=r(i(m,u));return{marginBox:b,borderBox:r(o),paddingBox:m,contentBox:h,margin:f,border:a,padding:u}},f=function(t){var r=t.slice(0,-2);if("px"!==t.slice(-2))return 0;var e=Number(r);return isNaN(e)&&function(t,r){if(!t)throw new Error(o)}(!1),e},g=function(t,o){var r,e,i=t.borderBox,n=t.border,f=t.margin,g=t.padding,a=(e=o,{top:(r=i).top+e.y,left:r.left+e.x,bottom:r.bottom+e.y,right:r.right+e.x});return d({borderBox:a,border:n,margin:f,padding:g})},a=function(t,o){var r={top:f(o.marginTop),right:f(o.marginRight),bottom:f(o.marginBottom),left:f(o.marginLeft)},e={top:f(o.paddingTop),right:f(o.paddingRight),bottom:f(o.paddingBottom),left:f(o.paddingLeft)},i={top:f(o.borderTopWidth),right:f(o.borderRightWidth),bottom:f(o.borderBottomWidth),left:f(o.borderLeftWidth)};return d({borderBox:t,margin:r,padding:e,border:i})};t.calculateBox=a,t.createBox=d,t.expand=e,t.getBox=function(t){var o=t.getBoundingClientRect(),r=window.getComputedStyle(t);return a(o,r)},t.getRect=r,t.offset=g,t.shrink=i,t.withScroll=function(t,o){return void 0===o&&(o={x:window.pageXOffset,y:window.pageYOffset}),g(t,o)},Object.defineProperty(t,"__esModule",{value:!0})}); diff --git a/node_modules/css-box-model/package.json b/node_modules/css-box-model/package.json new file mode 100644 index 00000000..beb0d695 --- /dev/null +++ b/node_modules/css-box-model/package.json @@ -0,0 +1,61 @@ +{ + "name": "css-box-model", + "version": "1.2.1", + "description": "Get accurate and well named css box model information about an Element 📦", + "author": "Alex Reardon ", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alexreardon/css-box-model.git" + }, + "bugs": { + "url": "https://github.com/alexreardon/css-box-model/issues" + }, + "keywords": [ + "css", + "box model", + "css box model", + "getBoundingClientRect", + "DOMRect", + "ClientRect", + "Rect", + "Spacing", + "DOM" + ], + "files": [ + "/dist", + "/src" + ], + "main": "dist/css-box-model.cjs.js", + "module": "dist/css-box-model.esm.js", + "types": "src/index.d.ts", + "sideEffects": false, + "scripts": { + "test": "yarn jest", + "lint": "yarn prettier --debug-check src/** test/**", + "validate": "yarn lint && flow check", + "build:clean": "rimraf dist", + "build:flow": "echo \"// @flow\n\nexport * from '../src';\" > dist/css-box-model.cjs.js.flow", + "build:dist": "yarn rollup --config rollup.config.js", + "build": "yarn build:clean && yarn build:dist && yarn build:flow", + "prepublishOnly": "yarn build" + }, + "devDependencies": { + "@babel/core": "^7.5.5", + "@babel/preset-env": "^7.5.5", + "@babel/preset-flow": "^7.0.0", + "babel-plugin-dev-expression": "^0.2.2", + "flow-bin": "0.106.1", + "jest": "^24.9.0", + "prettier": "1.18.2", + "rimraf": "^3.0.0", + "rollup": "^1.20.2", + "rollup-plugin-babel": "^4.3.3", + "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-replace": "^2.2.0", + "rollup-plugin-terser": "^5.1.1" + }, + "dependencies": { + "tiny-invariant": "^1.0.6" + } +} diff --git a/node_modules/css-box-model/src/index.d.ts b/node_modules/css-box-model/src/index.d.ts new file mode 100644 index 00000000..38c9a584 --- /dev/null +++ b/node_modules/css-box-model/src/index.d.ts @@ -0,0 +1,59 @@ +declare module 'css-box-model' { + export type Position = { + x: number; + y: number; + }; + + export type Rect = { + top: number; + right: number; + bottom: number; + left: number; + width: number; + height: number; + x: number; + y: number; + center: Position; + }; + + export type BoxModel = { + marginBox: Rect; + borderBox: Rect; + paddingBox: Rect; + contentBox: Rect; + border: Spacing; + padding: Spacing; + margin: Spacing; + }; + + export type AnyRectType = ClientRect | DOMRect | Rect | Spacing; + + export type Spacing = { + top: number; + right: number; + bottom: number; + left: number; + }; + + export const getRect: ({ top, right, bottom, left }: Spacing) => Rect; + export const expand: (target: Spacing, expandBy: Spacing) => Spacing; + export const shrink: (target: Spacing, shrinkBy: Spacing) => Spacing; + + type CreateBoxArgs = { + borderBox: AnyRectType; + margin?: Spacing; + border?: Spacing; + padding?: Spacing; + }; + + export const createBox: (boxArgs: CreateBoxArgs) => BoxModel; + export const offset: (original: BoxModel, change: Position) => BoxModel; + export const withScroll: (original: BoxModel, scroll?: Position) => BoxModel; + + export const calculateBox: ( + borderBox: AnyRectType, + styles: CSSStyleDeclaration, + ) => BoxModel; + + export const getBox: (el: Element) => BoxModel; +} diff --git a/node_modules/css-box-model/src/index.js b/node_modules/css-box-model/src/index.js new file mode 100644 index 00000000..aa2d3d61 --- /dev/null +++ b/node_modules/css-box-model/src/index.js @@ -0,0 +1,243 @@ +// @flow +import invariant from 'tiny-invariant'; + +// # The CSS box model +// > https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model +// +// ------------------------------------ +// | MARGIN | (marginBox) +// | ------------------------------ | +// | | BORDER | | (borderBox) +// | | ------------------------ | | +// | | | PADDING | | | (paddingBox) - not used by anything really +// | | | ------------------ | | | +// | | | | CONTENT | | | | (contentBox) +// | | | | | | | | +// | | | | | | | | +// | | | | | | | | +// | | | ------------------ | | | +// | | | | | | +// | | ------------------------ | | +// | | | | +// | ------------------------------ | +// | | +// | ----------------------------------| + +export type Position = {| + x: number, + y: number, +|}; + +export type Rect = {| + top: number, + right: number, + bottom: number, + left: number, + width: number, + height: number, + x: number, + y: number, + center: Position, +|}; + +export type BoxModel = {| + // content + padding + border + margin + marginBox: Rect, + // content + padding + border + borderBox: Rect, + // content + padding + paddingBox: Rect, + // content + contentBox: Rect, + // for your own consumption + border: Spacing, + padding: Spacing, + margin: Spacing, +|}; + +export type AnyRectType = ClientRect | DOMRect | Rect | Spacing; + +export type Spacing = { + top: number, + right: number, + bottom: number, + left: number, +}; + +export const getRect = ({ top, right, bottom, left }: Spacing): Rect => { + const width: number = right - left; + const height: number = bottom - top; + + const rect: Rect = { + // ClientRect + top, + right, + bottom, + left, + width, + height, + // DOMRect + x: left, + y: top, + // Rect + center: { + x: (right + left) / 2, + y: (bottom + top) / 2, + }, + }; + + return rect; +}; + +export const expand = (target: Spacing, expandBy: Spacing): Spacing => ({ + // pulling back to increase size + top: target.top - expandBy.top, + left: target.left - expandBy.left, + // pushing forward to increase size + bottom: target.bottom + expandBy.bottom, + right: target.right + expandBy.right, +}); + +export const shrink = (target: Spacing, shrinkBy: Spacing): Spacing => ({ + // pushing forward to decrease size + top: target.top + shrinkBy.top, + left: target.left + shrinkBy.left, + // pulling backwards to decrease size + bottom: target.bottom - shrinkBy.bottom, + right: target.right - shrinkBy.right, +}); + +const shift = (target: Spacing, shiftBy: Position): Spacing => ({ + top: target.top + shiftBy.y, + left: target.left + shiftBy.x, + bottom: target.bottom + shiftBy.y, + right: target.right + shiftBy.x, +}); + +const noSpacing: Spacing = { + top: 0, + right: 0, + bottom: 0, + left: 0, +}; + +type CreateBoxArgs = {| + borderBox: AnyRectType, + margin?: Spacing, + border?: Spacing, + padding?: Spacing, +|}; + +export const createBox = ({ + borderBox, + margin = noSpacing, + border = noSpacing, + padding = noSpacing, +}: CreateBoxArgs): BoxModel => { + // marginBox = borderBox + margin + const marginBox: Rect = getRect(expand(borderBox, margin)); + // borderBox = borderBox - padding + const paddingBox: Rect = getRect(shrink(borderBox, border)); + // contentBox = paddingBox - padding + const contentBox: Rect = getRect(shrink(paddingBox, padding)); + + return { + marginBox, + borderBox: getRect(borderBox), + paddingBox, + contentBox, + margin, + border, + padding, + }; +}; + +// Computed spacing styles will always be in pixels +// https://codepen.io/alexreardon/pen/OZyqXe +const parse = (raw: string): number => { + const value: string = raw.slice(0, -2); + const suffix: string = raw.slice(-2); + + // ## Used values vs computed values + // `getComputedStyle` will return the * used values * if the + // element has `display: none` and the *computed values* otherwise + // *used values* can include 'rem' etc. + // Rather than throwing we are returning `0`. + // Given that the element is _not visible_ it takes up no visible space and so `0` is correct + // ## `jsdom` + // The `raw` value can also not be populated in jsdom + if (suffix !== 'px') { + return 0; + } + + const result: number = Number(value); + invariant( + !isNaN(result), + `Could not parse value [raw: ${raw}, without suffix: ${value}]`, + ); + + return result; +}; + +const getWindowScroll = (): Position => ({ + x: window.pageXOffset, + y: window.pageYOffset, +}); + +export const offset = (original: BoxModel, change: Position): BoxModel => { + const { borderBox, border, margin, padding } = original; + const shifted: Spacing = shift(borderBox, change); + + return createBox({ + borderBox: shifted, + border, + margin, + padding, + }); +}; + +export const withScroll = ( + original: BoxModel, + scroll?: Position = getWindowScroll(), +): BoxModel => offset(original, scroll); + +// Exposing this function directly for performance. If you have already computed these things +// then you can simply pass them in +export const calculateBox = ( + borderBox: AnyRectType, + styles: CSSStyleDeclaration, +): BoxModel => { + const margin: Spacing = { + top: parse(styles.marginTop), + right: parse(styles.marginRight), + bottom: parse(styles.marginBottom), + left: parse(styles.marginLeft), + }; + const padding: Spacing = { + top: parse(styles.paddingTop), + right: parse(styles.paddingRight), + bottom: parse(styles.paddingBottom), + left: parse(styles.paddingLeft), + }; + const border: Spacing = { + top: parse(styles.borderTopWidth), + right: parse(styles.borderRightWidth), + bottom: parse(styles.borderBottomWidth), + left: parse(styles.borderLeftWidth), + }; + + return createBox({ + borderBox, + margin, + padding, + border, + }); +}; + +export const getBox = (el: Element): BoxModel => { + // getBoundingClientRect always returns the borderBox + const borderBox: ClientRect = el.getBoundingClientRect(); + const styles: CSSStyleDeclaration = window.getComputedStyle(el); + + return calculateBox(borderBox, styles); +}; diff --git a/node_modules/hoist-non-react-statics/CHANGELOG.md b/node_modules/hoist-non-react-statics/CHANGELOG.md new file mode 100644 index 00000000..59994b42 --- /dev/null +++ b/node_modules/hoist-non-react-statics/CHANGELOG.md @@ -0,0 +1,37 @@ +# 3.3.2 (January 22, 2020) +- Fix `React.memo` for v16.12+ (#93) + +# 3.3.1 (November 14, 2019) +- Fix for UMD bundle (#85) +- Tooling changes (#83, #84, #87) + +# 3.3.0 (January 23, 2019) +- Prevent hoisting of React.memo statics (#73) + +# 3.2.1 (December 3, 2018) +- Fixed `defaultProps`, `displayName` and `propTypes` being hoisted from `React.forwardRef` to `React.forwardRef`. ([#71]) + +# 3.2.0 (November 26, 2018) +- Added support for `getDerivedStateFromError`. ([#68]) +- Added support for React versions less than 0.14. ([#69]) + +# 3.1.0 (October 30, 2018) +- Added support for `contextType`. ([#62]) +- Reduced bundle size. ([e89c7a6]) +- Removed TypeScript definitions. ([#61]) + +# 3.0.1 (July 28, 2018) +- Fixed prop-types warnings. ([e0846fe]) + +# 3.0.0 (July 27, 2018) +- Dropped support for React versions less than 0.14. ([#55]) +- Added support for `React.forwardRef` components. ([#55]) + +[#55]: https://github.com/mridgway/hoist-non-react-statics/pull/55 +[#61]: https://github.com/mridgway/hoist-non-react-statics/pull/61 +[#62]: https://github.com/mridgway/hoist-non-react-statics/pull/62 +[#68]: https://github.com/mridgway/hoist-non-react-statics/pull/68 +[#69]: https://github.com/mridgway/hoist-non-react-statics/pull/69 +[#71]: https://github.com/mridgway/hoist-non-react-statics/pull/71 +[e0846fe]: https://github.com/mridgway/hoist-non-react-statics/commit/e0846feefbad8b34d300de9966ffd607aacb81a3 +[e89c7a6]: https://github.com/mridgway/hoist-non-react-statics/commit/e89c7a6168edc19eeadb2d149e600b888e8b0446 diff --git a/node_modules/hoist-non-react-statics/LICENSE.md b/node_modules/hoist-non-react-statics/LICENSE.md new file mode 100644 index 00000000..2464f59e --- /dev/null +++ b/node_modules/hoist-non-react-statics/LICENSE.md @@ -0,0 +1,29 @@ +Software License Agreement (BSD License) +======================================== + +Copyright (c) 2015, Yahoo! Inc. All rights reserved. +---------------------------------------------------- + +Redistribution and use of this software in source and binary forms, with or +without modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of Yahoo! Inc. nor the names of YUI's contributors may be + used to endorse or promote products derived from this software without + specific prior written permission of Yahoo! Inc. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/hoist-non-react-statics/README.md b/node_modules/hoist-non-react-statics/README.md new file mode 100644 index 00000000..24ea6887 --- /dev/null +++ b/node_modules/hoist-non-react-statics/README.md @@ -0,0 +1,55 @@ +# hoist-non-react-statics + +[![NPM version](https://badge.fury.io/js/hoist-non-react-statics.svg)](http://badge.fury.io/js/hoist-non-react-statics) +[![Build Status](https://img.shields.io/travis/mridgway/hoist-non-react-statics.svg)](https://travis-ci.org/mridgway/hoist-non-react-statics) +[![Coverage Status](https://img.shields.io/coveralls/mridgway/hoist-non-react-statics.svg)](https://coveralls.io/r/mridgway/hoist-non-react-statics?branch=master) +[![Dependency Status](https://img.shields.io/david/mridgway/hoist-non-react-statics.svg)](https://david-dm.org/mridgway/hoist-non-react-statics) +[![devDependency Status](https://img.shields.io/david/dev/mridgway/hoist-non-react-statics.svg)](https://david-dm.org/mridgway/hoist-non-react-statics#info=devDependencies) + +Copies non-react specific statics from a child component to a parent component. +Similar to `Object.assign`, but with React static keywords blacklisted from +being overridden. + +```bash +$ npm install --save hoist-non-react-statics +``` + +## Usage + +```js +import hoistNonReactStatics from 'hoist-non-react-statics'; + +hoistNonReactStatics(targetComponent, sourceComponent); +``` + +If you have specific statics that you don't want to be hoisted, you can also pass a third parameter to exclude them: + +```js +hoistNonReactStatics(targetComponent, sourceComponent, { myStatic: true, myOtherStatic: true }); +``` + +## What does this module do? + +See this [explanation](https://facebook.github.io/react/docs/higher-order-components.html#static-methods-must-be-copied-over) from the React docs. + +## Compatible React Versions + +Please use latest 3.x. Versions prior to 3.x will not support ForwardRefs. + +| hoist-non-react-statics Version | Compatible React Version | +|--------------------------|-------------------------------| +| 3.x | 0.13-16.x With ForwardRef Support | +| 2.x | 0.13-16.x Without ForwardRef Support | +| 1.x | 0.13-16.2 | + +## Browser Support + +This package uses `Object.defineProperty` which has a broken implementation in IE8. In order to use this package in IE8, you will need a polyfill that fixes this method. + +## License +This software is free to use under the Yahoo Inc. BSD license. +See the [LICENSE file][] for license text and copyright information. + +[LICENSE file]: https://github.com/mridgway/hoist-non-react-statics/blob/master/LICENSE.md + +Third-party open source code used are listed in our [package.json file]( https://github.com/mridgway/hoist-non-react-statics/blob/master/package.json). diff --git a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js new file mode 100644 index 00000000..60f9c4b9 --- /dev/null +++ b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js @@ -0,0 +1,103 @@ +'use strict'; + +var reactIs = require('react-is'); + +/** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +var REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true +}; +var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true +}; +var FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true +}; +var MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true +}; +var TYPE_STATICS = {}; +TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; +TYPE_STATICS[reactIs.Memo] = MEMO_STATICS; + +function getStatics(component) { + // React v16.11 and below + if (reactIs.isMemo(component)) { + return MEMO_STATICS; + } // React v16.12 and above + + + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; +} + +var defineProperty = Object.defineProperty; +var getOwnPropertyNames = Object.getOwnPropertyNames; +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var getPrototypeOf = Object.getPrototypeOf; +var objectPrototype = Object.prototype; +function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { + // don't hoist over string (html) components + if (objectPrototype) { + var inheritedComponent = getPrototypeOf(sourceComponent); + + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + var keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols) { + keys = keys.concat(getOwnPropertySymbols(sourceComponent)); + } + + var targetStatics = getStatics(targetComponent); + var sourceStatics = getStatics(sourceComponent); + + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + + if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { + var descriptor = getOwnPropertyDescriptor(sourceComponent, key); + + try { + // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + } + + return targetComponent; +} + +module.exports = hoistNonReactStatics; diff --git a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js new file mode 100644 index 00000000..c6d59c78 --- /dev/null +++ b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js @@ -0,0 +1,449 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.hoistNonReactStatics = factory()); +}(this, (function () { 'use strict'; + + function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var reactIs_production_min = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports,"__esModule",{value:!0}); + var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"): + 60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118,x=b?Symbol.for("react.scope"):60119;function y(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function z(a){return y(a)===m} + exports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p; + exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h}; + exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p}; + }); + + unwrapExports(reactIs_production_min); + var reactIs_production_min_1 = reactIs_production_min.typeOf; + var reactIs_production_min_2 = reactIs_production_min.AsyncMode; + var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode; + var reactIs_production_min_4 = reactIs_production_min.ContextConsumer; + var reactIs_production_min_5 = reactIs_production_min.ContextProvider; + var reactIs_production_min_6 = reactIs_production_min.Element; + var reactIs_production_min_7 = reactIs_production_min.ForwardRef; + var reactIs_production_min_8 = reactIs_production_min.Fragment; + var reactIs_production_min_9 = reactIs_production_min.Lazy; + var reactIs_production_min_10 = reactIs_production_min.Memo; + var reactIs_production_min_11 = reactIs_production_min.Portal; + var reactIs_production_min_12 = reactIs_production_min.Profiler; + var reactIs_production_min_13 = reactIs_production_min.StrictMode; + var reactIs_production_min_14 = reactIs_production_min.Suspense; + var reactIs_production_min_15 = reactIs_production_min.isValidElementType; + var reactIs_production_min_16 = reactIs_production_min.isAsyncMode; + var reactIs_production_min_17 = reactIs_production_min.isConcurrentMode; + var reactIs_production_min_18 = reactIs_production_min.isContextConsumer; + var reactIs_production_min_19 = reactIs_production_min.isContextProvider; + var reactIs_production_min_20 = reactIs_production_min.isElement; + var reactIs_production_min_21 = reactIs_production_min.isForwardRef; + var reactIs_production_min_22 = reactIs_production_min.isFragment; + var reactIs_production_min_23 = reactIs_production_min.isLazy; + var reactIs_production_min_24 = reactIs_production_min.isMemo; + var reactIs_production_min_25 = reactIs_production_min.isPortal; + var reactIs_production_min_26 = reactIs_production_min.isProfiler; + var reactIs_production_min_27 = reactIs_production_min.isStrictMode; + var reactIs_production_min_28 = reactIs_production_min.isSuspense; + + var reactIs_development = createCommonjsModule(function (module, exports) { + + + + if (process.env.NODE_ENV !== "production") { + (function() { + + Object.defineProperty(exports, '__esModule', { value: true }); + + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var hasSymbol = typeof Symbol === 'function' && Symbol.for; + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary + // (unstable) APIs that have been removed. Can we remove the symbols? + + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; + var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + + function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE); + } + + /** + * Forked from fbjs/warning: + * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js + * + * Only change is we use console.warn instead of console.error, + * and do nothing when 'console' is not supported. + * This really simplifies the code. + * --- + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + var lowPriorityWarningWithoutStack = function () {}; + + { + var printWarning = function (format) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + + if (typeof console !== 'undefined') { + console.warn(message); + } + + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + lowPriorityWarningWithoutStack = function (condition, format) { + if (format === undefined) { + throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (!condition) { + for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(void 0, [format].concat(args)); + } + }; + } + + var lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack; + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } // AsyncMode is deprecated along with isAsyncMode + + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; + lowPriorityWarningWithoutStack$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + exports.typeOf = typeOf; + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isValidElementType = isValidElementType; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + })(); + } + }); + + unwrapExports(reactIs_development); + var reactIs_development_1 = reactIs_development.typeOf; + var reactIs_development_2 = reactIs_development.AsyncMode; + var reactIs_development_3 = reactIs_development.ConcurrentMode; + var reactIs_development_4 = reactIs_development.ContextConsumer; + var reactIs_development_5 = reactIs_development.ContextProvider; + var reactIs_development_6 = reactIs_development.Element; + var reactIs_development_7 = reactIs_development.ForwardRef; + var reactIs_development_8 = reactIs_development.Fragment; + var reactIs_development_9 = reactIs_development.Lazy; + var reactIs_development_10 = reactIs_development.Memo; + var reactIs_development_11 = reactIs_development.Portal; + var reactIs_development_12 = reactIs_development.Profiler; + var reactIs_development_13 = reactIs_development.StrictMode; + var reactIs_development_14 = reactIs_development.Suspense; + var reactIs_development_15 = reactIs_development.isValidElementType; + var reactIs_development_16 = reactIs_development.isAsyncMode; + var reactIs_development_17 = reactIs_development.isConcurrentMode; + var reactIs_development_18 = reactIs_development.isContextConsumer; + var reactIs_development_19 = reactIs_development.isContextProvider; + var reactIs_development_20 = reactIs_development.isElement; + var reactIs_development_21 = reactIs_development.isForwardRef; + var reactIs_development_22 = reactIs_development.isFragment; + var reactIs_development_23 = reactIs_development.isLazy; + var reactIs_development_24 = reactIs_development.isMemo; + var reactIs_development_25 = reactIs_development.isPortal; + var reactIs_development_26 = reactIs_development.isProfiler; + var reactIs_development_27 = reactIs_development.isStrictMode; + var reactIs_development_28 = reactIs_development.isSuspense; + + var reactIs = createCommonjsModule(function (module) { + + if (process.env.NODE_ENV === 'production') { + module.exports = reactIs_production_min; + } else { + module.exports = reactIs_development; + } + }); + var reactIs_1 = reactIs.typeOf; + var reactIs_2 = reactIs.AsyncMode; + var reactIs_3 = reactIs.ConcurrentMode; + var reactIs_4 = reactIs.ContextConsumer; + var reactIs_5 = reactIs.ContextProvider; + var reactIs_6 = reactIs.Element; + var reactIs_7 = reactIs.ForwardRef; + var reactIs_8 = reactIs.Fragment; + var reactIs_9 = reactIs.Lazy; + var reactIs_10 = reactIs.Memo; + var reactIs_11 = reactIs.Portal; + var reactIs_12 = reactIs.Profiler; + var reactIs_13 = reactIs.StrictMode; + var reactIs_14 = reactIs.Suspense; + var reactIs_15 = reactIs.isValidElementType; + var reactIs_16 = reactIs.isAsyncMode; + var reactIs_17 = reactIs.isConcurrentMode; + var reactIs_18 = reactIs.isContextConsumer; + var reactIs_19 = reactIs.isContextProvider; + var reactIs_20 = reactIs.isElement; + var reactIs_21 = reactIs.isForwardRef; + var reactIs_22 = reactIs.isFragment; + var reactIs_23 = reactIs.isLazy; + var reactIs_24 = reactIs.isMemo; + var reactIs_25 = reactIs.isPortal; + var reactIs_26 = reactIs.isProfiler; + var reactIs_27 = reactIs.isStrictMode; + var reactIs_28 = reactIs.isSuspense; + + /** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ + var REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true + }; + var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true + }; + var FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true + }; + var MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true + }; + var TYPE_STATICS = {}; + TYPE_STATICS[reactIs_7] = FORWARD_REF_STATICS; + TYPE_STATICS[reactIs_10] = MEMO_STATICS; + + function getStatics(component) { + // React v16.11 and below + if (reactIs_24(component)) { + return MEMO_STATICS; + } // React v16.12 and above + + + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; + } + + var defineProperty = Object.defineProperty; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var getPrototypeOf = Object.getPrototypeOf; + var objectPrototype = Object.prototype; + function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { + // don't hoist over string (html) components + if (objectPrototype) { + var inheritedComponent = getPrototypeOf(sourceComponent); + + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + var keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols) { + keys = keys.concat(getOwnPropertySymbols(sourceComponent)); + } + + var targetStatics = getStatics(targetComponent); + var sourceStatics = getStatics(sourceComponent); + + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + + if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { + var descriptor = getOwnPropertyDescriptor(sourceComponent, key); + + try { + // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + } + + return targetComponent; + } + + return hoistNonReactStatics; + +}))); diff --git a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js new file mode 100644 index 00000000..2883e249 --- /dev/null +++ b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).hoistNonReactStatics=t()}(this,(function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e,t){return e(t={exports:{}},t.exports),t.exports}var r=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,n=r?Symbol.for("react.portal"):60106,c=r?Symbol.for("react.fragment"):60107,a=r?Symbol.for("react.strict_mode"):60108,f=r?Symbol.for("react.profiler"):60114,s=r?Symbol.for("react.provider"):60109,i=r?Symbol.for("react.context"):60110,u=r?Symbol.for("react.async_mode"):60111,y=r?Symbol.for("react.concurrent_mode"):60111,l=r?Symbol.for("react.forward_ref"):60112,p=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,d=r?Symbol.for("react.memo"):60115,b=r?Symbol.for("react.lazy"):60116,S=r?Symbol.for("react.fundamental"):60117,$=r?Symbol.for("react.responder"):60118,v=r?Symbol.for("react.scope"):60119;function g(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case u:case y:case c:case f:case a:case p:return e;default:switch(e=e&&e.$$typeof){case i:case l:case b:case d:case s:return e;default:return t}}case n:return t}}}function P(e){return g(e)===y}t.typeOf=g,t.AsyncMode=u,t.ConcurrentMode=y,t.ContextConsumer=i,t.ContextProvider=s,t.Element=o,t.ForwardRef=l,t.Fragment=c,t.Lazy=b,t.Memo=d,t.Portal=n,t.Profiler=f,t.StrictMode=a,t.Suspense=p,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===c||e===y||e===f||e===a||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===d||e.$$typeof===s||e.$$typeof===i||e.$$typeof===l||e.$$typeof===S||e.$$typeof===$||e.$$typeof===v)},t.isAsyncMode=function(e){return P(e)||g(e)===u},t.isConcurrentMode=P,t.isContextConsumer=function(e){return g(e)===i},t.isContextProvider=function(e){return g(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return g(e)===l},t.isFragment=function(e){return g(e)===c},t.isLazy=function(e){return g(e)===b},t.isMemo=function(e){return g(e)===d},t.isPortal=function(e){return g(e)===n},t.isProfiler=function(e){return g(e)===f},t.isStrictMode=function(e){return g(e)===a},t.isSuspense=function(e){return g(e)===p}}));e(r);var o=t((function(e,t){"production"!==process.env.NODE_ENV&&function(){Object.defineProperty(t,"__esModule",{value:!0});var e="function"==typeof Symbol&&Symbol.for,r=e?Symbol.for("react.element"):60103,o=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,c=e?Symbol.for("react.strict_mode"):60108,a=e?Symbol.for("react.profiler"):60114,f=e?Symbol.for("react.provider"):60109,s=e?Symbol.for("react.context"):60110,i=e?Symbol.for("react.async_mode"):60111,u=e?Symbol.for("react.concurrent_mode"):60111,y=e?Symbol.for("react.forward_ref"):60112,l=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,m=e?Symbol.for("react.memo"):60115,d=e?Symbol.for("react.lazy"):60116,b=e?Symbol.for("react.fundamental"):60117,S=e?Symbol.for("react.responder"):60118,$=e?Symbol.for("react.scope"):60119;var v=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;t>o;o++)r[o-1]=arguments[o];var n=0,c="Warning: "+e.replace(/%s/g,(function(){return r[n++]}));void 0!==console&&console.warn(c);try{throw Error(c)}catch(e){}},g=function(e,t){if(void 0===t)throw Error("`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning message argument");if(!e){for(var r=arguments.length,o=Array(r>2?r-2:0),n=2;r>n;n++)o[n-2]=arguments[n];v.apply(void 0,[t].concat(o))}};function P(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:var p=e.type;switch(p){case i:case u:case n:case a:case c:case l:return p;default:var b=p&&p.$$typeof;switch(b){case s:case y:case d:case m:case f:return b;default:return t}}case o:return t}}}var h=i,w=u,M=s,x=f,C=r,O=y,_=n,j=d,E=m,F=o,N=a,R=c,T=l,A=!1;function z(e){return P(e)===u}t.typeOf=P,t.AsyncMode=h,t.ConcurrentMode=w,t.ContextConsumer=M,t.ContextProvider=x,t.Element=C,t.ForwardRef=O,t.Fragment=_,t.Lazy=j,t.Memo=E,t.Portal=F,t.Profiler=N,t.StrictMode=R,t.Suspense=T,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===n||e===u||e===a||e===c||e===l||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===m||e.$$typeof===f||e.$$typeof===s||e.$$typeof===y||e.$$typeof===b||e.$$typeof===S||e.$$typeof===$)},t.isAsyncMode=function(e){return A||(A=!0,g(!1,"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),z(e)||P(e)===i},t.isConcurrentMode=z,t.isContextConsumer=function(e){return P(e)===s},t.isContextProvider=function(e){return P(e)===f},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return P(e)===y},t.isFragment=function(e){return P(e)===n},t.isLazy=function(e){return P(e)===d},t.isMemo=function(e){return P(e)===m},t.isPortal=function(e){return P(e)===o},t.isProfiler=function(e){return P(e)===a},t.isStrictMode=function(e){return P(e)===c},t.isSuspense=function(e){return P(e)===l}}()}));e(o);var n=t((function(e){e.exports="production"===process.env.NODE_ENV?r:o})),c=n.Memo,a=n.isMemo,f={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},s={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},u={};function y(e){return a(e)?i:u[e.$$typeof]||f}u[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},u[c]=i;var l=Object.defineProperty,p=Object.getOwnPropertyNames,m=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,b=Object.getPrototypeOf,S=Object.prototype;return function e(t,r,o){if("string"!=typeof r){if(S){var n=b(r);n&&n!==S&&e(t,n,o)}var c=p(r);m&&(c=c.concat(m(r)));for(var a=y(t),f=y(r),i=0;c.length>i;++i){var u=c[i];if(!(s[u]||o&&o[u]||f&&f[u]||a&&a[u])){var $=d(r,u);try{l(t,u,$)}catch(e){}}}}return t}})); diff --git a/node_modules/hoist-non-react-statics/package.json b/node_modules/hoist-non-react-statics/package.json new file mode 100644 index 00000000..f5ec09d5 --- /dev/null +++ b/node_modules/hoist-non-react-statics/package.json @@ -0,0 +1,55 @@ +{ + "name": "hoist-non-react-statics", + "version": "3.3.2", + "description": "Copies non-react specific statics from a child component to a parent component", + "main": "dist/hoist-non-react-statics.cjs.js", + "repository": { + "type": "git", + "url": "git://github.com/mridgway/hoist-non-react-statics.git" + }, + "files": [ + "src", + "dist", + "index.d.ts" + ], + "scripts": { + "lint": "eslint src", + "build": "rimraf dist && rollup -c", + "test": "nyc mocha tests/unit/ --recursive --reporter spec --require=@babel/register", + "coverage": "nyc report --reporter=text-lcov | coveralls", + "prepublish": "npm test" + }, + "author": "Michael Ridgway ", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + }, + "devDependencies": { + "@babel/core": "^7.5.0", + "@babel/plugin-proposal-class-properties": "^7.5.0", + "@babel/preset-env": "^7.5.0", + "@babel/preset-react": "^7.0.0", + "@babel/register": "^7.4.4", + "chai": "^4.2.0", + "coveralls": "^2.11.1", + "create-react-class": "^15.5.3", + "eslint": "^4.13.1", + "mocha": "^6.1.4", + "nyc": "^14.1.1", + "pre-commit": "^1.0.7", + "prop-types": "^15.6.2", + "react": "^16.7.0", + "rimraf": "^2.6.2", + "rollup": "^1.16.6", + "rollup-plugin-babel": "^4.3.3", + "rollup-plugin-commonjs": "^10.0.1", + "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-terser": "^5.1.1" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "keywords": [ + "react" + ] +} diff --git a/node_modules/hoist-non-react-statics/src/index.js b/node_modules/hoist-non-react-statics/src/index.js new file mode 100644 index 00000000..40b764b9 --- /dev/null +++ b/node_modules/hoist-non-react-statics/src/index.js @@ -0,0 +1,104 @@ +/** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +import { ForwardRef, Memo, isMemo } from 'react-is'; + +const REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true +}; + +const KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true +}; + +const FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true +}; + +const MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true, +} + +const TYPE_STATICS = {}; +TYPE_STATICS[ForwardRef] = FORWARD_REF_STATICS; +TYPE_STATICS[Memo] = MEMO_STATICS; + +function getStatics(component) { + // React v16.11 and below + if (isMemo(component)) { + return MEMO_STATICS; + } + + // React v16.12 and above + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; +} + +const defineProperty = Object.defineProperty; +const getOwnPropertyNames = Object.getOwnPropertyNames; +const getOwnPropertySymbols = Object.getOwnPropertySymbols; +const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +const getPrototypeOf = Object.getPrototypeOf; +const objectPrototype = Object.prototype; + +export default function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components + + if (objectPrototype) { + const inheritedComponent = getPrototypeOf(sourceComponent); + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + let keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols) { + keys = keys.concat(getOwnPropertySymbols(sourceComponent)); + } + + const targetStatics = getStatics(targetComponent); + const sourceStatics = getStatics(sourceComponent); + + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; + if (!KNOWN_STATICS[key] && + !(blacklist && blacklist[key]) && + !(sourceStatics && sourceStatics[key]) && + !(targetStatics && targetStatics[key]) + ) { + const descriptor = getOwnPropertyDescriptor(sourceComponent, key); + try { // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + } + + return targetComponent; +}; diff --git a/node_modules/memoize-one/LICENSE b/node_modules/memoize-one/LICENSE new file mode 100644 index 00000000..f3dcb580 --- /dev/null +++ b/node_modules/memoize-one/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Alexander Reardon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/node_modules/memoize-one/README.md b/node_modules/memoize-one/README.md new file mode 100644 index 00000000..b31f6358 --- /dev/null +++ b/node_modules/memoize-one/README.md @@ -0,0 +1,268 @@ +# memoize-one + +A memoization library that only caches the result of the most recent arguments. + +> Also [async version](https://github.com/microlinkhq/async-memoize-one). + +[![Build Status](https://travis-ci.org/alexreardon/memoize-one.svg?branch=master)](https://travis-ci.org/alexreardon/memoize-one) +[![npm](https://img.shields.io/npm/v/memoize-one.svg)](https://www.npmjs.com/package/memoize-one) +![types](https://img.shields.io/badge/types-typescript%20%7C%20flow-blueviolet) +[![dependencies](https://david-dm.org/alexreardon/memoize-one.svg)](https://david-dm.org/alexreardon/memoize-one) +[![minzip](https://img.shields.io/bundlephobia/minzip/memoize-one.svg)](https://www.npmjs.com/package/memoize-one) +[![Downloads per month](https://img.shields.io/npm/dm/memoize-one.svg)](https://www.npmjs.com/package/memoize-one) + +## Rationale + +Unlike other memoization libraries, `memoize-one` only remembers the latest arguments and result. No need to worry about cache busting mechanisms such as `maxAge`, `maxSize`, `exclusions` and so on, which can be prone to memory leaks. `memoize-one` simply remembers the last arguments, and if the function is next called with the same arguments then it returns the previous result. + +## Usage + +```js +// memoize-one uses the default import +import memoizeOne from 'memoize-one'; + +const add = (a, b) => a + b; +const memoizedAdd = memoizeOne(add); + +memoizedAdd(1, 2); // 3 + +memoizedAdd(1, 2); // 3 +// Add function is not executed: previous result is returned + +memoizedAdd(2, 3); // 5 +// Add function is called to get new value + +memoizedAdd(2, 3); // 5 +// Add function is not executed: previous result is returned + +memoizedAdd(1, 2); // 3 +// Add function is called to get new value. +// While this was previously cached, +// it is not the latest so the cached result is lost +``` + +## Installation + +```bash +# yarn +yarn add memoize-one + +# npm +npm install memoize-one --save +``` + +## Function argument equality + +By default, we apply our own _fast_ and _naive_ equality function to determine whether the arguments provided to your function are equal. You can see the full code here: [are-inputs-equal.ts](https://github.com/alexreardon/memoize-one/blob/master/src/are-inputs-equal.ts). + +(By default) function arguments are considered equal if: + +1. there is same amount of arguments +2. each new argument has strict equality (`===`) with the previous argument +3. **[special case]** if two arguments are not `===` and they are both `NaN` then the two arguments are treated as equal + +What this looks like in practice: + +```js +import memoizeOne from 'memoize-one'; + +// add all numbers provided to the function +const add = (...args = []) => + args.reduce((current, value) => { + return current + value; + }, 0); +const memoizedAdd = memoizeOne(add); +``` + +> 1. there is same amount of arguments + +```js +memoizedAdd(1, 2); +// the amount of arguments has changed, so underlying add function is called +memoizedAdd(1, 2, 3); +``` + +> 2. new arguments have strict equality (`===`) with the previous argument + +```js +memoizedAdd(1, 2); +// each argument is `===` to the last argument, so cache is used +memoizedAdd(1, 2); +// second argument has changed, so add function is called again +memoizedAdd(1, 3); +// the first value is not `===` to the previous first value (1 !== 3) +// so add function is called again +memoizedAdd(3, 1); +``` + +> 3. **[special case]** if the arguments are not `===` and they are both `NaN` then the argument is treated as equal + +```js +memoizedAdd(NaN); +// Even though NaN !== NaN these arguments are treated as equal +memoizedAdd(NaN); +``` + +## Custom equality function + +You can also pass in a custom function for checking the equality of two sets of arguments + +```js +const memoized = memoizeOne(fn, isEqual); +``` + +The equality function needs to conform to this `type`: + +```ts +type EqualityFn = (newArgs: any[], lastArgs: any[]) => boolean; + +// You can import this type from memoize-one if you like + +// typescript +import { EqualityFn } from 'memoize-one'; + +// flow +import type { EqualityFn } from 'memoize-one'; +``` + +An equality function should return `true` if the arguments are equal. If `true` is returned then the wrapped function will not be called. + +A custom equality function needs to compare `Arrays`. The `newArgs` array will be a new reference every time so a simple `newArgs === lastArgs` will always return `false`. + +Equality functions are not called if the `this` context of the function has changed (see below). + +Here is an example that uses a [dequal](https://github.com/lukeed/dequal) deep equal equality check + +> `dequal` correctly handles deep comparing two arrays + +```js +import memoizeOne from 'memoize-one'; +import { dequal as isDeepEqual } from 'dequal'; + +const identity = (x) => x; + +const shallowMemoized = memoizeOne(identity); +const deepMemoized = memoizeOne(identity, isDeepEqual); + +const result1 = shallowMemoized({ foo: 'bar' }); +const result2 = shallowMemoized({ foo: 'bar' }); + +result1 === result2; // false - different object reference + +const result3 = deepMemoized({ foo: 'bar' }); +const result4 = deepMemoized({ foo: 'bar' }); + +result3 === result4; // true - arguments are deep equal +``` + +## `this` + +### `memoize-one` correctly respects `this` control + +This library takes special care to maintain, and allow control over the the `this` context for **both** the original function being memoized as well as the returned memoized function. Both the original function and the memoized function's `this` context respect [all the `this` controlling techniques](https://github.com/getify/You-Dont-Know-JS/blob/master/this%20%26%20object%20prototypes/ch2.md): + +- new bindings (`new`) +- explicit binding (`call`, `apply`, `bind`); +- implicit binding (call site: `obj.foo()`); +- default binding (`window` or `undefined` in `strict mode`); +- fat arrow binding (binding to lexical `this`) +- ignored this (pass `null` as `this` to explicit binding) + +### Changes to `this` is considered an argument change + +Changes to the running context (`this`) of a function can result in the function returning a different value even though its arguments have stayed the same: + +```js +function getA() { + return this.a; +} + +const temp1 = { + a: 20, +}; +const temp2 = { + a: 30, +}; + +getA.call(temp1); // 20 +getA.call(temp2); // 30 +``` + +Therefore, in order to prevent against unexpected results, `memoize-one` takes into account the current execution context (`this`) of the memoized function. If `this` is different to the previous invocation then it is considered a change in argument. [further discussion](https://github.com/alexreardon/memoize-one/issues/3). + +Generally this will be of no impact if you are not explicity controlling the `this` context of functions you want to memoize with [explicit binding](https://github.com/getify/You-Dont-Know-JS/blob/master/this%20%26%20object%20prototypes/ch2.md#explicit-binding) or [implicit binding](https://github.com/getify/You-Dont-Know-JS/blob/master/this%20%26%20object%20prototypes/ch2.md#implicit-binding). `memoize-One` will detect when you are manipulating `this` and will then consider the `this` context as an argument. If `this` changes, it will re-execute the original function even if the arguments have not changed. + +## When your result function `throw`s + +> There is no caching when your result function throws + +If your result function `throw`s then the memoized function will also throw. The throw will not break the memoized functions existing argument cache. It means the memoized function will pretend like it was never called with arguments that made it `throw`. + +```js +const canThrow = (name: string) => { + console.log('called'); + if (name === 'throw') { + throw new Error(name); + } + return { name }; +}; + +const memoized = memoizeOne(canThrow); + +const value1 = memoized('Alex'); +// console.log => 'called' +const value2 = memoized('Alex'); +// result function not called + +console.log(value1 === value2); +// console.log => true + +try { + memoized('throw'); + // console.log => 'called' +} catch (e) { + firstError = e; +} + +try { + memoized('throw'); + // console.log => 'called' + // the result function was called again even though it was called twice + // with the 'throw' string +} catch (e) { + secondError = e; +} + +console.log(firstError !== secondError); + +const value3 = memoized('Alex'); +// result function not called as the original memoization cache has not been busted +console.log(value1 === value3); +// console.log => true +``` + +## Performance 🚀 + +### Tiny + +`memoize-one` is super lightweight at [![min](https://img.shields.io/bundlephobia/min/memoize-one.svg?label=)](https://www.npmjs.com/package/memoize-one) minified and [![minzip](https://img.shields.io/bundlephobia/minzip/memoize-one.svg?label=)](https://www.npmjs.com/package/memoize-one) gzipped. (`1KB` = `1,024 Bytes`) + +### Extremely fast + +`memoize-one` performs better or on par with than other popular memoization libraries for the purpose of remembering the latest invocation. + +**Results** + +- [simple arguments](https://www.measurethat.net/Benchmarks/ShowResult/4452) +- [complex arguments](https://www.measurethat.net/Benchmarks/ShowResult/4488) + +The comparisons are not exhaustive and are primarily to show that `memoize-one` accomplishes remembering the latest invocation really fast. The benchmarks do not take into account the differences in feature sets, library sizes, parse time, and so on. + +## Code health 👍 + +- Tested with all built in [JavaScript types](https://github.com/getify/You-Dont-Know-JS/blob/1st-ed/types%20%26%20grammar/ch1.md). +- 100% code coverage +- [Continuous integration](https://travis-ci.org/alexreardon/memoize-one) to run tests and type checks. +- Written in `Typescript` +- Correct typing for `Typescript` and `flow` type systems +- No dependencies diff --git a/node_modules/memoize-one/dist/are-inputs-equal.d.ts b/node_modules/memoize-one/dist/are-inputs-equal.d.ts new file mode 100644 index 00000000..25e273d9 --- /dev/null +++ b/node_modules/memoize-one/dist/are-inputs-equal.d.ts @@ -0,0 +1 @@ +export default function areInputsEqual(newInputs: readonly unknown[], lastInputs: readonly unknown[]): boolean; diff --git a/node_modules/memoize-one/dist/memoize-one.cjs.js b/node_modules/memoize-one/dist/memoize-one.cjs.js new file mode 100644 index 00000000..a45ad714 --- /dev/null +++ b/node_modules/memoize-one/dist/memoize-one.cjs.js @@ -0,0 +1,51 @@ +'use strict'; + +var safeIsNaN = Number.isNaN || + function ponyfill(value) { + return typeof value === 'number' && value !== value; + }; +function isEqual(first, second) { + if (first === second) { + return true; + } + if (safeIsNaN(first) && safeIsNaN(second)) { + return true; + } + return false; +} +function areInputsEqual(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) { + return false; + } + for (var i = 0; i < newInputs.length; i++) { + if (!isEqual(newInputs[i], lastInputs[i])) { + return false; + } + } + return true; +} + +function memoizeOne(resultFn, isEqual) { + if (isEqual === void 0) { isEqual = areInputsEqual; } + var lastThis; + var lastArgs = []; + var lastResult; + var calledOnce = false; + function memoized() { + var newArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + newArgs[_i] = arguments[_i]; + } + if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) { + return lastResult; + } + lastResult = resultFn.apply(this, newArgs); + calledOnce = true; + lastThis = this; + lastArgs = newArgs; + return lastResult; + } + return memoized; +} + +module.exports = memoizeOne; diff --git a/node_modules/memoize-one/dist/memoize-one.cjs.js.flow b/node_modules/memoize-one/dist/memoize-one.cjs.js.flow new file mode 100644 index 00000000..77aa9c18 --- /dev/null +++ b/node_modules/memoize-one/dist/memoize-one.cjs.js.flow @@ -0,0 +1,8 @@ +// @flow +export type EqualityFn = (newArgs: mixed[], lastArgs: mixed[]) => boolean; + +// default export +declare export default function memoizeOne mixed>( + fn: ResultFn, + isEqual?: EqualityFn, +): ResultFn; diff --git a/node_modules/memoize-one/dist/memoize-one.d.ts b/node_modules/memoize-one/dist/memoize-one.d.ts new file mode 100644 index 00000000..96d4160f --- /dev/null +++ b/node_modules/memoize-one/dist/memoize-one.d.ts @@ -0,0 +1,3 @@ +export declare type EqualityFn = (newArgs: any[], lastArgs: any[]) => boolean; +declare function memoizeOne ReturnType>(resultFn: ResultFn, isEqual?: EqualityFn): ResultFn; +export default memoizeOne; diff --git a/node_modules/memoize-one/dist/memoize-one.esm.js b/node_modules/memoize-one/dist/memoize-one.esm.js new file mode 100644 index 00000000..758da888 --- /dev/null +++ b/node_modules/memoize-one/dist/memoize-one.esm.js @@ -0,0 +1,49 @@ +var safeIsNaN = Number.isNaN || + function ponyfill(value) { + return typeof value === 'number' && value !== value; + }; +function isEqual(first, second) { + if (first === second) { + return true; + } + if (safeIsNaN(first) && safeIsNaN(second)) { + return true; + } + return false; +} +function areInputsEqual(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) { + return false; + } + for (var i = 0; i < newInputs.length; i++) { + if (!isEqual(newInputs[i], lastInputs[i])) { + return false; + } + } + return true; +} + +function memoizeOne(resultFn, isEqual) { + if (isEqual === void 0) { isEqual = areInputsEqual; } + var lastThis; + var lastArgs = []; + var lastResult; + var calledOnce = false; + function memoized() { + var newArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + newArgs[_i] = arguments[_i]; + } + if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) { + return lastResult; + } + lastResult = resultFn.apply(this, newArgs); + calledOnce = true; + lastThis = this; + lastArgs = newArgs; + return lastResult; + } + return memoized; +} + +export default memoizeOne; diff --git a/node_modules/memoize-one/dist/memoize-one.js b/node_modules/memoize-one/dist/memoize-one.js new file mode 100644 index 00000000..3a126662 --- /dev/null +++ b/node_modules/memoize-one/dist/memoize-one.js @@ -0,0 +1,57 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.memoizeOne = factory()); +}(this, (function () { 'use strict'; + + var safeIsNaN = Number.isNaN || + function ponyfill(value) { + return typeof value === 'number' && value !== value; + }; + function isEqual(first, second) { + if (first === second) { + return true; + } + if (safeIsNaN(first) && safeIsNaN(second)) { + return true; + } + return false; + } + function areInputsEqual(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) { + return false; + } + for (var i = 0; i < newInputs.length; i++) { + if (!isEqual(newInputs[i], lastInputs[i])) { + return false; + } + } + return true; + } + + function memoizeOne(resultFn, isEqual) { + if (isEqual === void 0) { isEqual = areInputsEqual; } + var lastThis; + var lastArgs = []; + var lastResult; + var calledOnce = false; + function memoized() { + var newArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + newArgs[_i] = arguments[_i]; + } + if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) { + return lastResult; + } + lastResult = resultFn.apply(this, newArgs); + calledOnce = true; + lastThis = this; + lastArgs = newArgs; + return lastResult; + } + return memoized; + } + + return memoizeOne; + +}))); diff --git a/node_modules/memoize-one/dist/memoize-one.min.js b/node_modules/memoize-one/dist/memoize-one.min.js new file mode 100644 index 00000000..054c8814 --- /dev/null +++ b/node_modules/memoize-one/dist/memoize-one.min.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).memoizeOne=n()}(this,(function(){"use strict";var e=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function n(n,t){if(n.length!==t.length)return!1;for(var r=0;r", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alexreardon/memoize-one.git" + }, + "files": [ + "/dist", + "/src" + ], + "size-limit": [ + { + "path": "dist/memoize-one.min.js", + "limit": "214B" + }, + { + "path": "dist/memoize-one.js", + "limit": "216B" + }, + { + "path": "dist/memoize-one.cjs.js", + "limit": "213B" + }, + { + "path": "dist/memoize-one.esm.js", + "limit": "218B" + } + ], + "keywords": [ + "memoize", + "memoization", + "cache", + "performance" + ], + "dependencies": {}, + "devDependencies": { + "@size-limit/preset-small-lib": "^4.10.2", + "@types/jest": "^26.0.22", + "@types/lodash.isequal": "^4.5.5", + "@typescript-eslint/eslint-plugin": "^4.22.0", + "@typescript-eslint/parser": "^4.22.0", + "benchmark": "^2.1.4", + "cross-env": "^7.0.3", + "eslint": "7.24.0", + "eslint-config-prettier": "^8.1.0", + "eslint-plugin-jest": "^24.3.5", + "eslint-plugin-prettier": "^3.3.1", + "jest": "^26.6.3", + "lodash.isequal": "^4.5.0", + "prettier": "2.2.1", + "rimraf": "3.0.2", + "rollup": "^2.45.1", + "rollup-plugin-replace": "^2.2.0", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript": "^1.0.1", + "size-limit": "^4.10.2", + "ts-jest": "^26.5.4", + "ts-node": "^9.1.1", + "tslib": "^2.2.0", + "typescript": "^4.2.4" + }, + "config": { + "prettier_target": "src/**/*.{ts,js,jsx,md,json} test/**/*.{ts,js,jsx,md,json}" + }, + "scripts": { + "validate": "yarn lint && yarn typecheck", + "test": "yarn jest", + "test:size": "yarn build && size-limit", + "typecheck": "yarn tsc --noEmit", + "prettier:check": "yarn prettier --debug-check $npm_package_config_prettier_target", + "prettier:write": "yarn prettier --write $npm_package_config_prettier_target", + "lint:eslint": "eslint $npm_package_config_prettier_target", + "lint": "yarn lint:eslint && yarn prettier:check", + "build": "yarn build:clean && yarn build:dist && yarn build:typescript && yarn build:flow", + "build:clean": "rimraf dist", + "build:dist": "rollup -c", + "build:typescript": "tsc ./src/memoize-one.ts --emitDeclarationOnly --declaration --outDir ./dist", + "build:flow": "cp src/memoize-one.js.flow dist/memoize-one.cjs.js.flow", + "perf": "ts-node ./benchmarks/shallow-equal.ts", + "prepublishOnly": "yarn build" + } +} diff --git a/node_modules/memoize-one/src/are-inputs-equal.ts b/node_modules/memoize-one/src/are-inputs-equal.ts new file mode 100644 index 00000000..04d7c451 --- /dev/null +++ b/node_modules/memoize-one/src/are-inputs-equal.ts @@ -0,0 +1,39 @@ +// Number.isNaN as it is not supported in IE11 so conditionally using ponyfill +// Using Number.isNaN where possible as it is ~10% faster + +const safeIsNaN = + Number.isNaN || + function ponyfill(value: unknown): boolean { + return typeof value === 'number' && value !== value; + }; + +function isEqual(first: unknown, second: unknown): boolean { + if (first === second) { + return true; + } + + // Special case for NaN (NaN !== NaN) + if (safeIsNaN(first) && safeIsNaN(second)) { + return true; + } + + return false; +} + +export default function areInputsEqual( + newInputs: readonly unknown[], + lastInputs: readonly unknown[], +): boolean { + // no checks needed if the inputs length has changed + if (newInputs.length !== lastInputs.length) { + return false; + } + // Using for loop for speed. It generally performs better than array.every + // https://github.com/alexreardon/memoize-one/pull/59 + for (let i = 0; i < newInputs.length; i++) { + if (!isEqual(newInputs[i], lastInputs[i])) { + return false; + } + } + return true; +} diff --git a/node_modules/memoize-one/src/memoize-one.js.flow b/node_modules/memoize-one/src/memoize-one.js.flow new file mode 100644 index 00000000..77aa9c18 --- /dev/null +++ b/node_modules/memoize-one/src/memoize-one.js.flow @@ -0,0 +1,8 @@ +// @flow +export type EqualityFn = (newArgs: mixed[], lastArgs: mixed[]) => boolean; + +// default export +declare export default function memoizeOne mixed>( + fn: ResultFn, + isEqual?: EqualityFn, +): ResultFn; diff --git a/node_modules/memoize-one/src/memoize-one.ts b/node_modules/memoize-one/src/memoize-one.ts new file mode 100644 index 00000000..02ba964a --- /dev/null +++ b/node_modules/memoize-one/src/memoize-one.ts @@ -0,0 +1,40 @@ +import areInputsEqual from './are-inputs-equal'; + +// Using ReadonlyArray rather than readonly T as it works with TS v3 +export type EqualityFn = (newArgs: any[], lastArgs: any[]) => boolean; + +function memoizeOne< + // Need to use 'any' rather than 'unknown' here as it has + // The correct Generic narrowing behaviour. + ResultFn extends (this: any, ...newArgs: any[]) => ReturnType +>(resultFn: ResultFn, isEqual: EqualityFn = areInputsEqual): ResultFn { + let lastThis: unknown; + let lastArgs: unknown[] = []; + let lastResult: ReturnType; + let calledOnce: boolean = false; + + // breaking cache when context (this) or arguments change + function memoized(this: unknown, ...newArgs: unknown[]): ReturnType { + if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) { + return lastResult; + } + + // Throwing during an assignment aborts the assignment: https://codepen.io/alexreardon/pen/RYKoaz + // Doing the lastResult assignment first so that if it throws + // nothing will be overwritten + lastResult = resultFn.apply(this, newArgs); + calledOnce = true; + lastThis = this; + lastArgs = newArgs; + return lastResult; + } + + return memoized as ResultFn; +} + +// default export +export default memoizeOne; + +// disabled for now as mixing named and +// default exports is problematic with CommonJS +// export { memoizeOne }; diff --git a/node_modules/prop-types/node_modules/react-is/LICENSE b/node_modules/pretty-format/node_modules/react-is/LICENSE similarity index 100% rename from node_modules/prop-types/node_modules/react-is/LICENSE rename to node_modules/pretty-format/node_modules/react-is/LICENSE diff --git a/node_modules/prop-types/node_modules/react-is/README.md b/node_modules/pretty-format/node_modules/react-is/README.md similarity index 100% rename from node_modules/prop-types/node_modules/react-is/README.md rename to node_modules/pretty-format/node_modules/react-is/README.md diff --git a/node_modules/pretty-format/node_modules/react-is/build-info.json b/node_modules/pretty-format/node_modules/react-is/build-info.json new file mode 100644 index 00000000..db5dbe5e --- /dev/null +++ b/node_modules/pretty-format/node_modules/react-is/build-info.json @@ -0,0 +1,8 @@ +{ + "branch": "pull/21051", + "buildNumber": "287151", + "checksum": "94f5c65", + "commit": "12adaffef", + "environment": "ci", + "reactVersion": "17.0.0-12adaffef" +} diff --git a/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js b/node_modules/pretty-format/node_modules/react-is/cjs/react-is.development.js similarity index 51% rename from node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js rename to node_modules/pretty-format/node_modules/react-is/cjs/react-is.development.js index 8a80b768..b2e388eb 100644 --- a/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +++ b/node_modules/pretty-format/node_modules/react-is/cjs/react-is.development.js @@ -1,4 +1,4 @@ -/** @license React v16.13.1 +/** @license React v17.0.2 * react-is.development.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -9,39 +9,81 @@ 'use strict'; - - if (process.env.NODE_ENV !== "production") { (function() { 'use strict'; +// ATTENTION +// When adding new symbols to this file, +// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' // The Symbol used to tag the ReactElement-like types. If there is no native Symbol // nor polyfill, then a plain number is used for performance. -var hasSymbol = typeof Symbol === 'function' && Symbol.for; -var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; -var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; -var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; -var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; -var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; -var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; -var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary -// (unstable) APIs that have been removed. Can we remove the symbols? - -var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; -var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; -var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; -var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; -var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; -var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; -var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; -var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; -var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; -var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; -var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; +var REACT_ELEMENT_TYPE = 0xeac7; +var REACT_PORTAL_TYPE = 0xeaca; +var REACT_FRAGMENT_TYPE = 0xeacb; +var REACT_STRICT_MODE_TYPE = 0xeacc; +var REACT_PROFILER_TYPE = 0xead2; +var REACT_PROVIDER_TYPE = 0xeacd; +var REACT_CONTEXT_TYPE = 0xeace; +var REACT_FORWARD_REF_TYPE = 0xead0; +var REACT_SUSPENSE_TYPE = 0xead1; +var REACT_SUSPENSE_LIST_TYPE = 0xead8; +var REACT_MEMO_TYPE = 0xead3; +var REACT_LAZY_TYPE = 0xead4; +var REACT_BLOCK_TYPE = 0xead9; +var REACT_SERVER_BLOCK_TYPE = 0xeada; +var REACT_FUNDAMENTAL_TYPE = 0xead5; +var REACT_SCOPE_TYPE = 0xead7; +var REACT_OPAQUE_ID_TYPE = 0xeae0; +var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1; +var REACT_OFFSCREEN_TYPE = 0xeae2; +var REACT_LEGACY_HIDDEN_TYPE = 0xeae3; + +if (typeof Symbol === 'function' && Symbol.for) { + var symbolFor = Symbol.for; + REACT_ELEMENT_TYPE = symbolFor('react.element'); + REACT_PORTAL_TYPE = symbolFor('react.portal'); + REACT_FRAGMENT_TYPE = symbolFor('react.fragment'); + REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode'); + REACT_PROFILER_TYPE = symbolFor('react.profiler'); + REACT_PROVIDER_TYPE = symbolFor('react.provider'); + REACT_CONTEXT_TYPE = symbolFor('react.context'); + REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref'); + REACT_SUSPENSE_TYPE = symbolFor('react.suspense'); + REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list'); + REACT_MEMO_TYPE = symbolFor('react.memo'); + REACT_LAZY_TYPE = symbolFor('react.lazy'); + REACT_BLOCK_TYPE = symbolFor('react.block'); + REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block'); + REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental'); + REACT_SCOPE_TYPE = symbolFor('react.scope'); + REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id'); + REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode'); + REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen'); + REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden'); +} + +// Filter certain DOM attributes (e.g. src, href) if their values are empty strings. + +var enableScopeAPI = false; // Experimental Create Event Handle API. function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); + if (typeof type === 'string' || typeof type === 'function') { + return true; + } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill). + + + if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) { + return true; + } + + if (typeof type === 'object' && type !== null) { + if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { + return true; + } + } + + return false; } function typeOf(object) { @@ -53,12 +95,11 @@ function typeOf(object) { var type = object.type; switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: case REACT_FRAGMENT_TYPE: case REACT_PROFILER_TYPE: case REACT_STRICT_MODE_TYPE: case REACT_SUSPENSE_TYPE: + case REACT_SUSPENSE_LIST_TYPE: return type; default: @@ -84,10 +125,7 @@ function typeOf(object) { } return undefined; -} // AsyncMode is deprecated along with isAsyncMode - -var AsyncMode = REACT_ASYNC_MODE_TYPE; -var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; +} var ContextConsumer = REACT_CONTEXT_TYPE; var ContextProvider = REACT_PROVIDER_TYPE; var Element = REACT_ELEMENT_TYPE; @@ -99,21 +137,30 @@ var Portal = REACT_PORTAL_TYPE; var Profiler = REACT_PROFILER_TYPE; var StrictMode = REACT_STRICT_MODE_TYPE; var Suspense = REACT_SUSPENSE_TYPE; -var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated +var hasWarnedAboutDeprecatedIsAsyncMode = false; +var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated function isAsyncMode(object) { { if (!hasWarnedAboutDeprecatedIsAsyncMode) { hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint - console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); } } - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + return false; } function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + { + if (!hasWarnedAboutDeprecatedIsConcurrentMode) { + hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + } + } + + return false; } function isContextConsumer(object) { return typeOf(object) === REACT_CONTEXT_TYPE; @@ -149,8 +196,6 @@ function isSuspense(object) { return typeOf(object) === REACT_SUSPENSE_TYPE; } -exports.AsyncMode = AsyncMode; -exports.ConcurrentMode = ConcurrentMode; exports.ContextConsumer = ContextConsumer; exports.ContextProvider = ContextProvider; exports.Element = Element; diff --git a/node_modules/pretty-format/node_modules/react-is/cjs/react-is.production.min.js b/node_modules/pretty-format/node_modules/react-is/cjs/react-is.production.min.js new file mode 100644 index 00000000..b4160904 --- /dev/null +++ b/node_modules/pretty-format/node_modules/react-is/cjs/react-is.production.min.js @@ -0,0 +1,14 @@ +/** @license React v17.0.2 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131; +if("function"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x("react.element");c=x("react.portal");d=x("react.fragment");e=x("react.strict_mode");f=x("react.profiler");g=x("react.provider");h=x("react.context");k=x("react.forward_ref");l=x("react.suspense");m=x("react.suspense_list");n=x("react.memo");p=x("react.lazy");q=x("react.block");r=x("react.server.block");u=x("react.fundamental");v=x("react.debug_trace_mode");w=x("react.legacy_hidden")} +function y(a){if("object"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H; +exports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n}; +exports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1}; +exports.typeOf=y; diff --git a/node_modules/prop-types/node_modules/react-is/index.js b/node_modules/pretty-format/node_modules/react-is/index.js similarity index 100% rename from node_modules/prop-types/node_modules/react-is/index.js rename to node_modules/pretty-format/node_modules/react-is/index.js diff --git a/node_modules/prop-types/node_modules/react-is/package.json b/node_modules/pretty-format/node_modules/react-is/package.json similarity index 95% rename from node_modules/prop-types/node_modules/react-is/package.json rename to node_modules/pretty-format/node_modules/react-is/package.json index 5f32de2e..1a6567dc 100644 --- a/node_modules/prop-types/node_modules/react-is/package.json +++ b/node_modules/pretty-format/node_modules/react-is/package.json @@ -1,6 +1,6 @@ { "name": "react-is", - "version": "16.13.1", + "version": "17.0.2", "description": "Brand checking of React Elements.", "main": "index.js", "repository": { diff --git a/node_modules/prop-types/node_modules/react-is/umd/react-is.development.js b/node_modules/pretty-format/node_modules/react-is/umd/react-is.development.js similarity index 53% rename from node_modules/prop-types/node_modules/react-is/umd/react-is.development.js rename to node_modules/pretty-format/node_modules/react-is/umd/react-is.development.js index a6bc018a..cc44c5bf 100644 --- a/node_modules/prop-types/node_modules/react-is/umd/react-is.development.js +++ b/node_modules/pretty-format/node_modules/react-is/umd/react-is.development.js @@ -1,4 +1,4 @@ -/** @license React v16.13.1 +/** @license React v17.0.2 * react-is.development.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -6,42 +6,83 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ - -'use strict'; - (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.ReactIs = {})); }(this, (function (exports) { 'use strict'; + // ATTENTION + // When adding new symbols to this file, + // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' // The Symbol used to tag the ReactElement-like types. If there is no native Symbol // nor polyfill, then a plain number is used for performance. - var hasSymbol = typeof Symbol === 'function' && Symbol.for; - var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; - var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; - var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; - var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; - var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; - var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; - var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary - // (unstable) APIs that have been removed. Can we remove the symbols? - - var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; - var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; - var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; - var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; - var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; - var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; - var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; - var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; - var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; - var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; - var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + var REACT_ELEMENT_TYPE = 0xeac7; + var REACT_PORTAL_TYPE = 0xeaca; + var REACT_FRAGMENT_TYPE = 0xeacb; + var REACT_STRICT_MODE_TYPE = 0xeacc; + var REACT_PROFILER_TYPE = 0xead2; + var REACT_PROVIDER_TYPE = 0xeacd; + var REACT_CONTEXT_TYPE = 0xeace; + var REACT_FORWARD_REF_TYPE = 0xead0; + var REACT_SUSPENSE_TYPE = 0xead1; + var REACT_SUSPENSE_LIST_TYPE = 0xead8; + var REACT_MEMO_TYPE = 0xead3; + var REACT_LAZY_TYPE = 0xead4; + var REACT_BLOCK_TYPE = 0xead9; + var REACT_SERVER_BLOCK_TYPE = 0xeada; + var REACT_FUNDAMENTAL_TYPE = 0xead5; + var REACT_SCOPE_TYPE = 0xead7; + var REACT_OPAQUE_ID_TYPE = 0xeae0; + var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1; + var REACT_OFFSCREEN_TYPE = 0xeae2; + var REACT_LEGACY_HIDDEN_TYPE = 0xeae3; + + if (typeof Symbol === 'function' && Symbol.for) { + var symbolFor = Symbol.for; + REACT_ELEMENT_TYPE = symbolFor('react.element'); + REACT_PORTAL_TYPE = symbolFor('react.portal'); + REACT_FRAGMENT_TYPE = symbolFor('react.fragment'); + REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode'); + REACT_PROFILER_TYPE = symbolFor('react.profiler'); + REACT_PROVIDER_TYPE = symbolFor('react.provider'); + REACT_CONTEXT_TYPE = symbolFor('react.context'); + REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref'); + REACT_SUSPENSE_TYPE = symbolFor('react.suspense'); + REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list'); + REACT_MEMO_TYPE = symbolFor('react.memo'); + REACT_LAZY_TYPE = symbolFor('react.lazy'); + REACT_BLOCK_TYPE = symbolFor('react.block'); + REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block'); + REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental'); + REACT_SCOPE_TYPE = symbolFor('react.scope'); + REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id'); + REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode'); + REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen'); + REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden'); + } + + // Filter certain DOM attributes (e.g. src, href) if their values are empty strings. + + var enableScopeAPI = false; // Experimental Create Event Handle API. function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); + if (typeof type === 'string' || typeof type === 'function') { + return true; + } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill). + + + if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) { + return true; + } + + if (typeof type === 'object' && type !== null) { + if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { + return true; + } + } + + return false; } function typeOf(object) { @@ -53,12 +94,11 @@ var type = object.type; switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: case REACT_FRAGMENT_TYPE: case REACT_PROFILER_TYPE: case REACT_STRICT_MODE_TYPE: case REACT_SUSPENSE_TYPE: + case REACT_SUSPENSE_LIST_TYPE: return type; default: @@ -84,10 +124,7 @@ } return undefined; - } // AsyncMode is deprecated along with isAsyncMode - - var AsyncMode = REACT_ASYNC_MODE_TYPE; - var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + } var ContextConsumer = REACT_CONTEXT_TYPE; var ContextProvider = REACT_PROVIDER_TYPE; var Element = REACT_ELEMENT_TYPE; @@ -99,21 +136,30 @@ var Profiler = REACT_PROFILER_TYPE; var StrictMode = REACT_STRICT_MODE_TYPE; var Suspense = REACT_SUSPENSE_TYPE; - var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + var hasWarnedAboutDeprecatedIsAsyncMode = false; + var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated function isAsyncMode(object) { { if (!hasWarnedAboutDeprecatedIsAsyncMode) { hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint - console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); } } - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + return false; } function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + { + if (!hasWarnedAboutDeprecatedIsConcurrentMode) { + hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + } + } + + return false; } function isContextConsumer(object) { return typeOf(object) === REACT_CONTEXT_TYPE; @@ -149,8 +195,6 @@ return typeOf(object) === REACT_SUSPENSE_TYPE; } - exports.AsyncMode = AsyncMode; - exports.ConcurrentMode = ConcurrentMode; exports.ContextConsumer = ContextConsumer; exports.ContextProvider = ContextProvider; exports.Element = Element; diff --git a/node_modules/pretty-format/node_modules/react-is/umd/react-is.production.min.js b/node_modules/pretty-format/node_modules/react-is/umd/react-is.production.min.js new file mode 100644 index 00000000..126d595e --- /dev/null +++ b/node_modules/pretty-format/node_modules/react-is/umd/react-is.production.min.js @@ -0,0 +1,14 @@ +/** @license React v17.0.2 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +(function(){'use strict';(function(b,d){"object"===typeof exports&&"undefined"!==typeof module?d(exports):"function"===typeof define&&define.amd?define(["exports"],d):(b=b||self,d(b.ReactIs={}))})(this,function(b){function d(a){if("object"===typeof a&&null!==a){var b=a.$$typeof;switch(b){case q:switch(a=a.type,a){case e:case f:case g:case h:case t:return a;default:switch(a=a&&a.$$typeof,a){case k:case l:case m:case n:case p:return a;default:return b}}case r:return b}}}var q=60103,r=60106,e=60107,g=60108,f=60114, +p=60109,k=60110,l=60112,h=60113,t=60120,n=60115,m=60116,u=60121,v=60122,w=60117,x=60129,y=60131;if("function"===typeof Symbol&&Symbol.for){var c=Symbol.for;q=c("react.element");r=c("react.portal");e=c("react.fragment");g=c("react.strict_mode");f=c("react.profiler");p=c("react.provider");k=c("react.context");l=c("react.forward_ref");h=c("react.suspense");t=c("react.suspense_list");n=c("react.memo");m=c("react.lazy");u=c("react.block");v=c("react.server.block");w=c("react.fundamental");x=c("react.debug_trace_mode"); +y=c("react.legacy_hidden")}b.ContextConsumer=k;b.ContextProvider=p;b.Element=q;b.ForwardRef=l;b.Fragment=e;b.Lazy=m;b.Memo=n;b.Portal=r;b.Profiler=f;b.StrictMode=g;b.Suspense=h;b.isAsyncMode=function(a){return!1};b.isConcurrentMode=function(a){return!1};b.isContextConsumer=function(a){return d(a)===k};b.isContextProvider=function(a){return d(a)===p};b.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===q};b.isForwardRef=function(a){return d(a)===l};b.isFragment=function(a){return d(a)=== +e};b.isLazy=function(a){return d(a)===m};b.isMemo=function(a){return d(a)===n};b.isPortal=function(a){return d(a)===r};b.isProfiler=function(a){return d(a)===f};b.isStrictMode=function(a){return d(a)===g};b.isSuspense=function(a){return d(a)===h};b.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===f||a===x||a===g||a===h||a===t||a===y||"object"===typeof a&&null!==a&&(a.$$typeof===m||a.$$typeof===n||a.$$typeof===p||a.$$typeof===k||a.$$typeof===l||a.$$typeof=== +w||a.$$typeof===u||a[0]===v)?!0:!1};b.typeOf=d}); +})(); diff --git a/node_modules/prop-types/node_modules/react-is/build-info.json b/node_modules/prop-types/node_modules/react-is/build-info.json deleted file mode 100644 index 4094da67..00000000 --- a/node_modules/prop-types/node_modules/react-is/build-info.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "branch": "pull/18344", - "buildNumber": "106499", - "checksum": "7fe5a2e", - "commit": "da834083c", - "environment": "ci", - "reactVersion": "16.12.0-da834083c" -} diff --git a/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js b/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js deleted file mode 100644 index 3e83c7ab..00000000 --- a/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** @license React v16.13.1 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict';var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b? -Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119; -function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d; -exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t}; -exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p}; -exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z; diff --git a/node_modules/prop-types/node_modules/react-is/umd/react-is.production.min.js b/node_modules/prop-types/node_modules/react-is/umd/react-is.production.min.js deleted file mode 100644 index 62fe6b22..00000000 --- a/node_modules/prop-types/node_modules/react-is/umd/react-is.production.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/** @license React v16.13.1 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -'use strict';(function(b,d){"object"===typeof exports&&"undefined"!==typeof module?d(exports):"function"===typeof define&&define.amd?define(["exports"],d):(b=b||self,d(b.ReactIs={}))})(this,function(b){function d(a){if("object"===typeof a&&null!==a){var b=a.$$typeof;switch(b){case r:switch(a=a.type,a){case t:case e:case f:case g:case h:case k:return a;default:switch(a=a&&a.$$typeof,a){case l:case m:case n:case p:case q:return a;default:return b}}case u:return b}}}function v(a){return d(a)===e}var c= -"function"===typeof Symbol&&Symbol.for,r=c?Symbol.for("react.element"):60103,u=c?Symbol.for("react.portal"):60106,f=c?Symbol.for("react.fragment"):60107,h=c?Symbol.for("react.strict_mode"):60108,g=c?Symbol.for("react.profiler"):60114,q=c?Symbol.for("react.provider"):60109,l=c?Symbol.for("react.context"):60110,t=c?Symbol.for("react.async_mode"):60111,e=c?Symbol.for("react.concurrent_mode"):60111,m=c?Symbol.for("react.forward_ref"):60112,k=c?Symbol.for("react.suspense"):60113,w=c?Symbol.for("react.suspense_list"): -60120,p=c?Symbol.for("react.memo"):60115,n=c?Symbol.for("react.lazy"):60116,x=c?Symbol.for("react.block"):60121,y=c?Symbol.for("react.fundamental"):60117,z=c?Symbol.for("react.responder"):60118,A=c?Symbol.for("react.scope"):60119;b.AsyncMode=t;b.ConcurrentMode=e;b.ContextConsumer=l;b.ContextProvider=q;b.Element=r;b.ForwardRef=m;b.Fragment=f;b.Lazy=n;b.Memo=p;b.Portal=u;b.Profiler=g;b.StrictMode=h;b.Suspense=k;b.isAsyncMode=function(a){return v(a)||d(a)===t};b.isConcurrentMode=v;b.isContextConsumer= -function(a){return d(a)===l};b.isContextProvider=function(a){return d(a)===q};b.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===r};b.isForwardRef=function(a){return d(a)===m};b.isFragment=function(a){return d(a)===f};b.isLazy=function(a){return d(a)===n};b.isMemo=function(a){return d(a)===p};b.isPortal=function(a){return d(a)===u};b.isProfiler=function(a){return d(a)===g};b.isStrictMode=function(a){return d(a)===h};b.isSuspense=function(a){return d(a)===k};b.isValidElementType= -function(a){return"string"===typeof a||"function"===typeof a||a===f||a===e||a===g||a===h||a===k||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===n||a.$$typeof===p||a.$$typeof===q||a.$$typeof===l||a.$$typeof===m||a.$$typeof===y||a.$$typeof===z||a.$$typeof===A||a.$$typeof===x)};b.typeOf=d}); diff --git a/node_modules/raf-schd/CHANGELOG.md b/node_modules/raf-schd/CHANGELOG.md new file mode 100644 index 00000000..a341b8e1 --- /dev/null +++ b/node_modules/raf-schd/CHANGELOG.md @@ -0,0 +1,4 @@ +# Changelog + +This project adheres to [Semantic Versioning 2.0](http://semver.org/). +All release notes and upgrade notes can be found on our [Github Releases](https://github.com/alexreardon/raf-schd/releases) page. diff --git a/node_modules/raf-schd/LICENSE b/node_modules/raf-schd/LICENSE new file mode 100644 index 00000000..b08d97ad --- /dev/null +++ b/node_modules/raf-schd/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Alex Reardon + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/raf-schd/README.md b/node_modules/raf-schd/README.md new file mode 100644 index 00000000..15e6f56d --- /dev/null +++ b/node_modules/raf-schd/README.md @@ -0,0 +1,154 @@ +# raf-schd + +A `throttle` function that uses [`requestAnimationFrame`](https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame) to limit the rate at which a function is called. + +[![Build Status](https://travis-ci.org/alexreardon/raf-schd.svg?branch=master)](https://travis-ci.org/alexreardon/raf-schd) [![dependencies](https://david-dm.org/alexreardon/raf-schd.svg)](https://david-dm.org/alexreardon/raf-schd) [![npm](https://img.shields.io/npm/v/raf-schd.svg)](https://www.npmjs.com/package/raf-schd) [![SemVer](https://img.shields.io/badge/SemVer-2.0.0-brightgreen.svg)](http://semver.org/spec/v2.0.0.html) + +> For background information on rate limiting functions, see [Rate limiting functions from scratch](https://www.youtube.com/watch?v=g_3e_bNU2e0) + +```js +import rafSchd from 'raf-schd'; + +const expensiveFn = arg => { + //... + console.log(arg); +}; + +const schedule = rafSchd(expensiveFn); + +schedule('foo'); +schedule('bar'); +schedule('baz'); + +// animation frame fires + +// => 'baz' +``` + +## Why? + +`raf-schd` supports the use case where you want to limit the rate at which your functions are called based on `requestAnimationFrame`. Unlike a standard `throttle` function, `raf-schd` uses `requestAnimationFrame` to rate limit, rather than waiting a fixed amount of time. Using `requestAnimationFrame` for throttling is powerful because the browser will automatically reduce the amount of frames provided based on the available resources. So if the browser only provides 30fps then your throttled function will only be called 30 times. + +`raf-schd` is an **extremely** useful performance utility. + +### Without `raf-schd` + +> Optimised scroll listener example taken from [MDN](https://developer.mozilla.org/en-US/docs/Web/Events/scroll) + +```js +var last_known_scroll_position = 0; +var ticking = false; + +function doSomething(scroll_pos) { + // do something with the scroll position +} + +window.addEventListener('scroll', function(e) { + last_known_scroll_position = window.scrollY; + if (!ticking) { + window.requestAnimationFrame(function() { + doSomething(last_known_scroll_position); + ticking = false; + }); + } + ticking = true; +}); +``` + +### With `raf-schd` + +```js +import rafSchd from 'raf-schd'; + +function doSomething(scroll_pos) { + // do something with the scroll position +} + +const schedule = rafSchd(doSomething); + +window.addEventListener('scroll', function() { + schedule(window.scrollY); +}); +``` + +At the top level `raf-schd` accepts any function a returns a new `ResultFn` (a function that wraps your original function). + +The `ResultFn` will execute your function with the **latest arguments** provided to it on the next animation frame. + +### Throttled with latest argument + +```js +import rafSchd from 'raf-schd'; + +const doSomething = () => {...}; + +const schedule = rafSchd(doSomething); + +schedule(1, 2); +schedule(3, 4); +schedule(5, 6); + +// animation frame fires + +// do something called with => '5, 6' +``` + +### Cancelling a frame with `.cancel` + +`raf-schd` adds a `.cancel` property to the `ResultFn` so that it can be easily cancelled. The frame will only be cancelled if it has not yet executed. + +```js +const schedule = rafSchd(doSomething); + +schedule('foo'); + +schedule.cancel(); + +// now doSomething will not be executed in the next animation frame +``` + +## Types + +### `rafSchedule` + +```js +type rafSchedule = (fn: Function) => ResultFn; + +// Adding a .cancel property to the WrapperFn + +type WrapperFn = (...arg: mixed[]) => void; +type CancelFn = {| + cancel: () => void, +|}; +type ResultFn = WrapperFn & CancelFn; +``` + +## Testing your code + +If you want to really ensure that your code is working how you intend it to - use [`raf-stub`](https://github.com/alexreardon/raf-stub) to test your animation frame logic. + +## Installation + +```bash +# yarn +yarn add raf-schd + +# npm +npm install raf-schd --save +``` + +## Module usage + +### ES6 module + +```js +import rafSchd from 'raf-schd'; +``` + +### CommonJS + +If you are in a CommonJS environment (eg [Node](https://nodejs.org)), then **you will need add `.default` to your import**: + +```js +const rafSchd = require('raf-schd').default; +``` diff --git a/node_modules/raf-schd/dist/raf-schd.cjs.js b/node_modules/raf-schd/dist/raf-schd.cjs.js new file mode 100644 index 00000000..ff7356ed --- /dev/null +++ b/node_modules/raf-schd/dist/raf-schd.cjs.js @@ -0,0 +1,36 @@ +'use strict'; + +var rafSchd = function rafSchd(fn) { + var lastArgs = []; + var frameId = null; + + var wrapperFn = function wrapperFn() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + lastArgs = args; + + if (frameId) { + return; + } + + frameId = requestAnimationFrame(function () { + frameId = null; + fn.apply(void 0, lastArgs); + }); + }; + + wrapperFn.cancel = function () { + if (!frameId) { + return; + } + + cancelAnimationFrame(frameId); + frameId = null; + }; + + return wrapperFn; +}; + +module.exports = rafSchd; diff --git a/node_modules/raf-schd/dist/raf-schd.cjs.js.flow b/node_modules/raf-schd/dist/raf-schd.cjs.js.flow new file mode 100644 index 00000000..6a6528bb --- /dev/null +++ b/node_modules/raf-schd/dist/raf-schd.cjs.js.flow @@ -0,0 +1,3 @@ +// @flow + +export * from '../src'; diff --git a/node_modules/raf-schd/dist/raf-schd.esm.js b/node_modules/raf-schd/dist/raf-schd.esm.js new file mode 100644 index 00000000..ae71ce02 --- /dev/null +++ b/node_modules/raf-schd/dist/raf-schd.esm.js @@ -0,0 +1,34 @@ +var rafSchd = function rafSchd(fn) { + var lastArgs = []; + var frameId = null; + + var wrapperFn = function wrapperFn() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + lastArgs = args; + + if (frameId) { + return; + } + + frameId = requestAnimationFrame(function () { + frameId = null; + fn.apply(void 0, lastArgs); + }); + }; + + wrapperFn.cancel = function () { + if (!frameId) { + return; + } + + cancelAnimationFrame(frameId); + frameId = null; + }; + + return wrapperFn; +}; + +export default rafSchd; diff --git a/node_modules/raf-schd/dist/raf-schd.js b/node_modules/raf-schd/dist/raf-schd.js new file mode 100644 index 00000000..b12def72 --- /dev/null +++ b/node_modules/raf-schd/dist/raf-schd.js @@ -0,0 +1,42 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.rafSchd = factory()); +}(this, function () { 'use strict'; + + var rafSchd = function rafSchd(fn) { + var lastArgs = []; + var frameId = null; + + var wrapperFn = function wrapperFn() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + lastArgs = args; + + if (frameId) { + return; + } + + frameId = requestAnimationFrame(function () { + frameId = null; + fn.apply(void 0, lastArgs); + }); + }; + + wrapperFn.cancel = function () { + if (!frameId) { + return; + } + + cancelAnimationFrame(frameId); + frameId = null; + }; + + return wrapperFn; + }; + + return rafSchd; + +})); diff --git a/node_modules/raf-schd/dist/raf-schd.min.js b/node_modules/raf-schd/dist/raf-schd.min.js new file mode 100644 index 00000000..b8fb1401 --- /dev/null +++ b/node_modules/raf-schd/dist/raf-schd.min.js @@ -0,0 +1 @@ +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(n=n||self).rafSchd=e()}(this,function(){"use strict";return function(n){var e=[],t=null,o=function(){for(var o=arguments.length,i=new Array(o),f=0;f", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/alexreardon/raf-schd.git" + }, + "keywords": [ + "performance", + "raf", + "requestAnimationFrame", + "cancelAnimationFrame" + ], + "config": { + "prettier_target": "*.{js,md,json} src/**/*.{js,md,json} test/**/*.{js,md,json}" + }, + "scripts": { + "build": "yarn run build:clean && yarn run build:dist && yarn run build:flow", + "test": "jest", + "validate": "yarn run prettier:check && yarn run typecheck", + "prettier:check": "prettier --debug-check $npm_package_config_prettier_target", + "prettier:write": "prettier --write $npm_package_config_prettier_target", + "typecheck": "flow check", + "build:clean": "rimraf dist", + "build:dist": "rollup -c", + "build:flow": "echo \"// @flow\n\nexport * from '../src';\" > dist/raf-schd.cjs.js.flow", + "prepublish": "yarn run build" + }, + "devDependencies": { + "@babel/core": "^7.5.0", + "@babel/preset-env": "^7.5.2", + "@babel/preset-flow": "^7.0.0", + "babel-eslint": "10.0.2", + "babel-jest": "^24.8.0", + "cross-env": "^5.2.0", + "flow-bin": "0.102.0", + "jest": "24.8.0", + "prettier": "^1.18.2", + "raf-stub": "3.0.0", + "rimraf": "^2.6.3", + "rollup": "^1.16.6", + "rollup-plugin-babel": "^4.3.3", + "rollup-plugin-replace": "^2.2.0", + "rollup-plugin-terser": "^5.1.1" + }, + "dependencies": {} +} diff --git a/node_modules/raf-schd/src/index.js b/node_modules/raf-schd/src/index.js new file mode 100644 index 00000000..0506124a --- /dev/null +++ b/node_modules/raf-schd/src/index.js @@ -0,0 +1,43 @@ +// @flow + +type WrapperFn = { + [[call]]: (...T) => void, + cancel: () => void, +}; + +const rafSchd = >( + fn: (...T) => void, +): WrapperFn => { + let lastArgs: T = ([]: any); + let frameId: ?AnimationFrameID = null; + + const wrapperFn: WrapperFn = (...args: T) => { + // Always capture the latest value + lastArgs = args; + + // There is already a frame queued + if (frameId) { + return; + } + + // Schedule a new frame + frameId = requestAnimationFrame(() => { + frameId = null; + fn(...lastArgs); + }); + }; + + // Adding cancel property to result function + wrapperFn.cancel = () => { + if (!frameId) { + return; + } + + cancelAnimationFrame(frameId); + frameId = null; + }; + + return wrapperFn; +}; + +export default rafSchd; diff --git a/node_modules/react-beautiful-dnd/CHANGELOG.md b/node_modules/react-beautiful-dnd/CHANGELOG.md new file mode 100644 index 00000000..51a88c82 --- /dev/null +++ b/node_modules/react-beautiful-dnd/CHANGELOG.md @@ -0,0 +1,4 @@ +# Changelog + +This project adheres to [Semantic Versioning 2.0](http://semver.org/). +All release notes and upgrade notes can be found on our [Github Releases](https://github.com/atlassian/react-beautiful-dnd/releases) page. diff --git a/node_modules/react-beautiful-dnd/LICENSE b/node_modules/react-beautiful-dnd/LICENSE new file mode 100644 index 00000000..742041f2 --- /dev/null +++ b/node_modules/react-beautiful-dnd/LICENSE @@ -0,0 +1,13 @@ +Copyright 2019 Atlassian Pty Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/node_modules/react-beautiful-dnd/README.md b/node_modules/react-beautiful-dnd/README.md new file mode 100644 index 00000000..f894f4b5 --- /dev/null +++ b/node_modules/react-beautiful-dnd/README.md @@ -0,0 +1,156 @@ +

    + react beautiful dnd logo +

    +

    react-beautiful-dnd (rbd)

    + +
    + +**Beautiful** and **accessible** drag and drop for lists with [`React`](https://facebook.github.io/react/) + +[![CircleCI branch](https://img.shields.io/circleci/project/github/atlassian/react-beautiful-dnd/master.svg)](https://circleci.com/gh/atlassian/react-beautiful-dnd/tree/master) +[![npm](https://img.shields.io/npm/v/react-beautiful-dnd.svg)](https://www.npmjs.com/package/react-beautiful-dnd) + +![quote application example](https://user-images.githubusercontent.com/2182637/53614150-efbed780-3c2c-11e9-9204-a5d2e746faca.gif) + +[Play with this example if you want!](https://react-beautiful-dnd.netlify.com/iframe.html?selectedKind=board&selectedStory=simple) + +
    + +## Core characteristics + +- Beautiful and [natural movement](/docs/about/animations.md) of items 💐 +- [Accessible](/docs/about/accessibility.md): powerful keyboard and screen reader support ♿️ +- [Extremely performant](/docs/support/media.md) 🚀 +- Clean and powerful api which is simple to get started with +- Plays extremely well with standard browser interactions +- [Unopinionated styling](/docs/guides/preset-styles.md) +- No creation of additional wrapper dom nodes - flexbox and focus management friendly! + +## Get started 👩‍🏫 + +We have created [a free course on `egghead.io` 🥚](https://egghead.io/courses/beautiful-and-accessible-drag-and-drop-with-react-beautiful-dnd) to help you get started with `react-beautiful-dnd` as quickly as possible. + +[![course-logo](https://user-images.githubusercontent.com/2182637/43372837-8c72d3f8-93e8-11e8-9d92-a82adde7718f.png)](https://egghead.io/courses/beautiful-and-accessible-drag-and-drop-with-react-beautiful-dnd) + +## Currently supported feature set ✅ + +- Vertical lists ↕ +- Horizontal lists ↔ +- Movement between lists (▤ ↔ ▤) +- [Virtual list support 👾](/docs/patterns/virtual-lists.md) - unlocking 10,000 items @ 60fps +- [Combining items](/docs/guides/combining.md) +- Mouse 🐭, keyboard 🎹♿️ and touch 👉📱 (mobile, tablet and so on) support +- [Multi drag support](/docs/patterns/multi-drag.md) +- Incredible screen reader support ♿️ - we provide an amazing experience for english screen readers out of the box 📦. We also provide complete customisation control and internationalisation support for those who need it 💖 +- [Conditional dragging](/docs/api/draggable.md#optional-props) and [conditional dropping](/docs/api/droppable.md#conditionally-dropping) +- Multiple independent lists on the one page +- Flexible item sizes - the draggable items can have different heights (vertical lists) or widths (horizontal lists) +- [Add and remove items during a drag](/docs/guides/changes-while-dragging.md) +- Compatible with semantic `` reordering - [table pattern](/docs/patterns/tables.md) +- [Auto scrolling](/docs/guides/auto-scrolling.md) - automatically scroll containers and the window as required during a drag (even with keyboard 🔥) +- Custom drag handles - you can drag a whole item by just a part of it +- Able to move the dragging item to another element while dragging (clone, portal) - [Reparenting your ``](/docs/guides/reparenting.md) +- [Create scripted drag and drop experiences 🎮](/docs/sensors/sensor-api.md) +- Allows extensions to support for [any input type you like 🕹](/docs/sensors/sensor-api.md) +- 🌲 Tree support through the [`@atlaskit/tree`](https://atlaskit.atlassian.com/packages/confluence/tree) package +- A `` list can be a scroll container (without a scrollable parent) or be the child of a scroll container (that also does not have a scrollable parent) +- Independent nested lists - a list can be a child of another list, but you cannot drag items from the parent list into a child list +- Server side rendering (SSR) compatible - see [resetServerContext()](/docs/api/reset-server-context.md) +- Plays well with [nested interactive elements](/docs/api/draggable.md#interactive-child-elements-within-a-draggable-) by default + +## Motivation 🤔 + +`react-beautiful-dnd` exists to create beautiful drag and drop for lists that anyone can use - even people who cannot see. For a good overview of the history and motivations of the project you can take a look at these external resources: + +- 📖 [Rethinking drag and drop](https://medium.com/@alexandereardon/rethinking-drag-and-drop-d9f5770b4e6b) +- 🎧 [React podcast: fast, accessible and beautiful drag and drop](https://reactpodcast.simplecast.fm/17) + +## Not for everyone ✌️ + +There are a lot of libraries out there that allow for drag and drop interactions within React. Most notable of these is the amazing [`react-dnd`](https://github.com/react-dnd/react-dnd). It does an incredible job at providing a great set of drag and drop primitives which work especially well with the [wildly inconsistent](https://www.quirksmode.org/blog/archives/2009/09/the_html5_drag.html) html5 drag and drop feature. `react-beautiful-dnd` is a higher level abstraction specifically built for lists (vertical, horizontal, movement between lists, nested lists and so on). Within that subset of functionality `react-beautiful-dnd` offers a powerful, natural and beautiful drag and drop experience. However, it does not provide the breadth of functionality offered by `react-dnd`. So `react-beautiful-dnd` might not be for you depending on what your use case is. + +## Documentation 📖 + +### About 👋 + +- [Installation](/docs/about/installation.md) +- [Examples and samples](/docs/about/examples.md) +- [Get started](https://egghead.io/courses/beautiful-and-accessible-drag-and-drop-with-react-beautiful-dnd) +- [Design principles](/docs/about/design-principles.md) +- [Animations](/docs/about/animations.md) +- [Accessibility](/docs/about/accessibility.md) +- [Browser support](/docs/about/browser-support.md) + +### Sensors 🔉 + +> The ways in which somebody can start and control a drag + +- [Mouse dragging 🐭](/docs/sensors/mouse.md) +- [Touch dragging 👉📱](/docs/sensors/touch.md) +- [Keyboard dragging 🎹♿️](/docs/sensors/keyboard.md) +- [Create your own sensor](/docs/sensors/sensor-api.md) (allows for any input type as well as scripted experiences) + +### API 🏋️‍ + +![diagram](https://user-images.githubusercontent.com/2182637/53607406-c8f3a780-3c12-11e9-979c-7f3b5bd1bfbd.gif) + +- [``](/docs/api/drag-drop-context.md) - _Wraps the part of your application you want to have drag and drop enabled for_ +- [``](/docs/api/droppable.md) - _An area that can be dropped into. Contains ``s_ +- [``](/docs/api/draggable.md) - _What can be dragged around_ +- [`resetServerContext()`](/docs/api/reset-server-context.md) - _Utility for server side rendering (SSR)_ + +### Guides 🗺 + +- [`` responders](/docs/guides/responders.md) - _`onDragStart`, `onDragUpdate`, `onDragEnd` and `onBeforeDragStart`_ +- [Combining ``s](/docs/guides/combining.md) +- [Common setup issues](/docs/guides/common-setup-issues.md) +- [Using `innerRef`](/docs/guides/using-inner-ref.md) +- [Setup problem detection and error recovery](/docs/guides/setup-problem-detection-and-error-recovery.md) +- [Rules for `draggableId` and `droppableId`s](/docs/guides/identifiers.md) +- [Browser focus retention](/docs/guides/browser-focus.md) +- [Customising or skipping the drop animation](/docs/guides/drop-animation.md) +- [Auto scrolling](/docs/guides/auto-scrolling.md) +- [Controlling the screen reader](/docs/guides/screen-reader.md) +- [Use the html5 `doctype`](/docs/guides/doctype.md) +- [`TypeScript` and `flow`: type information](/docs/guides/types.md) +- [Dragging ``s](/docs/guides/dragging-svgs.md) +- [Avoiding image flickering](/docs/guides/avoiding-image-flickering.md) +- [Non-visible preset styles](/docs/guides/preset-styles.md) +- [How we detect scroll containers](/docs/guides/how-we-detect-scroll-containers.md) +- [How we use dom events](/docs/guides/how-we-use-dom-events.md) - _Useful if you need to build on top of `react-beautiful-dnd`_ +- [Adding ``s during a drag (11.x behaviour)](/docs/guides/changes-while-dragging.md) - _⚠️ Advanced_ +- [Setting up Content Security Policy](/docs/guides/content-security-policy.md) + +### Patterns 👷‍ + +- [Virtual lists 👾](/docs/patterns/virtual-lists.md) +- [Multi drag](/docs/patterns/multi-drag.md) +- [Tables](/docs/patterns/tables.md) +- [Reparenting a ``](/docs/guides/reparenting.md) - _Using our cloning API or your own portal_ + +### Support 👩‍⚕️ + +- [Engineering health](/docs/support/engineering-health.md) +- [Community and addons](/docs/support/community-and-addons.md) +- [Release notes and changelog](https://github.com/atlassian/react-beautiful-dnd/releases) +- [Upgrading](/docs/support/upgrading.md) +- [Road map](https://github.com/atlassian/react-beautiful-dnd/issues) +- [Media](/docs/support/media.md) + +## Read this in other languages 🌎 + +- [![kr](https://raw.githubusercontent.com/gosquared/flags/master/flags/flags/shiny/24/South-Korea.png) **한글/Korean**](https://github.com/LeeHyungGeun/react-beautiful-dnd-kr) +- [![ru](https://raw.githubusercontent.com/gosquared/flags/master/flags/flags/shiny/24/Russia.png) **На русском/Russian**](https://github.com/vtereshyn/react-beautiful-dnd-ru) +- [![pt](https://raw.githubusercontent.com/gosquared/flags/master/flags/flags/shiny/24/Brazil.png) **Português/Portuguese**](https://github.com/dudestein/react-beautiful-dnd-pt) +- [![gr](https://raw.githubusercontent.com/gosquared/flags/master/flags/flags/shiny/24/Greece.png) **Ελληνικά/Greek**](https://github.com/hdks55l/react-beautiful-dnd-gr) + +## Author ✍️ + +Alex Reardon [@alexandereardon](https://twitter.com/alexandereardon) + +## Collaborators 🤝 + +- Bogdan Chadkin [@IAmTrySound](https://twitter.com/IAmTrySound) +- Luke Batchelor [@alukebatchelor](https://twitter.com/alukebatchelor) +- Jared Crowe [@jaredjcrowe](https://twitter.com/jaredjcrowe) +- Many other [@Atlassian](https://twitter.com/Atlassian)'s! diff --git a/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.cjs.js b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.cjs.js new file mode 100644 index 00000000..6185d981 --- /dev/null +++ b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.cjs.js @@ -0,0 +1,8527 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var React = require('react'); +var React__default = _interopDefault(React); +var _inheritsLoose = _interopDefault(require('@babel/runtime/helpers/inheritsLoose')); +var _extends = _interopDefault(require('@babel/runtime/helpers/extends')); +var redux = require('redux'); +var reactRedux = require('react-redux'); +var useMemoOne = require('use-memo-one'); +var cssBoxModel = require('css-box-model'); +var memoizeOne = _interopDefault(require('memoize-one')); +var rafSchd = _interopDefault(require('raf-schd')); +var ReactDOM = _interopDefault(require('react-dom')); + +var isProduction = process.env.NODE_ENV === 'production'; +var spacesAndTabs = /[ \t]{2,}/g; +var lineStartWithSpaces = /^[ \t]*/gm; + +var clean = function clean(value) { + return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim(); +}; + +var getDevMessage = function getDevMessage(message) { + return clean("\n %creact-beautiful-dnd\n\n %c" + clean(message) + "\n\n %c\uD83D\uDC77\u200D This is a development only message. It will be removed in production builds.\n"); +}; + +var getFormattedMessage = function getFormattedMessage(message) { + return [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;']; +}; +var isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings'; +function log(type, message) { + var _console; + + if (isProduction) { + return; + } + + if (typeof window !== 'undefined' && window[isDisabledFlag]) { + return; + } + + (_console = console)[type].apply(_console, getFormattedMessage(message)); +} +var warning = log.bind(null, 'warn'); +var error = log.bind(null, 'error'); + +function noop() {} + +function getOptions(shared, fromBinding) { + return _extends({}, shared, {}, fromBinding); +} + +function bindEvents(el, bindings, sharedOptions) { + var unbindings = bindings.map(function (binding) { + var options = getOptions(sharedOptions, binding.options); + el.addEventListener(binding.eventName, binding.fn, options); + return function unbind() { + el.removeEventListener(binding.eventName, binding.fn, options); + }; + }); + return function unbindAll() { + unbindings.forEach(function (unbind) { + unbind(); + }); + }; +} + +var isProduction$1 = process.env.NODE_ENV === 'production'; +var prefix = 'Invariant failed'; +function RbdInvariant(message) { + this.message = message; +} + +RbdInvariant.prototype.toString = function toString() { + return this.message; +}; + +function invariant(condition, message) { + if (condition) { + return; + } + + if (isProduction$1) { + throw new RbdInvariant(prefix); + } else { + throw new RbdInvariant(prefix + ": " + (message || '')); + } +} + +var ErrorBoundary = function (_React$Component) { + _inheritsLoose(ErrorBoundary, _React$Component); + + function ErrorBoundary() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.callbacks = null; + _this.unbind = noop; + + _this.onWindowError = function (event) { + var callbacks = _this.getCallbacks(); + + if (callbacks.isDragging()) { + callbacks.tryAbort(); + process.env.NODE_ENV !== "production" ? warning("\n An error was caught by our window 'error' event listener while a drag was occurring.\n The active drag has been aborted.\n ") : void 0; + } + + var err = event.error; + + if (err instanceof RbdInvariant) { + event.preventDefault(); + + if (process.env.NODE_ENV !== 'production') { + error(err.message); + } + } + }; + + _this.getCallbacks = function () { + if (!_this.callbacks) { + throw new Error('Unable to find AppCallbacks in '); + } + + return _this.callbacks; + }; + + _this.setCallbacks = function (callbacks) { + _this.callbacks = callbacks; + }; + + return _this; + } + + var _proto = ErrorBoundary.prototype; + + _proto.componentDidMount = function componentDidMount() { + this.unbind = bindEvents(window, [{ + eventName: 'error', + fn: this.onWindowError + }]); + }; + + _proto.componentDidCatch = function componentDidCatch(err) { + if (err instanceof RbdInvariant) { + if (process.env.NODE_ENV !== 'production') { + error(err.message); + } + + this.setState({}); + return; + } + + throw err; + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + this.unbind(); + }; + + _proto.render = function render() { + return this.props.children(this.setCallbacks); + }; + + return ErrorBoundary; +}(React__default.Component); + +var dragHandleUsageInstructions = "\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n"; + +var position = function position(index) { + return index + 1; +}; + +var onDragStart = function onDragStart(start) { + return "\n You have lifted an item in position " + position(start.source.index) + "\n"; +}; + +var withLocation = function withLocation(source, destination) { + var isInHomeList = source.droppableId === destination.droppableId; + var startPosition = position(source.index); + var endPosition = position(destination.index); + + if (isInHomeList) { + return "\n You have moved the item from position " + startPosition + "\n to position " + endPosition + "\n "; + } + + return "\n You have moved the item from position " + startPosition + "\n in list " + source.droppableId + "\n to list " + destination.droppableId + "\n in position " + endPosition + "\n "; +}; + +var withCombine = function withCombine(id, source, combine) { + var inHomeList = source.droppableId === combine.droppableId; + + if (inHomeList) { + return "\n The item " + id + "\n has been combined with " + combine.draggableId; + } + + return "\n The item " + id + "\n in list " + source.droppableId + "\n has been combined with " + combine.draggableId + "\n in list " + combine.droppableId + "\n "; +}; + +var onDragUpdate = function onDragUpdate(update) { + var location = update.destination; + + if (location) { + return withLocation(update.source, location); + } + + var combine = update.combine; + + if (combine) { + return withCombine(update.draggableId, update.source, combine); + } + + return 'You are over an area that cannot be dropped on'; +}; + +var returnedToStart = function returnedToStart(source) { + return "\n The item has returned to its starting position\n of " + position(source.index) + "\n"; +}; + +var onDragEnd = function onDragEnd(result) { + if (result.reason === 'CANCEL') { + return "\n Movement cancelled.\n " + returnedToStart(result.source) + "\n "; + } + + var location = result.destination; + var combine = result.combine; + + if (location) { + return "\n You have dropped the item.\n " + withLocation(result.source, location) + "\n "; + } + + if (combine) { + return "\n You have dropped the item.\n " + withCombine(result.draggableId, result.source, combine) + "\n "; + } + + return "\n The item has been dropped while not over a drop area.\n " + returnedToStart(result.source) + "\n "; +}; + +var preset = { + dragHandleUsageInstructions: dragHandleUsageInstructions, + onDragStart: onDragStart, + onDragUpdate: onDragUpdate, + onDragEnd: onDragEnd +}; + +var origin = { + x: 0, + y: 0 +}; +var add = function add(point1, point2) { + return { + x: point1.x + point2.x, + y: point1.y + point2.y + }; +}; +var subtract = function subtract(point1, point2) { + return { + x: point1.x - point2.x, + y: point1.y - point2.y + }; +}; +var isEqual = function isEqual(point1, point2) { + return point1.x === point2.x && point1.y === point2.y; +}; +var negate = function negate(point) { + return { + x: point.x !== 0 ? -point.x : 0, + y: point.y !== 0 ? -point.y : 0 + }; +}; +var patch = function patch(line, value, otherValue) { + var _ref; + + if (otherValue === void 0) { + otherValue = 0; + } + + return _ref = {}, _ref[line] = value, _ref[line === 'x' ? 'y' : 'x'] = otherValue, _ref; +}; +var distance = function distance(point1, point2) { + return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2)); +}; +var closest = function closest(target, points) { + return Math.min.apply(Math, points.map(function (point) { + return distance(target, point); + })); +}; +var apply = function apply(fn) { + return function (point) { + return { + x: fn(point.x), + y: fn(point.y) + }; + }; +}; + +var executeClip = (function (frame, subject) { + var result = cssBoxModel.getRect({ + top: Math.max(subject.top, frame.top), + right: Math.min(subject.right, frame.right), + bottom: Math.min(subject.bottom, frame.bottom), + left: Math.max(subject.left, frame.left) + }); + + if (result.width <= 0 || result.height <= 0) { + return null; + } + + return result; +}); + +var offsetByPosition = function offsetByPosition(spacing, point) { + return { + top: spacing.top + point.y, + left: spacing.left + point.x, + bottom: spacing.bottom + point.y, + right: spacing.right + point.x + }; +}; +var getCorners = function getCorners(spacing) { + return [{ + x: spacing.left, + y: spacing.top + }, { + x: spacing.right, + y: spacing.top + }, { + x: spacing.left, + y: spacing.bottom + }, { + x: spacing.right, + y: spacing.bottom + }]; +}; +var noSpacing = { + top: 0, + right: 0, + bottom: 0, + left: 0 +}; + +var scroll = function scroll(target, frame) { + if (!frame) { + return target; + } + + return offsetByPosition(target, frame.scroll.diff.displacement); +}; + +var increase = function increase(target, axis, withPlaceholder) { + if (withPlaceholder && withPlaceholder.increasedBy) { + var _extends2; + + return _extends({}, target, (_extends2 = {}, _extends2[axis.end] = target[axis.end] + withPlaceholder.increasedBy[axis.line], _extends2)); + } + + return target; +}; + +var clip = function clip(target, frame) { + if (frame && frame.shouldClipSubject) { + return executeClip(frame.pageMarginBox, target); + } + + return cssBoxModel.getRect(target); +}; + +var getSubject = (function (_ref) { + var page = _ref.page, + withPlaceholder = _ref.withPlaceholder, + axis = _ref.axis, + frame = _ref.frame; + var scrolled = scroll(page.marginBox, frame); + var increased = increase(scrolled, axis, withPlaceholder); + var clipped = clip(increased, frame); + return { + page: page, + withPlaceholder: withPlaceholder, + active: clipped + }; +}); + +var scrollDroppable = (function (droppable, newScroll) { + !droppable.frame ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + var scrollable = droppable.frame; + var scrollDiff = subtract(newScroll, scrollable.scroll.initial); + var scrollDisplacement = negate(scrollDiff); + + var frame = _extends({}, scrollable, { + scroll: { + initial: scrollable.scroll.initial, + current: newScroll, + diff: { + value: scrollDiff, + displacement: scrollDisplacement + }, + max: scrollable.scroll.max + } + }); + + var subject = getSubject({ + page: droppable.subject.page, + withPlaceholder: droppable.subject.withPlaceholder, + axis: droppable.axis, + frame: frame + }); + + var result = _extends({}, droppable, { + frame: frame, + subject: subject + }); + + return result; +}); + +function isInteger(value) { + if (Number.isInteger) { + return Number.isInteger(value); + } + + return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; +} +function values(map) { + if (Object.values) { + return Object.values(map); + } + + return Object.keys(map).map(function (key) { + return map[key]; + }); +} +function findIndex(list, predicate) { + if (list.findIndex) { + return list.findIndex(predicate); + } + + for (var i = 0; i < list.length; i++) { + if (predicate(list[i])) { + return i; + } + } + + return -1; +} +function find(list, predicate) { + if (list.find) { + return list.find(predicate); + } + + var index = findIndex(list, predicate); + + if (index !== -1) { + return list[index]; + } + + return undefined; +} +function toArray(list) { + return Array.prototype.slice.call(list); +} + +var toDroppableMap = memoizeOne(function (droppables) { + return droppables.reduce(function (previous, current) { + previous[current.descriptor.id] = current; + return previous; + }, {}); +}); +var toDraggableMap = memoizeOne(function (draggables) { + return draggables.reduce(function (previous, current) { + previous[current.descriptor.id] = current; + return previous; + }, {}); +}); +var toDroppableList = memoizeOne(function (droppables) { + return values(droppables); +}); +var toDraggableList = memoizeOne(function (draggables) { + return values(draggables); +}); + +var getDraggablesInsideDroppable = memoizeOne(function (droppableId, draggables) { + var result = toDraggableList(draggables).filter(function (draggable) { + return droppableId === draggable.descriptor.droppableId; + }).sort(function (a, b) { + return a.descriptor.index - b.descriptor.index; + }); + return result; +}); + +function tryGetDestination(impact) { + if (impact.at && impact.at.type === 'REORDER') { + return impact.at.destination; + } + + return null; +} +function tryGetCombine(impact) { + if (impact.at && impact.at.type === 'COMBINE') { + return impact.at.combine; + } + + return null; +} + +var removeDraggableFromList = memoizeOne(function (remove, list) { + return list.filter(function (item) { + return item.descriptor.id !== remove.descriptor.id; + }); +}); + +var moveToNextCombine = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + draggable = _ref.draggable, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + previousImpact = _ref.previousImpact; + + if (!destination.isCombineEnabled) { + return null; + } + + var location = tryGetDestination(previousImpact); + + if (!location) { + return null; + } + + function getImpact(target) { + var at = { + type: 'COMBINE', + combine: { + draggableId: target, + droppableId: destination.descriptor.id + } + }; + return _extends({}, previousImpact, { + at: at + }); + } + + var all = previousImpact.displaced.all; + var closestId = all.length ? all[0] : null; + + if (isMovingForward) { + return closestId ? getImpact(closestId) : null; + } + + var withoutDraggable = removeDraggableFromList(draggable, insideDestination); + + if (!closestId) { + if (!withoutDraggable.length) { + return null; + } + + var last = withoutDraggable[withoutDraggable.length - 1]; + return getImpact(last.descriptor.id); + } + + var indexOfClosest = findIndex(withoutDraggable, function (d) { + return d.descriptor.id === closestId; + }); + !(indexOfClosest !== -1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find displaced item in set') : invariant(false) : void 0; + var proposedIndex = indexOfClosest - 1; + + if (proposedIndex < 0) { + return null; + } + + var before = withoutDraggable[proposedIndex]; + return getImpact(before.descriptor.id); +}); + +var isHomeOf = (function (draggable, destination) { + return draggable.descriptor.droppableId === destination.descriptor.id; +}); + +var noDisplacedBy = { + point: origin, + value: 0 +}; +var emptyGroups = { + invisible: {}, + visible: {}, + all: [] +}; +var noImpact = { + displaced: emptyGroups, + displacedBy: noDisplacedBy, + at: null +}; + +var isWithin = (function (lowerBound, upperBound) { + return function (value) { + return lowerBound <= value && value <= upperBound; + }; +}); + +var isPartiallyVisibleThroughFrame = (function (frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function (subject) { + var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right); + + if (isContained) { + return true; + } + + var isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom); + var isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right); + var isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally; + + if (isPartiallyContained) { + return true; + } + + var isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom; + var isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right; + var isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally; + + if (isTargetBiggerThanFrame) { + return true; + } + + var isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically; + return isTargetBiggerOnOneAxis; + }; +}); + +var isTotallyVisibleThroughFrame = (function (frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function (subject) { + var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right); + return isContained; + }; +}); + +var vertical = { + direction: 'vertical', + line: 'y', + crossAxisLine: 'x', + start: 'top', + end: 'bottom', + size: 'height', + crossAxisStart: 'left', + crossAxisEnd: 'right', + crossAxisSize: 'width' +}; +var horizontal = { + direction: 'horizontal', + line: 'x', + crossAxisLine: 'y', + start: 'left', + end: 'right', + size: 'width', + crossAxisStart: 'top', + crossAxisEnd: 'bottom', + crossAxisSize: 'height' +}; + +var isTotallyVisibleThroughFrameOnAxis = (function (axis) { + return function (frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function (subject) { + if (axis === vertical) { + return isWithinVertical(subject.top) && isWithinVertical(subject.bottom); + } + + return isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right); + }; + }; +}); + +var getDroppableDisplaced = function getDroppableDisplaced(target, destination) { + var displacement = destination.frame ? destination.frame.scroll.diff.displacement : origin; + return offsetByPosition(target, displacement); +}; + +var isVisibleInDroppable = function isVisibleInDroppable(target, destination, isVisibleThroughFrameFn) { + if (!destination.subject.active) { + return false; + } + + return isVisibleThroughFrameFn(destination.subject.active)(target); +}; + +var isVisibleInViewport = function isVisibleInViewport(target, viewport, isVisibleThroughFrameFn) { + return isVisibleThroughFrameFn(viewport)(target); +}; + +var isVisible = function isVisible(_ref) { + var toBeDisplaced = _ref.target, + destination = _ref.destination, + viewport = _ref.viewport, + withDroppableDisplacement = _ref.withDroppableDisplacement, + isVisibleThroughFrameFn = _ref.isVisibleThroughFrameFn; + var displacedTarget = withDroppableDisplacement ? getDroppableDisplaced(toBeDisplaced, destination) : toBeDisplaced; + return isVisibleInDroppable(displacedTarget, destination, isVisibleThroughFrameFn) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn); +}; + +var isPartiallyVisible = function isPartiallyVisible(args) { + return isVisible(_extends({}, args, { + isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame + })); +}; +var isTotallyVisible = function isTotallyVisible(args) { + return isVisible(_extends({}, args, { + isVisibleThroughFrameFn: isTotallyVisibleThroughFrame + })); +}; +var isTotallyVisibleOnAxis = function isTotallyVisibleOnAxis(args) { + return isVisible(_extends({}, args, { + isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis(args.destination.axis) + })); +}; + +var getShouldAnimate = function getShouldAnimate(id, last, forceShouldAnimate) { + if (typeof forceShouldAnimate === 'boolean') { + return forceShouldAnimate; + } + + if (!last) { + return true; + } + + var invisible = last.invisible, + visible = last.visible; + + if (invisible[id]) { + return false; + } + + var previous = visible[id]; + return previous ? previous.shouldAnimate : true; +}; + +function getTarget(draggable, displacedBy) { + var marginBox = draggable.page.marginBox; + var expandBy = { + top: displacedBy.point.y, + right: 0, + bottom: 0, + left: displacedBy.point.x + }; + return cssBoxModel.getRect(cssBoxModel.expand(marginBox, expandBy)); +} + +function getDisplacementGroups(_ref) { + var afterDragging = _ref.afterDragging, + destination = _ref.destination, + displacedBy = _ref.displacedBy, + viewport = _ref.viewport, + forceShouldAnimate = _ref.forceShouldAnimate, + last = _ref.last; + return afterDragging.reduce(function process(groups, draggable) { + var target = getTarget(draggable, displacedBy); + var id = draggable.descriptor.id; + groups.all.push(id); + var isVisible = isPartiallyVisible({ + target: target, + destination: destination, + viewport: viewport, + withDroppableDisplacement: true + }); + + if (!isVisible) { + groups.invisible[draggable.descriptor.id] = true; + return groups; + } + + var shouldAnimate = getShouldAnimate(id, last, forceShouldAnimate); + var displacement = { + draggableId: id, + shouldAnimate: shouldAnimate + }; + groups.visible[id] = displacement; + return groups; + }, { + all: [], + visible: {}, + invisible: {} + }); +} + +function getIndexOfLastItem(draggables, options) { + if (!draggables.length) { + return 0; + } + + var indexOfLastItem = draggables[draggables.length - 1].descriptor.index; + return options.inHomeList ? indexOfLastItem : indexOfLastItem + 1; +} + +function goAtEnd(_ref) { + var insideDestination = _ref.insideDestination, + inHomeList = _ref.inHomeList, + displacedBy = _ref.displacedBy, + destination = _ref.destination; + var newIndex = getIndexOfLastItem(insideDestination, { + inHomeList: inHomeList + }); + return { + displaced: emptyGroups, + displacedBy: displacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: newIndex + } + } + }; +} + +function calculateReorderImpact(_ref2) { + var draggable = _ref2.draggable, + insideDestination = _ref2.insideDestination, + destination = _ref2.destination, + viewport = _ref2.viewport, + displacedBy = _ref2.displacedBy, + last = _ref2.last, + index = _ref2.index, + forceShouldAnimate = _ref2.forceShouldAnimate; + var inHomeList = isHomeOf(draggable, destination); + + if (index == null) { + return goAtEnd({ + insideDestination: insideDestination, + inHomeList: inHomeList, + displacedBy: displacedBy, + destination: destination + }); + } + + var match = find(insideDestination, function (item) { + return item.descriptor.index === index; + }); + + if (!match) { + return goAtEnd({ + insideDestination: insideDestination, + inHomeList: inHomeList, + displacedBy: displacedBy, + destination: destination + }); + } + + var withoutDragging = removeDraggableFromList(draggable, insideDestination); + var sliceFrom = insideDestination.indexOf(match); + var impacted = withoutDragging.slice(sliceFrom); + var displaced = getDisplacementGroups({ + afterDragging: impacted, + destination: destination, + displacedBy: displacedBy, + last: last, + viewport: viewport.frame, + forceShouldAnimate: forceShouldAnimate + }); + return { + displaced: displaced, + displacedBy: displacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: index + } + } + }; +} + +function didStartAfterCritical(draggableId, afterCritical) { + return Boolean(afterCritical.effected[draggableId]); +} + +var fromCombine = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + destination = _ref.destination, + draggables = _ref.draggables, + combine = _ref.combine, + afterCritical = _ref.afterCritical; + + if (!destination.isCombineEnabled) { + return null; + } + + var combineId = combine.draggableId; + var combineWith = draggables[combineId]; + var combineWithIndex = combineWith.descriptor.index; + var didCombineWithStartAfterCritical = didStartAfterCritical(combineId, afterCritical); + + if (didCombineWithStartAfterCritical) { + if (isMovingForward) { + return combineWithIndex; + } + + return combineWithIndex - 1; + } + + if (isMovingForward) { + return combineWithIndex + 1; + } + + return combineWithIndex; +}); + +var fromReorder = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + isInHomeList = _ref.isInHomeList, + insideDestination = _ref.insideDestination, + location = _ref.location; + + if (!insideDestination.length) { + return null; + } + + var currentIndex = location.index; + var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1; + var firstIndex = insideDestination[0].descriptor.index; + var lastIndex = insideDestination[insideDestination.length - 1].descriptor.index; + var upperBound = isInHomeList ? lastIndex : lastIndex + 1; + + if (proposedIndex < firstIndex) { + return null; + } + + if (proposedIndex > upperBound) { + return null; + } + + return proposedIndex; +}); + +var moveToNextIndex = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + isInHomeList = _ref.isInHomeList, + draggable = _ref.draggable, + draggables = _ref.draggables, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + previousImpact = _ref.previousImpact, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var wasAt = previousImpact.at; + !wasAt ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot move in direction without previous impact location') : invariant(false) : void 0; + + if (wasAt.type === 'REORDER') { + var _newIndex = fromReorder({ + isMovingForward: isMovingForward, + isInHomeList: isInHomeList, + location: wasAt.destination, + insideDestination: insideDestination + }); + + if (_newIndex == null) { + return null; + } + + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + last: previousImpact.displaced, + displacedBy: previousImpact.displacedBy, + index: _newIndex + }); + } + + var newIndex = fromCombine({ + isMovingForward: isMovingForward, + destination: destination, + displaced: previousImpact.displaced, + draggables: draggables, + combine: wasAt.combine, + afterCritical: afterCritical + }); + + if (newIndex == null) { + return null; + } + + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + last: previousImpact.displaced, + displacedBy: previousImpact.displacedBy, + index: newIndex + }); +}); + +var getCombinedItemDisplacement = (function (_ref) { + var displaced = _ref.displaced, + afterCritical = _ref.afterCritical, + combineWith = _ref.combineWith, + displacedBy = _ref.displacedBy; + var isDisplaced = Boolean(displaced.visible[combineWith] || displaced.invisible[combineWith]); + + if (didStartAfterCritical(combineWith, afterCritical)) { + return isDisplaced ? origin : negate(displacedBy.point); + } + + return isDisplaced ? displacedBy.point : origin; +}); + +var whenCombining = (function (_ref) { + var afterCritical = _ref.afterCritical, + impact = _ref.impact, + draggables = _ref.draggables; + var combine = tryGetCombine(impact); + !combine ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + var combineWith = combine.draggableId; + var center = draggables[combineWith].page.borderBox.center; + var displaceBy = getCombinedItemDisplacement({ + displaced: impact.displaced, + afterCritical: afterCritical, + combineWith: combineWith, + displacedBy: impact.displacedBy + }); + return add(center, displaceBy); +}); + +var distanceFromStartToBorderBoxCenter = function distanceFromStartToBorderBoxCenter(axis, box) { + return box.margin[axis.start] + box.borderBox[axis.size] / 2; +}; + +var distanceFromEndToBorderBoxCenter = function distanceFromEndToBorderBoxCenter(axis, box) { + return box.margin[axis.end] + box.borderBox[axis.size] / 2; +}; + +var getCrossAxisBorderBoxCenter = function getCrossAxisBorderBoxCenter(axis, target, isMoving) { + return target[axis.crossAxisStart] + isMoving.margin[axis.crossAxisStart] + isMoving.borderBox[axis.crossAxisSize] / 2; +}; + +var goAfter = function goAfter(_ref) { + var axis = _ref.axis, + moveRelativeTo = _ref.moveRelativeTo, + isMoving = _ref.isMoving; + return patch(axis.line, moveRelativeTo.marginBox[axis.end] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving)); +}; +var goBefore = function goBefore(_ref2) { + var axis = _ref2.axis, + moveRelativeTo = _ref2.moveRelativeTo, + isMoving = _ref2.isMoving; + return patch(axis.line, moveRelativeTo.marginBox[axis.start] - distanceFromEndToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving)); +}; +var goIntoStart = function goIntoStart(_ref3) { + var axis = _ref3.axis, + moveInto = _ref3.moveInto, + isMoving = _ref3.isMoving; + return patch(axis.line, moveInto.contentBox[axis.start] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving)); +}; + +var whenReordering = (function (_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + draggables = _ref.draggables, + droppable = _ref.droppable, + afterCritical = _ref.afterCritical; + var insideDestination = getDraggablesInsideDroppable(droppable.descriptor.id, draggables); + var draggablePage = draggable.page; + var axis = droppable.axis; + + if (!insideDestination.length) { + return goIntoStart({ + axis: axis, + moveInto: droppable.page, + isMoving: draggablePage + }); + } + + var displaced = impact.displaced, + displacedBy = impact.displacedBy; + var closestAfter = displaced.all[0]; + + if (closestAfter) { + var closest = draggables[closestAfter]; + + if (didStartAfterCritical(closestAfter, afterCritical)) { + return goBefore({ + axis: axis, + moveRelativeTo: closest.page, + isMoving: draggablePage + }); + } + + var withDisplacement = cssBoxModel.offset(closest.page, displacedBy.point); + return goBefore({ + axis: axis, + moveRelativeTo: withDisplacement, + isMoving: draggablePage + }); + } + + var last = insideDestination[insideDestination.length - 1]; + + if (last.descriptor.id === draggable.descriptor.id) { + return draggablePage.borderBox.center; + } + + if (didStartAfterCritical(last.descriptor.id, afterCritical)) { + var page = cssBoxModel.offset(last.page, negate(afterCritical.displacedBy.point)); + return goAfter({ + axis: axis, + moveRelativeTo: page, + isMoving: draggablePage + }); + } + + return goAfter({ + axis: axis, + moveRelativeTo: last.page, + isMoving: draggablePage + }); +}); + +var withDroppableDisplacement = (function (droppable, point) { + var frame = droppable.frame; + + if (!frame) { + return point; + } + + return add(point, frame.scroll.diff.displacement); +}); + +var getResultWithoutDroppableDisplacement = function getResultWithoutDroppableDisplacement(_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + droppable = _ref.droppable, + draggables = _ref.draggables, + afterCritical = _ref.afterCritical; + var original = draggable.page.borderBox.center; + var at = impact.at; + + if (!droppable) { + return original; + } + + if (!at) { + return original; + } + + if (at.type === 'REORDER') { + return whenReordering({ + impact: impact, + draggable: draggable, + draggables: draggables, + droppable: droppable, + afterCritical: afterCritical + }); + } + + return whenCombining({ + impact: impact, + draggables: draggables, + afterCritical: afterCritical + }); +}; + +var getPageBorderBoxCenterFromImpact = (function (args) { + var withoutDisplacement = getResultWithoutDroppableDisplacement(args); + var droppable = args.droppable; + var withDisplacement = droppable ? withDroppableDisplacement(droppable, withoutDisplacement) : withoutDisplacement; + return withDisplacement; +}); + +var scrollViewport = (function (viewport, newScroll) { + var diff = subtract(newScroll, viewport.scroll.initial); + var displacement = negate(diff); + var frame = cssBoxModel.getRect({ + top: newScroll.y, + bottom: newScroll.y + viewport.frame.height, + left: newScroll.x, + right: newScroll.x + viewport.frame.width + }); + var updated = { + frame: frame, + scroll: { + initial: viewport.scroll.initial, + max: viewport.scroll.max, + current: newScroll, + diff: { + value: diff, + displacement: displacement + } + } + }; + return updated; +}); + +function getDraggables(ids, draggables) { + return ids.map(function (id) { + return draggables[id]; + }); +} + +function tryGetVisible(id, groups) { + for (var i = 0; i < groups.length; i++) { + var displacement = groups[i].visible[id]; + + if (displacement) { + return displacement; + } + } + + return null; +} + +var speculativelyIncrease = (function (_ref) { + var impact = _ref.impact, + viewport = _ref.viewport, + destination = _ref.destination, + draggables = _ref.draggables, + maxScrollChange = _ref.maxScrollChange; + var scrolledViewport = scrollViewport(viewport, add(viewport.scroll.current, maxScrollChange)); + var scrolledDroppable = destination.frame ? scrollDroppable(destination, add(destination.frame.scroll.current, maxScrollChange)) : destination; + var last = impact.displaced; + var withViewportScroll = getDisplacementGroups({ + afterDragging: getDraggables(last.all, draggables), + destination: destination, + displacedBy: impact.displacedBy, + viewport: scrolledViewport.frame, + last: last, + forceShouldAnimate: false + }); + var withDroppableScroll = getDisplacementGroups({ + afterDragging: getDraggables(last.all, draggables), + destination: scrolledDroppable, + displacedBy: impact.displacedBy, + viewport: viewport.frame, + last: last, + forceShouldAnimate: false + }); + var invisible = {}; + var visible = {}; + var groups = [last, withViewportScroll, withDroppableScroll]; + last.all.forEach(function (id) { + var displacement = tryGetVisible(id, groups); + + if (displacement) { + visible[id] = displacement; + return; + } + + invisible[id] = true; + }); + + var newImpact = _extends({}, impact, { + displaced: { + all: last.all, + invisible: invisible, + visible: visible + } + }); + + return newImpact; +}); + +var withViewportDisplacement = (function (viewport, point) { + return add(viewport.scroll.diff.displacement, point); +}); + +var getClientFromPageBorderBoxCenter = (function (_ref) { + var pageBorderBoxCenter = _ref.pageBorderBoxCenter, + draggable = _ref.draggable, + viewport = _ref.viewport; + var withoutPageScrollChange = withViewportDisplacement(viewport, pageBorderBoxCenter); + var offset = subtract(withoutPageScrollChange, draggable.page.borderBox.center); + return add(draggable.client.borderBox.center, offset); +}); + +var isTotallyVisibleInNewLocation = (function (_ref) { + var draggable = _ref.draggable, + destination = _ref.destination, + newPageBorderBoxCenter = _ref.newPageBorderBoxCenter, + viewport = _ref.viewport, + withDroppableDisplacement = _ref.withDroppableDisplacement, + _ref$onlyOnMainAxis = _ref.onlyOnMainAxis, + onlyOnMainAxis = _ref$onlyOnMainAxis === void 0 ? false : _ref$onlyOnMainAxis; + var changeNeeded = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center); + var shifted = offsetByPosition(draggable.page.borderBox, changeNeeded); + var args = { + target: shifted, + destination: destination, + withDroppableDisplacement: withDroppableDisplacement, + viewport: viewport + }; + return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args); +}); + +var moveToNextPlace = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + draggable = _ref.draggable, + destination = _ref.destination, + draggables = _ref.draggables, + previousImpact = _ref.previousImpact, + viewport = _ref.viewport, + previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter, + previousClientSelection = _ref.previousClientSelection, + afterCritical = _ref.afterCritical; + + if (!destination.isEnabled) { + return null; + } + + var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables); + var isInHomeList = isHomeOf(draggable, destination); + var impact = moveToNextCombine({ + isMovingForward: isMovingForward, + draggable: draggable, + destination: destination, + insideDestination: insideDestination, + previousImpact: previousImpact + }) || moveToNextIndex({ + isMovingForward: isMovingForward, + isInHomeList: isInHomeList, + draggable: draggable, + draggables: draggables, + destination: destination, + insideDestination: insideDestination, + previousImpact: previousImpact, + viewport: viewport, + afterCritical: afterCritical + }); + + if (!impact) { + return null; + } + + var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: impact, + draggable: draggable, + droppable: destination, + draggables: draggables, + afterCritical: afterCritical + }); + var isVisibleInNewLocation = isTotallyVisibleInNewLocation({ + draggable: draggable, + destination: destination, + newPageBorderBoxCenter: pageBorderBoxCenter, + viewport: viewport.frame, + withDroppableDisplacement: false, + onlyOnMainAxis: true + }); + + if (isVisibleInNewLocation) { + var clientSelection = getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter: pageBorderBoxCenter, + draggable: draggable, + viewport: viewport + }); + return { + clientSelection: clientSelection, + impact: impact, + scrollJumpRequest: null + }; + } + + var distance = subtract(pageBorderBoxCenter, previousPageBorderBoxCenter); + var cautious = speculativelyIncrease({ + impact: impact, + viewport: viewport, + destination: destination, + draggables: draggables, + maxScrollChange: distance + }); + return { + clientSelection: previousClientSelection, + impact: cautious, + scrollJumpRequest: distance + }; +}); + +var getKnownActive = function getKnownActive(droppable) { + var rect = droppable.subject.active; + !rect ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot get clipped area from droppable') : invariant(false) : void 0; + return rect; +}; + +var getBestCrossAxisDroppable = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + pageBorderBoxCenter = _ref.pageBorderBoxCenter, + source = _ref.source, + droppables = _ref.droppables, + viewport = _ref.viewport; + var active = source.subject.active; + + if (!active) { + return null; + } + + var axis = source.axis; + var isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]); + var candidates = toDroppableList(droppables).filter(function (droppable) { + return droppable !== source; + }).filter(function (droppable) { + return droppable.isEnabled; + }).filter(function (droppable) { + return Boolean(droppable.subject.active); + }).filter(function (droppable) { + return isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable)); + }).filter(function (droppable) { + var activeOfTarget = getKnownActive(droppable); + + if (isMovingForward) { + return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd]; + } + + return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart]; + }).filter(function (droppable) { + var activeOfTarget = getKnownActive(droppable); + var isBetweenDestinationClipped = isWithin(activeOfTarget[axis.start], activeOfTarget[axis.end]); + return isBetweenSourceClipped(activeOfTarget[axis.start]) || isBetweenSourceClipped(activeOfTarget[axis.end]) || isBetweenDestinationClipped(active[axis.start]) || isBetweenDestinationClipped(active[axis.end]); + }).sort(function (a, b) { + var first = getKnownActive(a)[axis.crossAxisStart]; + var second = getKnownActive(b)[axis.crossAxisStart]; + + if (isMovingForward) { + return first - second; + } + + return second - first; + }).filter(function (droppable, index, array) { + return getKnownActive(droppable)[axis.crossAxisStart] === getKnownActive(array[0])[axis.crossAxisStart]; + }); + + if (!candidates.length) { + return null; + } + + if (candidates.length === 1) { + return candidates[0]; + } + + var contains = candidates.filter(function (droppable) { + var isWithinDroppable = isWithin(getKnownActive(droppable)[axis.start], getKnownActive(droppable)[axis.end]); + return isWithinDroppable(pageBorderBoxCenter[axis.line]); + }); + + if (contains.length === 1) { + return contains[0]; + } + + if (contains.length > 1) { + return contains.sort(function (a, b) { + return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start]; + })[0]; + } + + return candidates.sort(function (a, b) { + var first = closest(pageBorderBoxCenter, getCorners(getKnownActive(a))); + var second = closest(pageBorderBoxCenter, getCorners(getKnownActive(b))); + + if (first !== second) { + return first - second; + } + + return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start]; + })[0]; +}); + +var getCurrentPageBorderBoxCenter = function getCurrentPageBorderBoxCenter(draggable, afterCritical) { + var original = draggable.page.borderBox.center; + return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? subtract(original, afterCritical.displacedBy.point) : original; +}; +var getCurrentPageBorderBox = function getCurrentPageBorderBox(draggable, afterCritical) { + var original = draggable.page.borderBox; + return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? offsetByPosition(original, negate(afterCritical.displacedBy.point)) : original; +}; + +var getClosestDraggable = (function (_ref) { + var pageBorderBoxCenter = _ref.pageBorderBoxCenter, + viewport = _ref.viewport, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + afterCritical = _ref.afterCritical; + var sorted = insideDestination.filter(function (draggable) { + return isTotallyVisible({ + target: getCurrentPageBorderBox(draggable, afterCritical), + destination: destination, + viewport: viewport.frame, + withDroppableDisplacement: true + }); + }).sort(function (a, b) { + var distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(a, afterCritical))); + var distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(b, afterCritical))); + + if (distanceToA < distanceToB) { + return -1; + } + + if (distanceToB < distanceToA) { + return 1; + } + + return a.descriptor.index - b.descriptor.index; + }); + return sorted[0] || null; +}); + +var getDisplacedBy = memoizeOne(function getDisplacedBy(axis, displaceBy) { + var displacement = displaceBy[axis.line]; + return { + value: displacement, + point: patch(axis.line, displacement) + }; +}); + +var getRequiredGrowthForPlaceholder = function getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables) { + var axis = droppable.axis; + + if (droppable.descriptor.mode === 'virtual') { + return patch(axis.line, placeholderSize[axis.line]); + } + + var availableSpace = droppable.subject.page.contentBox[axis.size]; + var insideDroppable = getDraggablesInsideDroppable(droppable.descriptor.id, draggables); + var spaceUsed = insideDroppable.reduce(function (sum, dimension) { + return sum + dimension.client.marginBox[axis.size]; + }, 0); + var requiredSpace = spaceUsed + placeholderSize[axis.line]; + var needsToGrowBy = requiredSpace - availableSpace; + + if (needsToGrowBy <= 0) { + return null; + } + + return patch(axis.line, needsToGrowBy); +}; + +var withMaxScroll = function withMaxScroll(frame, max) { + return _extends({}, frame, { + scroll: _extends({}, frame.scroll, { + max: max + }) + }); +}; + +var addPlaceholder = function addPlaceholder(droppable, draggable, draggables) { + var frame = droppable.frame; + !!isHomeOf(draggable, droppable) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Should not add placeholder space to home list') : invariant(false) : void 0; + !!droppable.subject.withPlaceholder ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot add placeholder size to a subject when it already has one') : invariant(false) : void 0; + var placeholderSize = getDisplacedBy(droppable.axis, draggable.displaceBy).point; + var requiredGrowth = getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables); + var added = { + placeholderSize: placeholderSize, + increasedBy: requiredGrowth, + oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null + }; + + if (!frame) { + var _subject = getSubject({ + page: droppable.subject.page, + withPlaceholder: added, + axis: droppable.axis, + frame: droppable.frame + }); + + return _extends({}, droppable, { + subject: _subject + }); + } + + var maxScroll = requiredGrowth ? add(frame.scroll.max, requiredGrowth) : frame.scroll.max; + var newFrame = withMaxScroll(frame, maxScroll); + var subject = getSubject({ + page: droppable.subject.page, + withPlaceholder: added, + axis: droppable.axis, + frame: newFrame + }); + return _extends({}, droppable, { + subject: subject, + frame: newFrame + }); +}; +var removePlaceholder = function removePlaceholder(droppable) { + var added = droppable.subject.withPlaceholder; + !added ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot remove placeholder form subject when there was none') : invariant(false) : void 0; + var frame = droppable.frame; + + if (!frame) { + var _subject2 = getSubject({ + page: droppable.subject.page, + axis: droppable.axis, + frame: null, + withPlaceholder: null + }); + + return _extends({}, droppable, { + subject: _subject2 + }); + } + + var oldMaxScroll = added.oldFrameMaxScroll; + !oldMaxScroll ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected droppable with frame to have old max frame scroll when removing placeholder') : invariant(false) : void 0; + var newFrame = withMaxScroll(frame, oldMaxScroll); + var subject = getSubject({ + page: droppable.subject.page, + axis: droppable.axis, + frame: newFrame, + withPlaceholder: null + }); + return _extends({}, droppable, { + subject: subject, + frame: newFrame + }); +}; + +var moveToNewDroppable = (function (_ref) { + var previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter, + moveRelativeTo = _ref.moveRelativeTo, + insideDestination = _ref.insideDestination, + draggable = _ref.draggable, + draggables = _ref.draggables, + destination = _ref.destination, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + + if (!moveRelativeTo) { + if (insideDestination.length) { + return null; + } + + var proposed = { + displaced: emptyGroups, + displacedBy: noDisplacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: 0 + } + } + }; + var proposedPageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: proposed, + draggable: draggable, + droppable: destination, + draggables: draggables, + afterCritical: afterCritical + }); + var withPlaceholder = isHomeOf(draggable, destination) ? destination : addPlaceholder(destination, draggable, draggables); + var isVisibleInNewLocation = isTotallyVisibleInNewLocation({ + draggable: draggable, + destination: withPlaceholder, + newPageBorderBoxCenter: proposedPageBorderBoxCenter, + viewport: viewport.frame, + withDroppableDisplacement: false, + onlyOnMainAxis: true + }); + return isVisibleInNewLocation ? proposed : null; + } + + var isGoingBeforeTarget = Boolean(previousPageBorderBoxCenter[destination.axis.line] <= moveRelativeTo.page.borderBox.center[destination.axis.line]); + + var proposedIndex = function () { + var relativeTo = moveRelativeTo.descriptor.index; + + if (moveRelativeTo.descriptor.id === draggable.descriptor.id) { + return relativeTo; + } + + if (isGoingBeforeTarget) { + return relativeTo; + } + + return relativeTo + 1; + }(); + + var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy); + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + displacedBy: displacedBy, + last: emptyGroups, + index: proposedIndex + }); +}); + +var moveCrossAxis = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter, + draggable = _ref.draggable, + isOver = _ref.isOver, + draggables = _ref.draggables, + droppables = _ref.droppables, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var destination = getBestCrossAxisDroppable({ + isMovingForward: isMovingForward, + pageBorderBoxCenter: previousPageBorderBoxCenter, + source: isOver, + droppables: droppables, + viewport: viewport + }); + + if (!destination) { + return null; + } + + var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables); + var moveRelativeTo = getClosestDraggable({ + pageBorderBoxCenter: previousPageBorderBoxCenter, + viewport: viewport, + destination: destination, + insideDestination: insideDestination, + afterCritical: afterCritical + }); + var impact = moveToNewDroppable({ + previousPageBorderBoxCenter: previousPageBorderBoxCenter, + destination: destination, + draggable: draggable, + draggables: draggables, + moveRelativeTo: moveRelativeTo, + insideDestination: insideDestination, + viewport: viewport, + afterCritical: afterCritical + }); + + if (!impact) { + return null; + } + + var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: impact, + draggable: draggable, + droppable: destination, + draggables: draggables, + afterCritical: afterCritical + }); + var clientSelection = getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter: pageBorderBoxCenter, + draggable: draggable, + viewport: viewport + }); + return { + clientSelection: clientSelection, + impact: impact, + scrollJumpRequest: null + }; +}); + +var whatIsDraggedOver = (function (impact) { + var at = impact.at; + + if (!at) { + return null; + } + + if (at.type === 'REORDER') { + return at.destination.droppableId; + } + + return at.combine.droppableId; +}); + +var getDroppableOver = function getDroppableOver(impact, droppables) { + var id = whatIsDraggedOver(impact); + return id ? droppables[id] : null; +}; + +var moveInDirection = (function (_ref) { + var state = _ref.state, + type = _ref.type; + var isActuallyOver = getDroppableOver(state.impact, state.dimensions.droppables); + var isMainAxisMovementAllowed = Boolean(isActuallyOver); + var home = state.dimensions.droppables[state.critical.droppable.id]; + var isOver = isActuallyOver || home; + var direction = isOver.axis.direction; + var isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT'); + + if (isMovingOnMainAxis && !isMainAxisMovementAllowed) { + return null; + } + + var isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT'; + var draggable = state.dimensions.draggables[state.critical.draggable.id]; + var previousPageBorderBoxCenter = state.current.page.borderBoxCenter; + var _state$dimensions = state.dimensions, + draggables = _state$dimensions.draggables, + droppables = _state$dimensions.droppables; + return isMovingOnMainAxis ? moveToNextPlace({ + isMovingForward: isMovingForward, + previousPageBorderBoxCenter: previousPageBorderBoxCenter, + draggable: draggable, + destination: isOver, + draggables: draggables, + viewport: state.viewport, + previousClientSelection: state.current.client.selection, + previousImpact: state.impact, + afterCritical: state.afterCritical + }) : moveCrossAxis({ + isMovingForward: isMovingForward, + previousPageBorderBoxCenter: previousPageBorderBoxCenter, + draggable: draggable, + isOver: isOver, + draggables: draggables, + droppables: droppables, + viewport: state.viewport, + afterCritical: state.afterCritical + }); +}); + +function isMovementAllowed(state) { + return state.phase === 'DRAGGING' || state.phase === 'COLLECTING'; +} + +function isPositionInFrame(frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function run(point) { + return isWithinVertical(point.y) && isWithinHorizontal(point.x); + }; +} + +function getHasOverlap(first, second) { + return first.left < second.right && first.right > second.left && first.top < second.bottom && first.bottom > second.top; +} + +function getFurthestAway(_ref) { + var pageBorderBox = _ref.pageBorderBox, + draggable = _ref.draggable, + candidates = _ref.candidates; + var startCenter = draggable.page.borderBox.center; + var sorted = candidates.map(function (candidate) { + var axis = candidate.axis; + var target = patch(candidate.axis.line, pageBorderBox.center[axis.line], candidate.page.borderBox.center[axis.crossAxisLine]); + return { + id: candidate.descriptor.id, + distance: distance(startCenter, target) + }; + }).sort(function (a, b) { + return b.distance - a.distance; + }); + return sorted[0] ? sorted[0].id : null; +} + +function getDroppableOver$1(_ref2) { + var pageBorderBox = _ref2.pageBorderBox, + draggable = _ref2.draggable, + droppables = _ref2.droppables; + var candidates = toDroppableList(droppables).filter(function (item) { + if (!item.isEnabled) { + return false; + } + + var active = item.subject.active; + + if (!active) { + return false; + } + + if (!getHasOverlap(pageBorderBox, active)) { + return false; + } + + if (isPositionInFrame(active)(pageBorderBox.center)) { + return true; + } + + var axis = item.axis; + var childCenter = active.center[axis.crossAxisLine]; + var crossAxisStart = pageBorderBox[axis.crossAxisStart]; + var crossAxisEnd = pageBorderBox[axis.crossAxisEnd]; + var isContained = isWithin(active[axis.crossAxisStart], active[axis.crossAxisEnd]); + var isStartContained = isContained(crossAxisStart); + var isEndContained = isContained(crossAxisEnd); + + if (!isStartContained && !isEndContained) { + return true; + } + + if (isStartContained) { + return crossAxisStart < childCenter; + } + + return crossAxisEnd > childCenter; + }); + + if (!candidates.length) { + return null; + } + + if (candidates.length === 1) { + return candidates[0].descriptor.id; + } + + return getFurthestAway({ + pageBorderBox: pageBorderBox, + draggable: draggable, + candidates: candidates + }); +} + +var offsetRectByPosition = function offsetRectByPosition(rect, point) { + return cssBoxModel.getRect(offsetByPosition(rect, point)); +}; + +var withDroppableScroll = (function (droppable, area) { + var frame = droppable.frame; + + if (!frame) { + return area; + } + + return offsetRectByPosition(area, frame.scroll.diff.value); +}); + +function getIsDisplaced(_ref) { + var displaced = _ref.displaced, + id = _ref.id; + return Boolean(displaced.visible[id] || displaced.invisible[id]); +} + +function atIndex(_ref) { + var draggable = _ref.draggable, + closest = _ref.closest, + inHomeList = _ref.inHomeList; + + if (!closest) { + return null; + } + + if (!inHomeList) { + return closest.descriptor.index; + } + + if (closest.descriptor.index > draggable.descriptor.index) { + return closest.descriptor.index - 1; + } + + return closest.descriptor.index; +} + +var getReorderImpact = (function (_ref2) { + var targetRect = _ref2.pageBorderBoxWithDroppableScroll, + draggable = _ref2.draggable, + destination = _ref2.destination, + insideDestination = _ref2.insideDestination, + last = _ref2.last, + viewport = _ref2.viewport, + afterCritical = _ref2.afterCritical; + var axis = destination.axis; + var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy); + var displacement = displacedBy.value; + var targetStart = targetRect[axis.start]; + var targetEnd = targetRect[axis.end]; + var withoutDragging = removeDraggableFromList(draggable, insideDestination); + var closest = find(withoutDragging, function (child) { + var id = child.descriptor.id; + var childCenter = child.page.borderBox.center[axis.line]; + var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical); + var isDisplaced = getIsDisplaced({ + displaced: last, + id: id + }); + + if (didStartAfterCritical$1) { + if (isDisplaced) { + return targetEnd <= childCenter; + } + + return targetStart < childCenter - displacement; + } + + if (isDisplaced) { + return targetEnd <= childCenter + displacement; + } + + return targetStart < childCenter; + }); + var newIndex = atIndex({ + draggable: draggable, + closest: closest, + inHomeList: isHomeOf(draggable, destination) + }); + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + last: last, + displacedBy: displacedBy, + index: newIndex + }); +}); + +var combineThresholdDivisor = 4; +var getCombineImpact = (function (_ref) { + var draggable = _ref.draggable, + targetRect = _ref.pageBorderBoxWithDroppableScroll, + previousImpact = _ref.previousImpact, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + afterCritical = _ref.afterCritical; + + if (!destination.isCombineEnabled) { + return null; + } + + var axis = destination.axis; + var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy); + var displacement = displacedBy.value; + var targetStart = targetRect[axis.start]; + var targetEnd = targetRect[axis.end]; + var withoutDragging = removeDraggableFromList(draggable, insideDestination); + var combineWith = find(withoutDragging, function (child) { + var id = child.descriptor.id; + var childRect = child.page.borderBox; + var childSize = childRect[axis.size]; + var threshold = childSize / combineThresholdDivisor; + var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical); + var isDisplaced = getIsDisplaced({ + displaced: previousImpact.displaced, + id: id + }); + + if (didStartAfterCritical$1) { + if (isDisplaced) { + return targetEnd > childRect[axis.start] + threshold && targetEnd < childRect[axis.end] - threshold; + } + + return targetStart > childRect[axis.start] - displacement + threshold && targetStart < childRect[axis.end] - displacement - threshold; + } + + if (isDisplaced) { + return targetEnd > childRect[axis.start] + displacement + threshold && targetEnd < childRect[axis.end] + displacement - threshold; + } + + return targetStart > childRect[axis.start] + threshold && targetStart < childRect[axis.end] - threshold; + }); + + if (!combineWith) { + return null; + } + + var impact = { + displacedBy: displacedBy, + displaced: previousImpact.displaced, + at: { + type: 'COMBINE', + combine: { + draggableId: combineWith.descriptor.id, + droppableId: destination.descriptor.id + } + } + }; + return impact; +}); + +var getDragImpact = (function (_ref) { + var pageOffset = _ref.pageOffset, + draggable = _ref.draggable, + draggables = _ref.draggables, + droppables = _ref.droppables, + previousImpact = _ref.previousImpact, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var pageBorderBox = offsetRectByPosition(draggable.page.borderBox, pageOffset); + var destinationId = getDroppableOver$1({ + pageBorderBox: pageBorderBox, + draggable: draggable, + droppables: droppables + }); + + if (!destinationId) { + return noImpact; + } + + var destination = droppables[destinationId]; + var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables); + var pageBorderBoxWithDroppableScroll = withDroppableScroll(destination, pageBorderBox); + return getCombineImpact({ + pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll, + draggable: draggable, + previousImpact: previousImpact, + destination: destination, + insideDestination: insideDestination, + afterCritical: afterCritical + }) || getReorderImpact({ + pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll, + draggable: draggable, + destination: destination, + insideDestination: insideDestination, + last: previousImpact.displaced, + viewport: viewport, + afterCritical: afterCritical + }); +}); + +var patchDroppableMap = (function (droppables, updated) { + var _extends2; + + return _extends({}, droppables, (_extends2 = {}, _extends2[updated.descriptor.id] = updated, _extends2)); +}); + +var clearUnusedPlaceholder = function clearUnusedPlaceholder(_ref) { + var previousImpact = _ref.previousImpact, + impact = _ref.impact, + droppables = _ref.droppables; + var last = whatIsDraggedOver(previousImpact); + var now = whatIsDraggedOver(impact); + + if (!last) { + return droppables; + } + + if (last === now) { + return droppables; + } + + var lastDroppable = droppables[last]; + + if (!lastDroppable.subject.withPlaceholder) { + return droppables; + } + + var updated = removePlaceholder(lastDroppable); + return patchDroppableMap(droppables, updated); +}; + +var recomputePlaceholders = (function (_ref2) { + var draggable = _ref2.draggable, + draggables = _ref2.draggables, + droppables = _ref2.droppables, + previousImpact = _ref2.previousImpact, + impact = _ref2.impact; + var cleaned = clearUnusedPlaceholder({ + previousImpact: previousImpact, + impact: impact, + droppables: droppables + }); + var isOver = whatIsDraggedOver(impact); + + if (!isOver) { + return cleaned; + } + + var droppable = droppables[isOver]; + + if (isHomeOf(draggable, droppable)) { + return cleaned; + } + + if (droppable.subject.withPlaceholder) { + return cleaned; + } + + var patched = addPlaceholder(droppable, draggable, draggables); + return patchDroppableMap(cleaned, patched); +}); + +var update = (function (_ref) { + var state = _ref.state, + forcedClientSelection = _ref.clientSelection, + forcedDimensions = _ref.dimensions, + forcedViewport = _ref.viewport, + forcedImpact = _ref.impact, + scrollJumpRequest = _ref.scrollJumpRequest; + var viewport = forcedViewport || state.viewport; + var dimensions = forcedDimensions || state.dimensions; + var clientSelection = forcedClientSelection || state.current.client.selection; + var offset = subtract(clientSelection, state.initial.client.selection); + var client = { + offset: offset, + selection: clientSelection, + borderBoxCenter: add(state.initial.client.borderBoxCenter, offset) + }; + var page = { + selection: add(client.selection, viewport.scroll.current), + borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current), + offset: add(client.offset, viewport.scroll.diff.value) + }; + var current = { + client: client, + page: page + }; + + if (state.phase === 'COLLECTING') { + return _extends({ + phase: 'COLLECTING' + }, state, { + dimensions: dimensions, + viewport: viewport, + current: current + }); + } + + var draggable = dimensions.draggables[state.critical.draggable.id]; + var newImpact = forcedImpact || getDragImpact({ + pageOffset: page.offset, + draggable: draggable, + draggables: dimensions.draggables, + droppables: dimensions.droppables, + previousImpact: state.impact, + viewport: viewport, + afterCritical: state.afterCritical + }); + var withUpdatedPlaceholders = recomputePlaceholders({ + draggable: draggable, + impact: newImpact, + previousImpact: state.impact, + draggables: dimensions.draggables, + droppables: dimensions.droppables + }); + + var result = _extends({}, state, { + current: current, + dimensions: { + draggables: dimensions.draggables, + droppables: withUpdatedPlaceholders + }, + impact: newImpact, + viewport: viewport, + scrollJumpRequest: scrollJumpRequest || null, + forceShouldAnimate: scrollJumpRequest ? false : null + }); + + return result; +}); + +function getDraggables$1(ids, draggables) { + return ids.map(function (id) { + return draggables[id]; + }); +} + +var recompute = (function (_ref) { + var impact = _ref.impact, + viewport = _ref.viewport, + draggables = _ref.draggables, + destination = _ref.destination, + forceShouldAnimate = _ref.forceShouldAnimate; + var last = impact.displaced; + var afterDragging = getDraggables$1(last.all, draggables); + var displaced = getDisplacementGroups({ + afterDragging: afterDragging, + destination: destination, + displacedBy: impact.displacedBy, + viewport: viewport.frame, + forceShouldAnimate: forceShouldAnimate, + last: last + }); + return _extends({}, impact, { + displaced: displaced + }); +}); + +var getClientBorderBoxCenter = (function (_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + droppable = _ref.droppable, + draggables = _ref.draggables, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: impact, + draggable: draggable, + draggables: draggables, + droppable: droppable, + afterCritical: afterCritical + }); + return getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter: pageBorderBoxCenter, + draggable: draggable, + viewport: viewport + }); +}); + +var refreshSnap = (function (_ref) { + var state = _ref.state, + forcedDimensions = _ref.dimensions, + forcedViewport = _ref.viewport; + !(state.movementMode === 'SNAP') ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + var needsVisibilityCheck = state.impact; + var viewport = forcedViewport || state.viewport; + var dimensions = forcedDimensions || state.dimensions; + var draggables = dimensions.draggables, + droppables = dimensions.droppables; + var draggable = draggables[state.critical.draggable.id]; + var isOver = whatIsDraggedOver(needsVisibilityCheck); + !isOver ? process.env.NODE_ENV !== "production" ? invariant(false, 'Must be over a destination in SNAP movement mode') : invariant(false) : void 0; + var destination = droppables[isOver]; + var impact = recompute({ + impact: needsVisibilityCheck, + viewport: viewport, + destination: destination, + draggables: draggables + }); + var clientSelection = getClientBorderBoxCenter({ + impact: impact, + draggable: draggable, + droppable: destination, + draggables: draggables, + viewport: viewport, + afterCritical: state.afterCritical + }); + return update({ + impact: impact, + clientSelection: clientSelection, + state: state, + dimensions: dimensions, + viewport: viewport + }); +}); + +var getHomeLocation = (function (descriptor) { + return { + index: descriptor.index, + droppableId: descriptor.droppableId + }; +}); + +var getLiftEffect = (function (_ref) { + var draggable = _ref.draggable, + home = _ref.home, + draggables = _ref.draggables, + viewport = _ref.viewport; + var displacedBy = getDisplacedBy(home.axis, draggable.displaceBy); + var insideHome = getDraggablesInsideDroppable(home.descriptor.id, draggables); + var rawIndex = insideHome.indexOf(draggable); + !(rawIndex !== -1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected draggable to be inside home list') : invariant(false) : void 0; + var afterDragging = insideHome.slice(rawIndex + 1); + var effected = afterDragging.reduce(function (previous, item) { + previous[item.descriptor.id] = true; + return previous; + }, {}); + var afterCritical = { + inVirtualList: home.descriptor.mode === 'virtual', + displacedBy: displacedBy, + effected: effected + }; + var displaced = getDisplacementGroups({ + afterDragging: afterDragging, + destination: home, + displacedBy: displacedBy, + last: null, + viewport: viewport.frame, + forceShouldAnimate: false + }); + var impact = { + displaced: displaced, + displacedBy: displacedBy, + at: { + type: 'REORDER', + destination: getHomeLocation(draggable.descriptor) + } + }; + return { + impact: impact, + afterCritical: afterCritical + }; +}); + +var patchDimensionMap = (function (dimensions, updated) { + return { + draggables: dimensions.draggables, + droppables: patchDroppableMap(dimensions.droppables, updated) + }; +}); + +var start = function start(key) { + if (process.env.NODE_ENV !== 'production') { + { + return; + } + } +}; +var finish = function finish(key) { + if (process.env.NODE_ENV !== 'production') { + { + return; + } + } +}; + +var offsetDraggable = (function (_ref) { + var draggable = _ref.draggable, + offset = _ref.offset, + initialWindowScroll = _ref.initialWindowScroll; + var client = cssBoxModel.offset(draggable.client, offset); + var page = cssBoxModel.withScroll(client, initialWindowScroll); + + var moved = _extends({}, draggable, { + placeholder: _extends({}, draggable.placeholder, { + client: client + }), + client: client, + page: page + }); + + return moved; +}); + +var getFrame = (function (droppable) { + var frame = droppable.frame; + !frame ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected Droppable to have a frame') : invariant(false) : void 0; + return frame; +}); + +var adjustAdditionsForScrollChanges = (function (_ref) { + var additions = _ref.additions, + updatedDroppables = _ref.updatedDroppables, + viewport = _ref.viewport; + var windowScrollChange = viewport.scroll.diff.value; + return additions.map(function (draggable) { + var droppableId = draggable.descriptor.droppableId; + var modified = updatedDroppables[droppableId]; + var frame = getFrame(modified); + var droppableScrollChange = frame.scroll.diff.value; + var totalChange = add(windowScrollChange, droppableScrollChange); + var moved = offsetDraggable({ + draggable: draggable, + offset: totalChange, + initialWindowScroll: viewport.scroll.initial + }); + return moved; + }); +}); + +var publishWhileDraggingInVirtual = (function (_ref) { + var state = _ref.state, + published = _ref.published; + start(); + var withScrollChange = published.modified.map(function (update) { + var existing = state.dimensions.droppables[update.droppableId]; + var scrolled = scrollDroppable(existing, update.scroll); + return scrolled; + }); + + var droppables = _extends({}, state.dimensions.droppables, {}, toDroppableMap(withScrollChange)); + + var updatedAdditions = toDraggableMap(adjustAdditionsForScrollChanges({ + additions: published.additions, + updatedDroppables: droppables, + viewport: state.viewport + })); + + var draggables = _extends({}, state.dimensions.draggables, {}, updatedAdditions); + + published.removals.forEach(function (id) { + delete draggables[id]; + }); + var dimensions = { + droppables: droppables, + draggables: draggables + }; + var wasOverId = whatIsDraggedOver(state.impact); + var wasOver = wasOverId ? dimensions.droppables[wasOverId] : null; + var draggable = dimensions.draggables[state.critical.draggable.id]; + var home = dimensions.droppables[state.critical.droppable.id]; + + var _getLiftEffect = getLiftEffect({ + draggable: draggable, + home: home, + draggables: draggables, + viewport: state.viewport + }), + onLiftImpact = _getLiftEffect.impact, + afterCritical = _getLiftEffect.afterCritical; + + var previousImpact = wasOver && wasOver.isCombineEnabled ? state.impact : onLiftImpact; + var impact = getDragImpact({ + pageOffset: state.current.page.offset, + draggable: dimensions.draggables[state.critical.draggable.id], + draggables: dimensions.draggables, + droppables: dimensions.droppables, + previousImpact: previousImpact, + viewport: state.viewport, + afterCritical: afterCritical + }); + finish(); + + var draggingState = _extends({ + phase: 'DRAGGING' + }, state, { + phase: 'DRAGGING', + impact: impact, + onLiftImpact: onLiftImpact, + dimensions: dimensions, + afterCritical: afterCritical, + forceShouldAnimate: false + }); + + if (state.phase === 'COLLECTING') { + return draggingState; + } + + var dropPending = _extends({ + phase: 'DROP_PENDING' + }, draggingState, { + phase: 'DROP_PENDING', + reason: state.reason, + isWaiting: false + }); + + return dropPending; +}); + +var isSnapping = function isSnapping(state) { + return state.movementMode === 'SNAP'; +}; + +var postDroppableChange = function postDroppableChange(state, updated, isEnabledChanging) { + var dimensions = patchDimensionMap(state.dimensions, updated); + + if (!isSnapping(state) || isEnabledChanging) { + return update({ + state: state, + dimensions: dimensions + }); + } + + return refreshSnap({ + state: state, + dimensions: dimensions + }); +}; + +function removeScrollJumpRequest(state) { + if (state.isDragging && state.movementMode === 'SNAP') { + return _extends({ + phase: 'DRAGGING' + }, state, { + scrollJumpRequest: null + }); + } + + return state; +} + +var idle = { + phase: 'IDLE', + completed: null, + shouldFlush: false +}; +var reducer = (function (state, action) { + if (state === void 0) { + state = idle; + } + + if (action.type === 'FLUSH') { + return _extends({}, idle, { + shouldFlush: true + }); + } + + if (action.type === 'INITIAL_PUBLISH') { + !(state.phase === 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'INITIAL_PUBLISH must come after a IDLE phase') : invariant(false) : void 0; + var _action$payload = action.payload, + critical = _action$payload.critical, + clientSelection = _action$payload.clientSelection, + viewport = _action$payload.viewport, + dimensions = _action$payload.dimensions, + movementMode = _action$payload.movementMode; + var draggable = dimensions.draggables[critical.draggable.id]; + var home = dimensions.droppables[critical.droppable.id]; + var client = { + selection: clientSelection, + borderBoxCenter: draggable.client.borderBox.center, + offset: origin + }; + var initial = { + client: client, + page: { + selection: add(client.selection, viewport.scroll.initial), + borderBoxCenter: add(client.selection, viewport.scroll.initial), + offset: add(client.selection, viewport.scroll.diff.value) + } + }; + var isWindowScrollAllowed = toDroppableList(dimensions.droppables).every(function (item) { + return !item.isFixedOnPage; + }); + + var _getLiftEffect = getLiftEffect({ + draggable: draggable, + home: home, + draggables: dimensions.draggables, + viewport: viewport + }), + impact = _getLiftEffect.impact, + afterCritical = _getLiftEffect.afterCritical; + + var result = { + phase: 'DRAGGING', + isDragging: true, + critical: critical, + movementMode: movementMode, + dimensions: dimensions, + initial: initial, + current: initial, + isWindowScrollAllowed: isWindowScrollAllowed, + impact: impact, + afterCritical: afterCritical, + onLiftImpact: impact, + viewport: viewport, + scrollJumpRequest: null, + forceShouldAnimate: null + }; + return result; + } + + if (action.type === 'COLLECTION_STARTING') { + if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') { + return state; + } + + !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Collection cannot start from phase " + state.phase) : invariant(false) : void 0; + + var _result = _extends({ + phase: 'COLLECTING' + }, state, { + phase: 'COLLECTING' + }); + + return _result; + } + + if (action.type === 'PUBLISH_WHILE_DRAGGING') { + !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Unexpected " + action.type + " received in phase " + state.phase) : invariant(false) : void 0; + return publishWhileDraggingInVirtual({ + state: state, + published: action.payload + }); + } + + if (action.type === 'MOVE') { + if (state.phase === 'DROP_PENDING') { + return state; + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, action.type + " not permitted in phase " + state.phase) : invariant(false) : void 0; + var _clientSelection = action.payload.client; + + if (isEqual(_clientSelection, state.current.client.selection)) { + return state; + } + + return update({ + state: state, + clientSelection: _clientSelection, + impact: isSnapping(state) ? state.impact : null + }); + } + + if (action.type === 'UPDATE_DROPPABLE_SCROLL') { + if (state.phase === 'DROP_PENDING') { + return removeScrollJumpRequest(state); + } + + if (state.phase === 'COLLECTING') { + return removeScrollJumpRequest(state); + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, action.type + " not permitted in phase " + state.phase) : invariant(false) : void 0; + var _action$payload2 = action.payload, + id = _action$payload2.id, + newScroll = _action$payload2.newScroll; + var target = state.dimensions.droppables[id]; + + if (!target) { + return state; + } + + var scrolled = scrollDroppable(target, newScroll); + return postDroppableChange(state, scrolled, false); + } + + if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') { + if (state.phase === 'DROP_PENDING') { + return state; + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, "Attempting to move in an unsupported phase " + state.phase) : invariant(false) : void 0; + var _action$payload3 = action.payload, + _id = _action$payload3.id, + isEnabled = _action$payload3.isEnabled; + var _target = state.dimensions.droppables[_id]; + !_target ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot find Droppable[id: " + _id + "] to toggle its enabled state") : invariant(false) : void 0; + !(_target.isEnabled !== isEnabled) ? process.env.NODE_ENV !== "production" ? invariant(false, "Trying to set droppable isEnabled to " + String(isEnabled) + "\n but it is already " + String(_target.isEnabled)) : invariant(false) : void 0; + + var updated = _extends({}, _target, { + isEnabled: isEnabled + }); + + return postDroppableChange(state, updated, true); + } + + if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') { + if (state.phase === 'DROP_PENDING') { + return state; + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, "Attempting to move in an unsupported phase " + state.phase) : invariant(false) : void 0; + var _action$payload4 = action.payload, + _id2 = _action$payload4.id, + isCombineEnabled = _action$payload4.isCombineEnabled; + var _target2 = state.dimensions.droppables[_id2]; + !_target2 ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot find Droppable[id: " + _id2 + "] to toggle its isCombineEnabled state") : invariant(false) : void 0; + !(_target2.isCombineEnabled !== isCombineEnabled) ? process.env.NODE_ENV !== "production" ? invariant(false, "Trying to set droppable isCombineEnabled to " + String(isCombineEnabled) + "\n but it is already " + String(_target2.isCombineEnabled)) : invariant(false) : void 0; + + var _updated = _extends({}, _target2, { + isCombineEnabled: isCombineEnabled + }); + + return postDroppableChange(state, _updated, true); + } + + if (action.type === 'MOVE_BY_WINDOW_SCROLL') { + if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') { + return state; + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot move by window in phase " + state.phase) : invariant(false) : void 0; + !state.isWindowScrollAllowed ? process.env.NODE_ENV !== "production" ? invariant(false, 'Window scrolling is currently not supported for fixed lists') : invariant(false) : void 0; + var _newScroll = action.payload.newScroll; + + if (isEqual(state.viewport.scroll.current, _newScroll)) { + return removeScrollJumpRequest(state); + } + + var _viewport = scrollViewport(state.viewport, _newScroll); + + if (isSnapping(state)) { + return refreshSnap({ + state: state, + viewport: _viewport + }); + } + + return update({ + state: state, + viewport: _viewport + }); + } + + if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') { + if (!isMovementAllowed(state)) { + return state; + } + + var maxScroll = action.payload.maxScroll; + + if (isEqual(maxScroll, state.viewport.scroll.max)) { + return state; + } + + var withMaxScroll = _extends({}, state.viewport, { + scroll: _extends({}, state.viewport.scroll, { + max: maxScroll + }) + }); + + return _extends({ + phase: 'DRAGGING' + }, state, { + viewport: withMaxScroll + }); + } + + if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') { + if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') { + return state; + } + + !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== "production" ? invariant(false, action.type + " received while not in DRAGGING phase") : invariant(false) : void 0; + + var _result2 = moveInDirection({ + state: state, + type: action.type + }); + + if (!_result2) { + return state; + } + + return update({ + state: state, + impact: _result2.impact, + clientSelection: _result2.clientSelection, + scrollJumpRequest: _result2.scrollJumpRequest + }); + } + + if (action.type === 'DROP_PENDING') { + var reason = action.payload.reason; + !(state.phase === 'COLLECTING') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : invariant(false) : void 0; + + var newState = _extends({ + phase: 'DROP_PENDING' + }, state, { + phase: 'DROP_PENDING', + isWaiting: true, + reason: reason + }); + + return newState; + } + + if (action.type === 'DROP_ANIMATE') { + var _action$payload5 = action.payload, + completed = _action$payload5.completed, + dropDuration = _action$payload5.dropDuration, + newHomeClientOffset = _action$payload5.newHomeClientOffset; + !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot animate drop from phase " + state.phase) : invariant(false) : void 0; + var _result3 = { + phase: 'DROP_ANIMATING', + completed: completed, + dropDuration: dropDuration, + newHomeClientOffset: newHomeClientOffset, + dimensions: state.dimensions + }; + return _result3; + } + + if (action.type === 'DROP_COMPLETE') { + var _completed = action.payload.completed; + return { + phase: 'IDLE', + completed: _completed, + shouldFlush: false + }; + } + + return state; +}); + +var beforeInitialCapture = function beforeInitialCapture(args) { + return { + type: 'BEFORE_INITIAL_CAPTURE', + payload: args + }; +}; +var lift = function lift(args) { + return { + type: 'LIFT', + payload: args + }; +}; +var initialPublish = function initialPublish(args) { + return { + type: 'INITIAL_PUBLISH', + payload: args + }; +}; +var publishWhileDragging = function publishWhileDragging(args) { + return { + type: 'PUBLISH_WHILE_DRAGGING', + payload: args + }; +}; +var collectionStarting = function collectionStarting() { + return { + type: 'COLLECTION_STARTING', + payload: null + }; +}; +var updateDroppableScroll = function updateDroppableScroll(args) { + return { + type: 'UPDATE_DROPPABLE_SCROLL', + payload: args + }; +}; +var updateDroppableIsEnabled = function updateDroppableIsEnabled(args) { + return { + type: 'UPDATE_DROPPABLE_IS_ENABLED', + payload: args + }; +}; +var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(args) { + return { + type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED', + payload: args + }; +}; +var move = function move(args) { + return { + type: 'MOVE', + payload: args + }; +}; +var moveByWindowScroll = function moveByWindowScroll(args) { + return { + type: 'MOVE_BY_WINDOW_SCROLL', + payload: args + }; +}; +var updateViewportMaxScroll = function updateViewportMaxScroll(args) { + return { + type: 'UPDATE_VIEWPORT_MAX_SCROLL', + payload: args + }; +}; +var moveUp = function moveUp() { + return { + type: 'MOVE_UP', + payload: null + }; +}; +var moveDown = function moveDown() { + return { + type: 'MOVE_DOWN', + payload: null + }; +}; +var moveRight = function moveRight() { + return { + type: 'MOVE_RIGHT', + payload: null + }; +}; +var moveLeft = function moveLeft() { + return { + type: 'MOVE_LEFT', + payload: null + }; +}; +var flush = function flush() { + return { + type: 'FLUSH', + payload: null + }; +}; +var animateDrop = function animateDrop(args) { + return { + type: 'DROP_ANIMATE', + payload: args + }; +}; +var completeDrop = function completeDrop(args) { + return { + type: 'DROP_COMPLETE', + payload: args + }; +}; +var drop = function drop(args) { + return { + type: 'DROP', + payload: args + }; +}; +var dropPending = function dropPending(args) { + return { + type: 'DROP_PENDING', + payload: args + }; +}; +var dropAnimationFinished = function dropAnimationFinished() { + return { + type: 'DROP_ANIMATION_FINISHED', + payload: null + }; +}; + +function checkIndexes(insideDestination) { + if (insideDestination.length <= 1) { + return; + } + + var indexes = insideDestination.map(function (d) { + return d.descriptor.index; + }); + var errors = {}; + + for (var i = 1; i < indexes.length; i++) { + var current = indexes[i]; + var previous = indexes[i - 1]; + + if (current !== previous + 1) { + errors[current] = true; + } + } + + if (!Object.keys(errors).length) { + return; + } + + var formatted = indexes.map(function (index) { + var hasError = Boolean(errors[index]); + return hasError ? "[\uD83D\uDD25" + index + "]" : "" + index; + }).join(', '); + process.env.NODE_ENV !== "production" ? warning("\n Detected non-consecutive indexes.\n\n (This can cause unexpected bugs)\n\n " + formatted + "\n ") : void 0; +} + +function validateDimensions(critical, dimensions) { + if (process.env.NODE_ENV !== 'production') { + var insideDestination = getDraggablesInsideDroppable(critical.droppable.id, dimensions.draggables); + checkIndexes(insideDestination); + } +} + +var lift$1 = (function (marshal) { + return function (_ref) { + var getState = _ref.getState, + dispatch = _ref.dispatch; + return function (next) { + return function (action) { + if (action.type !== 'LIFT') { + next(action); + return; + } + + var _action$payload = action.payload, + id = _action$payload.id, + clientSelection = _action$payload.clientSelection, + movementMode = _action$payload.movementMode; + var initial = getState(); + + if (initial.phase === 'DROP_ANIMATING') { + dispatch(completeDrop({ + completed: initial.completed + })); + } + + !(getState().phase === 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Unexpected phase to start a drag') : invariant(false) : void 0; + dispatch(flush()); + dispatch(beforeInitialCapture({ + draggableId: id, + movementMode: movementMode + })); + var scrollOptions = { + shouldPublishImmediately: movementMode === 'SNAP' + }; + var request = { + draggableId: id, + scrollOptions: scrollOptions + }; + + var _marshal$startPublish = marshal.startPublishing(request), + critical = _marshal$startPublish.critical, + dimensions = _marshal$startPublish.dimensions, + viewport = _marshal$startPublish.viewport; + + validateDimensions(critical, dimensions); + dispatch(initialPublish({ + critical: critical, + dimensions: dimensions, + clientSelection: clientSelection, + movementMode: movementMode, + viewport: viewport + })); + }; + }; + }; +}); + +var style = (function (marshal) { + return function () { + return function (next) { + return function (action) { + if (action.type === 'INITIAL_PUBLISH') { + marshal.dragging(); + } + + if (action.type === 'DROP_ANIMATE') { + marshal.dropping(action.payload.completed.result.reason); + } + + if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE') { + marshal.resting(); + } + + next(action); + }; + }; + }; +}); + +var curves = { + outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)', + drop: 'cubic-bezier(.2,1,.1,1)' +}; +var combine = { + opacity: { + drop: 0, + combining: 0.7 + }, + scale: { + drop: 0.75 + } +}; +var timings = { + outOfTheWay: 0.2, + minDropTime: 0.33, + maxDropTime: 0.55 +}; +var outOfTheWayTiming = timings.outOfTheWay + "s " + curves.outOfTheWay; +var transitions = { + fluid: "opacity " + outOfTheWayTiming, + snap: "transform " + outOfTheWayTiming + ", opacity " + outOfTheWayTiming, + drop: function drop(duration) { + var timing = duration + "s " + curves.drop; + return "transform " + timing + ", opacity " + timing; + }, + outOfTheWay: "transform " + outOfTheWayTiming, + placeholder: "height " + outOfTheWayTiming + ", width " + outOfTheWayTiming + ", margin " + outOfTheWayTiming +}; + +var moveTo = function moveTo(offset) { + return isEqual(offset, origin) ? null : "translate(" + offset.x + "px, " + offset.y + "px)"; +}; + +var transforms = { + moveTo: moveTo, + drop: function drop(offset, isCombining) { + var translate = moveTo(offset); + + if (!translate) { + return null; + } + + if (!isCombining) { + return translate; + } + + return translate + " scale(" + combine.scale.drop + ")"; + } +}; + +var minDropTime = timings.minDropTime, + maxDropTime = timings.maxDropTime; +var dropTimeRange = maxDropTime - minDropTime; +var maxDropTimeAtDistance = 1500; +var cancelDropModifier = 0.6; +var getDropDuration = (function (_ref) { + var current = _ref.current, + destination = _ref.destination, + reason = _ref.reason; + var distance$1 = distance(current, destination); + + if (distance$1 <= 0) { + return minDropTime; + } + + if (distance$1 >= maxDropTimeAtDistance) { + return maxDropTime; + } + + var percentage = distance$1 / maxDropTimeAtDistance; + var duration = minDropTime + dropTimeRange * percentage; + var withDuration = reason === 'CANCEL' ? duration * cancelDropModifier : duration; + return Number(withDuration.toFixed(2)); +}); + +var getNewHomeClientOffset = (function (_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + dimensions = _ref.dimensions, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var draggables = dimensions.draggables, + droppables = dimensions.droppables; + var droppableId = whatIsDraggedOver(impact); + var destination = droppableId ? droppables[droppableId] : null; + var home = droppables[draggable.descriptor.droppableId]; + var newClientCenter = getClientBorderBoxCenter({ + impact: impact, + draggable: draggable, + draggables: draggables, + afterCritical: afterCritical, + droppable: destination || home, + viewport: viewport + }); + var offset = subtract(newClientCenter, draggable.client.borderBox.center); + return offset; +}); + +var getDropImpact = (function (_ref) { + var draggables = _ref.draggables, + reason = _ref.reason, + lastImpact = _ref.lastImpact, + home = _ref.home, + viewport = _ref.viewport, + onLiftImpact = _ref.onLiftImpact; + + if (!lastImpact.at || reason !== 'DROP') { + var recomputedHomeImpact = recompute({ + draggables: draggables, + impact: onLiftImpact, + destination: home, + viewport: viewport, + forceShouldAnimate: true + }); + return { + impact: recomputedHomeImpact, + didDropInsideDroppable: false + }; + } + + if (lastImpact.at.type === 'REORDER') { + return { + impact: lastImpact, + didDropInsideDroppable: true + }; + } + + var withoutMovement = _extends({}, lastImpact, { + displaced: emptyGroups + }); + + return { + impact: withoutMovement, + didDropInsideDroppable: true + }; +}); + +var drop$1 = (function (_ref) { + var getState = _ref.getState, + dispatch = _ref.dispatch; + return function (next) { + return function (action) { + if (action.type !== 'DROP') { + next(action); + return; + } + + var state = getState(); + var reason = action.payload.reason; + + if (state.phase === 'COLLECTING') { + dispatch(dropPending({ + reason: reason + })); + return; + } + + if (state.phase === 'IDLE') { + return; + } + + var isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting; + !!isWaitingForDrop ? process.env.NODE_ENV !== "production" ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : invariant(false) : void 0; + !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot drop in phase: " + state.phase) : invariant(false) : void 0; + var critical = state.critical; + var dimensions = state.dimensions; + var draggable = dimensions.draggables[state.critical.draggable.id]; + + var _getDropImpact = getDropImpact({ + reason: reason, + lastImpact: state.impact, + afterCritical: state.afterCritical, + onLiftImpact: state.onLiftImpact, + home: state.dimensions.droppables[state.critical.droppable.id], + viewport: state.viewport, + draggables: state.dimensions.draggables + }), + impact = _getDropImpact.impact, + didDropInsideDroppable = _getDropImpact.didDropInsideDroppable; + + var destination = didDropInsideDroppable ? tryGetDestination(impact) : null; + var combine = didDropInsideDroppable ? tryGetCombine(impact) : null; + var source = { + index: critical.draggable.index, + droppableId: critical.droppable.id + }; + var result = { + draggableId: draggable.descriptor.id, + type: draggable.descriptor.type, + source: source, + reason: reason, + mode: state.movementMode, + destination: destination, + combine: combine + }; + var newHomeClientOffset = getNewHomeClientOffset({ + impact: impact, + draggable: draggable, + dimensions: dimensions, + viewport: state.viewport, + afterCritical: state.afterCritical + }); + var completed = { + critical: state.critical, + afterCritical: state.afterCritical, + result: result, + impact: impact + }; + var isAnimationRequired = !isEqual(state.current.client.offset, newHomeClientOffset) || Boolean(result.combine); + + if (!isAnimationRequired) { + dispatch(completeDrop({ + completed: completed + })); + return; + } + + var dropDuration = getDropDuration({ + current: state.current.client.offset, + destination: newHomeClientOffset, + reason: reason + }); + var args = { + newHomeClientOffset: newHomeClientOffset, + dropDuration: dropDuration, + completed: completed + }; + dispatch(animateDrop(args)); + }; + }; +}); + +var getWindowScroll = (function () { + return { + x: window.pageXOffset, + y: window.pageYOffset + }; +}); + +function getWindowScrollBinding(update) { + return { + eventName: 'scroll', + options: { + passive: true, + capture: false + }, + fn: function fn(event) { + if (event.target !== window && event.target !== window.document) { + return; + } + + update(); + } + }; +} + +function getScrollListener(_ref) { + var onWindowScroll = _ref.onWindowScroll; + + function updateScroll() { + onWindowScroll(getWindowScroll()); + } + + var scheduled = rafSchd(updateScroll); + var binding = getWindowScrollBinding(scheduled); + var unbind = noop; + + function isActive() { + return unbind !== noop; + } + + function start() { + !!isActive() ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot start scroll listener when already active') : invariant(false) : void 0; + unbind = bindEvents(window, [binding]); + } + + function stop() { + !isActive() ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot stop scroll listener when not active') : invariant(false) : void 0; + scheduled.cancel(); + unbind(); + unbind = noop; + } + + return { + start: start, + stop: stop, + isActive: isActive + }; +} + +var shouldEnd = function shouldEnd(action) { + return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH'; +}; + +var scrollListener = (function (store) { + var listener = getScrollListener({ + onWindowScroll: function onWindowScroll(newScroll) { + store.dispatch(moveByWindowScroll({ + newScroll: newScroll + })); + } + }); + return function (next) { + return function (action) { + if (!listener.isActive() && action.type === 'INITIAL_PUBLISH') { + listener.start(); + } + + if (listener.isActive() && shouldEnd(action)) { + listener.stop(); + } + + next(action); + }; + }; +}); + +var getExpiringAnnounce = (function (announce) { + var wasCalled = false; + var isExpired = false; + var timeoutId = setTimeout(function () { + isExpired = true; + }); + + var result = function result(message) { + if (wasCalled) { + process.env.NODE_ENV !== "production" ? warning('Announcement already made. Not making a second announcement') : void 0; + return; + } + + if (isExpired) { + process.env.NODE_ENV !== "production" ? warning("\n Announcements cannot be made asynchronously.\n Default message has already been announced.\n ") : void 0; + return; + } + + wasCalled = true; + announce(message); + clearTimeout(timeoutId); + }; + + result.wasCalled = function () { + return wasCalled; + }; + + return result; +}); + +var getAsyncMarshal = (function () { + var entries = []; + + var execute = function execute(timerId) { + var index = findIndex(entries, function (item) { + return item.timerId === timerId; + }); + !(index !== -1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find timer') : invariant(false) : void 0; + + var _entries$splice = entries.splice(index, 1), + entry = _entries$splice[0]; + + entry.callback(); + }; + + var add = function add(fn) { + var timerId = setTimeout(function () { + return execute(timerId); + }); + var entry = { + timerId: timerId, + callback: fn + }; + entries.push(entry); + }; + + var flush = function flush() { + if (!entries.length) { + return; + } + + var shallow = [].concat(entries); + entries.length = 0; + shallow.forEach(function (entry) { + clearTimeout(entry.timerId); + entry.callback(); + }); + }; + + return { + add: add, + flush: flush + }; +}); + +var areLocationsEqual = function areLocationsEqual(first, second) { + if (first == null && second == null) { + return true; + } + + if (first == null || second == null) { + return false; + } + + return first.droppableId === second.droppableId && first.index === second.index; +}; +var isCombineEqual = function isCombineEqual(first, second) { + if (first == null && second == null) { + return true; + } + + if (first == null || second == null) { + return false; + } + + return first.draggableId === second.draggableId && first.droppableId === second.droppableId; +}; +var isCriticalEqual = function isCriticalEqual(first, second) { + if (first === second) { + return true; + } + + var isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index; + var isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type; + return isDraggableEqual && isDroppableEqual; +}; + +var withTimings = function withTimings(key, fn) { + start(); + fn(); + finish(); +}; + +var getDragStart = function getDragStart(critical, mode) { + return { + draggableId: critical.draggable.id, + type: critical.droppable.type, + source: { + droppableId: critical.droppable.id, + index: critical.draggable.index + }, + mode: mode + }; +}; + +var execute = function execute(responder, data, announce, getDefaultMessage) { + if (!responder) { + announce(getDefaultMessage(data)); + return; + } + + var willExpire = getExpiringAnnounce(announce); + var provided = { + announce: willExpire + }; + responder(data, provided); + + if (!willExpire.wasCalled()) { + announce(getDefaultMessage(data)); + } +}; + +var getPublisher = (function (getResponders, announce) { + var asyncMarshal = getAsyncMarshal(); + var dragging = null; + + var beforeCapture = function beforeCapture(draggableId, mode) { + !!dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onBeforeCapture as a drag start has already been published') : invariant(false) : void 0; + withTimings('onBeforeCapture', function () { + var fn = getResponders().onBeforeCapture; + + if (fn) { + var before = { + draggableId: draggableId, + mode: mode + }; + fn(before); + } + }); + }; + + var beforeStart = function beforeStart(critical, mode) { + !!dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0; + withTimings('onBeforeDragStart', function () { + var fn = getResponders().onBeforeDragStart; + + if (fn) { + fn(getDragStart(critical, mode)); + } + }); + }; + + var start = function start(critical, mode) { + !!dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0; + var data = getDragStart(critical, mode); + dragging = { + mode: mode, + lastCritical: critical, + lastLocation: data.source, + lastCombine: null + }; + asyncMarshal.add(function () { + withTimings('onDragStart', function () { + return execute(getResponders().onDragStart, data, announce, preset.onDragStart); + }); + }); + }; + + var update = function update(critical, impact) { + var location = tryGetDestination(impact); + var combine = tryGetCombine(impact); + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : invariant(false) : void 0; + var hasCriticalChanged = !isCriticalEqual(critical, dragging.lastCritical); + + if (hasCriticalChanged) { + dragging.lastCritical = critical; + } + + var hasLocationChanged = !areLocationsEqual(dragging.lastLocation, location); + + if (hasLocationChanged) { + dragging.lastLocation = location; + } + + var hasGroupingChanged = !isCombineEqual(dragging.lastCombine, combine); + + if (hasGroupingChanged) { + dragging.lastCombine = combine; + } + + if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) { + return; + } + + var data = _extends({}, getDragStart(critical, dragging.mode), { + combine: combine, + destination: location + }); + + asyncMarshal.add(function () { + withTimings('onDragUpdate', function () { + return execute(getResponders().onDragUpdate, data, announce, preset.onDragUpdate); + }); + }); + }; + + var flush = function flush() { + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Can only flush responders while dragging') : invariant(false) : void 0; + asyncMarshal.flush(); + }; + + var drop = function drop(result) { + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : invariant(false) : void 0; + dragging = null; + withTimings('onDragEnd', function () { + return execute(getResponders().onDragEnd, result, announce, preset.onDragEnd); + }); + }; + + var abort = function abort() { + if (!dragging) { + return; + } + + var result = _extends({}, getDragStart(dragging.lastCritical, dragging.mode), { + combine: null, + destination: null, + reason: 'CANCEL' + }); + + drop(result); + }; + + return { + beforeCapture: beforeCapture, + beforeStart: beforeStart, + start: start, + update: update, + flush: flush, + drop: drop, + abort: abort + }; +}); + +var responders = (function (getResponders, announce) { + var publisher = getPublisher(getResponders, announce); + return function (store) { + return function (next) { + return function (action) { + if (action.type === 'BEFORE_INITIAL_CAPTURE') { + publisher.beforeCapture(action.payload.draggableId, action.payload.movementMode); + return; + } + + if (action.type === 'INITIAL_PUBLISH') { + var critical = action.payload.critical; + publisher.beforeStart(critical, action.payload.movementMode); + next(action); + publisher.start(critical, action.payload.movementMode); + return; + } + + if (action.type === 'DROP_COMPLETE') { + var result = action.payload.completed.result; + publisher.flush(); + next(action); + publisher.drop(result); + return; + } + + next(action); + + if (action.type === 'FLUSH') { + publisher.abort(); + return; + } + + var state = store.getState(); + + if (state.phase === 'DRAGGING') { + publisher.update(state.critical, state.impact); + } + }; + }; + }; +}); + +var dropAnimationFinish = (function (store) { + return function (next) { + return function (action) { + if (action.type !== 'DROP_ANIMATION_FINISHED') { + next(action); + return; + } + + var state = store.getState(); + !(state.phase === 'DROP_ANIMATING') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : invariant(false) : void 0; + store.dispatch(completeDrop({ + completed: state.completed + })); + }; + }; +}); + +var dropAnimationFlushOnScroll = (function (store) { + var unbind = null; + var frameId = null; + + function clear() { + if (frameId) { + cancelAnimationFrame(frameId); + frameId = null; + } + + if (unbind) { + unbind(); + unbind = null; + } + } + + return function (next) { + return function (action) { + if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATION_FINISHED') { + clear(); + } + + next(action); + + if (action.type !== 'DROP_ANIMATE') { + return; + } + + var binding = { + eventName: 'scroll', + options: { + capture: true, + passive: false, + once: true + }, + fn: function flushDropAnimation() { + var state = store.getState(); + + if (state.phase === 'DROP_ANIMATING') { + store.dispatch(dropAnimationFinished()); + } + } + }; + frameId = requestAnimationFrame(function () { + frameId = null; + unbind = bindEvents(window, [binding]); + }); + }; + }; +}); + +var dimensionMarshalStopper = (function (marshal) { + return function () { + return function (next) { + return function (action) { + if (action.type === 'DROP_COMPLETE' || action.type === 'FLUSH' || action.type === 'DROP_ANIMATE') { + marshal.stopPublishing(); + } + + next(action); + }; + }; + }; +}); + +var focus = (function (marshal) { + var isWatching = false; + return function () { + return function (next) { + return function (action) { + if (action.type === 'INITIAL_PUBLISH') { + isWatching = true; + marshal.tryRecordFocus(action.payload.critical.draggable.id); + next(action); + marshal.tryRestoreFocusRecorded(); + return; + } + + next(action); + + if (!isWatching) { + return; + } + + if (action.type === 'FLUSH') { + isWatching = false; + marshal.tryRestoreFocusRecorded(); + return; + } + + if (action.type === 'DROP_COMPLETE') { + isWatching = false; + var result = action.payload.completed.result; + + if (result.combine) { + marshal.tryShiftRecord(result.draggableId, result.combine.draggableId); + } + + marshal.tryRestoreFocusRecorded(); + } + }; + }; + }; +}); + +var shouldStop = function shouldStop(action) { + return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH'; +}; + +var autoScroll = (function (autoScroller) { + return function (store) { + return function (next) { + return function (action) { + if (shouldStop(action)) { + autoScroller.stop(); + next(action); + return; + } + + if (action.type === 'INITIAL_PUBLISH') { + next(action); + var state = store.getState(); + !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected phase to be DRAGGING after INITIAL_PUBLISH') : invariant(false) : void 0; + autoScroller.start(state); + return; + } + + next(action); + autoScroller.scroll(store.getState()); + }; + }; + }; +}); + +var pendingDrop = (function (store) { + return function (next) { + return function (action) { + next(action); + + if (action.type !== 'PUBLISH_WHILE_DRAGGING') { + return; + } + + var postActionState = store.getState(); + + if (postActionState.phase !== 'DROP_PENDING') { + return; + } + + if (postActionState.isWaiting) { + return; + } + + store.dispatch(drop({ + reason: postActionState.reason + })); + }; + }; +}); + +var composeEnhancers = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ + name: 'react-beautiful-dnd' +}) : redux.compose; +var createStore = (function (_ref) { + var dimensionMarshal = _ref.dimensionMarshal, + focusMarshal = _ref.focusMarshal, + styleMarshal = _ref.styleMarshal, + getResponders = _ref.getResponders, + announce = _ref.announce, + autoScroller = _ref.autoScroller; + return redux.createStore(reducer, composeEnhancers(redux.applyMiddleware(style(styleMarshal), dimensionMarshalStopper(dimensionMarshal), lift$1(dimensionMarshal), drop$1, dropAnimationFinish, dropAnimationFlushOnScroll, pendingDrop, autoScroll(autoScroller), scrollListener, focus(focusMarshal), responders(getResponders, announce)))); +}); + +var clean$1 = function clean() { + return { + additions: {}, + removals: {}, + modified: {} + }; +}; +function createPublisher(_ref) { + var registry = _ref.registry, + callbacks = _ref.callbacks; + var staging = clean$1(); + var frameId = null; + + var collect = function collect() { + if (frameId) { + return; + } + + callbacks.collectionStarting(); + frameId = requestAnimationFrame(function () { + frameId = null; + start(); + var _staging = staging, + additions = _staging.additions, + removals = _staging.removals, + modified = _staging.modified; + var added = Object.keys(additions).map(function (id) { + return registry.draggable.getById(id).getDimension(origin); + }).sort(function (a, b) { + return a.descriptor.index - b.descriptor.index; + }); + var updated = Object.keys(modified).map(function (id) { + var entry = registry.droppable.getById(id); + var scroll = entry.callbacks.getScrollWhileDragging(); + return { + droppableId: id, + scroll: scroll + }; + }); + var result = { + additions: added, + removals: Object.keys(removals), + modified: updated + }; + staging = clean$1(); + finish(); + callbacks.publish(result); + }); + }; + + var add = function add(entry) { + var id = entry.descriptor.id; + staging.additions[id] = entry; + staging.modified[entry.descriptor.droppableId] = true; + + if (staging.removals[id]) { + delete staging.removals[id]; + } + + collect(); + }; + + var remove = function remove(entry) { + var descriptor = entry.descriptor; + staging.removals[descriptor.id] = true; + staging.modified[descriptor.droppableId] = true; + + if (staging.additions[descriptor.id]) { + delete staging.additions[descriptor.id]; + } + + collect(); + }; + + var stop = function stop() { + if (!frameId) { + return; + } + + cancelAnimationFrame(frameId); + frameId = null; + staging = clean$1(); + }; + + return { + add: add, + remove: remove, + stop: stop + }; +} + +var getMaxScroll = (function (_ref) { + var scrollHeight = _ref.scrollHeight, + scrollWidth = _ref.scrollWidth, + height = _ref.height, + width = _ref.width; + var maxScroll = subtract({ + x: scrollWidth, + y: scrollHeight + }, { + x: width, + y: height + }); + var adjustedMaxScroll = { + x: Math.max(0, maxScroll.x), + y: Math.max(0, maxScroll.y) + }; + return adjustedMaxScroll; +}); + +var getDocumentElement = (function () { + var doc = document.documentElement; + !doc ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot find document.documentElement') : invariant(false) : void 0; + return doc; +}); + +var getMaxWindowScroll = (function () { + var doc = getDocumentElement(); + var maxScroll = getMaxScroll({ + scrollHeight: doc.scrollHeight, + scrollWidth: doc.scrollWidth, + width: doc.clientWidth, + height: doc.clientHeight + }); + return maxScroll; +}); + +var getViewport = (function () { + var scroll = getWindowScroll(); + var maxScroll = getMaxWindowScroll(); + var top = scroll.y; + var left = scroll.x; + var doc = getDocumentElement(); + var width = doc.clientWidth; + var height = doc.clientHeight; + var right = left + width; + var bottom = top + height; + var frame = cssBoxModel.getRect({ + top: top, + left: left, + right: right, + bottom: bottom + }); + var viewport = { + frame: frame, + scroll: { + initial: scroll, + current: scroll, + max: maxScroll, + diff: { + value: origin, + displacement: origin + } + } + }; + return viewport; +}); + +var getInitialPublish = (function (_ref) { + var critical = _ref.critical, + scrollOptions = _ref.scrollOptions, + registry = _ref.registry; + start(); + var viewport = getViewport(); + var windowScroll = viewport.scroll.current; + var home = critical.droppable; + var droppables = registry.droppable.getAllByType(home.type).map(function (entry) { + return entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions); + }); + var draggables = registry.draggable.getAllByType(critical.draggable.type).map(function (entry) { + return entry.getDimension(windowScroll); + }); + var dimensions = { + draggables: toDraggableMap(draggables), + droppables: toDroppableMap(droppables) + }; + finish(); + var result = { + dimensions: dimensions, + critical: critical, + viewport: viewport + }; + return result; +}); + +function shouldPublishUpdate(registry, dragging, entry) { + if (entry.descriptor.id === dragging.id) { + return false; + } + + if (entry.descriptor.type !== dragging.type) { + return false; + } + + var home = registry.droppable.getById(entry.descriptor.droppableId); + + if (home.descriptor.mode !== 'virtual') { + process.env.NODE_ENV !== "production" ? warning("\n You are attempting to add or remove a Draggable [id: " + entry.descriptor.id + "]\n while a drag is occurring. This is only supported for virtual lists.\n\n See https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/patterns/virtual-lists.md\n ") : void 0; + return false; + } + + return true; +} + +var createDimensionMarshal = (function (registry, callbacks) { + var collection = null; + var publisher = createPublisher({ + callbacks: { + publish: callbacks.publishWhileDragging, + collectionStarting: callbacks.collectionStarting + }, + registry: registry + }); + + var updateDroppableIsEnabled = function updateDroppableIsEnabled(id, isEnabled) { + !registry.droppable.exists(id) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot update is enabled flag of Droppable " + id + " as it is not registered") : invariant(false) : void 0; + + if (!collection) { + return; + } + + callbacks.updateDroppableIsEnabled({ + id: id, + isEnabled: isEnabled + }); + }; + + var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(id, isCombineEnabled) { + if (!collection) { + return; + } + + !registry.droppable.exists(id) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot update isCombineEnabled flag of Droppable " + id + " as it is not registered") : invariant(false) : void 0; + callbacks.updateDroppableIsCombineEnabled({ + id: id, + isCombineEnabled: isCombineEnabled + }); + }; + + var updateDroppableScroll = function updateDroppableScroll(id, newScroll) { + if (!collection) { + return; + } + + !registry.droppable.exists(id) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot update the scroll on Droppable " + id + " as it is not registered") : invariant(false) : void 0; + callbacks.updateDroppableScroll({ + id: id, + newScroll: newScroll + }); + }; + + var scrollDroppable = function scrollDroppable(id, change) { + if (!collection) { + return; + } + + registry.droppable.getById(id).callbacks.scroll(change); + }; + + var stopPublishing = function stopPublishing() { + if (!collection) { + return; + } + + publisher.stop(); + var home = collection.critical.droppable; + registry.droppable.getAllByType(home.type).forEach(function (entry) { + return entry.callbacks.dragStopped(); + }); + collection.unsubscribe(); + collection = null; + }; + + var subscriber = function subscriber(event) { + !collection ? process.env.NODE_ENV !== "production" ? invariant(false, 'Should only be subscribed when a collection is occurring') : invariant(false) : void 0; + var dragging = collection.critical.draggable; + + if (event.type === 'ADDITION') { + if (shouldPublishUpdate(registry, dragging, event.value)) { + publisher.add(event.value); + } + } + + if (event.type === 'REMOVAL') { + if (shouldPublishUpdate(registry, dragging, event.value)) { + publisher.remove(event.value); + } + } + }; + + var startPublishing = function startPublishing(request) { + !!collection ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : invariant(false) : void 0; + var entry = registry.draggable.getById(request.draggableId); + var home = registry.droppable.getById(entry.descriptor.droppableId); + var critical = { + draggable: entry.descriptor, + droppable: home.descriptor + }; + var unsubscribe = registry.subscribe(subscriber); + collection = { + critical: critical, + unsubscribe: unsubscribe + }; + return getInitialPublish({ + critical: critical, + registry: registry, + scrollOptions: request.scrollOptions + }); + }; + + var marshal = { + updateDroppableIsEnabled: updateDroppableIsEnabled, + updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled, + scrollDroppable: scrollDroppable, + updateDroppableScroll: updateDroppableScroll, + startPublishing: startPublishing, + stopPublishing: stopPublishing + }; + return marshal; +}); + +var canStartDrag = (function (state, id) { + if (state.phase === 'IDLE') { + return true; + } + + if (state.phase !== 'DROP_ANIMATING') { + return false; + } + + if (state.completed.result.draggableId === id) { + return false; + } + + return state.completed.result.reason === 'DROP'; +}); + +var scrollWindow = (function (change) { + window.scrollBy(change.x, change.y); +}); + +var getScrollableDroppables = memoizeOne(function (droppables) { + return toDroppableList(droppables).filter(function (droppable) { + if (!droppable.isEnabled) { + return false; + } + + if (!droppable.frame) { + return false; + } + + return true; + }); +}); + +var getScrollableDroppableOver = function getScrollableDroppableOver(target, droppables) { + var maybe = find(getScrollableDroppables(droppables), function (droppable) { + !droppable.frame ? process.env.NODE_ENV !== "production" ? invariant(false, 'Invalid result') : invariant(false) : void 0; + return isPositionInFrame(droppable.frame.pageMarginBox)(target); + }); + return maybe; +}; + +var getBestScrollableDroppable = (function (_ref) { + var center = _ref.center, + destination = _ref.destination, + droppables = _ref.droppables; + + if (destination) { + var _dimension = droppables[destination]; + + if (!_dimension.frame) { + return null; + } + + return _dimension; + } + + var dimension = getScrollableDroppableOver(center, droppables); + return dimension; +}); + +var config = { + startFromPercentage: 0.25, + maxScrollAtPercentage: 0.05, + maxPixelScroll: 28, + ease: function ease(percentage) { + return Math.pow(percentage, 2); + }, + durationDampening: { + stopDampeningAt: 1200, + accelerateAt: 360 + } +}; + +var getDistanceThresholds = (function (container, axis) { + var startScrollingFrom = container[axis.size] * config.startFromPercentage; + var maxScrollValueAt = container[axis.size] * config.maxScrollAtPercentage; + var thresholds = { + startScrollingFrom: startScrollingFrom, + maxScrollValueAt: maxScrollValueAt + }; + return thresholds; +}); + +var getPercentage = (function (_ref) { + var startOfRange = _ref.startOfRange, + endOfRange = _ref.endOfRange, + current = _ref.current; + var range = endOfRange - startOfRange; + + if (range === 0) { + process.env.NODE_ENV !== "production" ? warning("\n Detected distance range of 0 in the fluid auto scroller\n This is unexpected and would cause a divide by 0 issue.\n Not allowing an auto scroll\n ") : void 0; + return 0; + } + + var currentInRange = current - startOfRange; + var percentage = currentInRange / range; + return percentage; +}); + +var minScroll = 1; + +var getValueFromDistance = (function (distanceToEdge, thresholds) { + if (distanceToEdge > thresholds.startScrollingFrom) { + return 0; + } + + if (distanceToEdge <= thresholds.maxScrollValueAt) { + return config.maxPixelScroll; + } + + if (distanceToEdge === thresholds.startScrollingFrom) { + return minScroll; + } + + var percentageFromMaxScrollValueAt = getPercentage({ + startOfRange: thresholds.maxScrollValueAt, + endOfRange: thresholds.startScrollingFrom, + current: distanceToEdge + }); + var percentageFromStartScrollingFrom = 1 - percentageFromMaxScrollValueAt; + var scroll = config.maxPixelScroll * config.ease(percentageFromStartScrollingFrom); + return Math.ceil(scroll); +}); + +var accelerateAt = config.durationDampening.accelerateAt; +var stopAt = config.durationDampening.stopDampeningAt; +var dampenValueByTime = (function (proposedScroll, dragStartTime) { + var startOfRange = dragStartTime; + var endOfRange = stopAt; + var now = Date.now(); + var runTime = now - startOfRange; + + if (runTime >= stopAt) { + return proposedScroll; + } + + if (runTime < accelerateAt) { + return minScroll; + } + + var betweenAccelerateAtAndStopAtPercentage = getPercentage({ + startOfRange: accelerateAt, + endOfRange: endOfRange, + current: runTime + }); + var scroll = proposedScroll * config.ease(betweenAccelerateAtAndStopAtPercentage); + return Math.ceil(scroll); +}); + +var getValue = (function (_ref) { + var distanceToEdge = _ref.distanceToEdge, + thresholds = _ref.thresholds, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var scroll = getValueFromDistance(distanceToEdge, thresholds); + + if (scroll === 0) { + return 0; + } + + if (!shouldUseTimeDampening) { + return scroll; + } + + return Math.max(dampenValueByTime(scroll, dragStartTime), minScroll); +}); + +var getScrollOnAxis = (function (_ref) { + var container = _ref.container, + distanceToEdges = _ref.distanceToEdges, + dragStartTime = _ref.dragStartTime, + axis = _ref.axis, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var thresholds = getDistanceThresholds(container, axis); + var isCloserToEnd = distanceToEdges[axis.end] < distanceToEdges[axis.start]; + + if (isCloserToEnd) { + return getValue({ + distanceToEdge: distanceToEdges[axis.end], + thresholds: thresholds, + dragStartTime: dragStartTime, + shouldUseTimeDampening: shouldUseTimeDampening + }); + } + + return -1 * getValue({ + distanceToEdge: distanceToEdges[axis.start], + thresholds: thresholds, + dragStartTime: dragStartTime, + shouldUseTimeDampening: shouldUseTimeDampening + }); +}); + +var adjustForSizeLimits = (function (_ref) { + var container = _ref.container, + subject = _ref.subject, + proposedScroll = _ref.proposedScroll; + var isTooBigVertically = subject.height > container.height; + var isTooBigHorizontally = subject.width > container.width; + + if (!isTooBigHorizontally && !isTooBigVertically) { + return proposedScroll; + } + + if (isTooBigHorizontally && isTooBigVertically) { + return null; + } + + return { + x: isTooBigHorizontally ? 0 : proposedScroll.x, + y: isTooBigVertically ? 0 : proposedScroll.y + }; +}); + +var clean$2 = apply(function (value) { + return value === 0 ? 0 : value; +}); +var getScroll = (function (_ref) { + var dragStartTime = _ref.dragStartTime, + container = _ref.container, + subject = _ref.subject, + center = _ref.center, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var distanceToEdges = { + top: center.y - container.top, + right: container.right - center.x, + bottom: container.bottom - center.y, + left: center.x - container.left + }; + var y = getScrollOnAxis({ + container: container, + distanceToEdges: distanceToEdges, + dragStartTime: dragStartTime, + axis: vertical, + shouldUseTimeDampening: shouldUseTimeDampening + }); + var x = getScrollOnAxis({ + container: container, + distanceToEdges: distanceToEdges, + dragStartTime: dragStartTime, + axis: horizontal, + shouldUseTimeDampening: shouldUseTimeDampening + }); + var required = clean$2({ + x: x, + y: y + }); + + if (isEqual(required, origin)) { + return null; + } + + var limited = adjustForSizeLimits({ + container: container, + subject: subject, + proposedScroll: required + }); + + if (!limited) { + return null; + } + + return isEqual(limited, origin) ? null : limited; +}); + +var smallestSigned = apply(function (value) { + if (value === 0) { + return 0; + } + + return value > 0 ? 1 : -1; +}); +var getOverlap = function () { + var getRemainder = function getRemainder(target, max) { + if (target < 0) { + return target; + } + + if (target > max) { + return target - max; + } + + return 0; + }; + + return function (_ref) { + var current = _ref.current, + max = _ref.max, + change = _ref.change; + var targetScroll = add(current, change); + var overlap = { + x: getRemainder(targetScroll.x, max.x), + y: getRemainder(targetScroll.y, max.y) + }; + + if (isEqual(overlap, origin)) { + return null; + } + + return overlap; + }; +}(); +var canPartiallyScroll = function canPartiallyScroll(_ref2) { + var rawMax = _ref2.max, + current = _ref2.current, + change = _ref2.change; + var max = { + x: Math.max(current.x, rawMax.x), + y: Math.max(current.y, rawMax.y) + }; + var smallestChange = smallestSigned(change); + var overlap = getOverlap({ + max: max, + current: current, + change: smallestChange + }); + + if (!overlap) { + return true; + } + + if (smallestChange.x !== 0 && overlap.x === 0) { + return true; + } + + if (smallestChange.y !== 0 && overlap.y === 0) { + return true; + } + + return false; +}; +var canScrollWindow = function canScrollWindow(viewport, change) { + return canPartiallyScroll({ + current: viewport.scroll.current, + max: viewport.scroll.max, + change: change + }); +}; +var getWindowOverlap = function getWindowOverlap(viewport, change) { + if (!canScrollWindow(viewport, change)) { + return null; + } + + var max = viewport.scroll.max; + var current = viewport.scroll.current; + return getOverlap({ + current: current, + max: max, + change: change + }); +}; +var canScrollDroppable = function canScrollDroppable(droppable, change) { + var frame = droppable.frame; + + if (!frame) { + return false; + } + + return canPartiallyScroll({ + current: frame.scroll.current, + max: frame.scroll.max, + change: change + }); +}; +var getDroppableOverlap = function getDroppableOverlap(droppable, change) { + var frame = droppable.frame; + + if (!frame) { + return null; + } + + if (!canScrollDroppable(droppable, change)) { + return null; + } + + return getOverlap({ + current: frame.scroll.current, + max: frame.scroll.max, + change: change + }); +}; + +var getWindowScrollChange = (function (_ref) { + var viewport = _ref.viewport, + subject = _ref.subject, + center = _ref.center, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var scroll = getScroll({ + dragStartTime: dragStartTime, + container: viewport.frame, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + return scroll && canScrollWindow(viewport, scroll) ? scroll : null; +}); + +var getDroppableScrollChange = (function (_ref) { + var droppable = _ref.droppable, + subject = _ref.subject, + center = _ref.center, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var frame = droppable.frame; + + if (!frame) { + return null; + } + + var scroll = getScroll({ + dragStartTime: dragStartTime, + container: frame.pageMarginBox, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + return scroll && canScrollDroppable(droppable, scroll) ? scroll : null; +}); + +var scroll$1 = (function (_ref) { + var state = _ref.state, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening, + scrollWindow = _ref.scrollWindow, + scrollDroppable = _ref.scrollDroppable; + var center = state.current.page.borderBoxCenter; + var draggable = state.dimensions.draggables[state.critical.draggable.id]; + var subject = draggable.page.marginBox; + + if (state.isWindowScrollAllowed) { + var viewport = state.viewport; + + var _change = getWindowScrollChange({ + dragStartTime: dragStartTime, + viewport: viewport, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + + if (_change) { + scrollWindow(_change); + return; + } + } + + var droppable = getBestScrollableDroppable({ + center: center, + destination: whatIsDraggedOver(state.impact), + droppables: state.dimensions.droppables + }); + + if (!droppable) { + return; + } + + var change = getDroppableScrollChange({ + dragStartTime: dragStartTime, + droppable: droppable, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + + if (change) { + scrollDroppable(droppable.descriptor.id, change); + } +}); + +var createFluidScroller = (function (_ref) { + var scrollWindow = _ref.scrollWindow, + scrollDroppable = _ref.scrollDroppable; + var scheduleWindowScroll = rafSchd(scrollWindow); + var scheduleDroppableScroll = rafSchd(scrollDroppable); + var dragging = null; + + var tryScroll = function tryScroll(state) { + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fluid scroll if not dragging') : invariant(false) : void 0; + var _dragging = dragging, + shouldUseTimeDampening = _dragging.shouldUseTimeDampening, + dragStartTime = _dragging.dragStartTime; + scroll$1({ + state: state, + scrollWindow: scheduleWindowScroll, + scrollDroppable: scheduleDroppableScroll, + dragStartTime: dragStartTime, + shouldUseTimeDampening: shouldUseTimeDampening + }); + }; + + var start$1 = function start$1(state) { + start(); + !!dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot start auto scrolling when already started') : invariant(false) : void 0; + var dragStartTime = Date.now(); + var wasScrollNeeded = false; + + var fakeScrollCallback = function fakeScrollCallback() { + wasScrollNeeded = true; + }; + + scroll$1({ + state: state, + dragStartTime: 0, + shouldUseTimeDampening: false, + scrollWindow: fakeScrollCallback, + scrollDroppable: fakeScrollCallback + }); + dragging = { + dragStartTime: dragStartTime, + shouldUseTimeDampening: wasScrollNeeded + }; + finish(); + + if (wasScrollNeeded) { + tryScroll(state); + } + }; + + var stop = function stop() { + if (!dragging) { + return; + } + + scheduleWindowScroll.cancel(); + scheduleDroppableScroll.cancel(); + dragging = null; + }; + + return { + start: start$1, + stop: stop, + scroll: tryScroll + }; +}); + +var createJumpScroller = (function (_ref) { + var move = _ref.move, + scrollDroppable = _ref.scrollDroppable, + scrollWindow = _ref.scrollWindow; + + var moveByOffset = function moveByOffset(state, offset) { + var client = add(state.current.client.selection, offset); + move({ + client: client + }); + }; + + var scrollDroppableAsMuchAsItCan = function scrollDroppableAsMuchAsItCan(droppable, change) { + if (!canScrollDroppable(droppable, change)) { + return change; + } + + var overlap = getDroppableOverlap(droppable, change); + + if (!overlap) { + scrollDroppable(droppable.descriptor.id, change); + return null; + } + + var whatTheDroppableCanScroll = subtract(change, overlap); + scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll); + var remainder = subtract(change, whatTheDroppableCanScroll); + return remainder; + }; + + var scrollWindowAsMuchAsItCan = function scrollWindowAsMuchAsItCan(isWindowScrollAllowed, viewport, change) { + if (!isWindowScrollAllowed) { + return change; + } + + if (!canScrollWindow(viewport, change)) { + return change; + } + + var overlap = getWindowOverlap(viewport, change); + + if (!overlap) { + scrollWindow(change); + return null; + } + + var whatTheWindowCanScroll = subtract(change, overlap); + scrollWindow(whatTheWindowCanScroll); + var remainder = subtract(change, whatTheWindowCanScroll); + return remainder; + }; + + var jumpScroller = function jumpScroller(state) { + var request = state.scrollJumpRequest; + + if (!request) { + return; + } + + var destination = whatIsDraggedOver(state.impact); + !destination ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : invariant(false) : void 0; + var droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination], request); + + if (!droppableRemainder) { + return; + } + + var viewport = state.viewport; + var windowRemainder = scrollWindowAsMuchAsItCan(state.isWindowScrollAllowed, viewport, droppableRemainder); + + if (!windowRemainder) { + return; + } + + moveByOffset(state, windowRemainder); + }; + + return jumpScroller; +}); + +var createAutoScroller = (function (_ref) { + var scrollDroppable = _ref.scrollDroppable, + scrollWindow = _ref.scrollWindow, + move = _ref.move; + var fluidScroller = createFluidScroller({ + scrollWindow: scrollWindow, + scrollDroppable: scrollDroppable + }); + var jumpScroll = createJumpScroller({ + move: move, + scrollWindow: scrollWindow, + scrollDroppable: scrollDroppable + }); + + var scroll = function scroll(state) { + if (state.phase !== 'DRAGGING') { + return; + } + + if (state.movementMode === 'FLUID') { + fluidScroller.scroll(state); + return; + } + + if (!state.scrollJumpRequest) { + return; + } + + jumpScroll(state); + }; + + var scroller = { + scroll: scroll, + start: fluidScroller.start, + stop: fluidScroller.stop + }; + return scroller; +}); + +var prefix$1 = 'data-rbd'; +var dragHandle = function () { + var base = prefix$1 + "-drag-handle"; + return { + base: base, + draggableId: base + "-draggable-id", + contextId: base + "-context-id" + }; +}(); +var draggable = function () { + var base = prefix$1 + "-draggable"; + return { + base: base, + contextId: base + "-context-id", + id: base + "-id" + }; +}(); +var droppable = function () { + var base = prefix$1 + "-droppable"; + return { + base: base, + contextId: base + "-context-id", + id: base + "-id" + }; +}(); +var scrollContainer = { + contextId: prefix$1 + "-scroll-container-context-id" +}; + +var makeGetSelector = function makeGetSelector(context) { + return function (attribute) { + return "[" + attribute + "=\"" + context + "\"]"; + }; +}; + +var getStyles = function getStyles(rules, property) { + return rules.map(function (rule) { + var value = rule.styles[property]; + + if (!value) { + return ''; + } + + return rule.selector + " { " + value + " }"; + }).join(' '); +}; + +var noPointerEvents = 'pointer-events: none;'; +var getStyles$1 = (function (contextId) { + var getSelector = makeGetSelector(contextId); + + var dragHandle$1 = function () { + var grabCursor = "\n cursor: -webkit-grab;\n cursor: grab;\n "; + return { + selector: getSelector(dragHandle.contextId), + styles: { + always: "\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n ", + resting: grabCursor, + dragging: noPointerEvents, + dropAnimating: grabCursor + } + }; + }(); + + var draggable$1 = function () { + var transition = "\n transition: " + transitions.outOfTheWay + ";\n "; + return { + selector: getSelector(draggable.contextId), + styles: { + dragging: transition, + dropAnimating: transition, + userCancel: transition + } + }; + }(); + + var droppable$1 = { + selector: getSelector(droppable.contextId), + styles: { + always: "overflow-anchor: none;" + } + }; + var body = { + selector: 'body', + styles: { + dragging: "\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n " + } + }; + var rules = [draggable$1, dragHandle$1, droppable$1, body]; + return { + always: getStyles(rules, 'always'), + resting: getStyles(rules, 'resting'), + dragging: getStyles(rules, 'dragging'), + dropAnimating: getStyles(rules, 'dropAnimating'), + userCancel: getStyles(rules, 'userCancel') + }; +}); + +var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? React.useLayoutEffect : React.useEffect; + +var getHead = function getHead() { + var head = document.querySelector('head'); + !head ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot find the head to append a style to') : invariant(false) : void 0; + return head; +}; + +var createStyleEl = function createStyleEl(nonce) { + var el = document.createElement('style'); + + if (nonce) { + el.setAttribute('nonce', nonce); + } + + el.type = 'text/css'; + return el; +}; + +function useStyleMarshal(contextId, nonce) { + var styles = useMemoOne.useMemo(function () { + return getStyles$1(contextId); + }, [contextId]); + var alwaysRef = React.useRef(null); + var dynamicRef = React.useRef(null); + var setDynamicStyle = useMemoOne.useCallback(memoizeOne(function (proposed) { + var el = dynamicRef.current; + !el ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0; + el.textContent = proposed; + }), []); + var setAlwaysStyle = useMemoOne.useCallback(function (proposed) { + var el = alwaysRef.current; + !el ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0; + el.textContent = proposed; + }, []); + useIsomorphicLayoutEffect(function () { + !(!alwaysRef.current && !dynamicRef.current) ? process.env.NODE_ENV !== "production" ? invariant(false, 'style elements already mounted') : invariant(false) : void 0; + var always = createStyleEl(nonce); + var dynamic = createStyleEl(nonce); + alwaysRef.current = always; + dynamicRef.current = dynamic; + always.setAttribute(prefix$1 + "-always", contextId); + dynamic.setAttribute(prefix$1 + "-dynamic", contextId); + getHead().appendChild(always); + getHead().appendChild(dynamic); + setAlwaysStyle(styles.always); + setDynamicStyle(styles.resting); + return function () { + var remove = function remove(ref) { + var current = ref.current; + !current ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot unmount ref as it is not set') : invariant(false) : void 0; + getHead().removeChild(current); + ref.current = null; + }; + + remove(alwaysRef); + remove(dynamicRef); + }; + }, [nonce, setAlwaysStyle, setDynamicStyle, styles.always, styles.resting, contextId]); + var dragging = useMemoOne.useCallback(function () { + return setDynamicStyle(styles.dragging); + }, [setDynamicStyle, styles.dragging]); + var dropping = useMemoOne.useCallback(function (reason) { + if (reason === 'DROP') { + setDynamicStyle(styles.dropAnimating); + return; + } + + setDynamicStyle(styles.userCancel); + }, [setDynamicStyle, styles.dropAnimating, styles.userCancel]); + var resting = useMemoOne.useCallback(function () { + if (!dynamicRef.current) { + return; + } + + setDynamicStyle(styles.resting); + }, [setDynamicStyle, styles.resting]); + var marshal = useMemoOne.useMemo(function () { + return { + dragging: dragging, + dropping: dropping, + resting: resting + }; + }, [dragging, dropping, resting]); + return marshal; +} + +var getWindowFromEl = (function (el) { + return el && el.ownerDocument ? el.ownerDocument.defaultView : window; +}); + +function isHtmlElement(el) { + return el instanceof getWindowFromEl(el).HTMLElement; +} + +function findDragHandle(contextId, draggableId) { + var selector = "[" + dragHandle.contextId + "=\"" + contextId + "\"]"; + var possible = toArray(document.querySelectorAll(selector)); + + if (!possible.length) { + process.env.NODE_ENV !== "production" ? warning("Unable to find any drag handles in the context \"" + contextId + "\"") : void 0; + return null; + } + + var handle = find(possible, function (el) { + return el.getAttribute(dragHandle.draggableId) === draggableId; + }); + + if (!handle) { + process.env.NODE_ENV !== "production" ? warning("Unable to find drag handle with id \"" + draggableId + "\" as no handle with a matching id was found") : void 0; + return null; + } + + if (!isHtmlElement(handle)) { + process.env.NODE_ENV !== "production" ? warning('drag handle needs to be a HTMLElement') : void 0; + return null; + } + + return handle; +} + +function useFocusMarshal(contextId) { + var entriesRef = React.useRef({}); + var recordRef = React.useRef(null); + var restoreFocusFrameRef = React.useRef(null); + var isMountedRef = React.useRef(false); + var register = useMemoOne.useCallback(function register(id, focus) { + var entry = { + id: id, + focus: focus + }; + entriesRef.current[id] = entry; + return function unregister() { + var entries = entriesRef.current; + var current = entries[id]; + + if (current !== entry) { + delete entries[id]; + } + }; + }, []); + var tryGiveFocus = useMemoOne.useCallback(function tryGiveFocus(tryGiveFocusTo) { + var handle = findDragHandle(contextId, tryGiveFocusTo); + + if (handle && handle !== document.activeElement) { + handle.focus(); + } + }, [contextId]); + var tryShiftRecord = useMemoOne.useCallback(function tryShiftRecord(previous, redirectTo) { + if (recordRef.current === previous) { + recordRef.current = redirectTo; + } + }, []); + var tryRestoreFocusRecorded = useMemoOne.useCallback(function tryRestoreFocusRecorded() { + if (restoreFocusFrameRef.current) { + return; + } + + if (!isMountedRef.current) { + return; + } + + restoreFocusFrameRef.current = requestAnimationFrame(function () { + restoreFocusFrameRef.current = null; + var record = recordRef.current; + + if (record) { + tryGiveFocus(record); + } + }); + }, [tryGiveFocus]); + var tryRecordFocus = useMemoOne.useCallback(function tryRecordFocus(id) { + recordRef.current = null; + var focused = document.activeElement; + + if (!focused) { + return; + } + + if (focused.getAttribute(dragHandle.draggableId) !== id) { + return; + } + + recordRef.current = id; + }, []); + useIsomorphicLayoutEffect(function () { + isMountedRef.current = true; + return function clearFrameOnUnmount() { + isMountedRef.current = false; + var frameId = restoreFocusFrameRef.current; + + if (frameId) { + cancelAnimationFrame(frameId); + } + }; + }, []); + var marshal = useMemoOne.useMemo(function () { + return { + register: register, + tryRecordFocus: tryRecordFocus, + tryRestoreFocusRecorded: tryRestoreFocusRecorded, + tryShiftRecord: tryShiftRecord + }; + }, [register, tryRecordFocus, tryRestoreFocusRecorded, tryShiftRecord]); + return marshal; +} + +function createRegistry() { + var entries = { + draggables: {}, + droppables: {} + }; + var subscribers = []; + + function subscribe(cb) { + subscribers.push(cb); + return function unsubscribe() { + var index = subscribers.indexOf(cb); + + if (index === -1) { + return; + } + + subscribers.splice(index, 1); + }; + } + + function notify(event) { + if (subscribers.length) { + subscribers.forEach(function (cb) { + return cb(event); + }); + } + } + + function findDraggableById(id) { + return entries.draggables[id] || null; + } + + function getDraggableById(id) { + var entry = findDraggableById(id); + !entry ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot find draggable entry with id [" + id + "]") : invariant(false) : void 0; + return entry; + } + + var draggableAPI = { + register: function register(entry) { + entries.draggables[entry.descriptor.id] = entry; + notify({ + type: 'ADDITION', + value: entry + }); + }, + update: function update(entry, last) { + var current = entries.draggables[last.descriptor.id]; + + if (!current) { + return; + } + + if (current.uniqueId !== entry.uniqueId) { + return; + } + + delete entries.draggables[last.descriptor.id]; + entries.draggables[entry.descriptor.id] = entry; + }, + unregister: function unregister(entry) { + var draggableId = entry.descriptor.id; + var current = findDraggableById(draggableId); + + if (!current) { + return; + } + + if (entry.uniqueId !== current.uniqueId) { + return; + } + + delete entries.draggables[draggableId]; + notify({ + type: 'REMOVAL', + value: entry + }); + }, + getById: getDraggableById, + findById: findDraggableById, + exists: function exists(id) { + return Boolean(findDraggableById(id)); + }, + getAllByType: function getAllByType(type) { + return values(entries.draggables).filter(function (entry) { + return entry.descriptor.type === type; + }); + } + }; + + function findDroppableById(id) { + return entries.droppables[id] || null; + } + + function getDroppableById(id) { + var entry = findDroppableById(id); + !entry ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot find droppable entry with id [" + id + "]") : invariant(false) : void 0; + return entry; + } + + var droppableAPI = { + register: function register(entry) { + entries.droppables[entry.descriptor.id] = entry; + }, + unregister: function unregister(entry) { + var current = findDroppableById(entry.descriptor.id); + + if (!current) { + return; + } + + if (entry.uniqueId !== current.uniqueId) { + return; + } + + delete entries.droppables[entry.descriptor.id]; + }, + getById: getDroppableById, + findById: findDroppableById, + exists: function exists(id) { + return Boolean(findDroppableById(id)); + }, + getAllByType: function getAllByType(type) { + return values(entries.droppables).filter(function (entry) { + return entry.descriptor.type === type; + }); + } + }; + + function clean() { + entries.draggables = {}; + entries.droppables = {}; + subscribers.length = 0; + } + + return { + draggable: draggableAPI, + droppable: droppableAPI, + subscribe: subscribe, + clean: clean + }; +} + +function useRegistry() { + var registry = useMemoOne.useMemo(createRegistry, []); + React.useEffect(function () { + return function unmount() { + requestAnimationFrame(registry.clean); + }; + }, [registry]); + return registry; +} + +var StoreContext = React__default.createContext(null); + +var getBodyElement = (function () { + var body = document.body; + !body ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot find document.body') : invariant(false) : void 0; + return body; +}); + +var visuallyHidden = { + position: 'absolute', + width: '1px', + height: '1px', + margin: '-1px', + border: '0', + padding: '0', + overflow: 'hidden', + clip: 'rect(0 0 0 0)', + 'clip-path': 'inset(100%)' +}; + +var getId = function getId(contextId) { + return "rbd-announcement-" + contextId; +}; +function useAnnouncer(contextId) { + var id = useMemoOne.useMemo(function () { + return getId(contextId); + }, [contextId]); + var ref = React.useRef(null); + React.useEffect(function setup() { + var el = document.createElement('div'); + ref.current = el; + el.id = id; + el.setAttribute('aria-live', 'assertive'); + el.setAttribute('aria-atomic', 'true'); + + _extends(el.style, visuallyHidden); + + getBodyElement().appendChild(el); + return function cleanup() { + setTimeout(function remove() { + var body = getBodyElement(); + + if (body.contains(el)) { + body.removeChild(el); + } + + if (el === ref.current) { + ref.current = null; + } + }); + }; + }, [id]); + var announce = useMemoOne.useCallback(function (message) { + var el = ref.current; + + if (el) { + el.textContent = message; + return; + } + + process.env.NODE_ENV !== "production" ? warning("\n A screen reader message was trying to be announced but it was unable to do so.\n This can occur if you unmount your in your onDragEnd.\n Consider calling provided.announce() before the unmount so that the instruction will\n not be lost for users relying on a screen reader.\n\n Message not passed to screen reader:\n\n \"" + message + "\"\n ") : void 0; + }, []); + return announce; +} + +var count = 0; +var defaults = { + separator: '::' +}; +function reset() { + count = 0; +} +function useUniqueId(prefix, options) { + if (options === void 0) { + options = defaults; + } + + return useMemoOne.useMemo(function () { + return "" + prefix + options.separator + count++; + }, [options.separator, prefix]); +} + +function getElementId(_ref) { + var contextId = _ref.contextId, + uniqueId = _ref.uniqueId; + return "rbd-hidden-text-" + contextId + "-" + uniqueId; +} +function useHiddenTextElement(_ref2) { + var contextId = _ref2.contextId, + text = _ref2.text; + var uniqueId = useUniqueId('hidden-text', { + separator: '-' + }); + var id = useMemoOne.useMemo(function () { + return getElementId({ + contextId: contextId, + uniqueId: uniqueId + }); + }, [uniqueId, contextId]); + React.useEffect(function mount() { + var el = document.createElement('div'); + el.id = id; + el.textContent = text; + el.style.display = 'none'; + getBodyElement().appendChild(el); + return function unmount() { + var body = getBodyElement(); + + if (body.contains(el)) { + body.removeChild(el); + } + }; + }, [id, text]); + return id; +} + +var AppContext = React__default.createContext(null); + +var peerDependencies = { + react: "^16.8.5 || ^17.0.0", + "react-dom": "^16.8.5 || ^17.0.0" +}; + +var semver = /(\d+)\.(\d+)\.(\d+)/; + +var getVersion = function getVersion(value) { + var result = semver.exec(value); + !(result != null) ? process.env.NODE_ENV !== "production" ? invariant(false, "Unable to parse React version " + value) : invariant(false) : void 0; + var major = Number(result[1]); + var minor = Number(result[2]); + var patch = Number(result[3]); + return { + major: major, + minor: minor, + patch: patch, + raw: value + }; +}; + +var isSatisfied = function isSatisfied(expected, actual) { + if (actual.major > expected.major) { + return true; + } + + if (actual.major < expected.major) { + return false; + } + + if (actual.minor > expected.minor) { + return true; + } + + if (actual.minor < expected.minor) { + return false; + } + + return actual.patch >= expected.patch; +}; + +var checkReactVersion = (function (peerDepValue, actualValue) { + var peerDep = getVersion(peerDepValue); + var actual = getVersion(actualValue); + + if (isSatisfied(peerDep, actual)) { + return; + } + + process.env.NODE_ENV !== "production" ? warning("\n React version: [" + actual.raw + "]\n does not satisfy expected peer dependency version: [" + peerDep.raw + "]\n\n This can result in run time bugs, and even fatal crashes\n ") : void 0; +}); + +var suffix = "\n We expect a html5 doctype: \n This is to ensure consistent browser layout and measurement\n\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md\n"; +var checkDoctype = (function (doc) { + var doctype = doc.doctype; + + if (!doctype) { + process.env.NODE_ENV !== "production" ? warning("\n No found.\n\n " + suffix + "\n ") : void 0; + return; + } + + if (doctype.name.toLowerCase() !== 'html') { + process.env.NODE_ENV !== "production" ? warning("\n Unexpected found: (" + doctype.name + ")\n\n " + suffix + "\n ") : void 0; + } + + if (doctype.publicId !== '') { + process.env.NODE_ENV !== "production" ? warning("\n Unexpected publicId found: (" + doctype.publicId + ")\n A html5 doctype does not have a publicId\n\n " + suffix + "\n ") : void 0; + } +}); + +function useDev(useHook) { + if (process.env.NODE_ENV !== 'production') { + useHook(); + } +} + +function useDevSetupWarning(fn, inputs) { + useDev(function () { + React.useEffect(function () { + try { + fn(); + } catch (e) { + error("\n A setup problem was encountered.\n\n > " + e.message + "\n "); + } + }, inputs); + }); +} + +function useStartupValidation() { + useDevSetupWarning(function () { + checkReactVersion(peerDependencies.react, React__default.version); + checkDoctype(document); + }, []); +} + +function usePrevious(current) { + var ref = React.useRef(current); + React.useEffect(function () { + ref.current = current; + }); + return ref; +} + +function create() { + var lock = null; + + function isClaimed() { + return Boolean(lock); + } + + function isActive(value) { + return value === lock; + } + + function claim(abandon) { + !!lock ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot claim lock as it is already claimed') : invariant(false) : void 0; + var newLock = { + abandon: abandon + }; + lock = newLock; + return newLock; + } + + function release() { + !lock ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot release lock when there is no lock') : invariant(false) : void 0; + lock = null; + } + + function tryAbandon() { + if (lock) { + lock.abandon(); + release(); + } + } + + return { + isClaimed: isClaimed, + isActive: isActive, + claim: claim, + release: release, + tryAbandon: tryAbandon + }; +} + +var tab = 9; +var enter = 13; +var escape = 27; +var space = 32; +var pageUp = 33; +var pageDown = 34; +var end = 35; +var home = 36; +var arrowLeft = 37; +var arrowUp = 38; +var arrowRight = 39; +var arrowDown = 40; + +var _preventedKeys; +var preventedKeys = (_preventedKeys = {}, _preventedKeys[enter] = true, _preventedKeys[tab] = true, _preventedKeys); +var preventStandardKeyEvents = (function (event) { + if (preventedKeys[event.keyCode]) { + event.preventDefault(); + } +}); + +var supportedEventName = function () { + var base = 'visibilitychange'; + + if (typeof document === 'undefined') { + return base; + } + + var candidates = [base, "ms" + base, "webkit" + base, "moz" + base, "o" + base]; + var supported = find(candidates, function (eventName) { + return "on" + eventName in document; + }); + return supported || base; +}(); + +var primaryButton = 0; +var sloppyClickThreshold = 5; + +function isSloppyClickThresholdExceeded(original, current) { + return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold; +} + +var idle$1 = { + type: 'IDLE' +}; + +function getCaptureBindings(_ref) { + var cancel = _ref.cancel, + completed = _ref.completed, + getPhase = _ref.getPhase, + setPhase = _ref.setPhase; + return [{ + eventName: 'mousemove', + fn: function fn(event) { + var button = event.button, + clientX = event.clientX, + clientY = event.clientY; + + if (button !== primaryButton) { + return; + } + + var point = { + x: clientX, + y: clientY + }; + var phase = getPhase(); + + if (phase.type === 'DRAGGING') { + event.preventDefault(); + phase.actions.move(point); + return; + } + + !(phase.type === 'PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot be IDLE') : invariant(false) : void 0; + var pending = phase.point; + + if (!isSloppyClickThresholdExceeded(pending, point)) { + return; + } + + event.preventDefault(); + var actions = phase.actions.fluidLift(point); + setPhase({ + type: 'DRAGGING', + actions: actions + }); + } + }, { + eventName: 'mouseup', + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + event.preventDefault(); + phase.actions.drop({ + shouldBlockNextClick: true + }); + completed(); + } + }, { + eventName: 'mousedown', + fn: function fn(event) { + if (getPhase().type === 'DRAGGING') { + event.preventDefault(); + } + + cancel(); + } + }, { + eventName: 'keydown', + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type === 'PENDING') { + cancel(); + return; + } + + if (event.keyCode === escape) { + event.preventDefault(); + cancel(); + return; + } + + preventStandardKeyEvents(event); + } + }, { + eventName: 'resize', + fn: cancel + }, { + eventName: 'scroll', + options: { + passive: true, + capture: false + }, + fn: function fn() { + if (getPhase().type === 'PENDING') { + cancel(); + } + } + }, { + eventName: 'webkitmouseforcedown', + fn: function fn(event) { + var phase = getPhase(); + !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Unexpected phase') : invariant(false) : void 0; + + if (phase.actions.shouldRespectForcePress()) { + cancel(); + return; + } + + event.preventDefault(); + } + }, { + eventName: supportedEventName, + fn: cancel + }]; +} + +function useMouseSensor(api) { + var phaseRef = React.useRef(idle$1); + var unbindEventsRef = React.useRef(noop); + var startCaptureBinding = useMemoOne.useMemo(function () { + return { + eventName: 'mousedown', + fn: function onMouseDown(event) { + if (event.defaultPrevented) { + return; + } + + if (event.button !== primaryButton) { + return; + } + + if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) { + return; + } + + var draggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + var actions = api.tryGetLock(draggableId, stop, { + sourceEvent: event + }); + + if (!actions) { + return; + } + + event.preventDefault(); + var point = { + x: event.clientX, + y: event.clientY + }; + unbindEventsRef.current(); + startPendingDrag(actions, point); + } + }; + }, [api]); + var preventForcePressBinding = useMemoOne.useMemo(function () { + return { + eventName: 'webkitmouseforcewillbegin', + fn: function fn(event) { + if (event.defaultPrevented) { + return; + } + + var id = api.findClosestDraggableId(event); + + if (!id) { + return; + } + + var options = api.findOptionsForDraggable(id); + + if (!options) { + return; + } + + if (options.shouldRespectForcePress) { + return; + } + + if (!api.canGetLock(id)) { + return; + } + + event.preventDefault(); + } + }; + }, [api]); + var listenForCapture = useMemoOne.useCallback(function listenForCapture() { + var options = { + passive: false, + capture: true + }; + unbindEventsRef.current = bindEvents(window, [preventForcePressBinding, startCaptureBinding], options); + }, [preventForcePressBinding, startCaptureBinding]); + var stop = useMemoOne.useCallback(function () { + var current = phaseRef.current; + + if (current.type === 'IDLE') { + return; + } + + phaseRef.current = idle$1; + unbindEventsRef.current(); + listenForCapture(); + }, [listenForCapture]); + var cancel = useMemoOne.useCallback(function () { + var phase = phaseRef.current; + stop(); + + if (phase.type === 'DRAGGING') { + phase.actions.cancel({ + shouldBlockNextClick: true + }); + } + + if (phase.type === 'PENDING') { + phase.actions.abort(); + } + }, [stop]); + var bindCapturingEvents = useMemoOne.useCallback(function bindCapturingEvents() { + var options = { + capture: true, + passive: false + }; + var bindings = getCaptureBindings({ + cancel: cancel, + completed: stop, + getPhase: function getPhase() { + return phaseRef.current; + }, + setPhase: function setPhase(phase) { + phaseRef.current = phase; + } + }); + unbindEventsRef.current = bindEvents(window, bindings, options); + }, [cancel, stop]); + var startPendingDrag = useMemoOne.useCallback(function startPendingDrag(actions, point) { + !(phaseRef.current.type === 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0; + phaseRef.current = { + type: 'PENDING', + point: point, + actions: actions + }; + bindCapturingEvents(); + }, [bindCapturingEvents]); + useIsomorphicLayoutEffect(function mount() { + listenForCapture(); + return function unmount() { + unbindEventsRef.current(); + }; + }, [listenForCapture]); +} + +var _scrollJumpKeys; + +function noop$1() {} + +var scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys); + +function getDraggingBindings(actions, stop) { + function cancel() { + stop(); + actions.cancel(); + } + + function drop() { + stop(); + actions.drop(); + } + + return [{ + eventName: 'keydown', + fn: function fn(event) { + if (event.keyCode === escape) { + event.preventDefault(); + cancel(); + return; + } + + if (event.keyCode === space) { + event.preventDefault(); + drop(); + return; + } + + if (event.keyCode === arrowDown) { + event.preventDefault(); + actions.moveDown(); + return; + } + + if (event.keyCode === arrowUp) { + event.preventDefault(); + actions.moveUp(); + return; + } + + if (event.keyCode === arrowRight) { + event.preventDefault(); + actions.moveRight(); + return; + } + + if (event.keyCode === arrowLeft) { + event.preventDefault(); + actions.moveLeft(); + return; + } + + if (scrollJumpKeys[event.keyCode]) { + event.preventDefault(); + return; + } + + preventStandardKeyEvents(event); + } + }, { + eventName: 'mousedown', + fn: cancel + }, { + eventName: 'mouseup', + fn: cancel + }, { + eventName: 'click', + fn: cancel + }, { + eventName: 'touchstart', + fn: cancel + }, { + eventName: 'resize', + fn: cancel + }, { + eventName: 'wheel', + fn: cancel, + options: { + passive: true + } + }, { + eventName: supportedEventName, + fn: cancel + }]; +} + +function useKeyboardSensor(api) { + var unbindEventsRef = React.useRef(noop$1); + var startCaptureBinding = useMemoOne.useMemo(function () { + return { + eventName: 'keydown', + fn: function onKeyDown(event) { + if (event.defaultPrevented) { + return; + } + + if (event.keyCode !== space) { + return; + } + + var draggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + var preDrag = api.tryGetLock(draggableId, stop, { + sourceEvent: event + }); + + if (!preDrag) { + return; + } + + event.preventDefault(); + var isCapturing = true; + var actions = preDrag.snapLift(); + unbindEventsRef.current(); + + function stop() { + !isCapturing ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot stop capturing a keyboard drag when not capturing') : invariant(false) : void 0; + isCapturing = false; + unbindEventsRef.current(); + listenForCapture(); + } + + unbindEventsRef.current = bindEvents(window, getDraggingBindings(actions, stop), { + capture: true, + passive: false + }); + } + }; + }, [api]); + var listenForCapture = useMemoOne.useCallback(function tryStartCapture() { + var options = { + passive: false, + capture: true + }; + unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options); + }, [startCaptureBinding]); + useIsomorphicLayoutEffect(function mount() { + listenForCapture(); + return function unmount() { + unbindEventsRef.current(); + }; + }, [listenForCapture]); +} + +var idle$2 = { + type: 'IDLE' +}; +var timeForLongPress = 120; +var forcePressThreshold = 0.15; + +function getWindowBindings(_ref) { + var cancel = _ref.cancel, + getPhase = _ref.getPhase; + return [{ + eventName: 'orientationchange', + fn: cancel + }, { + eventName: 'resize', + fn: cancel + }, { + eventName: 'contextmenu', + fn: function fn(event) { + event.preventDefault(); + } + }, { + eventName: 'keydown', + fn: function fn(event) { + if (getPhase().type !== 'DRAGGING') { + cancel(); + return; + } + + if (event.keyCode === escape) { + event.preventDefault(); + } + + cancel(); + } + }, { + eventName: supportedEventName, + fn: cancel + }]; +} + +function getHandleBindings(_ref2) { + var cancel = _ref2.cancel, + completed = _ref2.completed, + getPhase = _ref2.getPhase; + return [{ + eventName: 'touchmove', + options: { + capture: false + }, + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + phase.hasMoved = true; + var _event$touches$ = event.touches[0], + clientX = _event$touches$.clientX, + clientY = _event$touches$.clientY; + var point = { + x: clientX, + y: clientY + }; + event.preventDefault(); + phase.actions.move(point); + } + }, { + eventName: 'touchend', + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + event.preventDefault(); + phase.actions.drop({ + shouldBlockNextClick: true + }); + completed(); + } + }, { + eventName: 'touchcancel', + fn: function fn(event) { + if (getPhase().type !== 'DRAGGING') { + cancel(); + return; + } + + event.preventDefault(); + cancel(); + } + }, { + eventName: 'touchforcechange', + fn: function fn(event) { + var phase = getPhase(); + !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + var touch = event.touches[0]; + + if (!touch) { + return; + } + + var isForcePress = touch.force >= forcePressThreshold; + + if (!isForcePress) { + return; + } + + var shouldRespect = phase.actions.shouldRespectForcePress(); + + if (phase.type === 'PENDING') { + if (shouldRespect) { + cancel(); + } + + return; + } + + if (shouldRespect) { + if (phase.hasMoved) { + event.preventDefault(); + return; + } + + cancel(); + return; + } + + event.preventDefault(); + } + }, { + eventName: supportedEventName, + fn: cancel + }]; +} + +function useTouchSensor(api) { + var phaseRef = React.useRef(idle$2); + var unbindEventsRef = React.useRef(noop); + var getPhase = useMemoOne.useCallback(function getPhase() { + return phaseRef.current; + }, []); + var setPhase = useMemoOne.useCallback(function setPhase(phase) { + phaseRef.current = phase; + }, []); + var startCaptureBinding = useMemoOne.useMemo(function () { + return { + eventName: 'touchstart', + fn: function onTouchStart(event) { + if (event.defaultPrevented) { + return; + } + + var draggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + var actions = api.tryGetLock(draggableId, stop, { + sourceEvent: event + }); + + if (!actions) { + return; + } + + var touch = event.touches[0]; + var clientX = touch.clientX, + clientY = touch.clientY; + var point = { + x: clientX, + y: clientY + }; + unbindEventsRef.current(); + startPendingDrag(actions, point); + } + }; + }, [api]); + var listenForCapture = useMemoOne.useCallback(function listenForCapture() { + var options = { + capture: true, + passive: false + }; + unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options); + }, [startCaptureBinding]); + var stop = useMemoOne.useCallback(function () { + var current = phaseRef.current; + + if (current.type === 'IDLE') { + return; + } + + if (current.type === 'PENDING') { + clearTimeout(current.longPressTimerId); + } + + setPhase(idle$2); + unbindEventsRef.current(); + listenForCapture(); + }, [listenForCapture, setPhase]); + var cancel = useMemoOne.useCallback(function () { + var phase = phaseRef.current; + stop(); + + if (phase.type === 'DRAGGING') { + phase.actions.cancel({ + shouldBlockNextClick: true + }); + } + + if (phase.type === 'PENDING') { + phase.actions.abort(); + } + }, [stop]); + var bindCapturingEvents = useMemoOne.useCallback(function bindCapturingEvents() { + var options = { + capture: true, + passive: false + }; + var args = { + cancel: cancel, + completed: stop, + getPhase: getPhase + }; + var unbindTarget = bindEvents(window, getHandleBindings(args), options); + var unbindWindow = bindEvents(window, getWindowBindings(args), options); + + unbindEventsRef.current = function unbindAll() { + unbindTarget(); + unbindWindow(); + }; + }, [cancel, getPhase, stop]); + var startDragging = useMemoOne.useCallback(function startDragging() { + var phase = getPhase(); + !(phase.type === 'PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot start dragging from phase " + phase.type) : invariant(false) : void 0; + var actions = phase.actions.fluidLift(phase.point); + setPhase({ + type: 'DRAGGING', + actions: actions, + hasMoved: false + }); + }, [getPhase, setPhase]); + var startPendingDrag = useMemoOne.useCallback(function startPendingDrag(actions, point) { + !(getPhase().type === 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0; + var longPressTimerId = setTimeout(startDragging, timeForLongPress); + setPhase({ + type: 'PENDING', + point: point, + actions: actions, + longPressTimerId: longPressTimerId + }); + bindCapturingEvents(); + }, [bindCapturingEvents, getPhase, setPhase, startDragging]); + useIsomorphicLayoutEffect(function mount() { + listenForCapture(); + return function unmount() { + unbindEventsRef.current(); + var phase = getPhase(); + + if (phase.type === 'PENDING') { + clearTimeout(phase.longPressTimerId); + setPhase(idle$2); + } + }; + }, [getPhase, listenForCapture, setPhase]); + useIsomorphicLayoutEffect(function webkitHack() { + var unbind = bindEvents(window, [{ + eventName: 'touchmove', + fn: function fn() {}, + options: { + capture: false, + passive: false + } + }]); + return unbind; + }, []); +} + +function useValidateSensorHooks(sensorHooks) { + useDev(function () { + var previousRef = usePrevious(sensorHooks); + useDevSetupWarning(function () { + !(previousRef.current.length === sensorHooks.length) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot change the amount of sensor hooks after mounting') : invariant(false) : void 0; + }); + }); +} + +var interactiveTagNames = { + input: true, + button: true, + textarea: true, + select: true, + option: true, + optgroup: true, + video: true, + audio: true +}; + +function isAnInteractiveElement(parent, current) { + if (current == null) { + return false; + } + + var hasAnInteractiveTag = Boolean(interactiveTagNames[current.tagName.toLowerCase()]); + + if (hasAnInteractiveTag) { + return true; + } + + var attribute = current.getAttribute('contenteditable'); + + if (attribute === 'true' || attribute === '') { + return true; + } + + if (current === parent) { + return false; + } + + return isAnInteractiveElement(parent, current.parentElement); +} + +function isEventInInteractiveElement(draggable, event) { + var target = event.target; + + if (!isHtmlElement(target)) { + return false; + } + + return isAnInteractiveElement(draggable, target); +} + +var getBorderBoxCenterPosition = (function (el) { + return cssBoxModel.getRect(el.getBoundingClientRect()).center; +}); + +function isElement(el) { + return el instanceof getWindowFromEl(el).Element; +} + +var supportedMatchesName = function () { + var base = 'matches'; + + if (typeof document === 'undefined') { + return base; + } + + var candidates = [base, 'msMatchesSelector', 'webkitMatchesSelector']; + var value = find(candidates, function (name) { + return name in Element.prototype; + }); + return value || base; +}(); + +function closestPonyfill(el, selector) { + if (el == null) { + return null; + } + + if (el[supportedMatchesName](selector)) { + return el; + } + + return closestPonyfill(el.parentElement, selector); +} + +function closest$1(el, selector) { + if (el.closest) { + return el.closest(selector); + } + + return closestPonyfill(el, selector); +} + +function getSelector(contextId) { + return "[" + dragHandle.contextId + "=\"" + contextId + "\"]"; +} + +function findClosestDragHandleFromEvent(contextId, event) { + var target = event.target; + + if (!isElement(target)) { + process.env.NODE_ENV !== "production" ? warning('event.target must be a Element') : void 0; + return null; + } + + var selector = getSelector(contextId); + var handle = closest$1(target, selector); + + if (!handle) { + return null; + } + + if (!isHtmlElement(handle)) { + process.env.NODE_ENV !== "production" ? warning('drag handle must be a HTMLElement') : void 0; + return null; + } + + return handle; +} + +function tryGetClosestDraggableIdFromEvent(contextId, event) { + var handle = findClosestDragHandleFromEvent(contextId, event); + + if (!handle) { + return null; + } + + return handle.getAttribute(dragHandle.draggableId); +} + +function findDraggable(contextId, draggableId) { + var selector = "[" + draggable.contextId + "=\"" + contextId + "\"]"; + var possible = toArray(document.querySelectorAll(selector)); + var draggable$1 = find(possible, function (el) { + return el.getAttribute(draggable.id) === draggableId; + }); + + if (!draggable$1) { + return null; + } + + if (!isHtmlElement(draggable$1)) { + process.env.NODE_ENV !== "production" ? warning('Draggable element is not a HTMLElement') : void 0; + return null; + } + + return draggable$1; +} + +function preventDefault(event) { + event.preventDefault(); +} + +function _isActive(_ref) { + var expected = _ref.expected, + phase = _ref.phase, + isLockActive = _ref.isLockActive, + shouldWarn = _ref.shouldWarn; + + if (!isLockActive()) { + if (shouldWarn) { + process.env.NODE_ENV !== "production" ? warning("\n Cannot perform action.\n The sensor no longer has an action lock.\n\n Tips:\n\n - Throw away your action handlers when forceStop() is called\n - Check actions.isActive() if you really need to\n ") : void 0; + } + + return false; + } + + if (expected !== phase) { + if (shouldWarn) { + process.env.NODE_ENV !== "production" ? warning("\n Cannot perform action.\n The actions you used belong to an outdated phase\n\n Current phase: " + expected + "\n You called an action from outdated phase: " + phase + "\n\n Tips:\n\n - Do not use preDragActions actions after calling preDragActions.lift()\n ") : void 0; + } + + return false; + } + + return true; +} + +function canStart(_ref2) { + var lockAPI = _ref2.lockAPI, + store = _ref2.store, + registry = _ref2.registry, + draggableId = _ref2.draggableId; + + if (lockAPI.isClaimed()) { + return false; + } + + var entry = registry.draggable.findById(draggableId); + + if (!entry) { + process.env.NODE_ENV !== "production" ? warning("Unable to find draggable with id: " + draggableId) : void 0; + return false; + } + + if (!entry.options.isEnabled) { + return false; + } + + if (!canStartDrag(store.getState(), draggableId)) { + return false; + } + + return true; +} + +function tryStart(_ref3) { + var lockAPI = _ref3.lockAPI, + contextId = _ref3.contextId, + store = _ref3.store, + registry = _ref3.registry, + draggableId = _ref3.draggableId, + forceSensorStop = _ref3.forceSensorStop, + sourceEvent = _ref3.sourceEvent; + var shouldStart = canStart({ + lockAPI: lockAPI, + store: store, + registry: registry, + draggableId: draggableId + }); + + if (!shouldStart) { + return null; + } + + var entry = registry.draggable.getById(draggableId); + var el = findDraggable(contextId, entry.descriptor.id); + + if (!el) { + process.env.NODE_ENV !== "production" ? warning("Unable to find draggable element with id: " + draggableId) : void 0; + return null; + } + + if (sourceEvent && !entry.options.canDragInteractiveElements && isEventInInteractiveElement(el, sourceEvent)) { + return null; + } + + var lock = lockAPI.claim(forceSensorStop || noop); + var phase = 'PRE_DRAG'; + + function getShouldRespectForcePress() { + return entry.options.shouldRespectForcePress; + } + + function isLockActive() { + return lockAPI.isActive(lock); + } + + function tryDispatch(expected, getAction) { + if (_isActive({ + expected: expected, + phase: phase, + isLockActive: isLockActive, + shouldWarn: true + })) { + store.dispatch(getAction()); + } + } + + var tryDispatchWhenDragging = tryDispatch.bind(null, 'DRAGGING'); + + function lift$1(args) { + function completed() { + lockAPI.release(); + phase = 'COMPLETED'; + } + + if (phase !== 'PRE_DRAG') { + completed(); + !(phase === 'PRE_DRAG') ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot lift in phase " + phase) : invariant(false) : void 0; + } + + store.dispatch(lift(args.liftActionArgs)); + phase = 'DRAGGING'; + + function finish(reason, options) { + if (options === void 0) { + options = { + shouldBlockNextClick: false + }; + } + + args.cleanup(); + + if (options.shouldBlockNextClick) { + var unbind = bindEvents(window, [{ + eventName: 'click', + fn: preventDefault, + options: { + once: true, + passive: false, + capture: true + } + }]); + setTimeout(unbind); + } + + completed(); + store.dispatch(drop({ + reason: reason + })); + } + + return _extends({ + isActive: function isActive() { + return _isActive({ + expected: 'DRAGGING', + phase: phase, + isLockActive: isLockActive, + shouldWarn: false + }); + }, + shouldRespectForcePress: getShouldRespectForcePress, + drop: function drop(options) { + return finish('DROP', options); + }, + cancel: function cancel(options) { + return finish('CANCEL', options); + } + }, args.actions); + } + + function fluidLift(clientSelection) { + var move$1 = rafSchd(function (client) { + tryDispatchWhenDragging(function () { + return move({ + client: client + }); + }); + }); + var api = lift$1({ + liftActionArgs: { + id: draggableId, + clientSelection: clientSelection, + movementMode: 'FLUID' + }, + cleanup: function cleanup() { + return move$1.cancel(); + }, + actions: { + move: move$1 + } + }); + return _extends({}, api, { + move: move$1 + }); + } + + function snapLift() { + var actions = { + moveUp: function moveUp$1() { + return tryDispatchWhenDragging(moveUp); + }, + moveRight: function moveRight$1() { + return tryDispatchWhenDragging(moveRight); + }, + moveDown: function moveDown$1() { + return tryDispatchWhenDragging(moveDown); + }, + moveLeft: function moveLeft$1() { + return tryDispatchWhenDragging(moveLeft); + } + }; + return lift$1({ + liftActionArgs: { + id: draggableId, + clientSelection: getBorderBoxCenterPosition(el), + movementMode: 'SNAP' + }, + cleanup: noop, + actions: actions + }); + } + + function abortPreDrag() { + var shouldRelease = _isActive({ + expected: 'PRE_DRAG', + phase: phase, + isLockActive: isLockActive, + shouldWarn: true + }); + + if (shouldRelease) { + lockAPI.release(); + } + } + + var preDrag = { + isActive: function isActive() { + return _isActive({ + expected: 'PRE_DRAG', + phase: phase, + isLockActive: isLockActive, + shouldWarn: false + }); + }, + shouldRespectForcePress: getShouldRespectForcePress, + fluidLift: fluidLift, + snapLift: snapLift, + abort: abortPreDrag + }; + return preDrag; +} + +var defaultSensors = [useMouseSensor, useKeyboardSensor, useTouchSensor]; +function useSensorMarshal(_ref4) { + var contextId = _ref4.contextId, + store = _ref4.store, + registry = _ref4.registry, + customSensors = _ref4.customSensors, + enableDefaultSensors = _ref4.enableDefaultSensors; + var useSensors = [].concat(enableDefaultSensors ? defaultSensors : [], customSensors || []); + var lockAPI = React.useState(function () { + return create(); + })[0]; + var tryAbandonLock = useMemoOne.useCallback(function tryAbandonLock(previous, current) { + if (previous.isDragging && !current.isDragging) { + lockAPI.tryAbandon(); + } + }, [lockAPI]); + useIsomorphicLayoutEffect(function listenToStore() { + var previous = store.getState(); + var unsubscribe = store.subscribe(function () { + var current = store.getState(); + tryAbandonLock(previous, current); + previous = current; + }); + return unsubscribe; + }, [lockAPI, store, tryAbandonLock]); + useIsomorphicLayoutEffect(function () { + return lockAPI.tryAbandon; + }, [lockAPI.tryAbandon]); + var canGetLock = useMemoOne.useCallback(function (draggableId) { + return canStart({ + lockAPI: lockAPI, + registry: registry, + store: store, + draggableId: draggableId + }); + }, [lockAPI, registry, store]); + var tryGetLock = useMemoOne.useCallback(function (draggableId, forceStop, options) { + return tryStart({ + lockAPI: lockAPI, + registry: registry, + contextId: contextId, + store: store, + draggableId: draggableId, + forceSensorStop: forceStop, + sourceEvent: options && options.sourceEvent ? options.sourceEvent : null + }); + }, [contextId, lockAPI, registry, store]); + var findClosestDraggableId = useMemoOne.useCallback(function (event) { + return tryGetClosestDraggableIdFromEvent(contextId, event); + }, [contextId]); + var findOptionsForDraggable = useMemoOne.useCallback(function (id) { + var entry = registry.draggable.findById(id); + return entry ? entry.options : null; + }, [registry.draggable]); + var tryReleaseLock = useMemoOne.useCallback(function tryReleaseLock() { + if (!lockAPI.isClaimed()) { + return; + } + + lockAPI.tryAbandon(); + + if (store.getState().phase !== 'IDLE') { + store.dispatch(flush()); + } + }, [lockAPI, store]); + var isLockClaimed = useMemoOne.useCallback(lockAPI.isClaimed, [lockAPI]); + var api = useMemoOne.useMemo(function () { + return { + canGetLock: canGetLock, + tryGetLock: tryGetLock, + findClosestDraggableId: findClosestDraggableId, + findOptionsForDraggable: findOptionsForDraggable, + tryReleaseLock: tryReleaseLock, + isLockClaimed: isLockClaimed + }; + }, [canGetLock, tryGetLock, findClosestDraggableId, findOptionsForDraggable, tryReleaseLock, isLockClaimed]); + useValidateSensorHooks(useSensors); + + for (var i = 0; i < useSensors.length; i++) { + useSensors[i](api); + } +} + +var createResponders = function createResponders(props) { + return { + onBeforeCapture: props.onBeforeCapture, + onBeforeDragStart: props.onBeforeDragStart, + onDragStart: props.onDragStart, + onDragEnd: props.onDragEnd, + onDragUpdate: props.onDragUpdate + }; +}; + +function getStore(lazyRef) { + !lazyRef.current ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find store from lazy ref') : invariant(false) : void 0; + return lazyRef.current; +} + +function App(props) { + var contextId = props.contextId, + setCallbacks = props.setCallbacks, + sensors = props.sensors, + nonce = props.nonce, + dragHandleUsageInstructions = props.dragHandleUsageInstructions; + var lazyStoreRef = React.useRef(null); + useStartupValidation(); + var lastPropsRef = usePrevious(props); + var getResponders = useMemoOne.useCallback(function () { + return createResponders(lastPropsRef.current); + }, [lastPropsRef]); + var announce = useAnnouncer(contextId); + var dragHandleUsageInstructionsId = useHiddenTextElement({ + contextId: contextId, + text: dragHandleUsageInstructions + }); + var styleMarshal = useStyleMarshal(contextId, nonce); + var lazyDispatch = useMemoOne.useCallback(function (action) { + getStore(lazyStoreRef).dispatch(action); + }, []); + var marshalCallbacks = useMemoOne.useMemo(function () { + return redux.bindActionCreators({ + publishWhileDragging: publishWhileDragging, + updateDroppableScroll: updateDroppableScroll, + updateDroppableIsEnabled: updateDroppableIsEnabled, + updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled, + collectionStarting: collectionStarting + }, lazyDispatch); + }, [lazyDispatch]); + var registry = useRegistry(); + var dimensionMarshal = useMemoOne.useMemo(function () { + return createDimensionMarshal(registry, marshalCallbacks); + }, [registry, marshalCallbacks]); + var autoScroller = useMemoOne.useMemo(function () { + return createAutoScroller(_extends({ + scrollWindow: scrollWindow, + scrollDroppable: dimensionMarshal.scrollDroppable + }, redux.bindActionCreators({ + move: move + }, lazyDispatch))); + }, [dimensionMarshal.scrollDroppable, lazyDispatch]); + var focusMarshal = useFocusMarshal(contextId); + var store = useMemoOne.useMemo(function () { + return createStore({ + announce: announce, + autoScroller: autoScroller, + dimensionMarshal: dimensionMarshal, + focusMarshal: focusMarshal, + getResponders: getResponders, + styleMarshal: styleMarshal + }); + }, [announce, autoScroller, dimensionMarshal, focusMarshal, getResponders, styleMarshal]); + + if (process.env.NODE_ENV !== 'production') { + if (lazyStoreRef.current && lazyStoreRef.current !== store) { + process.env.NODE_ENV !== "production" ? warning('unexpected store change') : void 0; + } + } + + lazyStoreRef.current = store; + var tryResetStore = useMemoOne.useCallback(function () { + var current = getStore(lazyStoreRef); + var state = current.getState(); + + if (state.phase !== 'IDLE') { + current.dispatch(flush()); + } + }, []); + var isDragging = useMemoOne.useCallback(function () { + var state = getStore(lazyStoreRef).getState(); + return state.isDragging || state.phase === 'DROP_ANIMATING'; + }, []); + var appCallbacks = useMemoOne.useMemo(function () { + return { + isDragging: isDragging, + tryAbort: tryResetStore + }; + }, [isDragging, tryResetStore]); + setCallbacks(appCallbacks); + var getCanLift = useMemoOne.useCallback(function (id) { + return canStartDrag(getStore(lazyStoreRef).getState(), id); + }, []); + var getIsMovementAllowed = useMemoOne.useCallback(function () { + return isMovementAllowed(getStore(lazyStoreRef).getState()); + }, []); + var appContext = useMemoOne.useMemo(function () { + return { + marshal: dimensionMarshal, + focus: focusMarshal, + contextId: contextId, + canLift: getCanLift, + isMovementAllowed: getIsMovementAllowed, + dragHandleUsageInstructionsId: dragHandleUsageInstructionsId, + registry: registry + }; + }, [contextId, dimensionMarshal, dragHandleUsageInstructionsId, focusMarshal, getCanLift, getIsMovementAllowed, registry]); + useSensorMarshal({ + contextId: contextId, + store: store, + registry: registry, + customSensors: sensors, + enableDefaultSensors: props.enableDefaultSensors !== false + }); + React.useEffect(function () { + return tryResetStore; + }, [tryResetStore]); + return React__default.createElement(AppContext.Provider, { + value: appContext + }, React__default.createElement(reactRedux.Provider, { + context: StoreContext, + store: store + }, props.children)); +} + +var count$1 = 0; +function reset$1() { + count$1 = 0; +} +function useInstanceCount() { + return useMemoOne.useMemo(function () { + return "" + count$1++; + }, []); +} + +function resetServerContext() { + reset$1(); + reset(); +} +function DragDropContext(props) { + var contextId = useInstanceCount(); + var dragHandleUsageInstructions = props.dragHandleUsageInstructions || preset.dragHandleUsageInstructions; + return React__default.createElement(ErrorBoundary, null, function (setCallbacks) { + return React__default.createElement(App, { + nonce: props.nonce, + contextId: contextId, + setCallbacks: setCallbacks, + dragHandleUsageInstructions: dragHandleUsageInstructions, + enableDefaultSensors: props.enableDefaultSensors, + sensors: props.sensors, + onBeforeCapture: props.onBeforeCapture, + onBeforeDragStart: props.onBeforeDragStart, + onDragStart: props.onDragStart, + onDragUpdate: props.onDragUpdate, + onDragEnd: props.onDragEnd + }, props.children); + }); +} + +var isEqual$1 = function isEqual(base) { + return function (value) { + return base === value; + }; +}; + +var isScroll = isEqual$1('scroll'); +var isAuto = isEqual$1('auto'); +var isVisible$1 = isEqual$1('visible'); + +var isEither = function isEither(overflow, fn) { + return fn(overflow.overflowX) || fn(overflow.overflowY); +}; + +var isBoth = function isBoth(overflow, fn) { + return fn(overflow.overflowX) && fn(overflow.overflowY); +}; + +var isElementScrollable = function isElementScrollable(el) { + var style = window.getComputedStyle(el); + var overflow = { + overflowX: style.overflowX, + overflowY: style.overflowY + }; + return isEither(overflow, isScroll) || isEither(overflow, isAuto); +}; + +var isBodyScrollable = function isBodyScrollable() { + if (process.env.NODE_ENV === 'production') { + return false; + } + + var body = getBodyElement(); + var html = document.documentElement; + !html ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + + if (!isElementScrollable(body)) { + return false; + } + + var htmlStyle = window.getComputedStyle(html); + var htmlOverflow = { + overflowX: htmlStyle.overflowX, + overflowY: htmlStyle.overflowY + }; + + if (isBoth(htmlOverflow, isVisible$1)) { + return false; + } + + process.env.NODE_ENV !== "production" ? warning("\n We have detected that your element might be a scroll container.\n We have found no reliable way of detecting whether the element is a scroll container.\n Under most circumstances a scroll bar will be on the element (document.documentElement)\n\n Because we cannot determine if the is a scroll container, and generally it is not one,\n we will be treating the as *not* a scroll container\n\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/how-we-detect-scroll-containers.md\n ") : void 0; + return false; +}; + +var getClosestScrollable = function getClosestScrollable(el) { + if (el == null) { + return null; + } + + if (el === document.body) { + return isBodyScrollable() ? el : null; + } + + if (el === document.documentElement) { + return null; + } + + if (!isElementScrollable(el)) { + return getClosestScrollable(el.parentElement); + } + + return el; +}; + +var checkForNestedScrollContainers = (function (scrollable) { + if (!scrollable) { + return; + } + + var anotherScrollParent = getClosestScrollable(scrollable.parentElement); + + if (!anotherScrollParent) { + return; + } + + process.env.NODE_ENV !== "production" ? warning("\n Droppable: unsupported nested scroll container detected.\n A Droppable can only have one scroll parent (which can be itself)\n Nested scroll containers are currently not supported.\n\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\n ") : void 0; +}); + +var getScroll$1 = (function (el) { + return { + x: el.scrollLeft, + y: el.scrollTop + }; +}); + +var getIsFixed = function getIsFixed(el) { + if (!el) { + return false; + } + + var style = window.getComputedStyle(el); + + if (style.position === 'fixed') { + return true; + } + + return getIsFixed(el.parentElement); +}; + +var getEnv = (function (start) { + var closestScrollable = getClosestScrollable(start); + var isFixedOnPage = getIsFixed(start); + return { + closestScrollable: closestScrollable, + isFixedOnPage: isFixedOnPage + }; +}); + +var getDroppableDimension = (function (_ref) { + var descriptor = _ref.descriptor, + isEnabled = _ref.isEnabled, + isCombineEnabled = _ref.isCombineEnabled, + isFixedOnPage = _ref.isFixedOnPage, + direction = _ref.direction, + client = _ref.client, + page = _ref.page, + closest = _ref.closest; + + var frame = function () { + if (!closest) { + return null; + } + + var scrollSize = closest.scrollSize, + frameClient = closest.client; + var maxScroll = getMaxScroll({ + scrollHeight: scrollSize.scrollHeight, + scrollWidth: scrollSize.scrollWidth, + height: frameClient.paddingBox.height, + width: frameClient.paddingBox.width + }); + return { + pageMarginBox: closest.page.marginBox, + frameClient: frameClient, + scrollSize: scrollSize, + shouldClipSubject: closest.shouldClipSubject, + scroll: { + initial: closest.scroll, + current: closest.scroll, + max: maxScroll, + diff: { + value: origin, + displacement: origin + } + } + }; + }(); + + var axis = direction === 'vertical' ? vertical : horizontal; + var subject = getSubject({ + page: page, + withPlaceholder: null, + axis: axis, + frame: frame + }); + var dimension = { + descriptor: descriptor, + isCombineEnabled: isCombineEnabled, + isFixedOnPage: isFixedOnPage, + axis: axis, + isEnabled: isEnabled, + client: client, + page: page, + frame: frame, + subject: subject + }; + return dimension; +}); + +var getClient = function getClient(targetRef, closestScrollable) { + var base = cssBoxModel.getBox(targetRef); + + if (!closestScrollable) { + return base; + } + + if (targetRef !== closestScrollable) { + return base; + } + + var top = base.paddingBox.top - closestScrollable.scrollTop; + var left = base.paddingBox.left - closestScrollable.scrollLeft; + var bottom = top + closestScrollable.scrollHeight; + var right = left + closestScrollable.scrollWidth; + var paddingBox = { + top: top, + right: right, + bottom: bottom, + left: left + }; + var borderBox = cssBoxModel.expand(paddingBox, base.border); + var client = cssBoxModel.createBox({ + borderBox: borderBox, + margin: base.margin, + border: base.border, + padding: base.padding + }); + return client; +}; + +var getDimension = (function (_ref) { + var ref = _ref.ref, + descriptor = _ref.descriptor, + env = _ref.env, + windowScroll = _ref.windowScroll, + direction = _ref.direction, + isDropDisabled = _ref.isDropDisabled, + isCombineEnabled = _ref.isCombineEnabled, + shouldClipSubject = _ref.shouldClipSubject; + var closestScrollable = env.closestScrollable; + var client = getClient(ref, closestScrollable); + var page = cssBoxModel.withScroll(client, windowScroll); + + var closest = function () { + if (!closestScrollable) { + return null; + } + + var frameClient = cssBoxModel.getBox(closestScrollable); + var scrollSize = { + scrollHeight: closestScrollable.scrollHeight, + scrollWidth: closestScrollable.scrollWidth + }; + return { + client: frameClient, + page: cssBoxModel.withScroll(frameClient, windowScroll), + scroll: getScroll$1(closestScrollable), + scrollSize: scrollSize, + shouldClipSubject: shouldClipSubject + }; + }(); + + var dimension = getDroppableDimension({ + descriptor: descriptor, + isEnabled: !isDropDisabled, + isCombineEnabled: isCombineEnabled, + isFixedOnPage: env.isFixedOnPage, + direction: direction, + client: client, + page: page, + closest: closest + }); + return dimension; +}); + +var immediate = { + passive: false +}; +var delayed = { + passive: true +}; +var getListenerOptions = (function (options) { + return options.shouldPublishImmediately ? immediate : delayed; +}); + +function useRequiredContext(Context) { + var result = React.useContext(Context); + !result ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find required context') : invariant(false) : void 0; + return result; +} + +var getClosestScrollableFromDrag = function getClosestScrollableFromDrag(dragging) { + return dragging && dragging.env.closestScrollable || null; +}; + +function useDroppablePublisher(args) { + var whileDraggingRef = React.useRef(null); + var appContext = useRequiredContext(AppContext); + var uniqueId = useUniqueId('droppable'); + var registry = appContext.registry, + marshal = appContext.marshal; + var previousRef = usePrevious(args); + var descriptor = useMemoOne.useMemo(function () { + return { + id: args.droppableId, + type: args.type, + mode: args.mode + }; + }, [args.droppableId, args.mode, args.type]); + var publishedDescriptorRef = React.useRef(descriptor); + var memoizedUpdateScroll = useMemoOne.useMemo(function () { + return memoizeOne(function (x, y) { + !whileDraggingRef.current ? process.env.NODE_ENV !== "production" ? invariant(false, 'Can only update scroll when dragging') : invariant(false) : void 0; + var scroll = { + x: x, + y: y + }; + marshal.updateDroppableScroll(descriptor.id, scroll); + }); + }, [descriptor.id, marshal]); + var getClosestScroll = useMemoOne.useCallback(function () { + var dragging = whileDraggingRef.current; + + if (!dragging || !dragging.env.closestScrollable) { + return origin; + } + + return getScroll$1(dragging.env.closestScrollable); + }, []); + var updateScroll = useMemoOne.useCallback(function () { + var scroll = getClosestScroll(); + memoizedUpdateScroll(scroll.x, scroll.y); + }, [getClosestScroll, memoizedUpdateScroll]); + var scheduleScrollUpdate = useMemoOne.useMemo(function () { + return rafSchd(updateScroll); + }, [updateScroll]); + var onClosestScroll = useMemoOne.useCallback(function () { + var dragging = whileDraggingRef.current; + var closest = getClosestScrollableFromDrag(dragging); + !(dragging && closest) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find scroll options while scrolling') : invariant(false) : void 0; + var options = dragging.scrollOptions; + + if (options.shouldPublishImmediately) { + updateScroll(); + return; + } + + scheduleScrollUpdate(); + }, [scheduleScrollUpdate, updateScroll]); + var getDimensionAndWatchScroll = useMemoOne.useCallback(function (windowScroll, options) { + !!whileDraggingRef.current ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot collect a droppable while a drag is occurring') : invariant(false) : void 0; + var previous = previousRef.current; + var ref = previous.getDroppableRef(); + !ref ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot collect without a droppable ref') : invariant(false) : void 0; + var env = getEnv(ref); + var dragging = { + ref: ref, + descriptor: descriptor, + env: env, + scrollOptions: options + }; + whileDraggingRef.current = dragging; + var dimension = getDimension({ + ref: ref, + descriptor: descriptor, + env: env, + windowScroll: windowScroll, + direction: previous.direction, + isDropDisabled: previous.isDropDisabled, + isCombineEnabled: previous.isCombineEnabled, + shouldClipSubject: !previous.ignoreContainerClipping + }); + var scrollable = env.closestScrollable; + + if (scrollable) { + scrollable.setAttribute(scrollContainer.contextId, appContext.contextId); + scrollable.addEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions)); + + if (process.env.NODE_ENV !== 'production') { + checkForNestedScrollContainers(scrollable); + } + } + + return dimension; + }, [appContext.contextId, descriptor, onClosestScroll, previousRef]); + var getScrollWhileDragging = useMemoOne.useCallback(function () { + var dragging = whileDraggingRef.current; + var closest = getClosestScrollableFromDrag(dragging); + !(dragging && closest) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Can only recollect Droppable client for Droppables that have a scroll container') : invariant(false) : void 0; + return getScroll$1(closest); + }, []); + var dragStopped = useMemoOne.useCallback(function () { + var dragging = whileDraggingRef.current; + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot stop drag when no active drag') : invariant(false) : void 0; + var closest = getClosestScrollableFromDrag(dragging); + whileDraggingRef.current = null; + + if (!closest) { + return; + } + + scheduleScrollUpdate.cancel(); + closest.removeAttribute(scrollContainer.contextId); + closest.removeEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions)); + }, [onClosestScroll, scheduleScrollUpdate]); + var scroll = useMemoOne.useCallback(function (change) { + var dragging = whileDraggingRef.current; + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot scroll when there is no drag') : invariant(false) : void 0; + var closest = getClosestScrollableFromDrag(dragging); + !closest ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : invariant(false) : void 0; + closest.scrollTop += change.y; + closest.scrollLeft += change.x; + }, []); + var callbacks = useMemoOne.useMemo(function () { + return { + getDimensionAndWatchScroll: getDimensionAndWatchScroll, + getScrollWhileDragging: getScrollWhileDragging, + dragStopped: dragStopped, + scroll: scroll + }; + }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]); + var entry = useMemoOne.useMemo(function () { + return { + uniqueId: uniqueId, + descriptor: descriptor, + callbacks: callbacks + }; + }, [callbacks, descriptor, uniqueId]); + useIsomorphicLayoutEffect(function () { + publishedDescriptorRef.current = entry.descriptor; + registry.droppable.register(entry); + return function () { + if (whileDraggingRef.current) { + process.env.NODE_ENV !== "production" ? warning('Unsupported: changing the droppableId or type of a Droppable during a drag') : void 0; + dragStopped(); + } + + registry.droppable.unregister(entry); + }; + }, [callbacks, descriptor, dragStopped, entry, marshal, registry.droppable]); + useIsomorphicLayoutEffect(function () { + if (!whileDraggingRef.current) { + return; + } + + marshal.updateDroppableIsEnabled(publishedDescriptorRef.current.id, !args.isDropDisabled); + }, [args.isDropDisabled, marshal]); + useIsomorphicLayoutEffect(function () { + if (!whileDraggingRef.current) { + return; + } + + marshal.updateDroppableIsCombineEnabled(publishedDescriptorRef.current.id, args.isCombineEnabled); + }, [args.isCombineEnabled, marshal]); +} + +function noop$2() {} + +var empty = { + width: 0, + height: 0, + margin: noSpacing +}; + +var getSize = function getSize(_ref) { + var isAnimatingOpenOnMount = _ref.isAnimatingOpenOnMount, + placeholder = _ref.placeholder, + animate = _ref.animate; + + if (isAnimatingOpenOnMount) { + return empty; + } + + if (animate === 'close') { + return empty; + } + + return { + height: placeholder.client.borderBox.height, + width: placeholder.client.borderBox.width, + margin: placeholder.client.margin + }; +}; + +var getStyle = function getStyle(_ref2) { + var isAnimatingOpenOnMount = _ref2.isAnimatingOpenOnMount, + placeholder = _ref2.placeholder, + animate = _ref2.animate; + var size = getSize({ + isAnimatingOpenOnMount: isAnimatingOpenOnMount, + placeholder: placeholder, + animate: animate + }); + return { + display: placeholder.display, + boxSizing: 'border-box', + width: size.width, + height: size.height, + marginTop: size.margin.top, + marginRight: size.margin.right, + marginBottom: size.margin.bottom, + marginLeft: size.margin.left, + flexShrink: '0', + flexGrow: '0', + pointerEvents: 'none', + transition: animate !== 'none' ? transitions.placeholder : null + }; +}; + +function Placeholder(props) { + var animateOpenTimerRef = React.useRef(null); + var tryClearAnimateOpenTimer = useMemoOne.useCallback(function () { + if (!animateOpenTimerRef.current) { + return; + } + + clearTimeout(animateOpenTimerRef.current); + animateOpenTimerRef.current = null; + }, []); + var animate = props.animate, + onTransitionEnd = props.onTransitionEnd, + onClose = props.onClose, + contextId = props.contextId; + + var _useState = React.useState(props.animate === 'open'), + isAnimatingOpenOnMount = _useState[0], + setIsAnimatingOpenOnMount = _useState[1]; + + React.useEffect(function () { + if (!isAnimatingOpenOnMount) { + return noop$2; + } + + if (animate !== 'open') { + tryClearAnimateOpenTimer(); + setIsAnimatingOpenOnMount(false); + return noop$2; + } + + if (animateOpenTimerRef.current) { + return noop$2; + } + + animateOpenTimerRef.current = setTimeout(function () { + animateOpenTimerRef.current = null; + setIsAnimatingOpenOnMount(false); + }); + return tryClearAnimateOpenTimer; + }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]); + var onSizeChangeEnd = useMemoOne.useCallback(function (event) { + if (event.propertyName !== 'height') { + return; + } + + onTransitionEnd(); + + if (animate === 'close') { + onClose(); + } + }, [animate, onClose, onTransitionEnd]); + var style = getStyle({ + isAnimatingOpenOnMount: isAnimatingOpenOnMount, + animate: props.animate, + placeholder: props.placeholder + }); + return React__default.createElement(props.placeholder.tagName, { + style: style, + 'data-rbd-placeholder-context-id': contextId, + onTransitionEnd: onSizeChangeEnd, + ref: props.innerRef + }); +} + +var Placeholder$1 = React__default.memo(Placeholder); + +var DroppableContext = React__default.createContext(null); + +function checkIsValidInnerRef(el) { + !(el && isHtmlElement(el)) ? process.env.NODE_ENV !== "production" ? invariant(false, "\n provided.innerRef has not been provided with a HTMLElement.\n\n You can find a guide on using the innerRef callback functions at:\n https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md\n ") : invariant(false) : void 0; +} + +function isBoolean(value) { + return typeof value === 'boolean'; +} + +function runChecks(args, checks) { + checks.forEach(function (check) { + return check(args); + }); +} + +var shared = [function required(_ref) { + var props = _ref.props; + !props.droppableId ? process.env.NODE_ENV !== "production" ? invariant(false, 'A Droppable requires a droppableId prop') : invariant(false) : void 0; + !(typeof props.droppableId === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, "A Droppable requires a [string] droppableId. Provided: [" + typeof props.droppableId + "]") : invariant(false) : void 0; +}, function _boolean(_ref2) { + var props = _ref2.props; + !isBoolean(props.isDropDisabled) ? process.env.NODE_ENV !== "production" ? invariant(false, 'isDropDisabled must be a boolean') : invariant(false) : void 0; + !isBoolean(props.isCombineEnabled) ? process.env.NODE_ENV !== "production" ? invariant(false, 'isCombineEnabled must be a boolean') : invariant(false) : void 0; + !isBoolean(props.ignoreContainerClipping) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ignoreContainerClipping must be a boolean') : invariant(false) : void 0; +}, function ref(_ref3) { + var getDroppableRef = _ref3.getDroppableRef; + checkIsValidInnerRef(getDroppableRef()); +}]; +var standard = [function placeholder(_ref4) { + var props = _ref4.props, + getPlaceholderRef = _ref4.getPlaceholderRef; + + if (!props.placeholder) { + return; + } + + var ref = getPlaceholderRef(); + + if (ref) { + return; + } + + process.env.NODE_ENV !== "production" ? warning("\n Droppable setup issue [droppableId: \"" + props.droppableId + "\"]:\n DroppableProvided > placeholder could not be found.\n\n Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/droppable.md\n ") : void 0; +}]; +var virtual = [function hasClone(_ref5) { + var props = _ref5.props; + !props.renderClone ? process.env.NODE_ENV !== "production" ? invariant(false, 'Must provide a clone render function (renderClone) for virtual lists') : invariant(false) : void 0; +}, function hasNoPlaceholder(_ref6) { + var getPlaceholderRef = _ref6.getPlaceholderRef; + !!getPlaceholderRef() ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected virtual list to not have a placeholder') : invariant(false) : void 0; +}]; +function useValidation(args) { + useDevSetupWarning(function () { + runChecks(args, shared); + + if (args.props.mode === 'standard') { + runChecks(args, standard); + } + + if (args.props.mode === 'virtual') { + runChecks(args, virtual); + } + }); +} + +var AnimateInOut = function (_React$PureComponent) { + _inheritsLoose(AnimateInOut, _React$PureComponent); + + function AnimateInOut() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this; + _this.state = { + isVisible: Boolean(_this.props.on), + data: _this.props.on, + animate: _this.props.shouldAnimate && _this.props.on ? 'open' : 'none' + }; + + _this.onClose = function () { + if (_this.state.animate !== 'close') { + return; + } + + _this.setState({ + isVisible: false + }); + }; + + return _this; + } + + AnimateInOut.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) { + if (!props.shouldAnimate) { + return { + isVisible: Boolean(props.on), + data: props.on, + animate: 'none' + }; + } + + if (props.on) { + return { + isVisible: true, + data: props.on, + animate: 'open' + }; + } + + if (state.isVisible) { + return { + isVisible: true, + data: state.data, + animate: 'close' + }; + } + + return { + isVisible: false, + animate: 'close', + data: null + }; + }; + + var _proto = AnimateInOut.prototype; + + _proto.render = function render() { + if (!this.state.isVisible) { + return null; + } + + var provided = { + onClose: this.onClose, + data: this.state.data, + animate: this.state.animate + }; + return this.props.children(provided); + }; + + return AnimateInOut; +}(React__default.PureComponent); + +var zIndexOptions = { + dragging: 5000, + dropAnimating: 4500 +}; + +var getDraggingTransition = function getDraggingTransition(shouldAnimateDragMovement, dropping) { + if (dropping) { + return transitions.drop(dropping.duration); + } + + if (shouldAnimateDragMovement) { + return transitions.snap; + } + + return transitions.fluid; +}; + +var getDraggingOpacity = function getDraggingOpacity(isCombining, isDropAnimating) { + if (!isCombining) { + return null; + } + + return isDropAnimating ? combine.opacity.drop : combine.opacity.combining; +}; + +var getShouldDraggingAnimate = function getShouldDraggingAnimate(dragging) { + if (dragging.forceShouldAnimate != null) { + return dragging.forceShouldAnimate; + } + + return dragging.mode === 'SNAP'; +}; + +function getDraggingStyle(dragging) { + var dimension = dragging.dimension; + var box = dimension.client; + var offset = dragging.offset, + combineWith = dragging.combineWith, + dropping = dragging.dropping; + var isCombining = Boolean(combineWith); + var shouldAnimate = getShouldDraggingAnimate(dragging); + var isDropAnimating = Boolean(dropping); + var transform = isDropAnimating ? transforms.drop(offset, isCombining) : transforms.moveTo(offset); + var style = { + position: 'fixed', + top: box.marginBox.top, + left: box.marginBox.left, + boxSizing: 'border-box', + width: box.borderBox.width, + height: box.borderBox.height, + transition: getDraggingTransition(shouldAnimate, dropping), + transform: transform, + opacity: getDraggingOpacity(isCombining, isDropAnimating), + zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging, + pointerEvents: 'none' + }; + return style; +} + +function getSecondaryStyle(secondary) { + return { + transform: transforms.moveTo(secondary.offset), + transition: secondary.shouldAnimateDisplacement ? null : 'none' + }; +} + +function getStyle$1(mapped) { + return mapped.type === 'DRAGGING' ? getDraggingStyle(mapped) : getSecondaryStyle(mapped); +} + +function getDimension$1(descriptor, el, windowScroll) { + if (windowScroll === void 0) { + windowScroll = origin; + } + + var computedStyles = window.getComputedStyle(el); + var borderBox = el.getBoundingClientRect(); + var client = cssBoxModel.calculateBox(borderBox, computedStyles); + var page = cssBoxModel.withScroll(client, windowScroll); + var placeholder = { + client: client, + tagName: el.tagName.toLowerCase(), + display: computedStyles.display + }; + var displaceBy = { + x: client.marginBox.width, + y: client.marginBox.height + }; + var dimension = { + descriptor: descriptor, + placeholder: placeholder, + displaceBy: displaceBy, + client: client, + page: page + }; + return dimension; +} + +function useDraggablePublisher(args) { + var uniqueId = useUniqueId('draggable'); + var descriptor = args.descriptor, + registry = args.registry, + getDraggableRef = args.getDraggableRef, + canDragInteractiveElements = args.canDragInteractiveElements, + shouldRespectForcePress = args.shouldRespectForcePress, + isEnabled = args.isEnabled; + var options = useMemoOne.useMemo(function () { + return { + canDragInteractiveElements: canDragInteractiveElements, + shouldRespectForcePress: shouldRespectForcePress, + isEnabled: isEnabled + }; + }, [canDragInteractiveElements, isEnabled, shouldRespectForcePress]); + var getDimension = useMemoOne.useCallback(function (windowScroll) { + var el = getDraggableRef(); + !el ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot get dimension when no ref is set') : invariant(false) : void 0; + return getDimension$1(descriptor, el, windowScroll); + }, [descriptor, getDraggableRef]); + var entry = useMemoOne.useMemo(function () { + return { + uniqueId: uniqueId, + descriptor: descriptor, + options: options, + getDimension: getDimension + }; + }, [descriptor, getDimension, options, uniqueId]); + var publishedRef = React.useRef(entry); + var isFirstPublishRef = React.useRef(true); + useIsomorphicLayoutEffect(function () { + registry.draggable.register(publishedRef.current); + return function () { + return registry.draggable.unregister(publishedRef.current); + }; + }, [registry.draggable]); + useIsomorphicLayoutEffect(function () { + if (isFirstPublishRef.current) { + isFirstPublishRef.current = false; + return; + } + + var last = publishedRef.current; + publishedRef.current = entry; + registry.draggable.update(entry, last); + }, [entry, registry.draggable]); +} + +function useValidation$1(props, contextId, getRef) { + useDevSetupWarning(function () { + function prefix(id) { + return "Draggable[id: " + id + "]: "; + } + + var id = props.draggableId; + !id ? process.env.NODE_ENV !== "production" ? invariant(false, 'Draggable requires a draggableId') : invariant(false) : void 0; + !(typeof id === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, "Draggable requires a [string] draggableId.\n Provided: [type: " + typeof id + "] (value: " + id + ")") : invariant(false) : void 0; + !isInteger(props.index) ? process.env.NODE_ENV !== "production" ? invariant(false, prefix(id) + " requires an integer index prop") : invariant(false) : void 0; + + if (props.mapped.type === 'DRAGGING') { + return; + } + + checkIsValidInnerRef(getRef()); + + if (props.isEnabled) { + !findDragHandle(contextId, id) ? process.env.NODE_ENV !== "production" ? invariant(false, prefix(id) + " Unable to find drag handle") : invariant(false) : void 0; + } + }); +} +function useClonePropValidation(isClone) { + useDev(function () { + var initialRef = React.useRef(isClone); + useDevSetupWarning(function () { + !(isClone === initialRef.current) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Draggable isClone prop value changed during component life') : invariant(false) : void 0; + }, [isClone]); + }); +} + +function preventHtml5Dnd(event) { + event.preventDefault(); +} + +function Draggable(props) { + var ref = React.useRef(null); + var setRef = useMemoOne.useCallback(function (el) { + ref.current = el; + }, []); + var getRef = useMemoOne.useCallback(function () { + return ref.current; + }, []); + + var _useRequiredContext = useRequiredContext(AppContext), + contextId = _useRequiredContext.contextId, + dragHandleUsageInstructionsId = _useRequiredContext.dragHandleUsageInstructionsId, + registry = _useRequiredContext.registry; + + var _useRequiredContext2 = useRequiredContext(DroppableContext), + type = _useRequiredContext2.type, + droppableId = _useRequiredContext2.droppableId; + + var descriptor = useMemoOne.useMemo(function () { + return { + id: props.draggableId, + index: props.index, + type: type, + droppableId: droppableId + }; + }, [props.draggableId, props.index, type, droppableId]); + var children = props.children, + draggableId = props.draggableId, + isEnabled = props.isEnabled, + shouldRespectForcePress = props.shouldRespectForcePress, + canDragInteractiveElements = props.canDragInteractiveElements, + isClone = props.isClone, + mapped = props.mapped, + dropAnimationFinishedAction = props.dropAnimationFinished; + useValidation$1(props, contextId, getRef); + useClonePropValidation(isClone); + + if (!isClone) { + var forPublisher = useMemoOne.useMemo(function () { + return { + descriptor: descriptor, + registry: registry, + getDraggableRef: getRef, + canDragInteractiveElements: canDragInteractiveElements, + shouldRespectForcePress: shouldRespectForcePress, + isEnabled: isEnabled + }; + }, [descriptor, registry, getRef, canDragInteractiveElements, shouldRespectForcePress, isEnabled]); + useDraggablePublisher(forPublisher); + } + + var dragHandleProps = useMemoOne.useMemo(function () { + return isEnabled ? { + tabIndex: 0, + role: 'button', + 'aria-describedby': dragHandleUsageInstructionsId, + 'data-rbd-drag-handle-draggable-id': draggableId, + 'data-rbd-drag-handle-context-id': contextId, + draggable: false, + onDragStart: preventHtml5Dnd + } : null; + }, [contextId, dragHandleUsageInstructionsId, draggableId, isEnabled]); + var onMoveEnd = useMemoOne.useCallback(function (event) { + if (mapped.type !== 'DRAGGING') { + return; + } + + if (!mapped.dropping) { + return; + } + + if (event.propertyName !== 'transform') { + return; + } + + dropAnimationFinishedAction(); + }, [dropAnimationFinishedAction, mapped]); + var provided = useMemoOne.useMemo(function () { + var style = getStyle$1(mapped); + var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null; + var result = { + innerRef: setRef, + draggableProps: { + 'data-rbd-draggable-context-id': contextId, + 'data-rbd-draggable-id': draggableId, + style: style, + onTransitionEnd: onTransitionEnd + }, + dragHandleProps: dragHandleProps + }; + return result; + }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]); + var rubric = useMemoOne.useMemo(function () { + return { + draggableId: descriptor.id, + type: descriptor.type, + source: { + index: descriptor.index, + droppableId: descriptor.droppableId + } + }; + }, [descriptor.droppableId, descriptor.id, descriptor.index, descriptor.type]); + return children(provided, mapped.snapshot, rubric); +} + +var isStrictEqual = (function (a, b) { + return a === b; +}); + +var whatIsDraggedOverFromResult = (function (result) { + var combine = result.combine, + destination = result.destination; + + if (destination) { + return destination.droppableId; + } + + if (combine) { + return combine.droppableId; + } + + return null; +}); + +var getCombineWithFromResult = function getCombineWithFromResult(result) { + return result.combine ? result.combine.draggableId : null; +}; + +var getCombineWithFromImpact = function getCombineWithFromImpact(impact) { + return impact.at && impact.at.type === 'COMBINE' ? impact.at.combine.draggableId : null; +}; + +function getDraggableSelector() { + var memoizedOffset = memoizeOne(function (x, y) { + return { + x: x, + y: y + }; + }); + var getMemoizedSnapshot = memoizeOne(function (mode, isClone, draggingOver, combineWith, dropping) { + return { + isDragging: true, + isClone: isClone, + isDropAnimating: Boolean(dropping), + dropAnimation: dropping, + mode: mode, + draggingOver: draggingOver, + combineWith: combineWith, + combineTargetFor: null + }; + }); + var getMemoizedProps = memoizeOne(function (offset, mode, dimension, isClone, draggingOver, combineWith, forceShouldAnimate) { + return { + mapped: { + type: 'DRAGGING', + dropping: null, + draggingOver: draggingOver, + combineWith: combineWith, + mode: mode, + offset: offset, + dimension: dimension, + forceShouldAnimate: forceShouldAnimate, + snapshot: getMemoizedSnapshot(mode, isClone, draggingOver, combineWith, null) + } + }; + }); + + var selector = function selector(state, ownProps) { + if (state.isDragging) { + if (state.critical.draggable.id !== ownProps.draggableId) { + return null; + } + + var offset = state.current.client.offset; + var dimension = state.dimensions.draggables[ownProps.draggableId]; + var draggingOver = whatIsDraggedOver(state.impact); + var combineWith = getCombineWithFromImpact(state.impact); + var forceShouldAnimate = state.forceShouldAnimate; + return getMemoizedProps(memoizedOffset(offset.x, offset.y), state.movementMode, dimension, ownProps.isClone, draggingOver, combineWith, forceShouldAnimate); + } + + if (state.phase === 'DROP_ANIMATING') { + var completed = state.completed; + + if (completed.result.draggableId !== ownProps.draggableId) { + return null; + } + + var isClone = ownProps.isClone; + var _dimension = state.dimensions.draggables[ownProps.draggableId]; + var result = completed.result; + var mode = result.mode; + + var _draggingOver = whatIsDraggedOverFromResult(result); + + var _combineWith = getCombineWithFromResult(result); + + var duration = state.dropDuration; + var dropping = { + duration: duration, + curve: curves.drop, + moveTo: state.newHomeClientOffset, + opacity: _combineWith ? combine.opacity.drop : null, + scale: _combineWith ? combine.scale.drop : null + }; + return { + mapped: { + type: 'DRAGGING', + offset: state.newHomeClientOffset, + dimension: _dimension, + dropping: dropping, + draggingOver: _draggingOver, + combineWith: _combineWith, + mode: mode, + forceShouldAnimate: null, + snapshot: getMemoizedSnapshot(mode, isClone, _draggingOver, _combineWith, dropping) + } + }; + } + + return null; + }; + + return selector; +} + +function getSecondarySnapshot(combineTargetFor) { + return { + isDragging: false, + isDropAnimating: false, + isClone: false, + dropAnimation: null, + mode: null, + draggingOver: null, + combineTargetFor: combineTargetFor, + combineWith: null + }; +} + +var atRest = { + mapped: { + type: 'SECONDARY', + offset: origin, + combineTargetFor: null, + shouldAnimateDisplacement: true, + snapshot: getSecondarySnapshot(null) + } +}; + +function getSecondarySelector() { + var memoizedOffset = memoizeOne(function (x, y) { + return { + x: x, + y: y + }; + }); + var getMemoizedSnapshot = memoizeOne(getSecondarySnapshot); + var getMemoizedProps = memoizeOne(function (offset, combineTargetFor, shouldAnimateDisplacement) { + if (combineTargetFor === void 0) { + combineTargetFor = null; + } + + return { + mapped: { + type: 'SECONDARY', + offset: offset, + combineTargetFor: combineTargetFor, + shouldAnimateDisplacement: shouldAnimateDisplacement, + snapshot: getMemoizedSnapshot(combineTargetFor) + } + }; + }); + + var getFallback = function getFallback(combineTargetFor) { + return combineTargetFor ? getMemoizedProps(origin, combineTargetFor, true) : null; + }; + + var getProps = function getProps(ownId, draggingId, impact, afterCritical) { + var visualDisplacement = impact.displaced.visible[ownId]; + var isAfterCriticalInVirtualList = Boolean(afterCritical.inVirtualList && afterCritical.effected[ownId]); + var combine = tryGetCombine(impact); + var combineTargetFor = combine && combine.draggableId === ownId ? draggingId : null; + + if (!visualDisplacement) { + if (!isAfterCriticalInVirtualList) { + return getFallback(combineTargetFor); + } + + if (impact.displaced.invisible[ownId]) { + return null; + } + + var change = negate(afterCritical.displacedBy.point); + + var _offset = memoizedOffset(change.x, change.y); + + return getMemoizedProps(_offset, combineTargetFor, true); + } + + if (isAfterCriticalInVirtualList) { + return getFallback(combineTargetFor); + } + + var displaceBy = impact.displacedBy.point; + var offset = memoizedOffset(displaceBy.x, displaceBy.y); + return getMemoizedProps(offset, combineTargetFor, visualDisplacement.shouldAnimate); + }; + + var selector = function selector(state, ownProps) { + if (state.isDragging) { + if (state.critical.draggable.id === ownProps.draggableId) { + return null; + } + + return getProps(ownProps.draggableId, state.critical.draggable.id, state.impact, state.afterCritical); + } + + if (state.phase === 'DROP_ANIMATING') { + var completed = state.completed; + + if (completed.result.draggableId === ownProps.draggableId) { + return null; + } + + return getProps(ownProps.draggableId, completed.result.draggableId, completed.impact, completed.afterCritical); + } + + return null; + }; + + return selector; +} + +var makeMapStateToProps = function makeMapStateToProps() { + var draggingSelector = getDraggableSelector(); + var secondarySelector = getSecondarySelector(); + + var selector = function selector(state, ownProps) { + return draggingSelector(state, ownProps) || secondarySelector(state, ownProps) || atRest; + }; + + return selector; +}; +var mapDispatchToProps = { + dropAnimationFinished: dropAnimationFinished +}; +var ConnectedDraggable = reactRedux.connect(makeMapStateToProps, mapDispatchToProps, null, { + context: StoreContext, + pure: true, + areStatePropsEqual: isStrictEqual +})(Draggable); + +function PrivateDraggable(props) { + var droppableContext = useRequiredContext(DroppableContext); + var isUsingCloneFor = droppableContext.isUsingCloneFor; + + if (isUsingCloneFor === props.draggableId && !props.isClone) { + return null; + } + + return React__default.createElement(ConnectedDraggable, props); +} +function PublicDraggable(props) { + var isEnabled = typeof props.isDragDisabled === 'boolean' ? !props.isDragDisabled : true; + var canDragInteractiveElements = Boolean(props.disableInteractiveElementBlocking); + var shouldRespectForcePress = Boolean(props.shouldRespectForcePress); + return React__default.createElement(PrivateDraggable, _extends({}, props, { + isClone: false, + isEnabled: isEnabled, + canDragInteractiveElements: canDragInteractiveElements, + shouldRespectForcePress: shouldRespectForcePress + })); +} + +function Droppable(props) { + var appContext = React.useContext(AppContext); + !appContext ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find app context') : invariant(false) : void 0; + var contextId = appContext.contextId, + isMovementAllowed = appContext.isMovementAllowed; + var droppableRef = React.useRef(null); + var placeholderRef = React.useRef(null); + var children = props.children, + droppableId = props.droppableId, + type = props.type, + mode = props.mode, + direction = props.direction, + ignoreContainerClipping = props.ignoreContainerClipping, + isDropDisabled = props.isDropDisabled, + isCombineEnabled = props.isCombineEnabled, + snapshot = props.snapshot, + useClone = props.useClone, + updateViewportMaxScroll = props.updateViewportMaxScroll, + getContainerForClone = props.getContainerForClone; + var getDroppableRef = useMemoOne.useCallback(function () { + return droppableRef.current; + }, []); + var setDroppableRef = useMemoOne.useCallback(function (value) { + droppableRef.current = value; + }, []); + var getPlaceholderRef = useMemoOne.useCallback(function () { + return placeholderRef.current; + }, []); + var setPlaceholderRef = useMemoOne.useCallback(function (value) { + placeholderRef.current = value; + }, []); + useValidation({ + props: props, + getDroppableRef: getDroppableRef, + getPlaceholderRef: getPlaceholderRef + }); + var onPlaceholderTransitionEnd = useMemoOne.useCallback(function () { + if (isMovementAllowed()) { + updateViewportMaxScroll({ + maxScroll: getMaxWindowScroll() + }); + } + }, [isMovementAllowed, updateViewportMaxScroll]); + useDroppablePublisher({ + droppableId: droppableId, + type: type, + mode: mode, + direction: direction, + isDropDisabled: isDropDisabled, + isCombineEnabled: isCombineEnabled, + ignoreContainerClipping: ignoreContainerClipping, + getDroppableRef: getDroppableRef + }); + var placeholder = React__default.createElement(AnimateInOut, { + on: props.placeholder, + shouldAnimate: props.shouldAnimatePlaceholder + }, function (_ref) { + var onClose = _ref.onClose, + data = _ref.data, + animate = _ref.animate; + return React__default.createElement(Placeholder$1, { + placeholder: data, + onClose: onClose, + innerRef: setPlaceholderRef, + animate: animate, + contextId: contextId, + onTransitionEnd: onPlaceholderTransitionEnd + }); + }); + var provided = useMemoOne.useMemo(function () { + return { + innerRef: setDroppableRef, + placeholder: placeholder, + droppableProps: { + 'data-rbd-droppable-id': droppableId, + 'data-rbd-droppable-context-id': contextId + } + }; + }, [contextId, droppableId, placeholder, setDroppableRef]); + var isUsingCloneFor = useClone ? useClone.dragging.draggableId : null; + var droppableContext = useMemoOne.useMemo(function () { + return { + droppableId: droppableId, + type: type, + isUsingCloneFor: isUsingCloneFor + }; + }, [droppableId, isUsingCloneFor, type]); + + function getClone() { + if (!useClone) { + return null; + } + + var dragging = useClone.dragging, + render = useClone.render; + var node = React__default.createElement(PrivateDraggable, { + draggableId: dragging.draggableId, + index: dragging.source.index, + isClone: true, + isEnabled: true, + shouldRespectForcePress: false, + canDragInteractiveElements: true + }, function (draggableProvided, draggableSnapshot) { + return render(draggableProvided, draggableSnapshot, dragging); + }); + return ReactDOM.createPortal(node, getContainerForClone()); + } + + return React__default.createElement(DroppableContext.Provider, { + value: droppableContext + }, children(provided, snapshot), getClone()); +} + +var isMatchingType = function isMatchingType(type, critical) { + return type === critical.droppable.type; +}; + +var getDraggable = function getDraggable(critical, dimensions) { + return dimensions.draggables[critical.draggable.id]; +}; + +var makeMapStateToProps$1 = function makeMapStateToProps() { + var idleWithAnimation = { + placeholder: null, + shouldAnimatePlaceholder: true, + snapshot: { + isDraggingOver: false, + draggingOverWith: null, + draggingFromThisWith: null, + isUsingPlaceholder: false + }, + useClone: null + }; + + var idleWithoutAnimation = _extends({}, idleWithAnimation, { + shouldAnimatePlaceholder: false + }); + + var getDraggableRubric = memoizeOne(function (descriptor) { + return { + draggableId: descriptor.id, + type: descriptor.type, + source: { + index: descriptor.index, + droppableId: descriptor.droppableId + } + }; + }); + var getMapProps = memoizeOne(function (id, isEnabled, isDraggingOverForConsumer, isDraggingOverForImpact, dragging, renderClone) { + var draggableId = dragging.descriptor.id; + var isHome = dragging.descriptor.droppableId === id; + + if (isHome) { + var useClone = renderClone ? { + render: renderClone, + dragging: getDraggableRubric(dragging.descriptor) + } : null; + var _snapshot = { + isDraggingOver: isDraggingOverForConsumer, + draggingOverWith: isDraggingOverForConsumer ? draggableId : null, + draggingFromThisWith: draggableId, + isUsingPlaceholder: true + }; + return { + placeholder: dragging.placeholder, + shouldAnimatePlaceholder: false, + snapshot: _snapshot, + useClone: useClone + }; + } + + if (!isEnabled) { + return idleWithoutAnimation; + } + + if (!isDraggingOverForImpact) { + return idleWithAnimation; + } + + var snapshot = { + isDraggingOver: isDraggingOverForConsumer, + draggingOverWith: draggableId, + draggingFromThisWith: null, + isUsingPlaceholder: true + }; + return { + placeholder: dragging.placeholder, + shouldAnimatePlaceholder: true, + snapshot: snapshot, + useClone: null + }; + }); + + var selector = function selector(state, ownProps) { + var id = ownProps.droppableId; + var type = ownProps.type; + var isEnabled = !ownProps.isDropDisabled; + var renderClone = ownProps.renderClone; + + if (state.isDragging) { + var critical = state.critical; + + if (!isMatchingType(type, critical)) { + return idleWithoutAnimation; + } + + var dragging = getDraggable(critical, state.dimensions); + var isDraggingOver = whatIsDraggedOver(state.impact) === id; + return getMapProps(id, isEnabled, isDraggingOver, isDraggingOver, dragging, renderClone); + } + + if (state.phase === 'DROP_ANIMATING') { + var completed = state.completed; + + if (!isMatchingType(type, completed.critical)) { + return idleWithoutAnimation; + } + + var _dragging = getDraggable(completed.critical, state.dimensions); + + return getMapProps(id, isEnabled, whatIsDraggedOverFromResult(completed.result) === id, whatIsDraggedOver(completed.impact) === id, _dragging, renderClone); + } + + if (state.phase === 'IDLE' && state.completed && !state.shouldFlush) { + var _completed = state.completed; + + if (!isMatchingType(type, _completed.critical)) { + return idleWithoutAnimation; + } + + var wasOver = whatIsDraggedOver(_completed.impact) === id; + var wasCombining = Boolean(_completed.impact.at && _completed.impact.at.type === 'COMBINE'); + var isHome = _completed.critical.droppable.id === id; + + if (wasOver) { + return wasCombining ? idleWithAnimation : idleWithoutAnimation; + } + + if (isHome) { + return idleWithAnimation; + } + + return idleWithoutAnimation; + } + + return idleWithoutAnimation; + }; + + return selector; +}; +var mapDispatchToProps$1 = { + updateViewportMaxScroll: updateViewportMaxScroll +}; + +function getBody() { + !document.body ? process.env.NODE_ENV !== "production" ? invariant(false, 'document.body is not ready') : invariant(false) : void 0; + return document.body; +} + +var defaultProps = { + mode: 'standard', + type: 'DEFAULT', + direction: 'vertical', + isDropDisabled: false, + isCombineEnabled: false, + ignoreContainerClipping: false, + renderClone: null, + getContainerForClone: getBody +}; +var ConnectedDroppable = reactRedux.connect(makeMapStateToProps$1, mapDispatchToProps$1, null, { + context: StoreContext, + pure: true, + areStatePropsEqual: isStrictEqual +})(Droppable); +ConnectedDroppable.defaultProps = defaultProps; + +exports.DragDropContext = DragDropContext; +exports.Draggable = PublicDraggable; +exports.Droppable = ConnectedDroppable; +exports.resetServerContext = resetServerContext; +exports.useKeyboardSensor = useKeyboardSensor; +exports.useMouseSensor = useMouseSensor; +exports.useTouchSensor = useTouchSensor; diff --git a/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.cjs.js.flow b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.cjs.js.flow new file mode 100644 index 00000000..6a6528bb --- /dev/null +++ b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.cjs.js.flow @@ -0,0 +1,3 @@ +// @flow + +export * from '../src'; diff --git a/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js new file mode 100644 index 00000000..351b7870 --- /dev/null +++ b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js @@ -0,0 +1,8514 @@ +import React, { useLayoutEffect, useEffect, useRef, useState, useContext } from 'react'; +import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose'; +import _extends from '@babel/runtime/helpers/esm/extends'; +import { createStore as createStore$1, applyMiddleware, compose, bindActionCreators } from 'redux'; +import { Provider, connect } from 'react-redux'; +import { useMemo, useCallback } from 'use-memo-one'; +import { getRect, expand, offset, withScroll, getBox, createBox, calculateBox } from 'css-box-model'; +import memoizeOne from 'memoize-one'; +import rafSchd from 'raf-schd'; +import ReactDOM from 'react-dom'; + +var isProduction = process.env.NODE_ENV === 'production'; +var spacesAndTabs = /[ \t]{2,}/g; +var lineStartWithSpaces = /^[ \t]*/gm; + +var clean = function clean(value) { + return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim(); +}; + +var getDevMessage = function getDevMessage(message) { + return clean("\n %creact-beautiful-dnd\n\n %c" + clean(message) + "\n\n %c\uD83D\uDC77\u200D This is a development only message. It will be removed in production builds.\n"); +}; + +var getFormattedMessage = function getFormattedMessage(message) { + return [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;']; +}; +var isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings'; +function log(type, message) { + var _console; + + if (isProduction) { + return; + } + + if (typeof window !== 'undefined' && window[isDisabledFlag]) { + return; + } + + (_console = console)[type].apply(_console, getFormattedMessage(message)); +} +var warning = log.bind(null, 'warn'); +var error = log.bind(null, 'error'); + +function noop() {} + +function getOptions(shared, fromBinding) { + return _extends({}, shared, {}, fromBinding); +} + +function bindEvents(el, bindings, sharedOptions) { + var unbindings = bindings.map(function (binding) { + var options = getOptions(sharedOptions, binding.options); + el.addEventListener(binding.eventName, binding.fn, options); + return function unbind() { + el.removeEventListener(binding.eventName, binding.fn, options); + }; + }); + return function unbindAll() { + unbindings.forEach(function (unbind) { + unbind(); + }); + }; +} + +var isProduction$1 = process.env.NODE_ENV === 'production'; +var prefix = 'Invariant failed'; +function RbdInvariant(message) { + this.message = message; +} + +RbdInvariant.prototype.toString = function toString() { + return this.message; +}; + +function invariant(condition, message) { + if (condition) { + return; + } + + if (isProduction$1) { + throw new RbdInvariant(prefix); + } else { + throw new RbdInvariant(prefix + ": " + (message || '')); + } +} + +var ErrorBoundary = function (_React$Component) { + _inheritsLoose(ErrorBoundary, _React$Component); + + function ErrorBoundary() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.callbacks = null; + _this.unbind = noop; + + _this.onWindowError = function (event) { + var callbacks = _this.getCallbacks(); + + if (callbacks.isDragging()) { + callbacks.tryAbort(); + process.env.NODE_ENV !== "production" ? warning("\n An error was caught by our window 'error' event listener while a drag was occurring.\n The active drag has been aborted.\n ") : void 0; + } + + var err = event.error; + + if (err instanceof RbdInvariant) { + event.preventDefault(); + + if (process.env.NODE_ENV !== 'production') { + error(err.message); + } + } + }; + + _this.getCallbacks = function () { + if (!_this.callbacks) { + throw new Error('Unable to find AppCallbacks in '); + } + + return _this.callbacks; + }; + + _this.setCallbacks = function (callbacks) { + _this.callbacks = callbacks; + }; + + return _this; + } + + var _proto = ErrorBoundary.prototype; + + _proto.componentDidMount = function componentDidMount() { + this.unbind = bindEvents(window, [{ + eventName: 'error', + fn: this.onWindowError + }]); + }; + + _proto.componentDidCatch = function componentDidCatch(err) { + if (err instanceof RbdInvariant) { + if (process.env.NODE_ENV !== 'production') { + error(err.message); + } + + this.setState({}); + return; + } + + throw err; + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + this.unbind(); + }; + + _proto.render = function render() { + return this.props.children(this.setCallbacks); + }; + + return ErrorBoundary; +}(React.Component); + +var dragHandleUsageInstructions = "\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n"; + +var position = function position(index) { + return index + 1; +}; + +var onDragStart = function onDragStart(start) { + return "\n You have lifted an item in position " + position(start.source.index) + "\n"; +}; + +var withLocation = function withLocation(source, destination) { + var isInHomeList = source.droppableId === destination.droppableId; + var startPosition = position(source.index); + var endPosition = position(destination.index); + + if (isInHomeList) { + return "\n You have moved the item from position " + startPosition + "\n to position " + endPosition + "\n "; + } + + return "\n You have moved the item from position " + startPosition + "\n in list " + source.droppableId + "\n to list " + destination.droppableId + "\n in position " + endPosition + "\n "; +}; + +var withCombine = function withCombine(id, source, combine) { + var inHomeList = source.droppableId === combine.droppableId; + + if (inHomeList) { + return "\n The item " + id + "\n has been combined with " + combine.draggableId; + } + + return "\n The item " + id + "\n in list " + source.droppableId + "\n has been combined with " + combine.draggableId + "\n in list " + combine.droppableId + "\n "; +}; + +var onDragUpdate = function onDragUpdate(update) { + var location = update.destination; + + if (location) { + return withLocation(update.source, location); + } + + var combine = update.combine; + + if (combine) { + return withCombine(update.draggableId, update.source, combine); + } + + return 'You are over an area that cannot be dropped on'; +}; + +var returnedToStart = function returnedToStart(source) { + return "\n The item has returned to its starting position\n of " + position(source.index) + "\n"; +}; + +var onDragEnd = function onDragEnd(result) { + if (result.reason === 'CANCEL') { + return "\n Movement cancelled.\n " + returnedToStart(result.source) + "\n "; + } + + var location = result.destination; + var combine = result.combine; + + if (location) { + return "\n You have dropped the item.\n " + withLocation(result.source, location) + "\n "; + } + + if (combine) { + return "\n You have dropped the item.\n " + withCombine(result.draggableId, result.source, combine) + "\n "; + } + + return "\n The item has been dropped while not over a drop area.\n " + returnedToStart(result.source) + "\n "; +}; + +var preset = { + dragHandleUsageInstructions: dragHandleUsageInstructions, + onDragStart: onDragStart, + onDragUpdate: onDragUpdate, + onDragEnd: onDragEnd +}; + +var origin = { + x: 0, + y: 0 +}; +var add = function add(point1, point2) { + return { + x: point1.x + point2.x, + y: point1.y + point2.y + }; +}; +var subtract = function subtract(point1, point2) { + return { + x: point1.x - point2.x, + y: point1.y - point2.y + }; +}; +var isEqual = function isEqual(point1, point2) { + return point1.x === point2.x && point1.y === point2.y; +}; +var negate = function negate(point) { + return { + x: point.x !== 0 ? -point.x : 0, + y: point.y !== 0 ? -point.y : 0 + }; +}; +var patch = function patch(line, value, otherValue) { + var _ref; + + if (otherValue === void 0) { + otherValue = 0; + } + + return _ref = {}, _ref[line] = value, _ref[line === 'x' ? 'y' : 'x'] = otherValue, _ref; +}; +var distance = function distance(point1, point2) { + return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2)); +}; +var closest = function closest(target, points) { + return Math.min.apply(Math, points.map(function (point) { + return distance(target, point); + })); +}; +var apply = function apply(fn) { + return function (point) { + return { + x: fn(point.x), + y: fn(point.y) + }; + }; +}; + +var executeClip = (function (frame, subject) { + var result = getRect({ + top: Math.max(subject.top, frame.top), + right: Math.min(subject.right, frame.right), + bottom: Math.min(subject.bottom, frame.bottom), + left: Math.max(subject.left, frame.left) + }); + + if (result.width <= 0 || result.height <= 0) { + return null; + } + + return result; +}); + +var offsetByPosition = function offsetByPosition(spacing, point) { + return { + top: spacing.top + point.y, + left: spacing.left + point.x, + bottom: spacing.bottom + point.y, + right: spacing.right + point.x + }; +}; +var getCorners = function getCorners(spacing) { + return [{ + x: spacing.left, + y: spacing.top + }, { + x: spacing.right, + y: spacing.top + }, { + x: spacing.left, + y: spacing.bottom + }, { + x: spacing.right, + y: spacing.bottom + }]; +}; +var noSpacing = { + top: 0, + right: 0, + bottom: 0, + left: 0 +}; + +var scroll = function scroll(target, frame) { + if (!frame) { + return target; + } + + return offsetByPosition(target, frame.scroll.diff.displacement); +}; + +var increase = function increase(target, axis, withPlaceholder) { + if (withPlaceholder && withPlaceholder.increasedBy) { + var _extends2; + + return _extends({}, target, (_extends2 = {}, _extends2[axis.end] = target[axis.end] + withPlaceholder.increasedBy[axis.line], _extends2)); + } + + return target; +}; + +var clip = function clip(target, frame) { + if (frame && frame.shouldClipSubject) { + return executeClip(frame.pageMarginBox, target); + } + + return getRect(target); +}; + +var getSubject = (function (_ref) { + var page = _ref.page, + withPlaceholder = _ref.withPlaceholder, + axis = _ref.axis, + frame = _ref.frame; + var scrolled = scroll(page.marginBox, frame); + var increased = increase(scrolled, axis, withPlaceholder); + var clipped = clip(increased, frame); + return { + page: page, + withPlaceholder: withPlaceholder, + active: clipped + }; +}); + +var scrollDroppable = (function (droppable, newScroll) { + !droppable.frame ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + var scrollable = droppable.frame; + var scrollDiff = subtract(newScroll, scrollable.scroll.initial); + var scrollDisplacement = negate(scrollDiff); + + var frame = _extends({}, scrollable, { + scroll: { + initial: scrollable.scroll.initial, + current: newScroll, + diff: { + value: scrollDiff, + displacement: scrollDisplacement + }, + max: scrollable.scroll.max + } + }); + + var subject = getSubject({ + page: droppable.subject.page, + withPlaceholder: droppable.subject.withPlaceholder, + axis: droppable.axis, + frame: frame + }); + + var result = _extends({}, droppable, { + frame: frame, + subject: subject + }); + + return result; +}); + +function isInteger(value) { + if (Number.isInteger) { + return Number.isInteger(value); + } + + return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; +} +function values(map) { + if (Object.values) { + return Object.values(map); + } + + return Object.keys(map).map(function (key) { + return map[key]; + }); +} +function findIndex(list, predicate) { + if (list.findIndex) { + return list.findIndex(predicate); + } + + for (var i = 0; i < list.length; i++) { + if (predicate(list[i])) { + return i; + } + } + + return -1; +} +function find(list, predicate) { + if (list.find) { + return list.find(predicate); + } + + var index = findIndex(list, predicate); + + if (index !== -1) { + return list[index]; + } + + return undefined; +} +function toArray(list) { + return Array.prototype.slice.call(list); +} + +var toDroppableMap = memoizeOne(function (droppables) { + return droppables.reduce(function (previous, current) { + previous[current.descriptor.id] = current; + return previous; + }, {}); +}); +var toDraggableMap = memoizeOne(function (draggables) { + return draggables.reduce(function (previous, current) { + previous[current.descriptor.id] = current; + return previous; + }, {}); +}); +var toDroppableList = memoizeOne(function (droppables) { + return values(droppables); +}); +var toDraggableList = memoizeOne(function (draggables) { + return values(draggables); +}); + +var getDraggablesInsideDroppable = memoizeOne(function (droppableId, draggables) { + var result = toDraggableList(draggables).filter(function (draggable) { + return droppableId === draggable.descriptor.droppableId; + }).sort(function (a, b) { + return a.descriptor.index - b.descriptor.index; + }); + return result; +}); + +function tryGetDestination(impact) { + if (impact.at && impact.at.type === 'REORDER') { + return impact.at.destination; + } + + return null; +} +function tryGetCombine(impact) { + if (impact.at && impact.at.type === 'COMBINE') { + return impact.at.combine; + } + + return null; +} + +var removeDraggableFromList = memoizeOne(function (remove, list) { + return list.filter(function (item) { + return item.descriptor.id !== remove.descriptor.id; + }); +}); + +var moveToNextCombine = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + draggable = _ref.draggable, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + previousImpact = _ref.previousImpact; + + if (!destination.isCombineEnabled) { + return null; + } + + var location = tryGetDestination(previousImpact); + + if (!location) { + return null; + } + + function getImpact(target) { + var at = { + type: 'COMBINE', + combine: { + draggableId: target, + droppableId: destination.descriptor.id + } + }; + return _extends({}, previousImpact, { + at: at + }); + } + + var all = previousImpact.displaced.all; + var closestId = all.length ? all[0] : null; + + if (isMovingForward) { + return closestId ? getImpact(closestId) : null; + } + + var withoutDraggable = removeDraggableFromList(draggable, insideDestination); + + if (!closestId) { + if (!withoutDraggable.length) { + return null; + } + + var last = withoutDraggable[withoutDraggable.length - 1]; + return getImpact(last.descriptor.id); + } + + var indexOfClosest = findIndex(withoutDraggable, function (d) { + return d.descriptor.id === closestId; + }); + !(indexOfClosest !== -1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find displaced item in set') : invariant(false) : void 0; + var proposedIndex = indexOfClosest - 1; + + if (proposedIndex < 0) { + return null; + } + + var before = withoutDraggable[proposedIndex]; + return getImpact(before.descriptor.id); +}); + +var isHomeOf = (function (draggable, destination) { + return draggable.descriptor.droppableId === destination.descriptor.id; +}); + +var noDisplacedBy = { + point: origin, + value: 0 +}; +var emptyGroups = { + invisible: {}, + visible: {}, + all: [] +}; +var noImpact = { + displaced: emptyGroups, + displacedBy: noDisplacedBy, + at: null +}; + +var isWithin = (function (lowerBound, upperBound) { + return function (value) { + return lowerBound <= value && value <= upperBound; + }; +}); + +var isPartiallyVisibleThroughFrame = (function (frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function (subject) { + var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right); + + if (isContained) { + return true; + } + + var isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom); + var isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right); + var isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally; + + if (isPartiallyContained) { + return true; + } + + var isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom; + var isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right; + var isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally; + + if (isTargetBiggerThanFrame) { + return true; + } + + var isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically; + return isTargetBiggerOnOneAxis; + }; +}); + +var isTotallyVisibleThroughFrame = (function (frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function (subject) { + var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right); + return isContained; + }; +}); + +var vertical = { + direction: 'vertical', + line: 'y', + crossAxisLine: 'x', + start: 'top', + end: 'bottom', + size: 'height', + crossAxisStart: 'left', + crossAxisEnd: 'right', + crossAxisSize: 'width' +}; +var horizontal = { + direction: 'horizontal', + line: 'x', + crossAxisLine: 'y', + start: 'left', + end: 'right', + size: 'width', + crossAxisStart: 'top', + crossAxisEnd: 'bottom', + crossAxisSize: 'height' +}; + +var isTotallyVisibleThroughFrameOnAxis = (function (axis) { + return function (frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function (subject) { + if (axis === vertical) { + return isWithinVertical(subject.top) && isWithinVertical(subject.bottom); + } + + return isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right); + }; + }; +}); + +var getDroppableDisplaced = function getDroppableDisplaced(target, destination) { + var displacement = destination.frame ? destination.frame.scroll.diff.displacement : origin; + return offsetByPosition(target, displacement); +}; + +var isVisibleInDroppable = function isVisibleInDroppable(target, destination, isVisibleThroughFrameFn) { + if (!destination.subject.active) { + return false; + } + + return isVisibleThroughFrameFn(destination.subject.active)(target); +}; + +var isVisibleInViewport = function isVisibleInViewport(target, viewport, isVisibleThroughFrameFn) { + return isVisibleThroughFrameFn(viewport)(target); +}; + +var isVisible = function isVisible(_ref) { + var toBeDisplaced = _ref.target, + destination = _ref.destination, + viewport = _ref.viewport, + withDroppableDisplacement = _ref.withDroppableDisplacement, + isVisibleThroughFrameFn = _ref.isVisibleThroughFrameFn; + var displacedTarget = withDroppableDisplacement ? getDroppableDisplaced(toBeDisplaced, destination) : toBeDisplaced; + return isVisibleInDroppable(displacedTarget, destination, isVisibleThroughFrameFn) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn); +}; + +var isPartiallyVisible = function isPartiallyVisible(args) { + return isVisible(_extends({}, args, { + isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame + })); +}; +var isTotallyVisible = function isTotallyVisible(args) { + return isVisible(_extends({}, args, { + isVisibleThroughFrameFn: isTotallyVisibleThroughFrame + })); +}; +var isTotallyVisibleOnAxis = function isTotallyVisibleOnAxis(args) { + return isVisible(_extends({}, args, { + isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis(args.destination.axis) + })); +}; + +var getShouldAnimate = function getShouldAnimate(id, last, forceShouldAnimate) { + if (typeof forceShouldAnimate === 'boolean') { + return forceShouldAnimate; + } + + if (!last) { + return true; + } + + var invisible = last.invisible, + visible = last.visible; + + if (invisible[id]) { + return false; + } + + var previous = visible[id]; + return previous ? previous.shouldAnimate : true; +}; + +function getTarget(draggable, displacedBy) { + var marginBox = draggable.page.marginBox; + var expandBy = { + top: displacedBy.point.y, + right: 0, + bottom: 0, + left: displacedBy.point.x + }; + return getRect(expand(marginBox, expandBy)); +} + +function getDisplacementGroups(_ref) { + var afterDragging = _ref.afterDragging, + destination = _ref.destination, + displacedBy = _ref.displacedBy, + viewport = _ref.viewport, + forceShouldAnimate = _ref.forceShouldAnimate, + last = _ref.last; + return afterDragging.reduce(function process(groups, draggable) { + var target = getTarget(draggable, displacedBy); + var id = draggable.descriptor.id; + groups.all.push(id); + var isVisible = isPartiallyVisible({ + target: target, + destination: destination, + viewport: viewport, + withDroppableDisplacement: true + }); + + if (!isVisible) { + groups.invisible[draggable.descriptor.id] = true; + return groups; + } + + var shouldAnimate = getShouldAnimate(id, last, forceShouldAnimate); + var displacement = { + draggableId: id, + shouldAnimate: shouldAnimate + }; + groups.visible[id] = displacement; + return groups; + }, { + all: [], + visible: {}, + invisible: {} + }); +} + +function getIndexOfLastItem(draggables, options) { + if (!draggables.length) { + return 0; + } + + var indexOfLastItem = draggables[draggables.length - 1].descriptor.index; + return options.inHomeList ? indexOfLastItem : indexOfLastItem + 1; +} + +function goAtEnd(_ref) { + var insideDestination = _ref.insideDestination, + inHomeList = _ref.inHomeList, + displacedBy = _ref.displacedBy, + destination = _ref.destination; + var newIndex = getIndexOfLastItem(insideDestination, { + inHomeList: inHomeList + }); + return { + displaced: emptyGroups, + displacedBy: displacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: newIndex + } + } + }; +} + +function calculateReorderImpact(_ref2) { + var draggable = _ref2.draggable, + insideDestination = _ref2.insideDestination, + destination = _ref2.destination, + viewport = _ref2.viewport, + displacedBy = _ref2.displacedBy, + last = _ref2.last, + index = _ref2.index, + forceShouldAnimate = _ref2.forceShouldAnimate; + var inHomeList = isHomeOf(draggable, destination); + + if (index == null) { + return goAtEnd({ + insideDestination: insideDestination, + inHomeList: inHomeList, + displacedBy: displacedBy, + destination: destination + }); + } + + var match = find(insideDestination, function (item) { + return item.descriptor.index === index; + }); + + if (!match) { + return goAtEnd({ + insideDestination: insideDestination, + inHomeList: inHomeList, + displacedBy: displacedBy, + destination: destination + }); + } + + var withoutDragging = removeDraggableFromList(draggable, insideDestination); + var sliceFrom = insideDestination.indexOf(match); + var impacted = withoutDragging.slice(sliceFrom); + var displaced = getDisplacementGroups({ + afterDragging: impacted, + destination: destination, + displacedBy: displacedBy, + last: last, + viewport: viewport.frame, + forceShouldAnimate: forceShouldAnimate + }); + return { + displaced: displaced, + displacedBy: displacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: index + } + } + }; +} + +function didStartAfterCritical(draggableId, afterCritical) { + return Boolean(afterCritical.effected[draggableId]); +} + +var fromCombine = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + destination = _ref.destination, + draggables = _ref.draggables, + combine = _ref.combine, + afterCritical = _ref.afterCritical; + + if (!destination.isCombineEnabled) { + return null; + } + + var combineId = combine.draggableId; + var combineWith = draggables[combineId]; + var combineWithIndex = combineWith.descriptor.index; + var didCombineWithStartAfterCritical = didStartAfterCritical(combineId, afterCritical); + + if (didCombineWithStartAfterCritical) { + if (isMovingForward) { + return combineWithIndex; + } + + return combineWithIndex - 1; + } + + if (isMovingForward) { + return combineWithIndex + 1; + } + + return combineWithIndex; +}); + +var fromReorder = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + isInHomeList = _ref.isInHomeList, + insideDestination = _ref.insideDestination, + location = _ref.location; + + if (!insideDestination.length) { + return null; + } + + var currentIndex = location.index; + var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1; + var firstIndex = insideDestination[0].descriptor.index; + var lastIndex = insideDestination[insideDestination.length - 1].descriptor.index; + var upperBound = isInHomeList ? lastIndex : lastIndex + 1; + + if (proposedIndex < firstIndex) { + return null; + } + + if (proposedIndex > upperBound) { + return null; + } + + return proposedIndex; +}); + +var moveToNextIndex = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + isInHomeList = _ref.isInHomeList, + draggable = _ref.draggable, + draggables = _ref.draggables, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + previousImpact = _ref.previousImpact, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var wasAt = previousImpact.at; + !wasAt ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot move in direction without previous impact location') : invariant(false) : void 0; + + if (wasAt.type === 'REORDER') { + var _newIndex = fromReorder({ + isMovingForward: isMovingForward, + isInHomeList: isInHomeList, + location: wasAt.destination, + insideDestination: insideDestination + }); + + if (_newIndex == null) { + return null; + } + + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + last: previousImpact.displaced, + displacedBy: previousImpact.displacedBy, + index: _newIndex + }); + } + + var newIndex = fromCombine({ + isMovingForward: isMovingForward, + destination: destination, + displaced: previousImpact.displaced, + draggables: draggables, + combine: wasAt.combine, + afterCritical: afterCritical + }); + + if (newIndex == null) { + return null; + } + + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + last: previousImpact.displaced, + displacedBy: previousImpact.displacedBy, + index: newIndex + }); +}); + +var getCombinedItemDisplacement = (function (_ref) { + var displaced = _ref.displaced, + afterCritical = _ref.afterCritical, + combineWith = _ref.combineWith, + displacedBy = _ref.displacedBy; + var isDisplaced = Boolean(displaced.visible[combineWith] || displaced.invisible[combineWith]); + + if (didStartAfterCritical(combineWith, afterCritical)) { + return isDisplaced ? origin : negate(displacedBy.point); + } + + return isDisplaced ? displacedBy.point : origin; +}); + +var whenCombining = (function (_ref) { + var afterCritical = _ref.afterCritical, + impact = _ref.impact, + draggables = _ref.draggables; + var combine = tryGetCombine(impact); + !combine ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + var combineWith = combine.draggableId; + var center = draggables[combineWith].page.borderBox.center; + var displaceBy = getCombinedItemDisplacement({ + displaced: impact.displaced, + afterCritical: afterCritical, + combineWith: combineWith, + displacedBy: impact.displacedBy + }); + return add(center, displaceBy); +}); + +var distanceFromStartToBorderBoxCenter = function distanceFromStartToBorderBoxCenter(axis, box) { + return box.margin[axis.start] + box.borderBox[axis.size] / 2; +}; + +var distanceFromEndToBorderBoxCenter = function distanceFromEndToBorderBoxCenter(axis, box) { + return box.margin[axis.end] + box.borderBox[axis.size] / 2; +}; + +var getCrossAxisBorderBoxCenter = function getCrossAxisBorderBoxCenter(axis, target, isMoving) { + return target[axis.crossAxisStart] + isMoving.margin[axis.crossAxisStart] + isMoving.borderBox[axis.crossAxisSize] / 2; +}; + +var goAfter = function goAfter(_ref) { + var axis = _ref.axis, + moveRelativeTo = _ref.moveRelativeTo, + isMoving = _ref.isMoving; + return patch(axis.line, moveRelativeTo.marginBox[axis.end] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving)); +}; +var goBefore = function goBefore(_ref2) { + var axis = _ref2.axis, + moveRelativeTo = _ref2.moveRelativeTo, + isMoving = _ref2.isMoving; + return patch(axis.line, moveRelativeTo.marginBox[axis.start] - distanceFromEndToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving)); +}; +var goIntoStart = function goIntoStart(_ref3) { + var axis = _ref3.axis, + moveInto = _ref3.moveInto, + isMoving = _ref3.isMoving; + return patch(axis.line, moveInto.contentBox[axis.start] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving)); +}; + +var whenReordering = (function (_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + draggables = _ref.draggables, + droppable = _ref.droppable, + afterCritical = _ref.afterCritical; + var insideDestination = getDraggablesInsideDroppable(droppable.descriptor.id, draggables); + var draggablePage = draggable.page; + var axis = droppable.axis; + + if (!insideDestination.length) { + return goIntoStart({ + axis: axis, + moveInto: droppable.page, + isMoving: draggablePage + }); + } + + var displaced = impact.displaced, + displacedBy = impact.displacedBy; + var closestAfter = displaced.all[0]; + + if (closestAfter) { + var closest = draggables[closestAfter]; + + if (didStartAfterCritical(closestAfter, afterCritical)) { + return goBefore({ + axis: axis, + moveRelativeTo: closest.page, + isMoving: draggablePage + }); + } + + var withDisplacement = offset(closest.page, displacedBy.point); + return goBefore({ + axis: axis, + moveRelativeTo: withDisplacement, + isMoving: draggablePage + }); + } + + var last = insideDestination[insideDestination.length - 1]; + + if (last.descriptor.id === draggable.descriptor.id) { + return draggablePage.borderBox.center; + } + + if (didStartAfterCritical(last.descriptor.id, afterCritical)) { + var page = offset(last.page, negate(afterCritical.displacedBy.point)); + return goAfter({ + axis: axis, + moveRelativeTo: page, + isMoving: draggablePage + }); + } + + return goAfter({ + axis: axis, + moveRelativeTo: last.page, + isMoving: draggablePage + }); +}); + +var withDroppableDisplacement = (function (droppable, point) { + var frame = droppable.frame; + + if (!frame) { + return point; + } + + return add(point, frame.scroll.diff.displacement); +}); + +var getResultWithoutDroppableDisplacement = function getResultWithoutDroppableDisplacement(_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + droppable = _ref.droppable, + draggables = _ref.draggables, + afterCritical = _ref.afterCritical; + var original = draggable.page.borderBox.center; + var at = impact.at; + + if (!droppable) { + return original; + } + + if (!at) { + return original; + } + + if (at.type === 'REORDER') { + return whenReordering({ + impact: impact, + draggable: draggable, + draggables: draggables, + droppable: droppable, + afterCritical: afterCritical + }); + } + + return whenCombining({ + impact: impact, + draggables: draggables, + afterCritical: afterCritical + }); +}; + +var getPageBorderBoxCenterFromImpact = (function (args) { + var withoutDisplacement = getResultWithoutDroppableDisplacement(args); + var droppable = args.droppable; + var withDisplacement = droppable ? withDroppableDisplacement(droppable, withoutDisplacement) : withoutDisplacement; + return withDisplacement; +}); + +var scrollViewport = (function (viewport, newScroll) { + var diff = subtract(newScroll, viewport.scroll.initial); + var displacement = negate(diff); + var frame = getRect({ + top: newScroll.y, + bottom: newScroll.y + viewport.frame.height, + left: newScroll.x, + right: newScroll.x + viewport.frame.width + }); + var updated = { + frame: frame, + scroll: { + initial: viewport.scroll.initial, + max: viewport.scroll.max, + current: newScroll, + diff: { + value: diff, + displacement: displacement + } + } + }; + return updated; +}); + +function getDraggables(ids, draggables) { + return ids.map(function (id) { + return draggables[id]; + }); +} + +function tryGetVisible(id, groups) { + for (var i = 0; i < groups.length; i++) { + var displacement = groups[i].visible[id]; + + if (displacement) { + return displacement; + } + } + + return null; +} + +var speculativelyIncrease = (function (_ref) { + var impact = _ref.impact, + viewport = _ref.viewport, + destination = _ref.destination, + draggables = _ref.draggables, + maxScrollChange = _ref.maxScrollChange; + var scrolledViewport = scrollViewport(viewport, add(viewport.scroll.current, maxScrollChange)); + var scrolledDroppable = destination.frame ? scrollDroppable(destination, add(destination.frame.scroll.current, maxScrollChange)) : destination; + var last = impact.displaced; + var withViewportScroll = getDisplacementGroups({ + afterDragging: getDraggables(last.all, draggables), + destination: destination, + displacedBy: impact.displacedBy, + viewport: scrolledViewport.frame, + last: last, + forceShouldAnimate: false + }); + var withDroppableScroll = getDisplacementGroups({ + afterDragging: getDraggables(last.all, draggables), + destination: scrolledDroppable, + displacedBy: impact.displacedBy, + viewport: viewport.frame, + last: last, + forceShouldAnimate: false + }); + var invisible = {}; + var visible = {}; + var groups = [last, withViewportScroll, withDroppableScroll]; + last.all.forEach(function (id) { + var displacement = tryGetVisible(id, groups); + + if (displacement) { + visible[id] = displacement; + return; + } + + invisible[id] = true; + }); + + var newImpact = _extends({}, impact, { + displaced: { + all: last.all, + invisible: invisible, + visible: visible + } + }); + + return newImpact; +}); + +var withViewportDisplacement = (function (viewport, point) { + return add(viewport.scroll.diff.displacement, point); +}); + +var getClientFromPageBorderBoxCenter = (function (_ref) { + var pageBorderBoxCenter = _ref.pageBorderBoxCenter, + draggable = _ref.draggable, + viewport = _ref.viewport; + var withoutPageScrollChange = withViewportDisplacement(viewport, pageBorderBoxCenter); + var offset = subtract(withoutPageScrollChange, draggable.page.borderBox.center); + return add(draggable.client.borderBox.center, offset); +}); + +var isTotallyVisibleInNewLocation = (function (_ref) { + var draggable = _ref.draggable, + destination = _ref.destination, + newPageBorderBoxCenter = _ref.newPageBorderBoxCenter, + viewport = _ref.viewport, + withDroppableDisplacement = _ref.withDroppableDisplacement, + _ref$onlyOnMainAxis = _ref.onlyOnMainAxis, + onlyOnMainAxis = _ref$onlyOnMainAxis === void 0 ? false : _ref$onlyOnMainAxis; + var changeNeeded = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center); + var shifted = offsetByPosition(draggable.page.borderBox, changeNeeded); + var args = { + target: shifted, + destination: destination, + withDroppableDisplacement: withDroppableDisplacement, + viewport: viewport + }; + return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args); +}); + +var moveToNextPlace = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + draggable = _ref.draggable, + destination = _ref.destination, + draggables = _ref.draggables, + previousImpact = _ref.previousImpact, + viewport = _ref.viewport, + previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter, + previousClientSelection = _ref.previousClientSelection, + afterCritical = _ref.afterCritical; + + if (!destination.isEnabled) { + return null; + } + + var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables); + var isInHomeList = isHomeOf(draggable, destination); + var impact = moveToNextCombine({ + isMovingForward: isMovingForward, + draggable: draggable, + destination: destination, + insideDestination: insideDestination, + previousImpact: previousImpact + }) || moveToNextIndex({ + isMovingForward: isMovingForward, + isInHomeList: isInHomeList, + draggable: draggable, + draggables: draggables, + destination: destination, + insideDestination: insideDestination, + previousImpact: previousImpact, + viewport: viewport, + afterCritical: afterCritical + }); + + if (!impact) { + return null; + } + + var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: impact, + draggable: draggable, + droppable: destination, + draggables: draggables, + afterCritical: afterCritical + }); + var isVisibleInNewLocation = isTotallyVisibleInNewLocation({ + draggable: draggable, + destination: destination, + newPageBorderBoxCenter: pageBorderBoxCenter, + viewport: viewport.frame, + withDroppableDisplacement: false, + onlyOnMainAxis: true + }); + + if (isVisibleInNewLocation) { + var clientSelection = getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter: pageBorderBoxCenter, + draggable: draggable, + viewport: viewport + }); + return { + clientSelection: clientSelection, + impact: impact, + scrollJumpRequest: null + }; + } + + var distance = subtract(pageBorderBoxCenter, previousPageBorderBoxCenter); + var cautious = speculativelyIncrease({ + impact: impact, + viewport: viewport, + destination: destination, + draggables: draggables, + maxScrollChange: distance + }); + return { + clientSelection: previousClientSelection, + impact: cautious, + scrollJumpRequest: distance + }; +}); + +var getKnownActive = function getKnownActive(droppable) { + var rect = droppable.subject.active; + !rect ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot get clipped area from droppable') : invariant(false) : void 0; + return rect; +}; + +var getBestCrossAxisDroppable = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + pageBorderBoxCenter = _ref.pageBorderBoxCenter, + source = _ref.source, + droppables = _ref.droppables, + viewport = _ref.viewport; + var active = source.subject.active; + + if (!active) { + return null; + } + + var axis = source.axis; + var isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]); + var candidates = toDroppableList(droppables).filter(function (droppable) { + return droppable !== source; + }).filter(function (droppable) { + return droppable.isEnabled; + }).filter(function (droppable) { + return Boolean(droppable.subject.active); + }).filter(function (droppable) { + return isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable)); + }).filter(function (droppable) { + var activeOfTarget = getKnownActive(droppable); + + if (isMovingForward) { + return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd]; + } + + return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart]; + }).filter(function (droppable) { + var activeOfTarget = getKnownActive(droppable); + var isBetweenDestinationClipped = isWithin(activeOfTarget[axis.start], activeOfTarget[axis.end]); + return isBetweenSourceClipped(activeOfTarget[axis.start]) || isBetweenSourceClipped(activeOfTarget[axis.end]) || isBetweenDestinationClipped(active[axis.start]) || isBetweenDestinationClipped(active[axis.end]); + }).sort(function (a, b) { + var first = getKnownActive(a)[axis.crossAxisStart]; + var second = getKnownActive(b)[axis.crossAxisStart]; + + if (isMovingForward) { + return first - second; + } + + return second - first; + }).filter(function (droppable, index, array) { + return getKnownActive(droppable)[axis.crossAxisStart] === getKnownActive(array[0])[axis.crossAxisStart]; + }); + + if (!candidates.length) { + return null; + } + + if (candidates.length === 1) { + return candidates[0]; + } + + var contains = candidates.filter(function (droppable) { + var isWithinDroppable = isWithin(getKnownActive(droppable)[axis.start], getKnownActive(droppable)[axis.end]); + return isWithinDroppable(pageBorderBoxCenter[axis.line]); + }); + + if (contains.length === 1) { + return contains[0]; + } + + if (contains.length > 1) { + return contains.sort(function (a, b) { + return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start]; + })[0]; + } + + return candidates.sort(function (a, b) { + var first = closest(pageBorderBoxCenter, getCorners(getKnownActive(a))); + var second = closest(pageBorderBoxCenter, getCorners(getKnownActive(b))); + + if (first !== second) { + return first - second; + } + + return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start]; + })[0]; +}); + +var getCurrentPageBorderBoxCenter = function getCurrentPageBorderBoxCenter(draggable, afterCritical) { + var original = draggable.page.borderBox.center; + return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? subtract(original, afterCritical.displacedBy.point) : original; +}; +var getCurrentPageBorderBox = function getCurrentPageBorderBox(draggable, afterCritical) { + var original = draggable.page.borderBox; + return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? offsetByPosition(original, negate(afterCritical.displacedBy.point)) : original; +}; + +var getClosestDraggable = (function (_ref) { + var pageBorderBoxCenter = _ref.pageBorderBoxCenter, + viewport = _ref.viewport, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + afterCritical = _ref.afterCritical; + var sorted = insideDestination.filter(function (draggable) { + return isTotallyVisible({ + target: getCurrentPageBorderBox(draggable, afterCritical), + destination: destination, + viewport: viewport.frame, + withDroppableDisplacement: true + }); + }).sort(function (a, b) { + var distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(a, afterCritical))); + var distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(b, afterCritical))); + + if (distanceToA < distanceToB) { + return -1; + } + + if (distanceToB < distanceToA) { + return 1; + } + + return a.descriptor.index - b.descriptor.index; + }); + return sorted[0] || null; +}); + +var getDisplacedBy = memoizeOne(function getDisplacedBy(axis, displaceBy) { + var displacement = displaceBy[axis.line]; + return { + value: displacement, + point: patch(axis.line, displacement) + }; +}); + +var getRequiredGrowthForPlaceholder = function getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables) { + var axis = droppable.axis; + + if (droppable.descriptor.mode === 'virtual') { + return patch(axis.line, placeholderSize[axis.line]); + } + + var availableSpace = droppable.subject.page.contentBox[axis.size]; + var insideDroppable = getDraggablesInsideDroppable(droppable.descriptor.id, draggables); + var spaceUsed = insideDroppable.reduce(function (sum, dimension) { + return sum + dimension.client.marginBox[axis.size]; + }, 0); + var requiredSpace = spaceUsed + placeholderSize[axis.line]; + var needsToGrowBy = requiredSpace - availableSpace; + + if (needsToGrowBy <= 0) { + return null; + } + + return patch(axis.line, needsToGrowBy); +}; + +var withMaxScroll = function withMaxScroll(frame, max) { + return _extends({}, frame, { + scroll: _extends({}, frame.scroll, { + max: max + }) + }); +}; + +var addPlaceholder = function addPlaceholder(droppable, draggable, draggables) { + var frame = droppable.frame; + !!isHomeOf(draggable, droppable) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Should not add placeholder space to home list') : invariant(false) : void 0; + !!droppable.subject.withPlaceholder ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot add placeholder size to a subject when it already has one') : invariant(false) : void 0; + var placeholderSize = getDisplacedBy(droppable.axis, draggable.displaceBy).point; + var requiredGrowth = getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables); + var added = { + placeholderSize: placeholderSize, + increasedBy: requiredGrowth, + oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null + }; + + if (!frame) { + var _subject = getSubject({ + page: droppable.subject.page, + withPlaceholder: added, + axis: droppable.axis, + frame: droppable.frame + }); + + return _extends({}, droppable, { + subject: _subject + }); + } + + var maxScroll = requiredGrowth ? add(frame.scroll.max, requiredGrowth) : frame.scroll.max; + var newFrame = withMaxScroll(frame, maxScroll); + var subject = getSubject({ + page: droppable.subject.page, + withPlaceholder: added, + axis: droppable.axis, + frame: newFrame + }); + return _extends({}, droppable, { + subject: subject, + frame: newFrame + }); +}; +var removePlaceholder = function removePlaceholder(droppable) { + var added = droppable.subject.withPlaceholder; + !added ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot remove placeholder form subject when there was none') : invariant(false) : void 0; + var frame = droppable.frame; + + if (!frame) { + var _subject2 = getSubject({ + page: droppable.subject.page, + axis: droppable.axis, + frame: null, + withPlaceholder: null + }); + + return _extends({}, droppable, { + subject: _subject2 + }); + } + + var oldMaxScroll = added.oldFrameMaxScroll; + !oldMaxScroll ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected droppable with frame to have old max frame scroll when removing placeholder') : invariant(false) : void 0; + var newFrame = withMaxScroll(frame, oldMaxScroll); + var subject = getSubject({ + page: droppable.subject.page, + axis: droppable.axis, + frame: newFrame, + withPlaceholder: null + }); + return _extends({}, droppable, { + subject: subject, + frame: newFrame + }); +}; + +var moveToNewDroppable = (function (_ref) { + var previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter, + moveRelativeTo = _ref.moveRelativeTo, + insideDestination = _ref.insideDestination, + draggable = _ref.draggable, + draggables = _ref.draggables, + destination = _ref.destination, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + + if (!moveRelativeTo) { + if (insideDestination.length) { + return null; + } + + var proposed = { + displaced: emptyGroups, + displacedBy: noDisplacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: 0 + } + } + }; + var proposedPageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: proposed, + draggable: draggable, + droppable: destination, + draggables: draggables, + afterCritical: afterCritical + }); + var withPlaceholder = isHomeOf(draggable, destination) ? destination : addPlaceholder(destination, draggable, draggables); + var isVisibleInNewLocation = isTotallyVisibleInNewLocation({ + draggable: draggable, + destination: withPlaceholder, + newPageBorderBoxCenter: proposedPageBorderBoxCenter, + viewport: viewport.frame, + withDroppableDisplacement: false, + onlyOnMainAxis: true + }); + return isVisibleInNewLocation ? proposed : null; + } + + var isGoingBeforeTarget = Boolean(previousPageBorderBoxCenter[destination.axis.line] <= moveRelativeTo.page.borderBox.center[destination.axis.line]); + + var proposedIndex = function () { + var relativeTo = moveRelativeTo.descriptor.index; + + if (moveRelativeTo.descriptor.id === draggable.descriptor.id) { + return relativeTo; + } + + if (isGoingBeforeTarget) { + return relativeTo; + } + + return relativeTo + 1; + }(); + + var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy); + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + displacedBy: displacedBy, + last: emptyGroups, + index: proposedIndex + }); +}); + +var moveCrossAxis = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter, + draggable = _ref.draggable, + isOver = _ref.isOver, + draggables = _ref.draggables, + droppables = _ref.droppables, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var destination = getBestCrossAxisDroppable({ + isMovingForward: isMovingForward, + pageBorderBoxCenter: previousPageBorderBoxCenter, + source: isOver, + droppables: droppables, + viewport: viewport + }); + + if (!destination) { + return null; + } + + var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables); + var moveRelativeTo = getClosestDraggable({ + pageBorderBoxCenter: previousPageBorderBoxCenter, + viewport: viewport, + destination: destination, + insideDestination: insideDestination, + afterCritical: afterCritical + }); + var impact = moveToNewDroppable({ + previousPageBorderBoxCenter: previousPageBorderBoxCenter, + destination: destination, + draggable: draggable, + draggables: draggables, + moveRelativeTo: moveRelativeTo, + insideDestination: insideDestination, + viewport: viewport, + afterCritical: afterCritical + }); + + if (!impact) { + return null; + } + + var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: impact, + draggable: draggable, + droppable: destination, + draggables: draggables, + afterCritical: afterCritical + }); + var clientSelection = getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter: pageBorderBoxCenter, + draggable: draggable, + viewport: viewport + }); + return { + clientSelection: clientSelection, + impact: impact, + scrollJumpRequest: null + }; +}); + +var whatIsDraggedOver = (function (impact) { + var at = impact.at; + + if (!at) { + return null; + } + + if (at.type === 'REORDER') { + return at.destination.droppableId; + } + + return at.combine.droppableId; +}); + +var getDroppableOver = function getDroppableOver(impact, droppables) { + var id = whatIsDraggedOver(impact); + return id ? droppables[id] : null; +}; + +var moveInDirection = (function (_ref) { + var state = _ref.state, + type = _ref.type; + var isActuallyOver = getDroppableOver(state.impact, state.dimensions.droppables); + var isMainAxisMovementAllowed = Boolean(isActuallyOver); + var home = state.dimensions.droppables[state.critical.droppable.id]; + var isOver = isActuallyOver || home; + var direction = isOver.axis.direction; + var isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT'); + + if (isMovingOnMainAxis && !isMainAxisMovementAllowed) { + return null; + } + + var isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT'; + var draggable = state.dimensions.draggables[state.critical.draggable.id]; + var previousPageBorderBoxCenter = state.current.page.borderBoxCenter; + var _state$dimensions = state.dimensions, + draggables = _state$dimensions.draggables, + droppables = _state$dimensions.droppables; + return isMovingOnMainAxis ? moveToNextPlace({ + isMovingForward: isMovingForward, + previousPageBorderBoxCenter: previousPageBorderBoxCenter, + draggable: draggable, + destination: isOver, + draggables: draggables, + viewport: state.viewport, + previousClientSelection: state.current.client.selection, + previousImpact: state.impact, + afterCritical: state.afterCritical + }) : moveCrossAxis({ + isMovingForward: isMovingForward, + previousPageBorderBoxCenter: previousPageBorderBoxCenter, + draggable: draggable, + isOver: isOver, + draggables: draggables, + droppables: droppables, + viewport: state.viewport, + afterCritical: state.afterCritical + }); +}); + +function isMovementAllowed(state) { + return state.phase === 'DRAGGING' || state.phase === 'COLLECTING'; +} + +function isPositionInFrame(frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function run(point) { + return isWithinVertical(point.y) && isWithinHorizontal(point.x); + }; +} + +function getHasOverlap(first, second) { + return first.left < second.right && first.right > second.left && first.top < second.bottom && first.bottom > second.top; +} + +function getFurthestAway(_ref) { + var pageBorderBox = _ref.pageBorderBox, + draggable = _ref.draggable, + candidates = _ref.candidates; + var startCenter = draggable.page.borderBox.center; + var sorted = candidates.map(function (candidate) { + var axis = candidate.axis; + var target = patch(candidate.axis.line, pageBorderBox.center[axis.line], candidate.page.borderBox.center[axis.crossAxisLine]); + return { + id: candidate.descriptor.id, + distance: distance(startCenter, target) + }; + }).sort(function (a, b) { + return b.distance - a.distance; + }); + return sorted[0] ? sorted[0].id : null; +} + +function getDroppableOver$1(_ref2) { + var pageBorderBox = _ref2.pageBorderBox, + draggable = _ref2.draggable, + droppables = _ref2.droppables; + var candidates = toDroppableList(droppables).filter(function (item) { + if (!item.isEnabled) { + return false; + } + + var active = item.subject.active; + + if (!active) { + return false; + } + + if (!getHasOverlap(pageBorderBox, active)) { + return false; + } + + if (isPositionInFrame(active)(pageBorderBox.center)) { + return true; + } + + var axis = item.axis; + var childCenter = active.center[axis.crossAxisLine]; + var crossAxisStart = pageBorderBox[axis.crossAxisStart]; + var crossAxisEnd = pageBorderBox[axis.crossAxisEnd]; + var isContained = isWithin(active[axis.crossAxisStart], active[axis.crossAxisEnd]); + var isStartContained = isContained(crossAxisStart); + var isEndContained = isContained(crossAxisEnd); + + if (!isStartContained && !isEndContained) { + return true; + } + + if (isStartContained) { + return crossAxisStart < childCenter; + } + + return crossAxisEnd > childCenter; + }); + + if (!candidates.length) { + return null; + } + + if (candidates.length === 1) { + return candidates[0].descriptor.id; + } + + return getFurthestAway({ + pageBorderBox: pageBorderBox, + draggable: draggable, + candidates: candidates + }); +} + +var offsetRectByPosition = function offsetRectByPosition(rect, point) { + return getRect(offsetByPosition(rect, point)); +}; + +var withDroppableScroll = (function (droppable, area) { + var frame = droppable.frame; + + if (!frame) { + return area; + } + + return offsetRectByPosition(area, frame.scroll.diff.value); +}); + +function getIsDisplaced(_ref) { + var displaced = _ref.displaced, + id = _ref.id; + return Boolean(displaced.visible[id] || displaced.invisible[id]); +} + +function atIndex(_ref) { + var draggable = _ref.draggable, + closest = _ref.closest, + inHomeList = _ref.inHomeList; + + if (!closest) { + return null; + } + + if (!inHomeList) { + return closest.descriptor.index; + } + + if (closest.descriptor.index > draggable.descriptor.index) { + return closest.descriptor.index - 1; + } + + return closest.descriptor.index; +} + +var getReorderImpact = (function (_ref2) { + var targetRect = _ref2.pageBorderBoxWithDroppableScroll, + draggable = _ref2.draggable, + destination = _ref2.destination, + insideDestination = _ref2.insideDestination, + last = _ref2.last, + viewport = _ref2.viewport, + afterCritical = _ref2.afterCritical; + var axis = destination.axis; + var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy); + var displacement = displacedBy.value; + var targetStart = targetRect[axis.start]; + var targetEnd = targetRect[axis.end]; + var withoutDragging = removeDraggableFromList(draggable, insideDestination); + var closest = find(withoutDragging, function (child) { + var id = child.descriptor.id; + var childCenter = child.page.borderBox.center[axis.line]; + var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical); + var isDisplaced = getIsDisplaced({ + displaced: last, + id: id + }); + + if (didStartAfterCritical$1) { + if (isDisplaced) { + return targetEnd <= childCenter; + } + + return targetStart < childCenter - displacement; + } + + if (isDisplaced) { + return targetEnd <= childCenter + displacement; + } + + return targetStart < childCenter; + }); + var newIndex = atIndex({ + draggable: draggable, + closest: closest, + inHomeList: isHomeOf(draggable, destination) + }); + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + last: last, + displacedBy: displacedBy, + index: newIndex + }); +}); + +var combineThresholdDivisor = 4; +var getCombineImpact = (function (_ref) { + var draggable = _ref.draggable, + targetRect = _ref.pageBorderBoxWithDroppableScroll, + previousImpact = _ref.previousImpact, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + afterCritical = _ref.afterCritical; + + if (!destination.isCombineEnabled) { + return null; + } + + var axis = destination.axis; + var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy); + var displacement = displacedBy.value; + var targetStart = targetRect[axis.start]; + var targetEnd = targetRect[axis.end]; + var withoutDragging = removeDraggableFromList(draggable, insideDestination); + var combineWith = find(withoutDragging, function (child) { + var id = child.descriptor.id; + var childRect = child.page.borderBox; + var childSize = childRect[axis.size]; + var threshold = childSize / combineThresholdDivisor; + var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical); + var isDisplaced = getIsDisplaced({ + displaced: previousImpact.displaced, + id: id + }); + + if (didStartAfterCritical$1) { + if (isDisplaced) { + return targetEnd > childRect[axis.start] + threshold && targetEnd < childRect[axis.end] - threshold; + } + + return targetStart > childRect[axis.start] - displacement + threshold && targetStart < childRect[axis.end] - displacement - threshold; + } + + if (isDisplaced) { + return targetEnd > childRect[axis.start] + displacement + threshold && targetEnd < childRect[axis.end] + displacement - threshold; + } + + return targetStart > childRect[axis.start] + threshold && targetStart < childRect[axis.end] - threshold; + }); + + if (!combineWith) { + return null; + } + + var impact = { + displacedBy: displacedBy, + displaced: previousImpact.displaced, + at: { + type: 'COMBINE', + combine: { + draggableId: combineWith.descriptor.id, + droppableId: destination.descriptor.id + } + } + }; + return impact; +}); + +var getDragImpact = (function (_ref) { + var pageOffset = _ref.pageOffset, + draggable = _ref.draggable, + draggables = _ref.draggables, + droppables = _ref.droppables, + previousImpact = _ref.previousImpact, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var pageBorderBox = offsetRectByPosition(draggable.page.borderBox, pageOffset); + var destinationId = getDroppableOver$1({ + pageBorderBox: pageBorderBox, + draggable: draggable, + droppables: droppables + }); + + if (!destinationId) { + return noImpact; + } + + var destination = droppables[destinationId]; + var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables); + var pageBorderBoxWithDroppableScroll = withDroppableScroll(destination, pageBorderBox); + return getCombineImpact({ + pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll, + draggable: draggable, + previousImpact: previousImpact, + destination: destination, + insideDestination: insideDestination, + afterCritical: afterCritical + }) || getReorderImpact({ + pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll, + draggable: draggable, + destination: destination, + insideDestination: insideDestination, + last: previousImpact.displaced, + viewport: viewport, + afterCritical: afterCritical + }); +}); + +var patchDroppableMap = (function (droppables, updated) { + var _extends2; + + return _extends({}, droppables, (_extends2 = {}, _extends2[updated.descriptor.id] = updated, _extends2)); +}); + +var clearUnusedPlaceholder = function clearUnusedPlaceholder(_ref) { + var previousImpact = _ref.previousImpact, + impact = _ref.impact, + droppables = _ref.droppables; + var last = whatIsDraggedOver(previousImpact); + var now = whatIsDraggedOver(impact); + + if (!last) { + return droppables; + } + + if (last === now) { + return droppables; + } + + var lastDroppable = droppables[last]; + + if (!lastDroppable.subject.withPlaceholder) { + return droppables; + } + + var updated = removePlaceholder(lastDroppable); + return patchDroppableMap(droppables, updated); +}; + +var recomputePlaceholders = (function (_ref2) { + var draggable = _ref2.draggable, + draggables = _ref2.draggables, + droppables = _ref2.droppables, + previousImpact = _ref2.previousImpact, + impact = _ref2.impact; + var cleaned = clearUnusedPlaceholder({ + previousImpact: previousImpact, + impact: impact, + droppables: droppables + }); + var isOver = whatIsDraggedOver(impact); + + if (!isOver) { + return cleaned; + } + + var droppable = droppables[isOver]; + + if (isHomeOf(draggable, droppable)) { + return cleaned; + } + + if (droppable.subject.withPlaceholder) { + return cleaned; + } + + var patched = addPlaceholder(droppable, draggable, draggables); + return patchDroppableMap(cleaned, patched); +}); + +var update = (function (_ref) { + var state = _ref.state, + forcedClientSelection = _ref.clientSelection, + forcedDimensions = _ref.dimensions, + forcedViewport = _ref.viewport, + forcedImpact = _ref.impact, + scrollJumpRequest = _ref.scrollJumpRequest; + var viewport = forcedViewport || state.viewport; + var dimensions = forcedDimensions || state.dimensions; + var clientSelection = forcedClientSelection || state.current.client.selection; + var offset = subtract(clientSelection, state.initial.client.selection); + var client = { + offset: offset, + selection: clientSelection, + borderBoxCenter: add(state.initial.client.borderBoxCenter, offset) + }; + var page = { + selection: add(client.selection, viewport.scroll.current), + borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current), + offset: add(client.offset, viewport.scroll.diff.value) + }; + var current = { + client: client, + page: page + }; + + if (state.phase === 'COLLECTING') { + return _extends({ + phase: 'COLLECTING' + }, state, { + dimensions: dimensions, + viewport: viewport, + current: current + }); + } + + var draggable = dimensions.draggables[state.critical.draggable.id]; + var newImpact = forcedImpact || getDragImpact({ + pageOffset: page.offset, + draggable: draggable, + draggables: dimensions.draggables, + droppables: dimensions.droppables, + previousImpact: state.impact, + viewport: viewport, + afterCritical: state.afterCritical + }); + var withUpdatedPlaceholders = recomputePlaceholders({ + draggable: draggable, + impact: newImpact, + previousImpact: state.impact, + draggables: dimensions.draggables, + droppables: dimensions.droppables + }); + + var result = _extends({}, state, { + current: current, + dimensions: { + draggables: dimensions.draggables, + droppables: withUpdatedPlaceholders + }, + impact: newImpact, + viewport: viewport, + scrollJumpRequest: scrollJumpRequest || null, + forceShouldAnimate: scrollJumpRequest ? false : null + }); + + return result; +}); + +function getDraggables$1(ids, draggables) { + return ids.map(function (id) { + return draggables[id]; + }); +} + +var recompute = (function (_ref) { + var impact = _ref.impact, + viewport = _ref.viewport, + draggables = _ref.draggables, + destination = _ref.destination, + forceShouldAnimate = _ref.forceShouldAnimate; + var last = impact.displaced; + var afterDragging = getDraggables$1(last.all, draggables); + var displaced = getDisplacementGroups({ + afterDragging: afterDragging, + destination: destination, + displacedBy: impact.displacedBy, + viewport: viewport.frame, + forceShouldAnimate: forceShouldAnimate, + last: last + }); + return _extends({}, impact, { + displaced: displaced + }); +}); + +var getClientBorderBoxCenter = (function (_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + droppable = _ref.droppable, + draggables = _ref.draggables, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: impact, + draggable: draggable, + draggables: draggables, + droppable: droppable, + afterCritical: afterCritical + }); + return getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter: pageBorderBoxCenter, + draggable: draggable, + viewport: viewport + }); +}); + +var refreshSnap = (function (_ref) { + var state = _ref.state, + forcedDimensions = _ref.dimensions, + forcedViewport = _ref.viewport; + !(state.movementMode === 'SNAP') ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + var needsVisibilityCheck = state.impact; + var viewport = forcedViewport || state.viewport; + var dimensions = forcedDimensions || state.dimensions; + var draggables = dimensions.draggables, + droppables = dimensions.droppables; + var draggable = draggables[state.critical.draggable.id]; + var isOver = whatIsDraggedOver(needsVisibilityCheck); + !isOver ? process.env.NODE_ENV !== "production" ? invariant(false, 'Must be over a destination in SNAP movement mode') : invariant(false) : void 0; + var destination = droppables[isOver]; + var impact = recompute({ + impact: needsVisibilityCheck, + viewport: viewport, + destination: destination, + draggables: draggables + }); + var clientSelection = getClientBorderBoxCenter({ + impact: impact, + draggable: draggable, + droppable: destination, + draggables: draggables, + viewport: viewport, + afterCritical: state.afterCritical + }); + return update({ + impact: impact, + clientSelection: clientSelection, + state: state, + dimensions: dimensions, + viewport: viewport + }); +}); + +var getHomeLocation = (function (descriptor) { + return { + index: descriptor.index, + droppableId: descriptor.droppableId + }; +}); + +var getLiftEffect = (function (_ref) { + var draggable = _ref.draggable, + home = _ref.home, + draggables = _ref.draggables, + viewport = _ref.viewport; + var displacedBy = getDisplacedBy(home.axis, draggable.displaceBy); + var insideHome = getDraggablesInsideDroppable(home.descriptor.id, draggables); + var rawIndex = insideHome.indexOf(draggable); + !(rawIndex !== -1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected draggable to be inside home list') : invariant(false) : void 0; + var afterDragging = insideHome.slice(rawIndex + 1); + var effected = afterDragging.reduce(function (previous, item) { + previous[item.descriptor.id] = true; + return previous; + }, {}); + var afterCritical = { + inVirtualList: home.descriptor.mode === 'virtual', + displacedBy: displacedBy, + effected: effected + }; + var displaced = getDisplacementGroups({ + afterDragging: afterDragging, + destination: home, + displacedBy: displacedBy, + last: null, + viewport: viewport.frame, + forceShouldAnimate: false + }); + var impact = { + displaced: displaced, + displacedBy: displacedBy, + at: { + type: 'REORDER', + destination: getHomeLocation(draggable.descriptor) + } + }; + return { + impact: impact, + afterCritical: afterCritical + }; +}); + +var patchDimensionMap = (function (dimensions, updated) { + return { + draggables: dimensions.draggables, + droppables: patchDroppableMap(dimensions.droppables, updated) + }; +}); + +var start = function start(key) { + if (process.env.NODE_ENV !== 'production') { + { + return; + } + } +}; +var finish = function finish(key) { + if (process.env.NODE_ENV !== 'production') { + { + return; + } + } +}; + +var offsetDraggable = (function (_ref) { + var draggable = _ref.draggable, + offset$1 = _ref.offset, + initialWindowScroll = _ref.initialWindowScroll; + var client = offset(draggable.client, offset$1); + var page = withScroll(client, initialWindowScroll); + + var moved = _extends({}, draggable, { + placeholder: _extends({}, draggable.placeholder, { + client: client + }), + client: client, + page: page + }); + + return moved; +}); + +var getFrame = (function (droppable) { + var frame = droppable.frame; + !frame ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected Droppable to have a frame') : invariant(false) : void 0; + return frame; +}); + +var adjustAdditionsForScrollChanges = (function (_ref) { + var additions = _ref.additions, + updatedDroppables = _ref.updatedDroppables, + viewport = _ref.viewport; + var windowScrollChange = viewport.scroll.diff.value; + return additions.map(function (draggable) { + var droppableId = draggable.descriptor.droppableId; + var modified = updatedDroppables[droppableId]; + var frame = getFrame(modified); + var droppableScrollChange = frame.scroll.diff.value; + var totalChange = add(windowScrollChange, droppableScrollChange); + var moved = offsetDraggable({ + draggable: draggable, + offset: totalChange, + initialWindowScroll: viewport.scroll.initial + }); + return moved; + }); +}); + +var publishWhileDraggingInVirtual = (function (_ref) { + var state = _ref.state, + published = _ref.published; + start(); + var withScrollChange = published.modified.map(function (update) { + var existing = state.dimensions.droppables[update.droppableId]; + var scrolled = scrollDroppable(existing, update.scroll); + return scrolled; + }); + + var droppables = _extends({}, state.dimensions.droppables, {}, toDroppableMap(withScrollChange)); + + var updatedAdditions = toDraggableMap(adjustAdditionsForScrollChanges({ + additions: published.additions, + updatedDroppables: droppables, + viewport: state.viewport + })); + + var draggables = _extends({}, state.dimensions.draggables, {}, updatedAdditions); + + published.removals.forEach(function (id) { + delete draggables[id]; + }); + var dimensions = { + droppables: droppables, + draggables: draggables + }; + var wasOverId = whatIsDraggedOver(state.impact); + var wasOver = wasOverId ? dimensions.droppables[wasOverId] : null; + var draggable = dimensions.draggables[state.critical.draggable.id]; + var home = dimensions.droppables[state.critical.droppable.id]; + + var _getLiftEffect = getLiftEffect({ + draggable: draggable, + home: home, + draggables: draggables, + viewport: state.viewport + }), + onLiftImpact = _getLiftEffect.impact, + afterCritical = _getLiftEffect.afterCritical; + + var previousImpact = wasOver && wasOver.isCombineEnabled ? state.impact : onLiftImpact; + var impact = getDragImpact({ + pageOffset: state.current.page.offset, + draggable: dimensions.draggables[state.critical.draggable.id], + draggables: dimensions.draggables, + droppables: dimensions.droppables, + previousImpact: previousImpact, + viewport: state.viewport, + afterCritical: afterCritical + }); + finish(); + + var draggingState = _extends({ + phase: 'DRAGGING' + }, state, { + phase: 'DRAGGING', + impact: impact, + onLiftImpact: onLiftImpact, + dimensions: dimensions, + afterCritical: afterCritical, + forceShouldAnimate: false + }); + + if (state.phase === 'COLLECTING') { + return draggingState; + } + + var dropPending = _extends({ + phase: 'DROP_PENDING' + }, draggingState, { + phase: 'DROP_PENDING', + reason: state.reason, + isWaiting: false + }); + + return dropPending; +}); + +var isSnapping = function isSnapping(state) { + return state.movementMode === 'SNAP'; +}; + +var postDroppableChange = function postDroppableChange(state, updated, isEnabledChanging) { + var dimensions = patchDimensionMap(state.dimensions, updated); + + if (!isSnapping(state) || isEnabledChanging) { + return update({ + state: state, + dimensions: dimensions + }); + } + + return refreshSnap({ + state: state, + dimensions: dimensions + }); +}; + +function removeScrollJumpRequest(state) { + if (state.isDragging && state.movementMode === 'SNAP') { + return _extends({ + phase: 'DRAGGING' + }, state, { + scrollJumpRequest: null + }); + } + + return state; +} + +var idle = { + phase: 'IDLE', + completed: null, + shouldFlush: false +}; +var reducer = (function (state, action) { + if (state === void 0) { + state = idle; + } + + if (action.type === 'FLUSH') { + return _extends({}, idle, { + shouldFlush: true + }); + } + + if (action.type === 'INITIAL_PUBLISH') { + !(state.phase === 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'INITIAL_PUBLISH must come after a IDLE phase') : invariant(false) : void 0; + var _action$payload = action.payload, + critical = _action$payload.critical, + clientSelection = _action$payload.clientSelection, + viewport = _action$payload.viewport, + dimensions = _action$payload.dimensions, + movementMode = _action$payload.movementMode; + var draggable = dimensions.draggables[critical.draggable.id]; + var home = dimensions.droppables[critical.droppable.id]; + var client = { + selection: clientSelection, + borderBoxCenter: draggable.client.borderBox.center, + offset: origin + }; + var initial = { + client: client, + page: { + selection: add(client.selection, viewport.scroll.initial), + borderBoxCenter: add(client.selection, viewport.scroll.initial), + offset: add(client.selection, viewport.scroll.diff.value) + } + }; + var isWindowScrollAllowed = toDroppableList(dimensions.droppables).every(function (item) { + return !item.isFixedOnPage; + }); + + var _getLiftEffect = getLiftEffect({ + draggable: draggable, + home: home, + draggables: dimensions.draggables, + viewport: viewport + }), + impact = _getLiftEffect.impact, + afterCritical = _getLiftEffect.afterCritical; + + var result = { + phase: 'DRAGGING', + isDragging: true, + critical: critical, + movementMode: movementMode, + dimensions: dimensions, + initial: initial, + current: initial, + isWindowScrollAllowed: isWindowScrollAllowed, + impact: impact, + afterCritical: afterCritical, + onLiftImpact: impact, + viewport: viewport, + scrollJumpRequest: null, + forceShouldAnimate: null + }; + return result; + } + + if (action.type === 'COLLECTION_STARTING') { + if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') { + return state; + } + + !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Collection cannot start from phase " + state.phase) : invariant(false) : void 0; + + var _result = _extends({ + phase: 'COLLECTING' + }, state, { + phase: 'COLLECTING' + }); + + return _result; + } + + if (action.type === 'PUBLISH_WHILE_DRAGGING') { + !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Unexpected " + action.type + " received in phase " + state.phase) : invariant(false) : void 0; + return publishWhileDraggingInVirtual({ + state: state, + published: action.payload + }); + } + + if (action.type === 'MOVE') { + if (state.phase === 'DROP_PENDING') { + return state; + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, action.type + " not permitted in phase " + state.phase) : invariant(false) : void 0; + var _clientSelection = action.payload.client; + + if (isEqual(_clientSelection, state.current.client.selection)) { + return state; + } + + return update({ + state: state, + clientSelection: _clientSelection, + impact: isSnapping(state) ? state.impact : null + }); + } + + if (action.type === 'UPDATE_DROPPABLE_SCROLL') { + if (state.phase === 'DROP_PENDING') { + return removeScrollJumpRequest(state); + } + + if (state.phase === 'COLLECTING') { + return removeScrollJumpRequest(state); + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, action.type + " not permitted in phase " + state.phase) : invariant(false) : void 0; + var _action$payload2 = action.payload, + id = _action$payload2.id, + newScroll = _action$payload2.newScroll; + var target = state.dimensions.droppables[id]; + + if (!target) { + return state; + } + + var scrolled = scrollDroppable(target, newScroll); + return postDroppableChange(state, scrolled, false); + } + + if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') { + if (state.phase === 'DROP_PENDING') { + return state; + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, "Attempting to move in an unsupported phase " + state.phase) : invariant(false) : void 0; + var _action$payload3 = action.payload, + _id = _action$payload3.id, + isEnabled = _action$payload3.isEnabled; + var _target = state.dimensions.droppables[_id]; + !_target ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot find Droppable[id: " + _id + "] to toggle its enabled state") : invariant(false) : void 0; + !(_target.isEnabled !== isEnabled) ? process.env.NODE_ENV !== "production" ? invariant(false, "Trying to set droppable isEnabled to " + String(isEnabled) + "\n but it is already " + String(_target.isEnabled)) : invariant(false) : void 0; + + var updated = _extends({}, _target, { + isEnabled: isEnabled + }); + + return postDroppableChange(state, updated, true); + } + + if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') { + if (state.phase === 'DROP_PENDING') { + return state; + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, "Attempting to move in an unsupported phase " + state.phase) : invariant(false) : void 0; + var _action$payload4 = action.payload, + _id2 = _action$payload4.id, + isCombineEnabled = _action$payload4.isCombineEnabled; + var _target2 = state.dimensions.droppables[_id2]; + !_target2 ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot find Droppable[id: " + _id2 + "] to toggle its isCombineEnabled state") : invariant(false) : void 0; + !(_target2.isCombineEnabled !== isCombineEnabled) ? process.env.NODE_ENV !== "production" ? invariant(false, "Trying to set droppable isCombineEnabled to " + String(isCombineEnabled) + "\n but it is already " + String(_target2.isCombineEnabled)) : invariant(false) : void 0; + + var _updated = _extends({}, _target2, { + isCombineEnabled: isCombineEnabled + }); + + return postDroppableChange(state, _updated, true); + } + + if (action.type === 'MOVE_BY_WINDOW_SCROLL') { + if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') { + return state; + } + + !isMovementAllowed(state) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot move by window in phase " + state.phase) : invariant(false) : void 0; + !state.isWindowScrollAllowed ? process.env.NODE_ENV !== "production" ? invariant(false, 'Window scrolling is currently not supported for fixed lists') : invariant(false) : void 0; + var _newScroll = action.payload.newScroll; + + if (isEqual(state.viewport.scroll.current, _newScroll)) { + return removeScrollJumpRequest(state); + } + + var _viewport = scrollViewport(state.viewport, _newScroll); + + if (isSnapping(state)) { + return refreshSnap({ + state: state, + viewport: _viewport + }); + } + + return update({ + state: state, + viewport: _viewport + }); + } + + if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') { + if (!isMovementAllowed(state)) { + return state; + } + + var maxScroll = action.payload.maxScroll; + + if (isEqual(maxScroll, state.viewport.scroll.max)) { + return state; + } + + var withMaxScroll = _extends({}, state.viewport, { + scroll: _extends({}, state.viewport.scroll, { + max: maxScroll + }) + }); + + return _extends({ + phase: 'DRAGGING' + }, state, { + viewport: withMaxScroll + }); + } + + if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') { + if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') { + return state; + } + + !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== "production" ? invariant(false, action.type + " received while not in DRAGGING phase") : invariant(false) : void 0; + + var _result2 = moveInDirection({ + state: state, + type: action.type + }); + + if (!_result2) { + return state; + } + + return update({ + state: state, + impact: _result2.impact, + clientSelection: _result2.clientSelection, + scrollJumpRequest: _result2.scrollJumpRequest + }); + } + + if (action.type === 'DROP_PENDING') { + var reason = action.payload.reason; + !(state.phase === 'COLLECTING') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : invariant(false) : void 0; + + var newState = _extends({ + phase: 'DROP_PENDING' + }, state, { + phase: 'DROP_PENDING', + isWaiting: true, + reason: reason + }); + + return newState; + } + + if (action.type === 'DROP_ANIMATE') { + var _action$payload5 = action.payload, + completed = _action$payload5.completed, + dropDuration = _action$payload5.dropDuration, + newHomeClientOffset = _action$payload5.newHomeClientOffset; + !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot animate drop from phase " + state.phase) : invariant(false) : void 0; + var _result3 = { + phase: 'DROP_ANIMATING', + completed: completed, + dropDuration: dropDuration, + newHomeClientOffset: newHomeClientOffset, + dimensions: state.dimensions + }; + return _result3; + } + + if (action.type === 'DROP_COMPLETE') { + var _completed = action.payload.completed; + return { + phase: 'IDLE', + completed: _completed, + shouldFlush: false + }; + } + + return state; +}); + +var beforeInitialCapture = function beforeInitialCapture(args) { + return { + type: 'BEFORE_INITIAL_CAPTURE', + payload: args + }; +}; +var lift = function lift(args) { + return { + type: 'LIFT', + payload: args + }; +}; +var initialPublish = function initialPublish(args) { + return { + type: 'INITIAL_PUBLISH', + payload: args + }; +}; +var publishWhileDragging = function publishWhileDragging(args) { + return { + type: 'PUBLISH_WHILE_DRAGGING', + payload: args + }; +}; +var collectionStarting = function collectionStarting() { + return { + type: 'COLLECTION_STARTING', + payload: null + }; +}; +var updateDroppableScroll = function updateDroppableScroll(args) { + return { + type: 'UPDATE_DROPPABLE_SCROLL', + payload: args + }; +}; +var updateDroppableIsEnabled = function updateDroppableIsEnabled(args) { + return { + type: 'UPDATE_DROPPABLE_IS_ENABLED', + payload: args + }; +}; +var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(args) { + return { + type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED', + payload: args + }; +}; +var move = function move(args) { + return { + type: 'MOVE', + payload: args + }; +}; +var moveByWindowScroll = function moveByWindowScroll(args) { + return { + type: 'MOVE_BY_WINDOW_SCROLL', + payload: args + }; +}; +var updateViewportMaxScroll = function updateViewportMaxScroll(args) { + return { + type: 'UPDATE_VIEWPORT_MAX_SCROLL', + payload: args + }; +}; +var moveUp = function moveUp() { + return { + type: 'MOVE_UP', + payload: null + }; +}; +var moveDown = function moveDown() { + return { + type: 'MOVE_DOWN', + payload: null + }; +}; +var moveRight = function moveRight() { + return { + type: 'MOVE_RIGHT', + payload: null + }; +}; +var moveLeft = function moveLeft() { + return { + type: 'MOVE_LEFT', + payload: null + }; +}; +var flush = function flush() { + return { + type: 'FLUSH', + payload: null + }; +}; +var animateDrop = function animateDrop(args) { + return { + type: 'DROP_ANIMATE', + payload: args + }; +}; +var completeDrop = function completeDrop(args) { + return { + type: 'DROP_COMPLETE', + payload: args + }; +}; +var drop = function drop(args) { + return { + type: 'DROP', + payload: args + }; +}; +var dropPending = function dropPending(args) { + return { + type: 'DROP_PENDING', + payload: args + }; +}; +var dropAnimationFinished = function dropAnimationFinished() { + return { + type: 'DROP_ANIMATION_FINISHED', + payload: null + }; +}; + +function checkIndexes(insideDestination) { + if (insideDestination.length <= 1) { + return; + } + + var indexes = insideDestination.map(function (d) { + return d.descriptor.index; + }); + var errors = {}; + + for (var i = 1; i < indexes.length; i++) { + var current = indexes[i]; + var previous = indexes[i - 1]; + + if (current !== previous + 1) { + errors[current] = true; + } + } + + if (!Object.keys(errors).length) { + return; + } + + var formatted = indexes.map(function (index) { + var hasError = Boolean(errors[index]); + return hasError ? "[\uD83D\uDD25" + index + "]" : "" + index; + }).join(', '); + process.env.NODE_ENV !== "production" ? warning("\n Detected non-consecutive indexes.\n\n (This can cause unexpected bugs)\n\n " + formatted + "\n ") : void 0; +} + +function validateDimensions(critical, dimensions) { + if (process.env.NODE_ENV !== 'production') { + var insideDestination = getDraggablesInsideDroppable(critical.droppable.id, dimensions.draggables); + checkIndexes(insideDestination); + } +} + +var lift$1 = (function (marshal) { + return function (_ref) { + var getState = _ref.getState, + dispatch = _ref.dispatch; + return function (next) { + return function (action) { + if (action.type !== 'LIFT') { + next(action); + return; + } + + var _action$payload = action.payload, + id = _action$payload.id, + clientSelection = _action$payload.clientSelection, + movementMode = _action$payload.movementMode; + var initial = getState(); + + if (initial.phase === 'DROP_ANIMATING') { + dispatch(completeDrop({ + completed: initial.completed + })); + } + + !(getState().phase === 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Unexpected phase to start a drag') : invariant(false) : void 0; + dispatch(flush()); + dispatch(beforeInitialCapture({ + draggableId: id, + movementMode: movementMode + })); + var scrollOptions = { + shouldPublishImmediately: movementMode === 'SNAP' + }; + var request = { + draggableId: id, + scrollOptions: scrollOptions + }; + + var _marshal$startPublish = marshal.startPublishing(request), + critical = _marshal$startPublish.critical, + dimensions = _marshal$startPublish.dimensions, + viewport = _marshal$startPublish.viewport; + + validateDimensions(critical, dimensions); + dispatch(initialPublish({ + critical: critical, + dimensions: dimensions, + clientSelection: clientSelection, + movementMode: movementMode, + viewport: viewport + })); + }; + }; + }; +}); + +var style = (function (marshal) { + return function () { + return function (next) { + return function (action) { + if (action.type === 'INITIAL_PUBLISH') { + marshal.dragging(); + } + + if (action.type === 'DROP_ANIMATE') { + marshal.dropping(action.payload.completed.result.reason); + } + + if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE') { + marshal.resting(); + } + + next(action); + }; + }; + }; +}); + +var curves = { + outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)', + drop: 'cubic-bezier(.2,1,.1,1)' +}; +var combine = { + opacity: { + drop: 0, + combining: 0.7 + }, + scale: { + drop: 0.75 + } +}; +var timings = { + outOfTheWay: 0.2, + minDropTime: 0.33, + maxDropTime: 0.55 +}; +var outOfTheWayTiming = timings.outOfTheWay + "s " + curves.outOfTheWay; +var transitions = { + fluid: "opacity " + outOfTheWayTiming, + snap: "transform " + outOfTheWayTiming + ", opacity " + outOfTheWayTiming, + drop: function drop(duration) { + var timing = duration + "s " + curves.drop; + return "transform " + timing + ", opacity " + timing; + }, + outOfTheWay: "transform " + outOfTheWayTiming, + placeholder: "height " + outOfTheWayTiming + ", width " + outOfTheWayTiming + ", margin " + outOfTheWayTiming +}; + +var moveTo = function moveTo(offset) { + return isEqual(offset, origin) ? null : "translate(" + offset.x + "px, " + offset.y + "px)"; +}; + +var transforms = { + moveTo: moveTo, + drop: function drop(offset, isCombining) { + var translate = moveTo(offset); + + if (!translate) { + return null; + } + + if (!isCombining) { + return translate; + } + + return translate + " scale(" + combine.scale.drop + ")"; + } +}; + +var minDropTime = timings.minDropTime, + maxDropTime = timings.maxDropTime; +var dropTimeRange = maxDropTime - minDropTime; +var maxDropTimeAtDistance = 1500; +var cancelDropModifier = 0.6; +var getDropDuration = (function (_ref) { + var current = _ref.current, + destination = _ref.destination, + reason = _ref.reason; + var distance$1 = distance(current, destination); + + if (distance$1 <= 0) { + return minDropTime; + } + + if (distance$1 >= maxDropTimeAtDistance) { + return maxDropTime; + } + + var percentage = distance$1 / maxDropTimeAtDistance; + var duration = minDropTime + dropTimeRange * percentage; + var withDuration = reason === 'CANCEL' ? duration * cancelDropModifier : duration; + return Number(withDuration.toFixed(2)); +}); + +var getNewHomeClientOffset = (function (_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + dimensions = _ref.dimensions, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var draggables = dimensions.draggables, + droppables = dimensions.droppables; + var droppableId = whatIsDraggedOver(impact); + var destination = droppableId ? droppables[droppableId] : null; + var home = droppables[draggable.descriptor.droppableId]; + var newClientCenter = getClientBorderBoxCenter({ + impact: impact, + draggable: draggable, + draggables: draggables, + afterCritical: afterCritical, + droppable: destination || home, + viewport: viewport + }); + var offset = subtract(newClientCenter, draggable.client.borderBox.center); + return offset; +}); + +var getDropImpact = (function (_ref) { + var draggables = _ref.draggables, + reason = _ref.reason, + lastImpact = _ref.lastImpact, + home = _ref.home, + viewport = _ref.viewport, + onLiftImpact = _ref.onLiftImpact; + + if (!lastImpact.at || reason !== 'DROP') { + var recomputedHomeImpact = recompute({ + draggables: draggables, + impact: onLiftImpact, + destination: home, + viewport: viewport, + forceShouldAnimate: true + }); + return { + impact: recomputedHomeImpact, + didDropInsideDroppable: false + }; + } + + if (lastImpact.at.type === 'REORDER') { + return { + impact: lastImpact, + didDropInsideDroppable: true + }; + } + + var withoutMovement = _extends({}, lastImpact, { + displaced: emptyGroups + }); + + return { + impact: withoutMovement, + didDropInsideDroppable: true + }; +}); + +var drop$1 = (function (_ref) { + var getState = _ref.getState, + dispatch = _ref.dispatch; + return function (next) { + return function (action) { + if (action.type !== 'DROP') { + next(action); + return; + } + + var state = getState(); + var reason = action.payload.reason; + + if (state.phase === 'COLLECTING') { + dispatch(dropPending({ + reason: reason + })); + return; + } + + if (state.phase === 'IDLE') { + return; + } + + var isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting; + !!isWaitingForDrop ? process.env.NODE_ENV !== "production" ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : invariant(false) : void 0; + !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot drop in phase: " + state.phase) : invariant(false) : void 0; + var critical = state.critical; + var dimensions = state.dimensions; + var draggable = dimensions.draggables[state.critical.draggable.id]; + + var _getDropImpact = getDropImpact({ + reason: reason, + lastImpact: state.impact, + afterCritical: state.afterCritical, + onLiftImpact: state.onLiftImpact, + home: state.dimensions.droppables[state.critical.droppable.id], + viewport: state.viewport, + draggables: state.dimensions.draggables + }), + impact = _getDropImpact.impact, + didDropInsideDroppable = _getDropImpact.didDropInsideDroppable; + + var destination = didDropInsideDroppable ? tryGetDestination(impact) : null; + var combine = didDropInsideDroppable ? tryGetCombine(impact) : null; + var source = { + index: critical.draggable.index, + droppableId: critical.droppable.id + }; + var result = { + draggableId: draggable.descriptor.id, + type: draggable.descriptor.type, + source: source, + reason: reason, + mode: state.movementMode, + destination: destination, + combine: combine + }; + var newHomeClientOffset = getNewHomeClientOffset({ + impact: impact, + draggable: draggable, + dimensions: dimensions, + viewport: state.viewport, + afterCritical: state.afterCritical + }); + var completed = { + critical: state.critical, + afterCritical: state.afterCritical, + result: result, + impact: impact + }; + var isAnimationRequired = !isEqual(state.current.client.offset, newHomeClientOffset) || Boolean(result.combine); + + if (!isAnimationRequired) { + dispatch(completeDrop({ + completed: completed + })); + return; + } + + var dropDuration = getDropDuration({ + current: state.current.client.offset, + destination: newHomeClientOffset, + reason: reason + }); + var args = { + newHomeClientOffset: newHomeClientOffset, + dropDuration: dropDuration, + completed: completed + }; + dispatch(animateDrop(args)); + }; + }; +}); + +var getWindowScroll = (function () { + return { + x: window.pageXOffset, + y: window.pageYOffset + }; +}); + +function getWindowScrollBinding(update) { + return { + eventName: 'scroll', + options: { + passive: true, + capture: false + }, + fn: function fn(event) { + if (event.target !== window && event.target !== window.document) { + return; + } + + update(); + } + }; +} + +function getScrollListener(_ref) { + var onWindowScroll = _ref.onWindowScroll; + + function updateScroll() { + onWindowScroll(getWindowScroll()); + } + + var scheduled = rafSchd(updateScroll); + var binding = getWindowScrollBinding(scheduled); + var unbind = noop; + + function isActive() { + return unbind !== noop; + } + + function start() { + !!isActive() ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot start scroll listener when already active') : invariant(false) : void 0; + unbind = bindEvents(window, [binding]); + } + + function stop() { + !isActive() ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot stop scroll listener when not active') : invariant(false) : void 0; + scheduled.cancel(); + unbind(); + unbind = noop; + } + + return { + start: start, + stop: stop, + isActive: isActive + }; +} + +var shouldEnd = function shouldEnd(action) { + return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH'; +}; + +var scrollListener = (function (store) { + var listener = getScrollListener({ + onWindowScroll: function onWindowScroll(newScroll) { + store.dispatch(moveByWindowScroll({ + newScroll: newScroll + })); + } + }); + return function (next) { + return function (action) { + if (!listener.isActive() && action.type === 'INITIAL_PUBLISH') { + listener.start(); + } + + if (listener.isActive() && shouldEnd(action)) { + listener.stop(); + } + + next(action); + }; + }; +}); + +var getExpiringAnnounce = (function (announce) { + var wasCalled = false; + var isExpired = false; + var timeoutId = setTimeout(function () { + isExpired = true; + }); + + var result = function result(message) { + if (wasCalled) { + process.env.NODE_ENV !== "production" ? warning('Announcement already made. Not making a second announcement') : void 0; + return; + } + + if (isExpired) { + process.env.NODE_ENV !== "production" ? warning("\n Announcements cannot be made asynchronously.\n Default message has already been announced.\n ") : void 0; + return; + } + + wasCalled = true; + announce(message); + clearTimeout(timeoutId); + }; + + result.wasCalled = function () { + return wasCalled; + }; + + return result; +}); + +var getAsyncMarshal = (function () { + var entries = []; + + var execute = function execute(timerId) { + var index = findIndex(entries, function (item) { + return item.timerId === timerId; + }); + !(index !== -1) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find timer') : invariant(false) : void 0; + + var _entries$splice = entries.splice(index, 1), + entry = _entries$splice[0]; + + entry.callback(); + }; + + var add = function add(fn) { + var timerId = setTimeout(function () { + return execute(timerId); + }); + var entry = { + timerId: timerId, + callback: fn + }; + entries.push(entry); + }; + + var flush = function flush() { + if (!entries.length) { + return; + } + + var shallow = [].concat(entries); + entries.length = 0; + shallow.forEach(function (entry) { + clearTimeout(entry.timerId); + entry.callback(); + }); + }; + + return { + add: add, + flush: flush + }; +}); + +var areLocationsEqual = function areLocationsEqual(first, second) { + if (first == null && second == null) { + return true; + } + + if (first == null || second == null) { + return false; + } + + return first.droppableId === second.droppableId && first.index === second.index; +}; +var isCombineEqual = function isCombineEqual(first, second) { + if (first == null && second == null) { + return true; + } + + if (first == null || second == null) { + return false; + } + + return first.draggableId === second.draggableId && first.droppableId === second.droppableId; +}; +var isCriticalEqual = function isCriticalEqual(first, second) { + if (first === second) { + return true; + } + + var isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index; + var isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type; + return isDraggableEqual && isDroppableEqual; +}; + +var withTimings = function withTimings(key, fn) { + start(); + fn(); + finish(); +}; + +var getDragStart = function getDragStart(critical, mode) { + return { + draggableId: critical.draggable.id, + type: critical.droppable.type, + source: { + droppableId: critical.droppable.id, + index: critical.draggable.index + }, + mode: mode + }; +}; + +var execute = function execute(responder, data, announce, getDefaultMessage) { + if (!responder) { + announce(getDefaultMessage(data)); + return; + } + + var willExpire = getExpiringAnnounce(announce); + var provided = { + announce: willExpire + }; + responder(data, provided); + + if (!willExpire.wasCalled()) { + announce(getDefaultMessage(data)); + } +}; + +var getPublisher = (function (getResponders, announce) { + var asyncMarshal = getAsyncMarshal(); + var dragging = null; + + var beforeCapture = function beforeCapture(draggableId, mode) { + !!dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onBeforeCapture as a drag start has already been published') : invariant(false) : void 0; + withTimings('onBeforeCapture', function () { + var fn = getResponders().onBeforeCapture; + + if (fn) { + var before = { + draggableId: draggableId, + mode: mode + }; + fn(before); + } + }); + }; + + var beforeStart = function beforeStart(critical, mode) { + !!dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0; + withTimings('onBeforeDragStart', function () { + var fn = getResponders().onBeforeDragStart; + + if (fn) { + fn(getDragStart(critical, mode)); + } + }); + }; + + var start = function start(critical, mode) { + !!dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : invariant(false) : void 0; + var data = getDragStart(critical, mode); + dragging = { + mode: mode, + lastCritical: critical, + lastLocation: data.source, + lastCombine: null + }; + asyncMarshal.add(function () { + withTimings('onDragStart', function () { + return execute(getResponders().onDragStart, data, announce, preset.onDragStart); + }); + }); + }; + + var update = function update(critical, impact) { + var location = tryGetDestination(impact); + var combine = tryGetCombine(impact); + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : invariant(false) : void 0; + var hasCriticalChanged = !isCriticalEqual(critical, dragging.lastCritical); + + if (hasCriticalChanged) { + dragging.lastCritical = critical; + } + + var hasLocationChanged = !areLocationsEqual(dragging.lastLocation, location); + + if (hasLocationChanged) { + dragging.lastLocation = location; + } + + var hasGroupingChanged = !isCombineEqual(dragging.lastCombine, combine); + + if (hasGroupingChanged) { + dragging.lastCombine = combine; + } + + if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) { + return; + } + + var data = _extends({}, getDragStart(critical, dragging.mode), { + combine: combine, + destination: location + }); + + asyncMarshal.add(function () { + withTimings('onDragUpdate', function () { + return execute(getResponders().onDragUpdate, data, announce, preset.onDragUpdate); + }); + }); + }; + + var flush = function flush() { + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Can only flush responders while dragging') : invariant(false) : void 0; + asyncMarshal.flush(); + }; + + var drop = function drop(result) { + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : invariant(false) : void 0; + dragging = null; + withTimings('onDragEnd', function () { + return execute(getResponders().onDragEnd, result, announce, preset.onDragEnd); + }); + }; + + var abort = function abort() { + if (!dragging) { + return; + } + + var result = _extends({}, getDragStart(dragging.lastCritical, dragging.mode), { + combine: null, + destination: null, + reason: 'CANCEL' + }); + + drop(result); + }; + + return { + beforeCapture: beforeCapture, + beforeStart: beforeStart, + start: start, + update: update, + flush: flush, + drop: drop, + abort: abort + }; +}); + +var responders = (function (getResponders, announce) { + var publisher = getPublisher(getResponders, announce); + return function (store) { + return function (next) { + return function (action) { + if (action.type === 'BEFORE_INITIAL_CAPTURE') { + publisher.beforeCapture(action.payload.draggableId, action.payload.movementMode); + return; + } + + if (action.type === 'INITIAL_PUBLISH') { + var critical = action.payload.critical; + publisher.beforeStart(critical, action.payload.movementMode); + next(action); + publisher.start(critical, action.payload.movementMode); + return; + } + + if (action.type === 'DROP_COMPLETE') { + var result = action.payload.completed.result; + publisher.flush(); + next(action); + publisher.drop(result); + return; + } + + next(action); + + if (action.type === 'FLUSH') { + publisher.abort(); + return; + } + + var state = store.getState(); + + if (state.phase === 'DRAGGING') { + publisher.update(state.critical, state.impact); + } + }; + }; + }; +}); + +var dropAnimationFinish = (function (store) { + return function (next) { + return function (action) { + if (action.type !== 'DROP_ANIMATION_FINISHED') { + next(action); + return; + } + + var state = store.getState(); + !(state.phase === 'DROP_ANIMATING') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : invariant(false) : void 0; + store.dispatch(completeDrop({ + completed: state.completed + })); + }; + }; +}); + +var dropAnimationFlushOnScroll = (function (store) { + var unbind = null; + var frameId = null; + + function clear() { + if (frameId) { + cancelAnimationFrame(frameId); + frameId = null; + } + + if (unbind) { + unbind(); + unbind = null; + } + } + + return function (next) { + return function (action) { + if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATION_FINISHED') { + clear(); + } + + next(action); + + if (action.type !== 'DROP_ANIMATE') { + return; + } + + var binding = { + eventName: 'scroll', + options: { + capture: true, + passive: false, + once: true + }, + fn: function flushDropAnimation() { + var state = store.getState(); + + if (state.phase === 'DROP_ANIMATING') { + store.dispatch(dropAnimationFinished()); + } + } + }; + frameId = requestAnimationFrame(function () { + frameId = null; + unbind = bindEvents(window, [binding]); + }); + }; + }; +}); + +var dimensionMarshalStopper = (function (marshal) { + return function () { + return function (next) { + return function (action) { + if (action.type === 'DROP_COMPLETE' || action.type === 'FLUSH' || action.type === 'DROP_ANIMATE') { + marshal.stopPublishing(); + } + + next(action); + }; + }; + }; +}); + +var focus = (function (marshal) { + var isWatching = false; + return function () { + return function (next) { + return function (action) { + if (action.type === 'INITIAL_PUBLISH') { + isWatching = true; + marshal.tryRecordFocus(action.payload.critical.draggable.id); + next(action); + marshal.tryRestoreFocusRecorded(); + return; + } + + next(action); + + if (!isWatching) { + return; + } + + if (action.type === 'FLUSH') { + isWatching = false; + marshal.tryRestoreFocusRecorded(); + return; + } + + if (action.type === 'DROP_COMPLETE') { + isWatching = false; + var result = action.payload.completed.result; + + if (result.combine) { + marshal.tryShiftRecord(result.draggableId, result.combine.draggableId); + } + + marshal.tryRestoreFocusRecorded(); + } + }; + }; + }; +}); + +var shouldStop = function shouldStop(action) { + return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH'; +}; + +var autoScroll = (function (autoScroller) { + return function (store) { + return function (next) { + return function (action) { + if (shouldStop(action)) { + autoScroller.stop(); + next(action); + return; + } + + if (action.type === 'INITIAL_PUBLISH') { + next(action); + var state = store.getState(); + !(state.phase === 'DRAGGING') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected phase to be DRAGGING after INITIAL_PUBLISH') : invariant(false) : void 0; + autoScroller.start(state); + return; + } + + next(action); + autoScroller.scroll(store.getState()); + }; + }; + }; +}); + +var pendingDrop = (function (store) { + return function (next) { + return function (action) { + next(action); + + if (action.type !== 'PUBLISH_WHILE_DRAGGING') { + return; + } + + var postActionState = store.getState(); + + if (postActionState.phase !== 'DROP_PENDING') { + return; + } + + if (postActionState.isWaiting) { + return; + } + + store.dispatch(drop({ + reason: postActionState.reason + })); + }; + }; +}); + +var composeEnhancers = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ + name: 'react-beautiful-dnd' +}) : compose; +var createStore = (function (_ref) { + var dimensionMarshal = _ref.dimensionMarshal, + focusMarshal = _ref.focusMarshal, + styleMarshal = _ref.styleMarshal, + getResponders = _ref.getResponders, + announce = _ref.announce, + autoScroller = _ref.autoScroller; + return createStore$1(reducer, composeEnhancers(applyMiddleware(style(styleMarshal), dimensionMarshalStopper(dimensionMarshal), lift$1(dimensionMarshal), drop$1, dropAnimationFinish, dropAnimationFlushOnScroll, pendingDrop, autoScroll(autoScroller), scrollListener, focus(focusMarshal), responders(getResponders, announce)))); +}); + +var clean$1 = function clean() { + return { + additions: {}, + removals: {}, + modified: {} + }; +}; +function createPublisher(_ref) { + var registry = _ref.registry, + callbacks = _ref.callbacks; + var staging = clean$1(); + var frameId = null; + + var collect = function collect() { + if (frameId) { + return; + } + + callbacks.collectionStarting(); + frameId = requestAnimationFrame(function () { + frameId = null; + start(); + var _staging = staging, + additions = _staging.additions, + removals = _staging.removals, + modified = _staging.modified; + var added = Object.keys(additions).map(function (id) { + return registry.draggable.getById(id).getDimension(origin); + }).sort(function (a, b) { + return a.descriptor.index - b.descriptor.index; + }); + var updated = Object.keys(modified).map(function (id) { + var entry = registry.droppable.getById(id); + var scroll = entry.callbacks.getScrollWhileDragging(); + return { + droppableId: id, + scroll: scroll + }; + }); + var result = { + additions: added, + removals: Object.keys(removals), + modified: updated + }; + staging = clean$1(); + finish(); + callbacks.publish(result); + }); + }; + + var add = function add(entry) { + var id = entry.descriptor.id; + staging.additions[id] = entry; + staging.modified[entry.descriptor.droppableId] = true; + + if (staging.removals[id]) { + delete staging.removals[id]; + } + + collect(); + }; + + var remove = function remove(entry) { + var descriptor = entry.descriptor; + staging.removals[descriptor.id] = true; + staging.modified[descriptor.droppableId] = true; + + if (staging.additions[descriptor.id]) { + delete staging.additions[descriptor.id]; + } + + collect(); + }; + + var stop = function stop() { + if (!frameId) { + return; + } + + cancelAnimationFrame(frameId); + frameId = null; + staging = clean$1(); + }; + + return { + add: add, + remove: remove, + stop: stop + }; +} + +var getMaxScroll = (function (_ref) { + var scrollHeight = _ref.scrollHeight, + scrollWidth = _ref.scrollWidth, + height = _ref.height, + width = _ref.width; + var maxScroll = subtract({ + x: scrollWidth, + y: scrollHeight + }, { + x: width, + y: height + }); + var adjustedMaxScroll = { + x: Math.max(0, maxScroll.x), + y: Math.max(0, maxScroll.y) + }; + return adjustedMaxScroll; +}); + +var getDocumentElement = (function () { + var doc = document.documentElement; + !doc ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot find document.documentElement') : invariant(false) : void 0; + return doc; +}); + +var getMaxWindowScroll = (function () { + var doc = getDocumentElement(); + var maxScroll = getMaxScroll({ + scrollHeight: doc.scrollHeight, + scrollWidth: doc.scrollWidth, + width: doc.clientWidth, + height: doc.clientHeight + }); + return maxScroll; +}); + +var getViewport = (function () { + var scroll = getWindowScroll(); + var maxScroll = getMaxWindowScroll(); + var top = scroll.y; + var left = scroll.x; + var doc = getDocumentElement(); + var width = doc.clientWidth; + var height = doc.clientHeight; + var right = left + width; + var bottom = top + height; + var frame = getRect({ + top: top, + left: left, + right: right, + bottom: bottom + }); + var viewport = { + frame: frame, + scroll: { + initial: scroll, + current: scroll, + max: maxScroll, + diff: { + value: origin, + displacement: origin + } + } + }; + return viewport; +}); + +var getInitialPublish = (function (_ref) { + var critical = _ref.critical, + scrollOptions = _ref.scrollOptions, + registry = _ref.registry; + start(); + var viewport = getViewport(); + var windowScroll = viewport.scroll.current; + var home = critical.droppable; + var droppables = registry.droppable.getAllByType(home.type).map(function (entry) { + return entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions); + }); + var draggables = registry.draggable.getAllByType(critical.draggable.type).map(function (entry) { + return entry.getDimension(windowScroll); + }); + var dimensions = { + draggables: toDraggableMap(draggables), + droppables: toDroppableMap(droppables) + }; + finish(); + var result = { + dimensions: dimensions, + critical: critical, + viewport: viewport + }; + return result; +}); + +function shouldPublishUpdate(registry, dragging, entry) { + if (entry.descriptor.id === dragging.id) { + return false; + } + + if (entry.descriptor.type !== dragging.type) { + return false; + } + + var home = registry.droppable.getById(entry.descriptor.droppableId); + + if (home.descriptor.mode !== 'virtual') { + process.env.NODE_ENV !== "production" ? warning("\n You are attempting to add or remove a Draggable [id: " + entry.descriptor.id + "]\n while a drag is occurring. This is only supported for virtual lists.\n\n See https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/patterns/virtual-lists.md\n ") : void 0; + return false; + } + + return true; +} + +var createDimensionMarshal = (function (registry, callbacks) { + var collection = null; + var publisher = createPublisher({ + callbacks: { + publish: callbacks.publishWhileDragging, + collectionStarting: callbacks.collectionStarting + }, + registry: registry + }); + + var updateDroppableIsEnabled = function updateDroppableIsEnabled(id, isEnabled) { + !registry.droppable.exists(id) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot update is enabled flag of Droppable " + id + " as it is not registered") : invariant(false) : void 0; + + if (!collection) { + return; + } + + callbacks.updateDroppableIsEnabled({ + id: id, + isEnabled: isEnabled + }); + }; + + var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(id, isCombineEnabled) { + if (!collection) { + return; + } + + !registry.droppable.exists(id) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot update isCombineEnabled flag of Droppable " + id + " as it is not registered") : invariant(false) : void 0; + callbacks.updateDroppableIsCombineEnabled({ + id: id, + isCombineEnabled: isCombineEnabled + }); + }; + + var updateDroppableScroll = function updateDroppableScroll(id, newScroll) { + if (!collection) { + return; + } + + !registry.droppable.exists(id) ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot update the scroll on Droppable " + id + " as it is not registered") : invariant(false) : void 0; + callbacks.updateDroppableScroll({ + id: id, + newScroll: newScroll + }); + }; + + var scrollDroppable = function scrollDroppable(id, change) { + if (!collection) { + return; + } + + registry.droppable.getById(id).callbacks.scroll(change); + }; + + var stopPublishing = function stopPublishing() { + if (!collection) { + return; + } + + publisher.stop(); + var home = collection.critical.droppable; + registry.droppable.getAllByType(home.type).forEach(function (entry) { + return entry.callbacks.dragStopped(); + }); + collection.unsubscribe(); + collection = null; + }; + + var subscriber = function subscriber(event) { + !collection ? process.env.NODE_ENV !== "production" ? invariant(false, 'Should only be subscribed when a collection is occurring') : invariant(false) : void 0; + var dragging = collection.critical.draggable; + + if (event.type === 'ADDITION') { + if (shouldPublishUpdate(registry, dragging, event.value)) { + publisher.add(event.value); + } + } + + if (event.type === 'REMOVAL') { + if (shouldPublishUpdate(registry, dragging, event.value)) { + publisher.remove(event.value); + } + } + }; + + var startPublishing = function startPublishing(request) { + !!collection ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : invariant(false) : void 0; + var entry = registry.draggable.getById(request.draggableId); + var home = registry.droppable.getById(entry.descriptor.droppableId); + var critical = { + draggable: entry.descriptor, + droppable: home.descriptor + }; + var unsubscribe = registry.subscribe(subscriber); + collection = { + critical: critical, + unsubscribe: unsubscribe + }; + return getInitialPublish({ + critical: critical, + registry: registry, + scrollOptions: request.scrollOptions + }); + }; + + var marshal = { + updateDroppableIsEnabled: updateDroppableIsEnabled, + updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled, + scrollDroppable: scrollDroppable, + updateDroppableScroll: updateDroppableScroll, + startPublishing: startPublishing, + stopPublishing: stopPublishing + }; + return marshal; +}); + +var canStartDrag = (function (state, id) { + if (state.phase === 'IDLE') { + return true; + } + + if (state.phase !== 'DROP_ANIMATING') { + return false; + } + + if (state.completed.result.draggableId === id) { + return false; + } + + return state.completed.result.reason === 'DROP'; +}); + +var scrollWindow = (function (change) { + window.scrollBy(change.x, change.y); +}); + +var getScrollableDroppables = memoizeOne(function (droppables) { + return toDroppableList(droppables).filter(function (droppable) { + if (!droppable.isEnabled) { + return false; + } + + if (!droppable.frame) { + return false; + } + + return true; + }); +}); + +var getScrollableDroppableOver = function getScrollableDroppableOver(target, droppables) { + var maybe = find(getScrollableDroppables(droppables), function (droppable) { + !droppable.frame ? process.env.NODE_ENV !== "production" ? invariant(false, 'Invalid result') : invariant(false) : void 0; + return isPositionInFrame(droppable.frame.pageMarginBox)(target); + }); + return maybe; +}; + +var getBestScrollableDroppable = (function (_ref) { + var center = _ref.center, + destination = _ref.destination, + droppables = _ref.droppables; + + if (destination) { + var _dimension = droppables[destination]; + + if (!_dimension.frame) { + return null; + } + + return _dimension; + } + + var dimension = getScrollableDroppableOver(center, droppables); + return dimension; +}); + +var config = { + startFromPercentage: 0.25, + maxScrollAtPercentage: 0.05, + maxPixelScroll: 28, + ease: function ease(percentage) { + return Math.pow(percentage, 2); + }, + durationDampening: { + stopDampeningAt: 1200, + accelerateAt: 360 + } +}; + +var getDistanceThresholds = (function (container, axis) { + var startScrollingFrom = container[axis.size] * config.startFromPercentage; + var maxScrollValueAt = container[axis.size] * config.maxScrollAtPercentage; + var thresholds = { + startScrollingFrom: startScrollingFrom, + maxScrollValueAt: maxScrollValueAt + }; + return thresholds; +}); + +var getPercentage = (function (_ref) { + var startOfRange = _ref.startOfRange, + endOfRange = _ref.endOfRange, + current = _ref.current; + var range = endOfRange - startOfRange; + + if (range === 0) { + process.env.NODE_ENV !== "production" ? warning("\n Detected distance range of 0 in the fluid auto scroller\n This is unexpected and would cause a divide by 0 issue.\n Not allowing an auto scroll\n ") : void 0; + return 0; + } + + var currentInRange = current - startOfRange; + var percentage = currentInRange / range; + return percentage; +}); + +var minScroll = 1; + +var getValueFromDistance = (function (distanceToEdge, thresholds) { + if (distanceToEdge > thresholds.startScrollingFrom) { + return 0; + } + + if (distanceToEdge <= thresholds.maxScrollValueAt) { + return config.maxPixelScroll; + } + + if (distanceToEdge === thresholds.startScrollingFrom) { + return minScroll; + } + + var percentageFromMaxScrollValueAt = getPercentage({ + startOfRange: thresholds.maxScrollValueAt, + endOfRange: thresholds.startScrollingFrom, + current: distanceToEdge + }); + var percentageFromStartScrollingFrom = 1 - percentageFromMaxScrollValueAt; + var scroll = config.maxPixelScroll * config.ease(percentageFromStartScrollingFrom); + return Math.ceil(scroll); +}); + +var accelerateAt = config.durationDampening.accelerateAt; +var stopAt = config.durationDampening.stopDampeningAt; +var dampenValueByTime = (function (proposedScroll, dragStartTime) { + var startOfRange = dragStartTime; + var endOfRange = stopAt; + var now = Date.now(); + var runTime = now - startOfRange; + + if (runTime >= stopAt) { + return proposedScroll; + } + + if (runTime < accelerateAt) { + return minScroll; + } + + var betweenAccelerateAtAndStopAtPercentage = getPercentage({ + startOfRange: accelerateAt, + endOfRange: endOfRange, + current: runTime + }); + var scroll = proposedScroll * config.ease(betweenAccelerateAtAndStopAtPercentage); + return Math.ceil(scroll); +}); + +var getValue = (function (_ref) { + var distanceToEdge = _ref.distanceToEdge, + thresholds = _ref.thresholds, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var scroll = getValueFromDistance(distanceToEdge, thresholds); + + if (scroll === 0) { + return 0; + } + + if (!shouldUseTimeDampening) { + return scroll; + } + + return Math.max(dampenValueByTime(scroll, dragStartTime), minScroll); +}); + +var getScrollOnAxis = (function (_ref) { + var container = _ref.container, + distanceToEdges = _ref.distanceToEdges, + dragStartTime = _ref.dragStartTime, + axis = _ref.axis, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var thresholds = getDistanceThresholds(container, axis); + var isCloserToEnd = distanceToEdges[axis.end] < distanceToEdges[axis.start]; + + if (isCloserToEnd) { + return getValue({ + distanceToEdge: distanceToEdges[axis.end], + thresholds: thresholds, + dragStartTime: dragStartTime, + shouldUseTimeDampening: shouldUseTimeDampening + }); + } + + return -1 * getValue({ + distanceToEdge: distanceToEdges[axis.start], + thresholds: thresholds, + dragStartTime: dragStartTime, + shouldUseTimeDampening: shouldUseTimeDampening + }); +}); + +var adjustForSizeLimits = (function (_ref) { + var container = _ref.container, + subject = _ref.subject, + proposedScroll = _ref.proposedScroll; + var isTooBigVertically = subject.height > container.height; + var isTooBigHorizontally = subject.width > container.width; + + if (!isTooBigHorizontally && !isTooBigVertically) { + return proposedScroll; + } + + if (isTooBigHorizontally && isTooBigVertically) { + return null; + } + + return { + x: isTooBigHorizontally ? 0 : proposedScroll.x, + y: isTooBigVertically ? 0 : proposedScroll.y + }; +}); + +var clean$2 = apply(function (value) { + return value === 0 ? 0 : value; +}); +var getScroll = (function (_ref) { + var dragStartTime = _ref.dragStartTime, + container = _ref.container, + subject = _ref.subject, + center = _ref.center, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var distanceToEdges = { + top: center.y - container.top, + right: container.right - center.x, + bottom: container.bottom - center.y, + left: center.x - container.left + }; + var y = getScrollOnAxis({ + container: container, + distanceToEdges: distanceToEdges, + dragStartTime: dragStartTime, + axis: vertical, + shouldUseTimeDampening: shouldUseTimeDampening + }); + var x = getScrollOnAxis({ + container: container, + distanceToEdges: distanceToEdges, + dragStartTime: dragStartTime, + axis: horizontal, + shouldUseTimeDampening: shouldUseTimeDampening + }); + var required = clean$2({ + x: x, + y: y + }); + + if (isEqual(required, origin)) { + return null; + } + + var limited = adjustForSizeLimits({ + container: container, + subject: subject, + proposedScroll: required + }); + + if (!limited) { + return null; + } + + return isEqual(limited, origin) ? null : limited; +}); + +var smallestSigned = apply(function (value) { + if (value === 0) { + return 0; + } + + return value > 0 ? 1 : -1; +}); +var getOverlap = function () { + var getRemainder = function getRemainder(target, max) { + if (target < 0) { + return target; + } + + if (target > max) { + return target - max; + } + + return 0; + }; + + return function (_ref) { + var current = _ref.current, + max = _ref.max, + change = _ref.change; + var targetScroll = add(current, change); + var overlap = { + x: getRemainder(targetScroll.x, max.x), + y: getRemainder(targetScroll.y, max.y) + }; + + if (isEqual(overlap, origin)) { + return null; + } + + return overlap; + }; +}(); +var canPartiallyScroll = function canPartiallyScroll(_ref2) { + var rawMax = _ref2.max, + current = _ref2.current, + change = _ref2.change; + var max = { + x: Math.max(current.x, rawMax.x), + y: Math.max(current.y, rawMax.y) + }; + var smallestChange = smallestSigned(change); + var overlap = getOverlap({ + max: max, + current: current, + change: smallestChange + }); + + if (!overlap) { + return true; + } + + if (smallestChange.x !== 0 && overlap.x === 0) { + return true; + } + + if (smallestChange.y !== 0 && overlap.y === 0) { + return true; + } + + return false; +}; +var canScrollWindow = function canScrollWindow(viewport, change) { + return canPartiallyScroll({ + current: viewport.scroll.current, + max: viewport.scroll.max, + change: change + }); +}; +var getWindowOverlap = function getWindowOverlap(viewport, change) { + if (!canScrollWindow(viewport, change)) { + return null; + } + + var max = viewport.scroll.max; + var current = viewport.scroll.current; + return getOverlap({ + current: current, + max: max, + change: change + }); +}; +var canScrollDroppable = function canScrollDroppable(droppable, change) { + var frame = droppable.frame; + + if (!frame) { + return false; + } + + return canPartiallyScroll({ + current: frame.scroll.current, + max: frame.scroll.max, + change: change + }); +}; +var getDroppableOverlap = function getDroppableOverlap(droppable, change) { + var frame = droppable.frame; + + if (!frame) { + return null; + } + + if (!canScrollDroppable(droppable, change)) { + return null; + } + + return getOverlap({ + current: frame.scroll.current, + max: frame.scroll.max, + change: change + }); +}; + +var getWindowScrollChange = (function (_ref) { + var viewport = _ref.viewport, + subject = _ref.subject, + center = _ref.center, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var scroll = getScroll({ + dragStartTime: dragStartTime, + container: viewport.frame, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + return scroll && canScrollWindow(viewport, scroll) ? scroll : null; +}); + +var getDroppableScrollChange = (function (_ref) { + var droppable = _ref.droppable, + subject = _ref.subject, + center = _ref.center, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var frame = droppable.frame; + + if (!frame) { + return null; + } + + var scroll = getScroll({ + dragStartTime: dragStartTime, + container: frame.pageMarginBox, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + return scroll && canScrollDroppable(droppable, scroll) ? scroll : null; +}); + +var scroll$1 = (function (_ref) { + var state = _ref.state, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening, + scrollWindow = _ref.scrollWindow, + scrollDroppable = _ref.scrollDroppable; + var center = state.current.page.borderBoxCenter; + var draggable = state.dimensions.draggables[state.critical.draggable.id]; + var subject = draggable.page.marginBox; + + if (state.isWindowScrollAllowed) { + var viewport = state.viewport; + + var _change = getWindowScrollChange({ + dragStartTime: dragStartTime, + viewport: viewport, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + + if (_change) { + scrollWindow(_change); + return; + } + } + + var droppable = getBestScrollableDroppable({ + center: center, + destination: whatIsDraggedOver(state.impact), + droppables: state.dimensions.droppables + }); + + if (!droppable) { + return; + } + + var change = getDroppableScrollChange({ + dragStartTime: dragStartTime, + droppable: droppable, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + + if (change) { + scrollDroppable(droppable.descriptor.id, change); + } +}); + +var createFluidScroller = (function (_ref) { + var scrollWindow = _ref.scrollWindow, + scrollDroppable = _ref.scrollDroppable; + var scheduleWindowScroll = rafSchd(scrollWindow); + var scheduleDroppableScroll = rafSchd(scrollDroppable); + var dragging = null; + + var tryScroll = function tryScroll(state) { + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot fluid scroll if not dragging') : invariant(false) : void 0; + var _dragging = dragging, + shouldUseTimeDampening = _dragging.shouldUseTimeDampening, + dragStartTime = _dragging.dragStartTime; + scroll$1({ + state: state, + scrollWindow: scheduleWindowScroll, + scrollDroppable: scheduleDroppableScroll, + dragStartTime: dragStartTime, + shouldUseTimeDampening: shouldUseTimeDampening + }); + }; + + var start$1 = function start$1(state) { + start(); + !!dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot start auto scrolling when already started') : invariant(false) : void 0; + var dragStartTime = Date.now(); + var wasScrollNeeded = false; + + var fakeScrollCallback = function fakeScrollCallback() { + wasScrollNeeded = true; + }; + + scroll$1({ + state: state, + dragStartTime: 0, + shouldUseTimeDampening: false, + scrollWindow: fakeScrollCallback, + scrollDroppable: fakeScrollCallback + }); + dragging = { + dragStartTime: dragStartTime, + shouldUseTimeDampening: wasScrollNeeded + }; + finish(); + + if (wasScrollNeeded) { + tryScroll(state); + } + }; + + var stop = function stop() { + if (!dragging) { + return; + } + + scheduleWindowScroll.cancel(); + scheduleDroppableScroll.cancel(); + dragging = null; + }; + + return { + start: start$1, + stop: stop, + scroll: tryScroll + }; +}); + +var createJumpScroller = (function (_ref) { + var move = _ref.move, + scrollDroppable = _ref.scrollDroppable, + scrollWindow = _ref.scrollWindow; + + var moveByOffset = function moveByOffset(state, offset) { + var client = add(state.current.client.selection, offset); + move({ + client: client + }); + }; + + var scrollDroppableAsMuchAsItCan = function scrollDroppableAsMuchAsItCan(droppable, change) { + if (!canScrollDroppable(droppable, change)) { + return change; + } + + var overlap = getDroppableOverlap(droppable, change); + + if (!overlap) { + scrollDroppable(droppable.descriptor.id, change); + return null; + } + + var whatTheDroppableCanScroll = subtract(change, overlap); + scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll); + var remainder = subtract(change, whatTheDroppableCanScroll); + return remainder; + }; + + var scrollWindowAsMuchAsItCan = function scrollWindowAsMuchAsItCan(isWindowScrollAllowed, viewport, change) { + if (!isWindowScrollAllowed) { + return change; + } + + if (!canScrollWindow(viewport, change)) { + return change; + } + + var overlap = getWindowOverlap(viewport, change); + + if (!overlap) { + scrollWindow(change); + return null; + } + + var whatTheWindowCanScroll = subtract(change, overlap); + scrollWindow(whatTheWindowCanScroll); + var remainder = subtract(change, whatTheWindowCanScroll); + return remainder; + }; + + var jumpScroller = function jumpScroller(state) { + var request = state.scrollJumpRequest; + + if (!request) { + return; + } + + var destination = whatIsDraggedOver(state.impact); + !destination ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : invariant(false) : void 0; + var droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination], request); + + if (!droppableRemainder) { + return; + } + + var viewport = state.viewport; + var windowRemainder = scrollWindowAsMuchAsItCan(state.isWindowScrollAllowed, viewport, droppableRemainder); + + if (!windowRemainder) { + return; + } + + moveByOffset(state, windowRemainder); + }; + + return jumpScroller; +}); + +var createAutoScroller = (function (_ref) { + var scrollDroppable = _ref.scrollDroppable, + scrollWindow = _ref.scrollWindow, + move = _ref.move; + var fluidScroller = createFluidScroller({ + scrollWindow: scrollWindow, + scrollDroppable: scrollDroppable + }); + var jumpScroll = createJumpScroller({ + move: move, + scrollWindow: scrollWindow, + scrollDroppable: scrollDroppable + }); + + var scroll = function scroll(state) { + if (state.phase !== 'DRAGGING') { + return; + } + + if (state.movementMode === 'FLUID') { + fluidScroller.scroll(state); + return; + } + + if (!state.scrollJumpRequest) { + return; + } + + jumpScroll(state); + }; + + var scroller = { + scroll: scroll, + start: fluidScroller.start, + stop: fluidScroller.stop + }; + return scroller; +}); + +var prefix$1 = 'data-rbd'; +var dragHandle = function () { + var base = prefix$1 + "-drag-handle"; + return { + base: base, + draggableId: base + "-draggable-id", + contextId: base + "-context-id" + }; +}(); +var draggable = function () { + var base = prefix$1 + "-draggable"; + return { + base: base, + contextId: base + "-context-id", + id: base + "-id" + }; +}(); +var droppable = function () { + var base = prefix$1 + "-droppable"; + return { + base: base, + contextId: base + "-context-id", + id: base + "-id" + }; +}(); +var scrollContainer = { + contextId: prefix$1 + "-scroll-container-context-id" +}; + +var makeGetSelector = function makeGetSelector(context) { + return function (attribute) { + return "[" + attribute + "=\"" + context + "\"]"; + }; +}; + +var getStyles = function getStyles(rules, property) { + return rules.map(function (rule) { + var value = rule.styles[property]; + + if (!value) { + return ''; + } + + return rule.selector + " { " + value + " }"; + }).join(' '); +}; + +var noPointerEvents = 'pointer-events: none;'; +var getStyles$1 = (function (contextId) { + var getSelector = makeGetSelector(contextId); + + var dragHandle$1 = function () { + var grabCursor = "\n cursor: -webkit-grab;\n cursor: grab;\n "; + return { + selector: getSelector(dragHandle.contextId), + styles: { + always: "\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n ", + resting: grabCursor, + dragging: noPointerEvents, + dropAnimating: grabCursor + } + }; + }(); + + var draggable$1 = function () { + var transition = "\n transition: " + transitions.outOfTheWay + ";\n "; + return { + selector: getSelector(draggable.contextId), + styles: { + dragging: transition, + dropAnimating: transition, + userCancel: transition + } + }; + }(); + + var droppable$1 = { + selector: getSelector(droppable.contextId), + styles: { + always: "overflow-anchor: none;" + } + }; + var body = { + selector: 'body', + styles: { + dragging: "\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n " + } + }; + var rules = [draggable$1, dragHandle$1, droppable$1, body]; + return { + always: getStyles(rules, 'always'), + resting: getStyles(rules, 'resting'), + dragging: getStyles(rules, 'dragging'), + dropAnimating: getStyles(rules, 'dropAnimating'), + userCancel: getStyles(rules, 'userCancel') + }; +}); + +var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect; + +var getHead = function getHead() { + var head = document.querySelector('head'); + !head ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot find the head to append a style to') : invariant(false) : void 0; + return head; +}; + +var createStyleEl = function createStyleEl(nonce) { + var el = document.createElement('style'); + + if (nonce) { + el.setAttribute('nonce', nonce); + } + + el.type = 'text/css'; + return el; +}; + +function useStyleMarshal(contextId, nonce) { + var styles = useMemo(function () { + return getStyles$1(contextId); + }, [contextId]); + var alwaysRef = useRef(null); + var dynamicRef = useRef(null); + var setDynamicStyle = useCallback(memoizeOne(function (proposed) { + var el = dynamicRef.current; + !el ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0; + el.textContent = proposed; + }), []); + var setAlwaysStyle = useCallback(function (proposed) { + var el = alwaysRef.current; + !el ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot set dynamic style element if it is not set') : invariant(false) : void 0; + el.textContent = proposed; + }, []); + useIsomorphicLayoutEffect(function () { + !(!alwaysRef.current && !dynamicRef.current) ? process.env.NODE_ENV !== "production" ? invariant(false, 'style elements already mounted') : invariant(false) : void 0; + var always = createStyleEl(nonce); + var dynamic = createStyleEl(nonce); + alwaysRef.current = always; + dynamicRef.current = dynamic; + always.setAttribute(prefix$1 + "-always", contextId); + dynamic.setAttribute(prefix$1 + "-dynamic", contextId); + getHead().appendChild(always); + getHead().appendChild(dynamic); + setAlwaysStyle(styles.always); + setDynamicStyle(styles.resting); + return function () { + var remove = function remove(ref) { + var current = ref.current; + !current ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot unmount ref as it is not set') : invariant(false) : void 0; + getHead().removeChild(current); + ref.current = null; + }; + + remove(alwaysRef); + remove(dynamicRef); + }; + }, [nonce, setAlwaysStyle, setDynamicStyle, styles.always, styles.resting, contextId]); + var dragging = useCallback(function () { + return setDynamicStyle(styles.dragging); + }, [setDynamicStyle, styles.dragging]); + var dropping = useCallback(function (reason) { + if (reason === 'DROP') { + setDynamicStyle(styles.dropAnimating); + return; + } + + setDynamicStyle(styles.userCancel); + }, [setDynamicStyle, styles.dropAnimating, styles.userCancel]); + var resting = useCallback(function () { + if (!dynamicRef.current) { + return; + } + + setDynamicStyle(styles.resting); + }, [setDynamicStyle, styles.resting]); + var marshal = useMemo(function () { + return { + dragging: dragging, + dropping: dropping, + resting: resting + }; + }, [dragging, dropping, resting]); + return marshal; +} + +var getWindowFromEl = (function (el) { + return el && el.ownerDocument ? el.ownerDocument.defaultView : window; +}); + +function isHtmlElement(el) { + return el instanceof getWindowFromEl(el).HTMLElement; +} + +function findDragHandle(contextId, draggableId) { + var selector = "[" + dragHandle.contextId + "=\"" + contextId + "\"]"; + var possible = toArray(document.querySelectorAll(selector)); + + if (!possible.length) { + process.env.NODE_ENV !== "production" ? warning("Unable to find any drag handles in the context \"" + contextId + "\"") : void 0; + return null; + } + + var handle = find(possible, function (el) { + return el.getAttribute(dragHandle.draggableId) === draggableId; + }); + + if (!handle) { + process.env.NODE_ENV !== "production" ? warning("Unable to find drag handle with id \"" + draggableId + "\" as no handle with a matching id was found") : void 0; + return null; + } + + if (!isHtmlElement(handle)) { + process.env.NODE_ENV !== "production" ? warning('drag handle needs to be a HTMLElement') : void 0; + return null; + } + + return handle; +} + +function useFocusMarshal(contextId) { + var entriesRef = useRef({}); + var recordRef = useRef(null); + var restoreFocusFrameRef = useRef(null); + var isMountedRef = useRef(false); + var register = useCallback(function register(id, focus) { + var entry = { + id: id, + focus: focus + }; + entriesRef.current[id] = entry; + return function unregister() { + var entries = entriesRef.current; + var current = entries[id]; + + if (current !== entry) { + delete entries[id]; + } + }; + }, []); + var tryGiveFocus = useCallback(function tryGiveFocus(tryGiveFocusTo) { + var handle = findDragHandle(contextId, tryGiveFocusTo); + + if (handle && handle !== document.activeElement) { + handle.focus(); + } + }, [contextId]); + var tryShiftRecord = useCallback(function tryShiftRecord(previous, redirectTo) { + if (recordRef.current === previous) { + recordRef.current = redirectTo; + } + }, []); + var tryRestoreFocusRecorded = useCallback(function tryRestoreFocusRecorded() { + if (restoreFocusFrameRef.current) { + return; + } + + if (!isMountedRef.current) { + return; + } + + restoreFocusFrameRef.current = requestAnimationFrame(function () { + restoreFocusFrameRef.current = null; + var record = recordRef.current; + + if (record) { + tryGiveFocus(record); + } + }); + }, [tryGiveFocus]); + var tryRecordFocus = useCallback(function tryRecordFocus(id) { + recordRef.current = null; + var focused = document.activeElement; + + if (!focused) { + return; + } + + if (focused.getAttribute(dragHandle.draggableId) !== id) { + return; + } + + recordRef.current = id; + }, []); + useIsomorphicLayoutEffect(function () { + isMountedRef.current = true; + return function clearFrameOnUnmount() { + isMountedRef.current = false; + var frameId = restoreFocusFrameRef.current; + + if (frameId) { + cancelAnimationFrame(frameId); + } + }; + }, []); + var marshal = useMemo(function () { + return { + register: register, + tryRecordFocus: tryRecordFocus, + tryRestoreFocusRecorded: tryRestoreFocusRecorded, + tryShiftRecord: tryShiftRecord + }; + }, [register, tryRecordFocus, tryRestoreFocusRecorded, tryShiftRecord]); + return marshal; +} + +function createRegistry() { + var entries = { + draggables: {}, + droppables: {} + }; + var subscribers = []; + + function subscribe(cb) { + subscribers.push(cb); + return function unsubscribe() { + var index = subscribers.indexOf(cb); + + if (index === -1) { + return; + } + + subscribers.splice(index, 1); + }; + } + + function notify(event) { + if (subscribers.length) { + subscribers.forEach(function (cb) { + return cb(event); + }); + } + } + + function findDraggableById(id) { + return entries.draggables[id] || null; + } + + function getDraggableById(id) { + var entry = findDraggableById(id); + !entry ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot find draggable entry with id [" + id + "]") : invariant(false) : void 0; + return entry; + } + + var draggableAPI = { + register: function register(entry) { + entries.draggables[entry.descriptor.id] = entry; + notify({ + type: 'ADDITION', + value: entry + }); + }, + update: function update(entry, last) { + var current = entries.draggables[last.descriptor.id]; + + if (!current) { + return; + } + + if (current.uniqueId !== entry.uniqueId) { + return; + } + + delete entries.draggables[last.descriptor.id]; + entries.draggables[entry.descriptor.id] = entry; + }, + unregister: function unregister(entry) { + var draggableId = entry.descriptor.id; + var current = findDraggableById(draggableId); + + if (!current) { + return; + } + + if (entry.uniqueId !== current.uniqueId) { + return; + } + + delete entries.draggables[draggableId]; + notify({ + type: 'REMOVAL', + value: entry + }); + }, + getById: getDraggableById, + findById: findDraggableById, + exists: function exists(id) { + return Boolean(findDraggableById(id)); + }, + getAllByType: function getAllByType(type) { + return values(entries.draggables).filter(function (entry) { + return entry.descriptor.type === type; + }); + } + }; + + function findDroppableById(id) { + return entries.droppables[id] || null; + } + + function getDroppableById(id) { + var entry = findDroppableById(id); + !entry ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot find droppable entry with id [" + id + "]") : invariant(false) : void 0; + return entry; + } + + var droppableAPI = { + register: function register(entry) { + entries.droppables[entry.descriptor.id] = entry; + }, + unregister: function unregister(entry) { + var current = findDroppableById(entry.descriptor.id); + + if (!current) { + return; + } + + if (entry.uniqueId !== current.uniqueId) { + return; + } + + delete entries.droppables[entry.descriptor.id]; + }, + getById: getDroppableById, + findById: findDroppableById, + exists: function exists(id) { + return Boolean(findDroppableById(id)); + }, + getAllByType: function getAllByType(type) { + return values(entries.droppables).filter(function (entry) { + return entry.descriptor.type === type; + }); + } + }; + + function clean() { + entries.draggables = {}; + entries.droppables = {}; + subscribers.length = 0; + } + + return { + draggable: draggableAPI, + droppable: droppableAPI, + subscribe: subscribe, + clean: clean + }; +} + +function useRegistry() { + var registry = useMemo(createRegistry, []); + useEffect(function () { + return function unmount() { + requestAnimationFrame(registry.clean); + }; + }, [registry]); + return registry; +} + +var StoreContext = React.createContext(null); + +var getBodyElement = (function () { + var body = document.body; + !body ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot find document.body') : invariant(false) : void 0; + return body; +}); + +var visuallyHidden = { + position: 'absolute', + width: '1px', + height: '1px', + margin: '-1px', + border: '0', + padding: '0', + overflow: 'hidden', + clip: 'rect(0 0 0 0)', + 'clip-path': 'inset(100%)' +}; + +var getId = function getId(contextId) { + return "rbd-announcement-" + contextId; +}; +function useAnnouncer(contextId) { + var id = useMemo(function () { + return getId(contextId); + }, [contextId]); + var ref = useRef(null); + useEffect(function setup() { + var el = document.createElement('div'); + ref.current = el; + el.id = id; + el.setAttribute('aria-live', 'assertive'); + el.setAttribute('aria-atomic', 'true'); + + _extends(el.style, visuallyHidden); + + getBodyElement().appendChild(el); + return function cleanup() { + setTimeout(function remove() { + var body = getBodyElement(); + + if (body.contains(el)) { + body.removeChild(el); + } + + if (el === ref.current) { + ref.current = null; + } + }); + }; + }, [id]); + var announce = useCallback(function (message) { + var el = ref.current; + + if (el) { + el.textContent = message; + return; + } + + process.env.NODE_ENV !== "production" ? warning("\n A screen reader message was trying to be announced but it was unable to do so.\n This can occur if you unmount your in your onDragEnd.\n Consider calling provided.announce() before the unmount so that the instruction will\n not be lost for users relying on a screen reader.\n\n Message not passed to screen reader:\n\n \"" + message + "\"\n ") : void 0; + }, []); + return announce; +} + +var count = 0; +var defaults = { + separator: '::' +}; +function reset() { + count = 0; +} +function useUniqueId(prefix, options) { + if (options === void 0) { + options = defaults; + } + + return useMemo(function () { + return "" + prefix + options.separator + count++; + }, [options.separator, prefix]); +} + +function getElementId(_ref) { + var contextId = _ref.contextId, + uniqueId = _ref.uniqueId; + return "rbd-hidden-text-" + contextId + "-" + uniqueId; +} +function useHiddenTextElement(_ref2) { + var contextId = _ref2.contextId, + text = _ref2.text; + var uniqueId = useUniqueId('hidden-text', { + separator: '-' + }); + var id = useMemo(function () { + return getElementId({ + contextId: contextId, + uniqueId: uniqueId + }); + }, [uniqueId, contextId]); + useEffect(function mount() { + var el = document.createElement('div'); + el.id = id; + el.textContent = text; + el.style.display = 'none'; + getBodyElement().appendChild(el); + return function unmount() { + var body = getBodyElement(); + + if (body.contains(el)) { + body.removeChild(el); + } + }; + }, [id, text]); + return id; +} + +var AppContext = React.createContext(null); + +var peerDependencies = { + react: "^16.8.5 || ^17.0.0", + "react-dom": "^16.8.5 || ^17.0.0" +}; + +var semver = /(\d+)\.(\d+)\.(\d+)/; + +var getVersion = function getVersion(value) { + var result = semver.exec(value); + !(result != null) ? process.env.NODE_ENV !== "production" ? invariant(false, "Unable to parse React version " + value) : invariant(false) : void 0; + var major = Number(result[1]); + var minor = Number(result[2]); + var patch = Number(result[3]); + return { + major: major, + minor: minor, + patch: patch, + raw: value + }; +}; + +var isSatisfied = function isSatisfied(expected, actual) { + if (actual.major > expected.major) { + return true; + } + + if (actual.major < expected.major) { + return false; + } + + if (actual.minor > expected.minor) { + return true; + } + + if (actual.minor < expected.minor) { + return false; + } + + return actual.patch >= expected.patch; +}; + +var checkReactVersion = (function (peerDepValue, actualValue) { + var peerDep = getVersion(peerDepValue); + var actual = getVersion(actualValue); + + if (isSatisfied(peerDep, actual)) { + return; + } + + process.env.NODE_ENV !== "production" ? warning("\n React version: [" + actual.raw + "]\n does not satisfy expected peer dependency version: [" + peerDep.raw + "]\n\n This can result in run time bugs, and even fatal crashes\n ") : void 0; +}); + +var suffix = "\n We expect a html5 doctype: \n This is to ensure consistent browser layout and measurement\n\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md\n"; +var checkDoctype = (function (doc) { + var doctype = doc.doctype; + + if (!doctype) { + process.env.NODE_ENV !== "production" ? warning("\n No found.\n\n " + suffix + "\n ") : void 0; + return; + } + + if (doctype.name.toLowerCase() !== 'html') { + process.env.NODE_ENV !== "production" ? warning("\n Unexpected found: (" + doctype.name + ")\n\n " + suffix + "\n ") : void 0; + } + + if (doctype.publicId !== '') { + process.env.NODE_ENV !== "production" ? warning("\n Unexpected publicId found: (" + doctype.publicId + ")\n A html5 doctype does not have a publicId\n\n " + suffix + "\n ") : void 0; + } +}); + +function useDev(useHook) { + if (process.env.NODE_ENV !== 'production') { + useHook(); + } +} + +function useDevSetupWarning(fn, inputs) { + useDev(function () { + useEffect(function () { + try { + fn(); + } catch (e) { + error("\n A setup problem was encountered.\n\n > " + e.message + "\n "); + } + }, inputs); + }); +} + +function useStartupValidation() { + useDevSetupWarning(function () { + checkReactVersion(peerDependencies.react, React.version); + checkDoctype(document); + }, []); +} + +function usePrevious(current) { + var ref = useRef(current); + useEffect(function () { + ref.current = current; + }); + return ref; +} + +function create() { + var lock = null; + + function isClaimed() { + return Boolean(lock); + } + + function isActive(value) { + return value === lock; + } + + function claim(abandon) { + !!lock ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot claim lock as it is already claimed') : invariant(false) : void 0; + var newLock = { + abandon: abandon + }; + lock = newLock; + return newLock; + } + + function release() { + !lock ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot release lock when there is no lock') : invariant(false) : void 0; + lock = null; + } + + function tryAbandon() { + if (lock) { + lock.abandon(); + release(); + } + } + + return { + isClaimed: isClaimed, + isActive: isActive, + claim: claim, + release: release, + tryAbandon: tryAbandon + }; +} + +var tab = 9; +var enter = 13; +var escape = 27; +var space = 32; +var pageUp = 33; +var pageDown = 34; +var end = 35; +var home = 36; +var arrowLeft = 37; +var arrowUp = 38; +var arrowRight = 39; +var arrowDown = 40; + +var _preventedKeys; +var preventedKeys = (_preventedKeys = {}, _preventedKeys[enter] = true, _preventedKeys[tab] = true, _preventedKeys); +var preventStandardKeyEvents = (function (event) { + if (preventedKeys[event.keyCode]) { + event.preventDefault(); + } +}); + +var supportedEventName = function () { + var base = 'visibilitychange'; + + if (typeof document === 'undefined') { + return base; + } + + var candidates = [base, "ms" + base, "webkit" + base, "moz" + base, "o" + base]; + var supported = find(candidates, function (eventName) { + return "on" + eventName in document; + }); + return supported || base; +}(); + +var primaryButton = 0; +var sloppyClickThreshold = 5; + +function isSloppyClickThresholdExceeded(original, current) { + return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold; +} + +var idle$1 = { + type: 'IDLE' +}; + +function getCaptureBindings(_ref) { + var cancel = _ref.cancel, + completed = _ref.completed, + getPhase = _ref.getPhase, + setPhase = _ref.setPhase; + return [{ + eventName: 'mousemove', + fn: function fn(event) { + var button = event.button, + clientX = event.clientX, + clientY = event.clientY; + + if (button !== primaryButton) { + return; + } + + var point = { + x: clientX, + y: clientY + }; + var phase = getPhase(); + + if (phase.type === 'DRAGGING') { + event.preventDefault(); + phase.actions.move(point); + return; + } + + !(phase.type === 'PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot be IDLE') : invariant(false) : void 0; + var pending = phase.point; + + if (!isSloppyClickThresholdExceeded(pending, point)) { + return; + } + + event.preventDefault(); + var actions = phase.actions.fluidLift(point); + setPhase({ + type: 'DRAGGING', + actions: actions + }); + } + }, { + eventName: 'mouseup', + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + event.preventDefault(); + phase.actions.drop({ + shouldBlockNextClick: true + }); + completed(); + } + }, { + eventName: 'mousedown', + fn: function fn(event) { + if (getPhase().type === 'DRAGGING') { + event.preventDefault(); + } + + cancel(); + } + }, { + eventName: 'keydown', + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type === 'PENDING') { + cancel(); + return; + } + + if (event.keyCode === escape) { + event.preventDefault(); + cancel(); + return; + } + + preventStandardKeyEvents(event); + } + }, { + eventName: 'resize', + fn: cancel + }, { + eventName: 'scroll', + options: { + passive: true, + capture: false + }, + fn: function fn() { + if (getPhase().type === 'PENDING') { + cancel(); + } + } + }, { + eventName: 'webkitmouseforcedown', + fn: function fn(event) { + var phase = getPhase(); + !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Unexpected phase') : invariant(false) : void 0; + + if (phase.actions.shouldRespectForcePress()) { + cancel(); + return; + } + + event.preventDefault(); + } + }, { + eventName: supportedEventName, + fn: cancel + }]; +} + +function useMouseSensor(api) { + var phaseRef = useRef(idle$1); + var unbindEventsRef = useRef(noop); + var startCaptureBinding = useMemo(function () { + return { + eventName: 'mousedown', + fn: function onMouseDown(event) { + if (event.defaultPrevented) { + return; + } + + if (event.button !== primaryButton) { + return; + } + + if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) { + return; + } + + var draggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + var actions = api.tryGetLock(draggableId, stop, { + sourceEvent: event + }); + + if (!actions) { + return; + } + + event.preventDefault(); + var point = { + x: event.clientX, + y: event.clientY + }; + unbindEventsRef.current(); + startPendingDrag(actions, point); + } + }; + }, [api]); + var preventForcePressBinding = useMemo(function () { + return { + eventName: 'webkitmouseforcewillbegin', + fn: function fn(event) { + if (event.defaultPrevented) { + return; + } + + var id = api.findClosestDraggableId(event); + + if (!id) { + return; + } + + var options = api.findOptionsForDraggable(id); + + if (!options) { + return; + } + + if (options.shouldRespectForcePress) { + return; + } + + if (!api.canGetLock(id)) { + return; + } + + event.preventDefault(); + } + }; + }, [api]); + var listenForCapture = useCallback(function listenForCapture() { + var options = { + passive: false, + capture: true + }; + unbindEventsRef.current = bindEvents(window, [preventForcePressBinding, startCaptureBinding], options); + }, [preventForcePressBinding, startCaptureBinding]); + var stop = useCallback(function () { + var current = phaseRef.current; + + if (current.type === 'IDLE') { + return; + } + + phaseRef.current = idle$1; + unbindEventsRef.current(); + listenForCapture(); + }, [listenForCapture]); + var cancel = useCallback(function () { + var phase = phaseRef.current; + stop(); + + if (phase.type === 'DRAGGING') { + phase.actions.cancel({ + shouldBlockNextClick: true + }); + } + + if (phase.type === 'PENDING') { + phase.actions.abort(); + } + }, [stop]); + var bindCapturingEvents = useCallback(function bindCapturingEvents() { + var options = { + capture: true, + passive: false + }; + var bindings = getCaptureBindings({ + cancel: cancel, + completed: stop, + getPhase: function getPhase() { + return phaseRef.current; + }, + setPhase: function setPhase(phase) { + phaseRef.current = phase; + } + }); + unbindEventsRef.current = bindEvents(window, bindings, options); + }, [cancel, stop]); + var startPendingDrag = useCallback(function startPendingDrag(actions, point) { + !(phaseRef.current.type === 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0; + phaseRef.current = { + type: 'PENDING', + point: point, + actions: actions + }; + bindCapturingEvents(); + }, [bindCapturingEvents]); + useIsomorphicLayoutEffect(function mount() { + listenForCapture(); + return function unmount() { + unbindEventsRef.current(); + }; + }, [listenForCapture]); +} + +var _scrollJumpKeys; + +function noop$1() {} + +var scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys); + +function getDraggingBindings(actions, stop) { + function cancel() { + stop(); + actions.cancel(); + } + + function drop() { + stop(); + actions.drop(); + } + + return [{ + eventName: 'keydown', + fn: function fn(event) { + if (event.keyCode === escape) { + event.preventDefault(); + cancel(); + return; + } + + if (event.keyCode === space) { + event.preventDefault(); + drop(); + return; + } + + if (event.keyCode === arrowDown) { + event.preventDefault(); + actions.moveDown(); + return; + } + + if (event.keyCode === arrowUp) { + event.preventDefault(); + actions.moveUp(); + return; + } + + if (event.keyCode === arrowRight) { + event.preventDefault(); + actions.moveRight(); + return; + } + + if (event.keyCode === arrowLeft) { + event.preventDefault(); + actions.moveLeft(); + return; + } + + if (scrollJumpKeys[event.keyCode]) { + event.preventDefault(); + return; + } + + preventStandardKeyEvents(event); + } + }, { + eventName: 'mousedown', + fn: cancel + }, { + eventName: 'mouseup', + fn: cancel + }, { + eventName: 'click', + fn: cancel + }, { + eventName: 'touchstart', + fn: cancel + }, { + eventName: 'resize', + fn: cancel + }, { + eventName: 'wheel', + fn: cancel, + options: { + passive: true + } + }, { + eventName: supportedEventName, + fn: cancel + }]; +} + +function useKeyboardSensor(api) { + var unbindEventsRef = useRef(noop$1); + var startCaptureBinding = useMemo(function () { + return { + eventName: 'keydown', + fn: function onKeyDown(event) { + if (event.defaultPrevented) { + return; + } + + if (event.keyCode !== space) { + return; + } + + var draggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + var preDrag = api.tryGetLock(draggableId, stop, { + sourceEvent: event + }); + + if (!preDrag) { + return; + } + + event.preventDefault(); + var isCapturing = true; + var actions = preDrag.snapLift(); + unbindEventsRef.current(); + + function stop() { + !isCapturing ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot stop capturing a keyboard drag when not capturing') : invariant(false) : void 0; + isCapturing = false; + unbindEventsRef.current(); + listenForCapture(); + } + + unbindEventsRef.current = bindEvents(window, getDraggingBindings(actions, stop), { + capture: true, + passive: false + }); + } + }; + }, [api]); + var listenForCapture = useCallback(function tryStartCapture() { + var options = { + passive: false, + capture: true + }; + unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options); + }, [startCaptureBinding]); + useIsomorphicLayoutEffect(function mount() { + listenForCapture(); + return function unmount() { + unbindEventsRef.current(); + }; + }, [listenForCapture]); +} + +var idle$2 = { + type: 'IDLE' +}; +var timeForLongPress = 120; +var forcePressThreshold = 0.15; + +function getWindowBindings(_ref) { + var cancel = _ref.cancel, + getPhase = _ref.getPhase; + return [{ + eventName: 'orientationchange', + fn: cancel + }, { + eventName: 'resize', + fn: cancel + }, { + eventName: 'contextmenu', + fn: function fn(event) { + event.preventDefault(); + } + }, { + eventName: 'keydown', + fn: function fn(event) { + if (getPhase().type !== 'DRAGGING') { + cancel(); + return; + } + + if (event.keyCode === escape) { + event.preventDefault(); + } + + cancel(); + } + }, { + eventName: supportedEventName, + fn: cancel + }]; +} + +function getHandleBindings(_ref2) { + var cancel = _ref2.cancel, + completed = _ref2.completed, + getPhase = _ref2.getPhase; + return [{ + eventName: 'touchmove', + options: { + capture: false + }, + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + phase.hasMoved = true; + var _event$touches$ = event.touches[0], + clientX = _event$touches$.clientX, + clientY = _event$touches$.clientY; + var point = { + x: clientX, + y: clientY + }; + event.preventDefault(); + phase.actions.move(point); + } + }, { + eventName: 'touchend', + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + event.preventDefault(); + phase.actions.drop({ + shouldBlockNextClick: true + }); + completed(); + } + }, { + eventName: 'touchcancel', + fn: function fn(event) { + if (getPhase().type !== 'DRAGGING') { + cancel(); + return; + } + + event.preventDefault(); + cancel(); + } + }, { + eventName: 'touchforcechange', + fn: function fn(event) { + var phase = getPhase(); + !(phase.type !== 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + var touch = event.touches[0]; + + if (!touch) { + return; + } + + var isForcePress = touch.force >= forcePressThreshold; + + if (!isForcePress) { + return; + } + + var shouldRespect = phase.actions.shouldRespectForcePress(); + + if (phase.type === 'PENDING') { + if (shouldRespect) { + cancel(); + } + + return; + } + + if (shouldRespect) { + if (phase.hasMoved) { + event.preventDefault(); + return; + } + + cancel(); + return; + } + + event.preventDefault(); + } + }, { + eventName: supportedEventName, + fn: cancel + }]; +} + +function useTouchSensor(api) { + var phaseRef = useRef(idle$2); + var unbindEventsRef = useRef(noop); + var getPhase = useCallback(function getPhase() { + return phaseRef.current; + }, []); + var setPhase = useCallback(function setPhase(phase) { + phaseRef.current = phase; + }, []); + var startCaptureBinding = useMemo(function () { + return { + eventName: 'touchstart', + fn: function onTouchStart(event) { + if (event.defaultPrevented) { + return; + } + + var draggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + var actions = api.tryGetLock(draggableId, stop, { + sourceEvent: event + }); + + if (!actions) { + return; + } + + var touch = event.touches[0]; + var clientX = touch.clientX, + clientY = touch.clientY; + var point = { + x: clientX, + y: clientY + }; + unbindEventsRef.current(); + startPendingDrag(actions, point); + } + }; + }, [api]); + var listenForCapture = useCallback(function listenForCapture() { + var options = { + capture: true, + passive: false + }; + unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options); + }, [startCaptureBinding]); + var stop = useCallback(function () { + var current = phaseRef.current; + + if (current.type === 'IDLE') { + return; + } + + if (current.type === 'PENDING') { + clearTimeout(current.longPressTimerId); + } + + setPhase(idle$2); + unbindEventsRef.current(); + listenForCapture(); + }, [listenForCapture, setPhase]); + var cancel = useCallback(function () { + var phase = phaseRef.current; + stop(); + + if (phase.type === 'DRAGGING') { + phase.actions.cancel({ + shouldBlockNextClick: true + }); + } + + if (phase.type === 'PENDING') { + phase.actions.abort(); + } + }, [stop]); + var bindCapturingEvents = useCallback(function bindCapturingEvents() { + var options = { + capture: true, + passive: false + }; + var args = { + cancel: cancel, + completed: stop, + getPhase: getPhase + }; + var unbindTarget = bindEvents(window, getHandleBindings(args), options); + var unbindWindow = bindEvents(window, getWindowBindings(args), options); + + unbindEventsRef.current = function unbindAll() { + unbindTarget(); + unbindWindow(); + }; + }, [cancel, getPhase, stop]); + var startDragging = useCallback(function startDragging() { + var phase = getPhase(); + !(phase.type === 'PENDING') ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot start dragging from phase " + phase.type) : invariant(false) : void 0; + var actions = phase.actions.fluidLift(phase.point); + setPhase({ + type: 'DRAGGING', + actions: actions, + hasMoved: false + }); + }, [getPhase, setPhase]); + var startPendingDrag = useCallback(function startPendingDrag(actions, point) { + !(getPhase().type === 'IDLE') ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected to move from IDLE to PENDING drag') : invariant(false) : void 0; + var longPressTimerId = setTimeout(startDragging, timeForLongPress); + setPhase({ + type: 'PENDING', + point: point, + actions: actions, + longPressTimerId: longPressTimerId + }); + bindCapturingEvents(); + }, [bindCapturingEvents, getPhase, setPhase, startDragging]); + useIsomorphicLayoutEffect(function mount() { + listenForCapture(); + return function unmount() { + unbindEventsRef.current(); + var phase = getPhase(); + + if (phase.type === 'PENDING') { + clearTimeout(phase.longPressTimerId); + setPhase(idle$2); + } + }; + }, [getPhase, listenForCapture, setPhase]); + useIsomorphicLayoutEffect(function webkitHack() { + var unbind = bindEvents(window, [{ + eventName: 'touchmove', + fn: function fn() {}, + options: { + capture: false, + passive: false + } + }]); + return unbind; + }, []); +} + +function useValidateSensorHooks(sensorHooks) { + useDev(function () { + var previousRef = usePrevious(sensorHooks); + useDevSetupWarning(function () { + !(previousRef.current.length === sensorHooks.length) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot change the amount of sensor hooks after mounting') : invariant(false) : void 0; + }); + }); +} + +var interactiveTagNames = { + input: true, + button: true, + textarea: true, + select: true, + option: true, + optgroup: true, + video: true, + audio: true +}; + +function isAnInteractiveElement(parent, current) { + if (current == null) { + return false; + } + + var hasAnInteractiveTag = Boolean(interactiveTagNames[current.tagName.toLowerCase()]); + + if (hasAnInteractiveTag) { + return true; + } + + var attribute = current.getAttribute('contenteditable'); + + if (attribute === 'true' || attribute === '') { + return true; + } + + if (current === parent) { + return false; + } + + return isAnInteractiveElement(parent, current.parentElement); +} + +function isEventInInteractiveElement(draggable, event) { + var target = event.target; + + if (!isHtmlElement(target)) { + return false; + } + + return isAnInteractiveElement(draggable, target); +} + +var getBorderBoxCenterPosition = (function (el) { + return getRect(el.getBoundingClientRect()).center; +}); + +function isElement(el) { + return el instanceof getWindowFromEl(el).Element; +} + +var supportedMatchesName = function () { + var base = 'matches'; + + if (typeof document === 'undefined') { + return base; + } + + var candidates = [base, 'msMatchesSelector', 'webkitMatchesSelector']; + var value = find(candidates, function (name) { + return name in Element.prototype; + }); + return value || base; +}(); + +function closestPonyfill(el, selector) { + if (el == null) { + return null; + } + + if (el[supportedMatchesName](selector)) { + return el; + } + + return closestPonyfill(el.parentElement, selector); +} + +function closest$1(el, selector) { + if (el.closest) { + return el.closest(selector); + } + + return closestPonyfill(el, selector); +} + +function getSelector(contextId) { + return "[" + dragHandle.contextId + "=\"" + contextId + "\"]"; +} + +function findClosestDragHandleFromEvent(contextId, event) { + var target = event.target; + + if (!isElement(target)) { + process.env.NODE_ENV !== "production" ? warning('event.target must be a Element') : void 0; + return null; + } + + var selector = getSelector(contextId); + var handle = closest$1(target, selector); + + if (!handle) { + return null; + } + + if (!isHtmlElement(handle)) { + process.env.NODE_ENV !== "production" ? warning('drag handle must be a HTMLElement') : void 0; + return null; + } + + return handle; +} + +function tryGetClosestDraggableIdFromEvent(contextId, event) { + var handle = findClosestDragHandleFromEvent(contextId, event); + + if (!handle) { + return null; + } + + return handle.getAttribute(dragHandle.draggableId); +} + +function findDraggable(contextId, draggableId) { + var selector = "[" + draggable.contextId + "=\"" + contextId + "\"]"; + var possible = toArray(document.querySelectorAll(selector)); + var draggable$1 = find(possible, function (el) { + return el.getAttribute(draggable.id) === draggableId; + }); + + if (!draggable$1) { + return null; + } + + if (!isHtmlElement(draggable$1)) { + process.env.NODE_ENV !== "production" ? warning('Draggable element is not a HTMLElement') : void 0; + return null; + } + + return draggable$1; +} + +function preventDefault(event) { + event.preventDefault(); +} + +function _isActive(_ref) { + var expected = _ref.expected, + phase = _ref.phase, + isLockActive = _ref.isLockActive, + shouldWarn = _ref.shouldWarn; + + if (!isLockActive()) { + if (shouldWarn) { + process.env.NODE_ENV !== "production" ? warning("\n Cannot perform action.\n The sensor no longer has an action lock.\n\n Tips:\n\n - Throw away your action handlers when forceStop() is called\n - Check actions.isActive() if you really need to\n ") : void 0; + } + + return false; + } + + if (expected !== phase) { + if (shouldWarn) { + process.env.NODE_ENV !== "production" ? warning("\n Cannot perform action.\n The actions you used belong to an outdated phase\n\n Current phase: " + expected + "\n You called an action from outdated phase: " + phase + "\n\n Tips:\n\n - Do not use preDragActions actions after calling preDragActions.lift()\n ") : void 0; + } + + return false; + } + + return true; +} + +function canStart(_ref2) { + var lockAPI = _ref2.lockAPI, + store = _ref2.store, + registry = _ref2.registry, + draggableId = _ref2.draggableId; + + if (lockAPI.isClaimed()) { + return false; + } + + var entry = registry.draggable.findById(draggableId); + + if (!entry) { + process.env.NODE_ENV !== "production" ? warning("Unable to find draggable with id: " + draggableId) : void 0; + return false; + } + + if (!entry.options.isEnabled) { + return false; + } + + if (!canStartDrag(store.getState(), draggableId)) { + return false; + } + + return true; +} + +function tryStart(_ref3) { + var lockAPI = _ref3.lockAPI, + contextId = _ref3.contextId, + store = _ref3.store, + registry = _ref3.registry, + draggableId = _ref3.draggableId, + forceSensorStop = _ref3.forceSensorStop, + sourceEvent = _ref3.sourceEvent; + var shouldStart = canStart({ + lockAPI: lockAPI, + store: store, + registry: registry, + draggableId: draggableId + }); + + if (!shouldStart) { + return null; + } + + var entry = registry.draggable.getById(draggableId); + var el = findDraggable(contextId, entry.descriptor.id); + + if (!el) { + process.env.NODE_ENV !== "production" ? warning("Unable to find draggable element with id: " + draggableId) : void 0; + return null; + } + + if (sourceEvent && !entry.options.canDragInteractiveElements && isEventInInteractiveElement(el, sourceEvent)) { + return null; + } + + var lock = lockAPI.claim(forceSensorStop || noop); + var phase = 'PRE_DRAG'; + + function getShouldRespectForcePress() { + return entry.options.shouldRespectForcePress; + } + + function isLockActive() { + return lockAPI.isActive(lock); + } + + function tryDispatch(expected, getAction) { + if (_isActive({ + expected: expected, + phase: phase, + isLockActive: isLockActive, + shouldWarn: true + })) { + store.dispatch(getAction()); + } + } + + var tryDispatchWhenDragging = tryDispatch.bind(null, 'DRAGGING'); + + function lift$1(args) { + function completed() { + lockAPI.release(); + phase = 'COMPLETED'; + } + + if (phase !== 'PRE_DRAG') { + completed(); + !(phase === 'PRE_DRAG') ? process.env.NODE_ENV !== "production" ? invariant(false, "Cannot lift in phase " + phase) : invariant(false) : void 0; + } + + store.dispatch(lift(args.liftActionArgs)); + phase = 'DRAGGING'; + + function finish(reason, options) { + if (options === void 0) { + options = { + shouldBlockNextClick: false + }; + } + + args.cleanup(); + + if (options.shouldBlockNextClick) { + var unbind = bindEvents(window, [{ + eventName: 'click', + fn: preventDefault, + options: { + once: true, + passive: false, + capture: true + } + }]); + setTimeout(unbind); + } + + completed(); + store.dispatch(drop({ + reason: reason + })); + } + + return _extends({ + isActive: function isActive() { + return _isActive({ + expected: 'DRAGGING', + phase: phase, + isLockActive: isLockActive, + shouldWarn: false + }); + }, + shouldRespectForcePress: getShouldRespectForcePress, + drop: function drop(options) { + return finish('DROP', options); + }, + cancel: function cancel(options) { + return finish('CANCEL', options); + } + }, args.actions); + } + + function fluidLift(clientSelection) { + var move$1 = rafSchd(function (client) { + tryDispatchWhenDragging(function () { + return move({ + client: client + }); + }); + }); + var api = lift$1({ + liftActionArgs: { + id: draggableId, + clientSelection: clientSelection, + movementMode: 'FLUID' + }, + cleanup: function cleanup() { + return move$1.cancel(); + }, + actions: { + move: move$1 + } + }); + return _extends({}, api, { + move: move$1 + }); + } + + function snapLift() { + var actions = { + moveUp: function moveUp$1() { + return tryDispatchWhenDragging(moveUp); + }, + moveRight: function moveRight$1() { + return tryDispatchWhenDragging(moveRight); + }, + moveDown: function moveDown$1() { + return tryDispatchWhenDragging(moveDown); + }, + moveLeft: function moveLeft$1() { + return tryDispatchWhenDragging(moveLeft); + } + }; + return lift$1({ + liftActionArgs: { + id: draggableId, + clientSelection: getBorderBoxCenterPosition(el), + movementMode: 'SNAP' + }, + cleanup: noop, + actions: actions + }); + } + + function abortPreDrag() { + var shouldRelease = _isActive({ + expected: 'PRE_DRAG', + phase: phase, + isLockActive: isLockActive, + shouldWarn: true + }); + + if (shouldRelease) { + lockAPI.release(); + } + } + + var preDrag = { + isActive: function isActive() { + return _isActive({ + expected: 'PRE_DRAG', + phase: phase, + isLockActive: isLockActive, + shouldWarn: false + }); + }, + shouldRespectForcePress: getShouldRespectForcePress, + fluidLift: fluidLift, + snapLift: snapLift, + abort: abortPreDrag + }; + return preDrag; +} + +var defaultSensors = [useMouseSensor, useKeyboardSensor, useTouchSensor]; +function useSensorMarshal(_ref4) { + var contextId = _ref4.contextId, + store = _ref4.store, + registry = _ref4.registry, + customSensors = _ref4.customSensors, + enableDefaultSensors = _ref4.enableDefaultSensors; + var useSensors = [].concat(enableDefaultSensors ? defaultSensors : [], customSensors || []); + var lockAPI = useState(function () { + return create(); + })[0]; + var tryAbandonLock = useCallback(function tryAbandonLock(previous, current) { + if (previous.isDragging && !current.isDragging) { + lockAPI.tryAbandon(); + } + }, [lockAPI]); + useIsomorphicLayoutEffect(function listenToStore() { + var previous = store.getState(); + var unsubscribe = store.subscribe(function () { + var current = store.getState(); + tryAbandonLock(previous, current); + previous = current; + }); + return unsubscribe; + }, [lockAPI, store, tryAbandonLock]); + useIsomorphicLayoutEffect(function () { + return lockAPI.tryAbandon; + }, [lockAPI.tryAbandon]); + var canGetLock = useCallback(function (draggableId) { + return canStart({ + lockAPI: lockAPI, + registry: registry, + store: store, + draggableId: draggableId + }); + }, [lockAPI, registry, store]); + var tryGetLock = useCallback(function (draggableId, forceStop, options) { + return tryStart({ + lockAPI: lockAPI, + registry: registry, + contextId: contextId, + store: store, + draggableId: draggableId, + forceSensorStop: forceStop, + sourceEvent: options && options.sourceEvent ? options.sourceEvent : null + }); + }, [contextId, lockAPI, registry, store]); + var findClosestDraggableId = useCallback(function (event) { + return tryGetClosestDraggableIdFromEvent(contextId, event); + }, [contextId]); + var findOptionsForDraggable = useCallback(function (id) { + var entry = registry.draggable.findById(id); + return entry ? entry.options : null; + }, [registry.draggable]); + var tryReleaseLock = useCallback(function tryReleaseLock() { + if (!lockAPI.isClaimed()) { + return; + } + + lockAPI.tryAbandon(); + + if (store.getState().phase !== 'IDLE') { + store.dispatch(flush()); + } + }, [lockAPI, store]); + var isLockClaimed = useCallback(lockAPI.isClaimed, [lockAPI]); + var api = useMemo(function () { + return { + canGetLock: canGetLock, + tryGetLock: tryGetLock, + findClosestDraggableId: findClosestDraggableId, + findOptionsForDraggable: findOptionsForDraggable, + tryReleaseLock: tryReleaseLock, + isLockClaimed: isLockClaimed + }; + }, [canGetLock, tryGetLock, findClosestDraggableId, findOptionsForDraggable, tryReleaseLock, isLockClaimed]); + useValidateSensorHooks(useSensors); + + for (var i = 0; i < useSensors.length; i++) { + useSensors[i](api); + } +} + +var createResponders = function createResponders(props) { + return { + onBeforeCapture: props.onBeforeCapture, + onBeforeDragStart: props.onBeforeDragStart, + onDragStart: props.onDragStart, + onDragEnd: props.onDragEnd, + onDragUpdate: props.onDragUpdate + }; +}; + +function getStore(lazyRef) { + !lazyRef.current ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find store from lazy ref') : invariant(false) : void 0; + return lazyRef.current; +} + +function App(props) { + var contextId = props.contextId, + setCallbacks = props.setCallbacks, + sensors = props.sensors, + nonce = props.nonce, + dragHandleUsageInstructions = props.dragHandleUsageInstructions; + var lazyStoreRef = useRef(null); + useStartupValidation(); + var lastPropsRef = usePrevious(props); + var getResponders = useCallback(function () { + return createResponders(lastPropsRef.current); + }, [lastPropsRef]); + var announce = useAnnouncer(contextId); + var dragHandleUsageInstructionsId = useHiddenTextElement({ + contextId: contextId, + text: dragHandleUsageInstructions + }); + var styleMarshal = useStyleMarshal(contextId, nonce); + var lazyDispatch = useCallback(function (action) { + getStore(lazyStoreRef).dispatch(action); + }, []); + var marshalCallbacks = useMemo(function () { + return bindActionCreators({ + publishWhileDragging: publishWhileDragging, + updateDroppableScroll: updateDroppableScroll, + updateDroppableIsEnabled: updateDroppableIsEnabled, + updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled, + collectionStarting: collectionStarting + }, lazyDispatch); + }, [lazyDispatch]); + var registry = useRegistry(); + var dimensionMarshal = useMemo(function () { + return createDimensionMarshal(registry, marshalCallbacks); + }, [registry, marshalCallbacks]); + var autoScroller = useMemo(function () { + return createAutoScroller(_extends({ + scrollWindow: scrollWindow, + scrollDroppable: dimensionMarshal.scrollDroppable + }, bindActionCreators({ + move: move + }, lazyDispatch))); + }, [dimensionMarshal.scrollDroppable, lazyDispatch]); + var focusMarshal = useFocusMarshal(contextId); + var store = useMemo(function () { + return createStore({ + announce: announce, + autoScroller: autoScroller, + dimensionMarshal: dimensionMarshal, + focusMarshal: focusMarshal, + getResponders: getResponders, + styleMarshal: styleMarshal + }); + }, [announce, autoScroller, dimensionMarshal, focusMarshal, getResponders, styleMarshal]); + + if (process.env.NODE_ENV !== 'production') { + if (lazyStoreRef.current && lazyStoreRef.current !== store) { + process.env.NODE_ENV !== "production" ? warning('unexpected store change') : void 0; + } + } + + lazyStoreRef.current = store; + var tryResetStore = useCallback(function () { + var current = getStore(lazyStoreRef); + var state = current.getState(); + + if (state.phase !== 'IDLE') { + current.dispatch(flush()); + } + }, []); + var isDragging = useCallback(function () { + var state = getStore(lazyStoreRef).getState(); + return state.isDragging || state.phase === 'DROP_ANIMATING'; + }, []); + var appCallbacks = useMemo(function () { + return { + isDragging: isDragging, + tryAbort: tryResetStore + }; + }, [isDragging, tryResetStore]); + setCallbacks(appCallbacks); + var getCanLift = useCallback(function (id) { + return canStartDrag(getStore(lazyStoreRef).getState(), id); + }, []); + var getIsMovementAllowed = useCallback(function () { + return isMovementAllowed(getStore(lazyStoreRef).getState()); + }, []); + var appContext = useMemo(function () { + return { + marshal: dimensionMarshal, + focus: focusMarshal, + contextId: contextId, + canLift: getCanLift, + isMovementAllowed: getIsMovementAllowed, + dragHandleUsageInstructionsId: dragHandleUsageInstructionsId, + registry: registry + }; + }, [contextId, dimensionMarshal, dragHandleUsageInstructionsId, focusMarshal, getCanLift, getIsMovementAllowed, registry]); + useSensorMarshal({ + contextId: contextId, + store: store, + registry: registry, + customSensors: sensors, + enableDefaultSensors: props.enableDefaultSensors !== false + }); + useEffect(function () { + return tryResetStore; + }, [tryResetStore]); + return React.createElement(AppContext.Provider, { + value: appContext + }, React.createElement(Provider, { + context: StoreContext, + store: store + }, props.children)); +} + +var count$1 = 0; +function reset$1() { + count$1 = 0; +} +function useInstanceCount() { + return useMemo(function () { + return "" + count$1++; + }, []); +} + +function resetServerContext() { + reset$1(); + reset(); +} +function DragDropContext(props) { + var contextId = useInstanceCount(); + var dragHandleUsageInstructions = props.dragHandleUsageInstructions || preset.dragHandleUsageInstructions; + return React.createElement(ErrorBoundary, null, function (setCallbacks) { + return React.createElement(App, { + nonce: props.nonce, + contextId: contextId, + setCallbacks: setCallbacks, + dragHandleUsageInstructions: dragHandleUsageInstructions, + enableDefaultSensors: props.enableDefaultSensors, + sensors: props.sensors, + onBeforeCapture: props.onBeforeCapture, + onBeforeDragStart: props.onBeforeDragStart, + onDragStart: props.onDragStart, + onDragUpdate: props.onDragUpdate, + onDragEnd: props.onDragEnd + }, props.children); + }); +} + +var isEqual$1 = function isEqual(base) { + return function (value) { + return base === value; + }; +}; + +var isScroll = isEqual$1('scroll'); +var isAuto = isEqual$1('auto'); +var isVisible$1 = isEqual$1('visible'); + +var isEither = function isEither(overflow, fn) { + return fn(overflow.overflowX) || fn(overflow.overflowY); +}; + +var isBoth = function isBoth(overflow, fn) { + return fn(overflow.overflowX) && fn(overflow.overflowY); +}; + +var isElementScrollable = function isElementScrollable(el) { + var style = window.getComputedStyle(el); + var overflow = { + overflowX: style.overflowX, + overflowY: style.overflowY + }; + return isEither(overflow, isScroll) || isEither(overflow, isAuto); +}; + +var isBodyScrollable = function isBodyScrollable() { + if (process.env.NODE_ENV === 'production') { + return false; + } + + var body = getBodyElement(); + var html = document.documentElement; + !html ? process.env.NODE_ENV !== "production" ? invariant(false) : invariant(false) : void 0; + + if (!isElementScrollable(body)) { + return false; + } + + var htmlStyle = window.getComputedStyle(html); + var htmlOverflow = { + overflowX: htmlStyle.overflowX, + overflowY: htmlStyle.overflowY + }; + + if (isBoth(htmlOverflow, isVisible$1)) { + return false; + } + + process.env.NODE_ENV !== "production" ? warning("\n We have detected that your element might be a scroll container.\n We have found no reliable way of detecting whether the element is a scroll container.\n Under most circumstances a scroll bar will be on the element (document.documentElement)\n\n Because we cannot determine if the is a scroll container, and generally it is not one,\n we will be treating the as *not* a scroll container\n\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/how-we-detect-scroll-containers.md\n ") : void 0; + return false; +}; + +var getClosestScrollable = function getClosestScrollable(el) { + if (el == null) { + return null; + } + + if (el === document.body) { + return isBodyScrollable() ? el : null; + } + + if (el === document.documentElement) { + return null; + } + + if (!isElementScrollable(el)) { + return getClosestScrollable(el.parentElement); + } + + return el; +}; + +var checkForNestedScrollContainers = (function (scrollable) { + if (!scrollable) { + return; + } + + var anotherScrollParent = getClosestScrollable(scrollable.parentElement); + + if (!anotherScrollParent) { + return; + } + + process.env.NODE_ENV !== "production" ? warning("\n Droppable: unsupported nested scroll container detected.\n A Droppable can only have one scroll parent (which can be itself)\n Nested scroll containers are currently not supported.\n\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\n ") : void 0; +}); + +var getScroll$1 = (function (el) { + return { + x: el.scrollLeft, + y: el.scrollTop + }; +}); + +var getIsFixed = function getIsFixed(el) { + if (!el) { + return false; + } + + var style = window.getComputedStyle(el); + + if (style.position === 'fixed') { + return true; + } + + return getIsFixed(el.parentElement); +}; + +var getEnv = (function (start) { + var closestScrollable = getClosestScrollable(start); + var isFixedOnPage = getIsFixed(start); + return { + closestScrollable: closestScrollable, + isFixedOnPage: isFixedOnPage + }; +}); + +var getDroppableDimension = (function (_ref) { + var descriptor = _ref.descriptor, + isEnabled = _ref.isEnabled, + isCombineEnabled = _ref.isCombineEnabled, + isFixedOnPage = _ref.isFixedOnPage, + direction = _ref.direction, + client = _ref.client, + page = _ref.page, + closest = _ref.closest; + + var frame = function () { + if (!closest) { + return null; + } + + var scrollSize = closest.scrollSize, + frameClient = closest.client; + var maxScroll = getMaxScroll({ + scrollHeight: scrollSize.scrollHeight, + scrollWidth: scrollSize.scrollWidth, + height: frameClient.paddingBox.height, + width: frameClient.paddingBox.width + }); + return { + pageMarginBox: closest.page.marginBox, + frameClient: frameClient, + scrollSize: scrollSize, + shouldClipSubject: closest.shouldClipSubject, + scroll: { + initial: closest.scroll, + current: closest.scroll, + max: maxScroll, + diff: { + value: origin, + displacement: origin + } + } + }; + }(); + + var axis = direction === 'vertical' ? vertical : horizontal; + var subject = getSubject({ + page: page, + withPlaceholder: null, + axis: axis, + frame: frame + }); + var dimension = { + descriptor: descriptor, + isCombineEnabled: isCombineEnabled, + isFixedOnPage: isFixedOnPage, + axis: axis, + isEnabled: isEnabled, + client: client, + page: page, + frame: frame, + subject: subject + }; + return dimension; +}); + +var getClient = function getClient(targetRef, closestScrollable) { + var base = getBox(targetRef); + + if (!closestScrollable) { + return base; + } + + if (targetRef !== closestScrollable) { + return base; + } + + var top = base.paddingBox.top - closestScrollable.scrollTop; + var left = base.paddingBox.left - closestScrollable.scrollLeft; + var bottom = top + closestScrollable.scrollHeight; + var right = left + closestScrollable.scrollWidth; + var paddingBox = { + top: top, + right: right, + bottom: bottom, + left: left + }; + var borderBox = expand(paddingBox, base.border); + var client = createBox({ + borderBox: borderBox, + margin: base.margin, + border: base.border, + padding: base.padding + }); + return client; +}; + +var getDimension = (function (_ref) { + var ref = _ref.ref, + descriptor = _ref.descriptor, + env = _ref.env, + windowScroll = _ref.windowScroll, + direction = _ref.direction, + isDropDisabled = _ref.isDropDisabled, + isCombineEnabled = _ref.isCombineEnabled, + shouldClipSubject = _ref.shouldClipSubject; + var closestScrollable = env.closestScrollable; + var client = getClient(ref, closestScrollable); + var page = withScroll(client, windowScroll); + + var closest = function () { + if (!closestScrollable) { + return null; + } + + var frameClient = getBox(closestScrollable); + var scrollSize = { + scrollHeight: closestScrollable.scrollHeight, + scrollWidth: closestScrollable.scrollWidth + }; + return { + client: frameClient, + page: withScroll(frameClient, windowScroll), + scroll: getScroll$1(closestScrollable), + scrollSize: scrollSize, + shouldClipSubject: shouldClipSubject + }; + }(); + + var dimension = getDroppableDimension({ + descriptor: descriptor, + isEnabled: !isDropDisabled, + isCombineEnabled: isCombineEnabled, + isFixedOnPage: env.isFixedOnPage, + direction: direction, + client: client, + page: page, + closest: closest + }); + return dimension; +}); + +var immediate = { + passive: false +}; +var delayed = { + passive: true +}; +var getListenerOptions = (function (options) { + return options.shouldPublishImmediately ? immediate : delayed; +}); + +function useRequiredContext(Context) { + var result = useContext(Context); + !result ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find required context') : invariant(false) : void 0; + return result; +} + +var getClosestScrollableFromDrag = function getClosestScrollableFromDrag(dragging) { + return dragging && dragging.env.closestScrollable || null; +}; + +function useDroppablePublisher(args) { + var whileDraggingRef = useRef(null); + var appContext = useRequiredContext(AppContext); + var uniqueId = useUniqueId('droppable'); + var registry = appContext.registry, + marshal = appContext.marshal; + var previousRef = usePrevious(args); + var descriptor = useMemo(function () { + return { + id: args.droppableId, + type: args.type, + mode: args.mode + }; + }, [args.droppableId, args.mode, args.type]); + var publishedDescriptorRef = useRef(descriptor); + var memoizedUpdateScroll = useMemo(function () { + return memoizeOne(function (x, y) { + !whileDraggingRef.current ? process.env.NODE_ENV !== "production" ? invariant(false, 'Can only update scroll when dragging') : invariant(false) : void 0; + var scroll = { + x: x, + y: y + }; + marshal.updateDroppableScroll(descriptor.id, scroll); + }); + }, [descriptor.id, marshal]); + var getClosestScroll = useCallback(function () { + var dragging = whileDraggingRef.current; + + if (!dragging || !dragging.env.closestScrollable) { + return origin; + } + + return getScroll$1(dragging.env.closestScrollable); + }, []); + var updateScroll = useCallback(function () { + var scroll = getClosestScroll(); + memoizedUpdateScroll(scroll.x, scroll.y); + }, [getClosestScroll, memoizedUpdateScroll]); + var scheduleScrollUpdate = useMemo(function () { + return rafSchd(updateScroll); + }, [updateScroll]); + var onClosestScroll = useCallback(function () { + var dragging = whileDraggingRef.current; + var closest = getClosestScrollableFromDrag(dragging); + !(dragging && closest) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find scroll options while scrolling') : invariant(false) : void 0; + var options = dragging.scrollOptions; + + if (options.shouldPublishImmediately) { + updateScroll(); + return; + } + + scheduleScrollUpdate(); + }, [scheduleScrollUpdate, updateScroll]); + var getDimensionAndWatchScroll = useCallback(function (windowScroll, options) { + !!whileDraggingRef.current ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot collect a droppable while a drag is occurring') : invariant(false) : void 0; + var previous = previousRef.current; + var ref = previous.getDroppableRef(); + !ref ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot collect without a droppable ref') : invariant(false) : void 0; + var env = getEnv(ref); + var dragging = { + ref: ref, + descriptor: descriptor, + env: env, + scrollOptions: options + }; + whileDraggingRef.current = dragging; + var dimension = getDimension({ + ref: ref, + descriptor: descriptor, + env: env, + windowScroll: windowScroll, + direction: previous.direction, + isDropDisabled: previous.isDropDisabled, + isCombineEnabled: previous.isCombineEnabled, + shouldClipSubject: !previous.ignoreContainerClipping + }); + var scrollable = env.closestScrollable; + + if (scrollable) { + scrollable.setAttribute(scrollContainer.contextId, appContext.contextId); + scrollable.addEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions)); + + if (process.env.NODE_ENV !== 'production') { + checkForNestedScrollContainers(scrollable); + } + } + + return dimension; + }, [appContext.contextId, descriptor, onClosestScroll, previousRef]); + var getScrollWhileDragging = useCallback(function () { + var dragging = whileDraggingRef.current; + var closest = getClosestScrollableFromDrag(dragging); + !(dragging && closest) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Can only recollect Droppable client for Droppables that have a scroll container') : invariant(false) : void 0; + return getScroll$1(closest); + }, []); + var dragStopped = useCallback(function () { + var dragging = whileDraggingRef.current; + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot stop drag when no active drag') : invariant(false) : void 0; + var closest = getClosestScrollableFromDrag(dragging); + whileDraggingRef.current = null; + + if (!closest) { + return; + } + + scheduleScrollUpdate.cancel(); + closest.removeAttribute(scrollContainer.contextId); + closest.removeEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions)); + }, [onClosestScroll, scheduleScrollUpdate]); + var scroll = useCallback(function (change) { + var dragging = whileDraggingRef.current; + !dragging ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot scroll when there is no drag') : invariant(false) : void 0; + var closest = getClosestScrollableFromDrag(dragging); + !closest ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : invariant(false) : void 0; + closest.scrollTop += change.y; + closest.scrollLeft += change.x; + }, []); + var callbacks = useMemo(function () { + return { + getDimensionAndWatchScroll: getDimensionAndWatchScroll, + getScrollWhileDragging: getScrollWhileDragging, + dragStopped: dragStopped, + scroll: scroll + }; + }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]); + var entry = useMemo(function () { + return { + uniqueId: uniqueId, + descriptor: descriptor, + callbacks: callbacks + }; + }, [callbacks, descriptor, uniqueId]); + useIsomorphicLayoutEffect(function () { + publishedDescriptorRef.current = entry.descriptor; + registry.droppable.register(entry); + return function () { + if (whileDraggingRef.current) { + process.env.NODE_ENV !== "production" ? warning('Unsupported: changing the droppableId or type of a Droppable during a drag') : void 0; + dragStopped(); + } + + registry.droppable.unregister(entry); + }; + }, [callbacks, descriptor, dragStopped, entry, marshal, registry.droppable]); + useIsomorphicLayoutEffect(function () { + if (!whileDraggingRef.current) { + return; + } + + marshal.updateDroppableIsEnabled(publishedDescriptorRef.current.id, !args.isDropDisabled); + }, [args.isDropDisabled, marshal]); + useIsomorphicLayoutEffect(function () { + if (!whileDraggingRef.current) { + return; + } + + marshal.updateDroppableIsCombineEnabled(publishedDescriptorRef.current.id, args.isCombineEnabled); + }, [args.isCombineEnabled, marshal]); +} + +function noop$2() {} + +var empty = { + width: 0, + height: 0, + margin: noSpacing +}; + +var getSize = function getSize(_ref) { + var isAnimatingOpenOnMount = _ref.isAnimatingOpenOnMount, + placeholder = _ref.placeholder, + animate = _ref.animate; + + if (isAnimatingOpenOnMount) { + return empty; + } + + if (animate === 'close') { + return empty; + } + + return { + height: placeholder.client.borderBox.height, + width: placeholder.client.borderBox.width, + margin: placeholder.client.margin + }; +}; + +var getStyle = function getStyle(_ref2) { + var isAnimatingOpenOnMount = _ref2.isAnimatingOpenOnMount, + placeholder = _ref2.placeholder, + animate = _ref2.animate; + var size = getSize({ + isAnimatingOpenOnMount: isAnimatingOpenOnMount, + placeholder: placeholder, + animate: animate + }); + return { + display: placeholder.display, + boxSizing: 'border-box', + width: size.width, + height: size.height, + marginTop: size.margin.top, + marginRight: size.margin.right, + marginBottom: size.margin.bottom, + marginLeft: size.margin.left, + flexShrink: '0', + flexGrow: '0', + pointerEvents: 'none', + transition: animate !== 'none' ? transitions.placeholder : null + }; +}; + +function Placeholder(props) { + var animateOpenTimerRef = useRef(null); + var tryClearAnimateOpenTimer = useCallback(function () { + if (!animateOpenTimerRef.current) { + return; + } + + clearTimeout(animateOpenTimerRef.current); + animateOpenTimerRef.current = null; + }, []); + var animate = props.animate, + onTransitionEnd = props.onTransitionEnd, + onClose = props.onClose, + contextId = props.contextId; + + var _useState = useState(props.animate === 'open'), + isAnimatingOpenOnMount = _useState[0], + setIsAnimatingOpenOnMount = _useState[1]; + + useEffect(function () { + if (!isAnimatingOpenOnMount) { + return noop$2; + } + + if (animate !== 'open') { + tryClearAnimateOpenTimer(); + setIsAnimatingOpenOnMount(false); + return noop$2; + } + + if (animateOpenTimerRef.current) { + return noop$2; + } + + animateOpenTimerRef.current = setTimeout(function () { + animateOpenTimerRef.current = null; + setIsAnimatingOpenOnMount(false); + }); + return tryClearAnimateOpenTimer; + }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]); + var onSizeChangeEnd = useCallback(function (event) { + if (event.propertyName !== 'height') { + return; + } + + onTransitionEnd(); + + if (animate === 'close') { + onClose(); + } + }, [animate, onClose, onTransitionEnd]); + var style = getStyle({ + isAnimatingOpenOnMount: isAnimatingOpenOnMount, + animate: props.animate, + placeholder: props.placeholder + }); + return React.createElement(props.placeholder.tagName, { + style: style, + 'data-rbd-placeholder-context-id': contextId, + onTransitionEnd: onSizeChangeEnd, + ref: props.innerRef + }); +} + +var Placeholder$1 = React.memo(Placeholder); + +var DroppableContext = React.createContext(null); + +function checkIsValidInnerRef(el) { + !(el && isHtmlElement(el)) ? process.env.NODE_ENV !== "production" ? invariant(false, "\n provided.innerRef has not been provided with a HTMLElement.\n\n You can find a guide on using the innerRef callback functions at:\n https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md\n ") : invariant(false) : void 0; +} + +function isBoolean(value) { + return typeof value === 'boolean'; +} + +function runChecks(args, checks) { + checks.forEach(function (check) { + return check(args); + }); +} + +var shared = [function required(_ref) { + var props = _ref.props; + !props.droppableId ? process.env.NODE_ENV !== "production" ? invariant(false, 'A Droppable requires a droppableId prop') : invariant(false) : void 0; + !(typeof props.droppableId === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, "A Droppable requires a [string] droppableId. Provided: [" + typeof props.droppableId + "]") : invariant(false) : void 0; +}, function _boolean(_ref2) { + var props = _ref2.props; + !isBoolean(props.isDropDisabled) ? process.env.NODE_ENV !== "production" ? invariant(false, 'isDropDisabled must be a boolean') : invariant(false) : void 0; + !isBoolean(props.isCombineEnabled) ? process.env.NODE_ENV !== "production" ? invariant(false, 'isCombineEnabled must be a boolean') : invariant(false) : void 0; + !isBoolean(props.ignoreContainerClipping) ? process.env.NODE_ENV !== "production" ? invariant(false, 'ignoreContainerClipping must be a boolean') : invariant(false) : void 0; +}, function ref(_ref3) { + var getDroppableRef = _ref3.getDroppableRef; + checkIsValidInnerRef(getDroppableRef()); +}]; +var standard = [function placeholder(_ref4) { + var props = _ref4.props, + getPlaceholderRef = _ref4.getPlaceholderRef; + + if (!props.placeholder) { + return; + } + + var ref = getPlaceholderRef(); + + if (ref) { + return; + } + + process.env.NODE_ENV !== "production" ? warning("\n Droppable setup issue [droppableId: \"" + props.droppableId + "\"]:\n DroppableProvided > placeholder could not be found.\n\n Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/droppable.md\n ") : void 0; +}]; +var virtual = [function hasClone(_ref5) { + var props = _ref5.props; + !props.renderClone ? process.env.NODE_ENV !== "production" ? invariant(false, 'Must provide a clone render function (renderClone) for virtual lists') : invariant(false) : void 0; +}, function hasNoPlaceholder(_ref6) { + var getPlaceholderRef = _ref6.getPlaceholderRef; + !!getPlaceholderRef() ? process.env.NODE_ENV !== "production" ? invariant(false, 'Expected virtual list to not have a placeholder') : invariant(false) : void 0; +}]; +function useValidation(args) { + useDevSetupWarning(function () { + runChecks(args, shared); + + if (args.props.mode === 'standard') { + runChecks(args, standard); + } + + if (args.props.mode === 'virtual') { + runChecks(args, virtual); + } + }); +} + +var AnimateInOut = function (_React$PureComponent) { + _inheritsLoose(AnimateInOut, _React$PureComponent); + + function AnimateInOut() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this; + _this.state = { + isVisible: Boolean(_this.props.on), + data: _this.props.on, + animate: _this.props.shouldAnimate && _this.props.on ? 'open' : 'none' + }; + + _this.onClose = function () { + if (_this.state.animate !== 'close') { + return; + } + + _this.setState({ + isVisible: false + }); + }; + + return _this; + } + + AnimateInOut.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) { + if (!props.shouldAnimate) { + return { + isVisible: Boolean(props.on), + data: props.on, + animate: 'none' + }; + } + + if (props.on) { + return { + isVisible: true, + data: props.on, + animate: 'open' + }; + } + + if (state.isVisible) { + return { + isVisible: true, + data: state.data, + animate: 'close' + }; + } + + return { + isVisible: false, + animate: 'close', + data: null + }; + }; + + var _proto = AnimateInOut.prototype; + + _proto.render = function render() { + if (!this.state.isVisible) { + return null; + } + + var provided = { + onClose: this.onClose, + data: this.state.data, + animate: this.state.animate + }; + return this.props.children(provided); + }; + + return AnimateInOut; +}(React.PureComponent); + +var zIndexOptions = { + dragging: 5000, + dropAnimating: 4500 +}; + +var getDraggingTransition = function getDraggingTransition(shouldAnimateDragMovement, dropping) { + if (dropping) { + return transitions.drop(dropping.duration); + } + + if (shouldAnimateDragMovement) { + return transitions.snap; + } + + return transitions.fluid; +}; + +var getDraggingOpacity = function getDraggingOpacity(isCombining, isDropAnimating) { + if (!isCombining) { + return null; + } + + return isDropAnimating ? combine.opacity.drop : combine.opacity.combining; +}; + +var getShouldDraggingAnimate = function getShouldDraggingAnimate(dragging) { + if (dragging.forceShouldAnimate != null) { + return dragging.forceShouldAnimate; + } + + return dragging.mode === 'SNAP'; +}; + +function getDraggingStyle(dragging) { + var dimension = dragging.dimension; + var box = dimension.client; + var offset = dragging.offset, + combineWith = dragging.combineWith, + dropping = dragging.dropping; + var isCombining = Boolean(combineWith); + var shouldAnimate = getShouldDraggingAnimate(dragging); + var isDropAnimating = Boolean(dropping); + var transform = isDropAnimating ? transforms.drop(offset, isCombining) : transforms.moveTo(offset); + var style = { + position: 'fixed', + top: box.marginBox.top, + left: box.marginBox.left, + boxSizing: 'border-box', + width: box.borderBox.width, + height: box.borderBox.height, + transition: getDraggingTransition(shouldAnimate, dropping), + transform: transform, + opacity: getDraggingOpacity(isCombining, isDropAnimating), + zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging, + pointerEvents: 'none' + }; + return style; +} + +function getSecondaryStyle(secondary) { + return { + transform: transforms.moveTo(secondary.offset), + transition: secondary.shouldAnimateDisplacement ? null : 'none' + }; +} + +function getStyle$1(mapped) { + return mapped.type === 'DRAGGING' ? getDraggingStyle(mapped) : getSecondaryStyle(mapped); +} + +function getDimension$1(descriptor, el, windowScroll) { + if (windowScroll === void 0) { + windowScroll = origin; + } + + var computedStyles = window.getComputedStyle(el); + var borderBox = el.getBoundingClientRect(); + var client = calculateBox(borderBox, computedStyles); + var page = withScroll(client, windowScroll); + var placeholder = { + client: client, + tagName: el.tagName.toLowerCase(), + display: computedStyles.display + }; + var displaceBy = { + x: client.marginBox.width, + y: client.marginBox.height + }; + var dimension = { + descriptor: descriptor, + placeholder: placeholder, + displaceBy: displaceBy, + client: client, + page: page + }; + return dimension; +} + +function useDraggablePublisher(args) { + var uniqueId = useUniqueId('draggable'); + var descriptor = args.descriptor, + registry = args.registry, + getDraggableRef = args.getDraggableRef, + canDragInteractiveElements = args.canDragInteractiveElements, + shouldRespectForcePress = args.shouldRespectForcePress, + isEnabled = args.isEnabled; + var options = useMemo(function () { + return { + canDragInteractiveElements: canDragInteractiveElements, + shouldRespectForcePress: shouldRespectForcePress, + isEnabled: isEnabled + }; + }, [canDragInteractiveElements, isEnabled, shouldRespectForcePress]); + var getDimension = useCallback(function (windowScroll) { + var el = getDraggableRef(); + !el ? process.env.NODE_ENV !== "production" ? invariant(false, 'Cannot get dimension when no ref is set') : invariant(false) : void 0; + return getDimension$1(descriptor, el, windowScroll); + }, [descriptor, getDraggableRef]); + var entry = useMemo(function () { + return { + uniqueId: uniqueId, + descriptor: descriptor, + options: options, + getDimension: getDimension + }; + }, [descriptor, getDimension, options, uniqueId]); + var publishedRef = useRef(entry); + var isFirstPublishRef = useRef(true); + useIsomorphicLayoutEffect(function () { + registry.draggable.register(publishedRef.current); + return function () { + return registry.draggable.unregister(publishedRef.current); + }; + }, [registry.draggable]); + useIsomorphicLayoutEffect(function () { + if (isFirstPublishRef.current) { + isFirstPublishRef.current = false; + return; + } + + var last = publishedRef.current; + publishedRef.current = entry; + registry.draggable.update(entry, last); + }, [entry, registry.draggable]); +} + +function useValidation$1(props, contextId, getRef) { + useDevSetupWarning(function () { + function prefix(id) { + return "Draggable[id: " + id + "]: "; + } + + var id = props.draggableId; + !id ? process.env.NODE_ENV !== "production" ? invariant(false, 'Draggable requires a draggableId') : invariant(false) : void 0; + !(typeof id === 'string') ? process.env.NODE_ENV !== "production" ? invariant(false, "Draggable requires a [string] draggableId.\n Provided: [type: " + typeof id + "] (value: " + id + ")") : invariant(false) : void 0; + !isInteger(props.index) ? process.env.NODE_ENV !== "production" ? invariant(false, prefix(id) + " requires an integer index prop") : invariant(false) : void 0; + + if (props.mapped.type === 'DRAGGING') { + return; + } + + checkIsValidInnerRef(getRef()); + + if (props.isEnabled) { + !findDragHandle(contextId, id) ? process.env.NODE_ENV !== "production" ? invariant(false, prefix(id) + " Unable to find drag handle") : invariant(false) : void 0; + } + }); +} +function useClonePropValidation(isClone) { + useDev(function () { + var initialRef = useRef(isClone); + useDevSetupWarning(function () { + !(isClone === initialRef.current) ? process.env.NODE_ENV !== "production" ? invariant(false, 'Draggable isClone prop value changed during component life') : invariant(false) : void 0; + }, [isClone]); + }); +} + +function preventHtml5Dnd(event) { + event.preventDefault(); +} + +function Draggable(props) { + var ref = useRef(null); + var setRef = useCallback(function (el) { + ref.current = el; + }, []); + var getRef = useCallback(function () { + return ref.current; + }, []); + + var _useRequiredContext = useRequiredContext(AppContext), + contextId = _useRequiredContext.contextId, + dragHandleUsageInstructionsId = _useRequiredContext.dragHandleUsageInstructionsId, + registry = _useRequiredContext.registry; + + var _useRequiredContext2 = useRequiredContext(DroppableContext), + type = _useRequiredContext2.type, + droppableId = _useRequiredContext2.droppableId; + + var descriptor = useMemo(function () { + return { + id: props.draggableId, + index: props.index, + type: type, + droppableId: droppableId + }; + }, [props.draggableId, props.index, type, droppableId]); + var children = props.children, + draggableId = props.draggableId, + isEnabled = props.isEnabled, + shouldRespectForcePress = props.shouldRespectForcePress, + canDragInteractiveElements = props.canDragInteractiveElements, + isClone = props.isClone, + mapped = props.mapped, + dropAnimationFinishedAction = props.dropAnimationFinished; + useValidation$1(props, contextId, getRef); + useClonePropValidation(isClone); + + if (!isClone) { + var forPublisher = useMemo(function () { + return { + descriptor: descriptor, + registry: registry, + getDraggableRef: getRef, + canDragInteractiveElements: canDragInteractiveElements, + shouldRespectForcePress: shouldRespectForcePress, + isEnabled: isEnabled + }; + }, [descriptor, registry, getRef, canDragInteractiveElements, shouldRespectForcePress, isEnabled]); + useDraggablePublisher(forPublisher); + } + + var dragHandleProps = useMemo(function () { + return isEnabled ? { + tabIndex: 0, + role: 'button', + 'aria-describedby': dragHandleUsageInstructionsId, + 'data-rbd-drag-handle-draggable-id': draggableId, + 'data-rbd-drag-handle-context-id': contextId, + draggable: false, + onDragStart: preventHtml5Dnd + } : null; + }, [contextId, dragHandleUsageInstructionsId, draggableId, isEnabled]); + var onMoveEnd = useCallback(function (event) { + if (mapped.type !== 'DRAGGING') { + return; + } + + if (!mapped.dropping) { + return; + } + + if (event.propertyName !== 'transform') { + return; + } + + dropAnimationFinishedAction(); + }, [dropAnimationFinishedAction, mapped]); + var provided = useMemo(function () { + var style = getStyle$1(mapped); + var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null; + var result = { + innerRef: setRef, + draggableProps: { + 'data-rbd-draggable-context-id': contextId, + 'data-rbd-draggable-id': draggableId, + style: style, + onTransitionEnd: onTransitionEnd + }, + dragHandleProps: dragHandleProps + }; + return result; + }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]); + var rubric = useMemo(function () { + return { + draggableId: descriptor.id, + type: descriptor.type, + source: { + index: descriptor.index, + droppableId: descriptor.droppableId + } + }; + }, [descriptor.droppableId, descriptor.id, descriptor.index, descriptor.type]); + return children(provided, mapped.snapshot, rubric); +} + +var isStrictEqual = (function (a, b) { + return a === b; +}); + +var whatIsDraggedOverFromResult = (function (result) { + var combine = result.combine, + destination = result.destination; + + if (destination) { + return destination.droppableId; + } + + if (combine) { + return combine.droppableId; + } + + return null; +}); + +var getCombineWithFromResult = function getCombineWithFromResult(result) { + return result.combine ? result.combine.draggableId : null; +}; + +var getCombineWithFromImpact = function getCombineWithFromImpact(impact) { + return impact.at && impact.at.type === 'COMBINE' ? impact.at.combine.draggableId : null; +}; + +function getDraggableSelector() { + var memoizedOffset = memoizeOne(function (x, y) { + return { + x: x, + y: y + }; + }); + var getMemoizedSnapshot = memoizeOne(function (mode, isClone, draggingOver, combineWith, dropping) { + return { + isDragging: true, + isClone: isClone, + isDropAnimating: Boolean(dropping), + dropAnimation: dropping, + mode: mode, + draggingOver: draggingOver, + combineWith: combineWith, + combineTargetFor: null + }; + }); + var getMemoizedProps = memoizeOne(function (offset, mode, dimension, isClone, draggingOver, combineWith, forceShouldAnimate) { + return { + mapped: { + type: 'DRAGGING', + dropping: null, + draggingOver: draggingOver, + combineWith: combineWith, + mode: mode, + offset: offset, + dimension: dimension, + forceShouldAnimate: forceShouldAnimate, + snapshot: getMemoizedSnapshot(mode, isClone, draggingOver, combineWith, null) + } + }; + }); + + var selector = function selector(state, ownProps) { + if (state.isDragging) { + if (state.critical.draggable.id !== ownProps.draggableId) { + return null; + } + + var offset = state.current.client.offset; + var dimension = state.dimensions.draggables[ownProps.draggableId]; + var draggingOver = whatIsDraggedOver(state.impact); + var combineWith = getCombineWithFromImpact(state.impact); + var forceShouldAnimate = state.forceShouldAnimate; + return getMemoizedProps(memoizedOffset(offset.x, offset.y), state.movementMode, dimension, ownProps.isClone, draggingOver, combineWith, forceShouldAnimate); + } + + if (state.phase === 'DROP_ANIMATING') { + var completed = state.completed; + + if (completed.result.draggableId !== ownProps.draggableId) { + return null; + } + + var isClone = ownProps.isClone; + var _dimension = state.dimensions.draggables[ownProps.draggableId]; + var result = completed.result; + var mode = result.mode; + + var _draggingOver = whatIsDraggedOverFromResult(result); + + var _combineWith = getCombineWithFromResult(result); + + var duration = state.dropDuration; + var dropping = { + duration: duration, + curve: curves.drop, + moveTo: state.newHomeClientOffset, + opacity: _combineWith ? combine.opacity.drop : null, + scale: _combineWith ? combine.scale.drop : null + }; + return { + mapped: { + type: 'DRAGGING', + offset: state.newHomeClientOffset, + dimension: _dimension, + dropping: dropping, + draggingOver: _draggingOver, + combineWith: _combineWith, + mode: mode, + forceShouldAnimate: null, + snapshot: getMemoizedSnapshot(mode, isClone, _draggingOver, _combineWith, dropping) + } + }; + } + + return null; + }; + + return selector; +} + +function getSecondarySnapshot(combineTargetFor) { + return { + isDragging: false, + isDropAnimating: false, + isClone: false, + dropAnimation: null, + mode: null, + draggingOver: null, + combineTargetFor: combineTargetFor, + combineWith: null + }; +} + +var atRest = { + mapped: { + type: 'SECONDARY', + offset: origin, + combineTargetFor: null, + shouldAnimateDisplacement: true, + snapshot: getSecondarySnapshot(null) + } +}; + +function getSecondarySelector() { + var memoizedOffset = memoizeOne(function (x, y) { + return { + x: x, + y: y + }; + }); + var getMemoizedSnapshot = memoizeOne(getSecondarySnapshot); + var getMemoizedProps = memoizeOne(function (offset, combineTargetFor, shouldAnimateDisplacement) { + if (combineTargetFor === void 0) { + combineTargetFor = null; + } + + return { + mapped: { + type: 'SECONDARY', + offset: offset, + combineTargetFor: combineTargetFor, + shouldAnimateDisplacement: shouldAnimateDisplacement, + snapshot: getMemoizedSnapshot(combineTargetFor) + } + }; + }); + + var getFallback = function getFallback(combineTargetFor) { + return combineTargetFor ? getMemoizedProps(origin, combineTargetFor, true) : null; + }; + + var getProps = function getProps(ownId, draggingId, impact, afterCritical) { + var visualDisplacement = impact.displaced.visible[ownId]; + var isAfterCriticalInVirtualList = Boolean(afterCritical.inVirtualList && afterCritical.effected[ownId]); + var combine = tryGetCombine(impact); + var combineTargetFor = combine && combine.draggableId === ownId ? draggingId : null; + + if (!visualDisplacement) { + if (!isAfterCriticalInVirtualList) { + return getFallback(combineTargetFor); + } + + if (impact.displaced.invisible[ownId]) { + return null; + } + + var change = negate(afterCritical.displacedBy.point); + + var _offset = memoizedOffset(change.x, change.y); + + return getMemoizedProps(_offset, combineTargetFor, true); + } + + if (isAfterCriticalInVirtualList) { + return getFallback(combineTargetFor); + } + + var displaceBy = impact.displacedBy.point; + var offset = memoizedOffset(displaceBy.x, displaceBy.y); + return getMemoizedProps(offset, combineTargetFor, visualDisplacement.shouldAnimate); + }; + + var selector = function selector(state, ownProps) { + if (state.isDragging) { + if (state.critical.draggable.id === ownProps.draggableId) { + return null; + } + + return getProps(ownProps.draggableId, state.critical.draggable.id, state.impact, state.afterCritical); + } + + if (state.phase === 'DROP_ANIMATING') { + var completed = state.completed; + + if (completed.result.draggableId === ownProps.draggableId) { + return null; + } + + return getProps(ownProps.draggableId, completed.result.draggableId, completed.impact, completed.afterCritical); + } + + return null; + }; + + return selector; +} + +var makeMapStateToProps = function makeMapStateToProps() { + var draggingSelector = getDraggableSelector(); + var secondarySelector = getSecondarySelector(); + + var selector = function selector(state, ownProps) { + return draggingSelector(state, ownProps) || secondarySelector(state, ownProps) || atRest; + }; + + return selector; +}; +var mapDispatchToProps = { + dropAnimationFinished: dropAnimationFinished +}; +var ConnectedDraggable = connect(makeMapStateToProps, mapDispatchToProps, null, { + context: StoreContext, + pure: true, + areStatePropsEqual: isStrictEqual +})(Draggable); + +function PrivateDraggable(props) { + var droppableContext = useRequiredContext(DroppableContext); + var isUsingCloneFor = droppableContext.isUsingCloneFor; + + if (isUsingCloneFor === props.draggableId && !props.isClone) { + return null; + } + + return React.createElement(ConnectedDraggable, props); +} +function PublicDraggable(props) { + var isEnabled = typeof props.isDragDisabled === 'boolean' ? !props.isDragDisabled : true; + var canDragInteractiveElements = Boolean(props.disableInteractiveElementBlocking); + var shouldRespectForcePress = Boolean(props.shouldRespectForcePress); + return React.createElement(PrivateDraggable, _extends({}, props, { + isClone: false, + isEnabled: isEnabled, + canDragInteractiveElements: canDragInteractiveElements, + shouldRespectForcePress: shouldRespectForcePress + })); +} + +function Droppable(props) { + var appContext = useContext(AppContext); + !appContext ? process.env.NODE_ENV !== "production" ? invariant(false, 'Could not find app context') : invariant(false) : void 0; + var contextId = appContext.contextId, + isMovementAllowed = appContext.isMovementAllowed; + var droppableRef = useRef(null); + var placeholderRef = useRef(null); + var children = props.children, + droppableId = props.droppableId, + type = props.type, + mode = props.mode, + direction = props.direction, + ignoreContainerClipping = props.ignoreContainerClipping, + isDropDisabled = props.isDropDisabled, + isCombineEnabled = props.isCombineEnabled, + snapshot = props.snapshot, + useClone = props.useClone, + updateViewportMaxScroll = props.updateViewportMaxScroll, + getContainerForClone = props.getContainerForClone; + var getDroppableRef = useCallback(function () { + return droppableRef.current; + }, []); + var setDroppableRef = useCallback(function (value) { + droppableRef.current = value; + }, []); + var getPlaceholderRef = useCallback(function () { + return placeholderRef.current; + }, []); + var setPlaceholderRef = useCallback(function (value) { + placeholderRef.current = value; + }, []); + useValidation({ + props: props, + getDroppableRef: getDroppableRef, + getPlaceholderRef: getPlaceholderRef + }); + var onPlaceholderTransitionEnd = useCallback(function () { + if (isMovementAllowed()) { + updateViewportMaxScroll({ + maxScroll: getMaxWindowScroll() + }); + } + }, [isMovementAllowed, updateViewportMaxScroll]); + useDroppablePublisher({ + droppableId: droppableId, + type: type, + mode: mode, + direction: direction, + isDropDisabled: isDropDisabled, + isCombineEnabled: isCombineEnabled, + ignoreContainerClipping: ignoreContainerClipping, + getDroppableRef: getDroppableRef + }); + var placeholder = React.createElement(AnimateInOut, { + on: props.placeholder, + shouldAnimate: props.shouldAnimatePlaceholder + }, function (_ref) { + var onClose = _ref.onClose, + data = _ref.data, + animate = _ref.animate; + return React.createElement(Placeholder$1, { + placeholder: data, + onClose: onClose, + innerRef: setPlaceholderRef, + animate: animate, + contextId: contextId, + onTransitionEnd: onPlaceholderTransitionEnd + }); + }); + var provided = useMemo(function () { + return { + innerRef: setDroppableRef, + placeholder: placeholder, + droppableProps: { + 'data-rbd-droppable-id': droppableId, + 'data-rbd-droppable-context-id': contextId + } + }; + }, [contextId, droppableId, placeholder, setDroppableRef]); + var isUsingCloneFor = useClone ? useClone.dragging.draggableId : null; + var droppableContext = useMemo(function () { + return { + droppableId: droppableId, + type: type, + isUsingCloneFor: isUsingCloneFor + }; + }, [droppableId, isUsingCloneFor, type]); + + function getClone() { + if (!useClone) { + return null; + } + + var dragging = useClone.dragging, + render = useClone.render; + var node = React.createElement(PrivateDraggable, { + draggableId: dragging.draggableId, + index: dragging.source.index, + isClone: true, + isEnabled: true, + shouldRespectForcePress: false, + canDragInteractiveElements: true + }, function (draggableProvided, draggableSnapshot) { + return render(draggableProvided, draggableSnapshot, dragging); + }); + return ReactDOM.createPortal(node, getContainerForClone()); + } + + return React.createElement(DroppableContext.Provider, { + value: droppableContext + }, children(provided, snapshot), getClone()); +} + +var isMatchingType = function isMatchingType(type, critical) { + return type === critical.droppable.type; +}; + +var getDraggable = function getDraggable(critical, dimensions) { + return dimensions.draggables[critical.draggable.id]; +}; + +var makeMapStateToProps$1 = function makeMapStateToProps() { + var idleWithAnimation = { + placeholder: null, + shouldAnimatePlaceholder: true, + snapshot: { + isDraggingOver: false, + draggingOverWith: null, + draggingFromThisWith: null, + isUsingPlaceholder: false + }, + useClone: null + }; + + var idleWithoutAnimation = _extends({}, idleWithAnimation, { + shouldAnimatePlaceholder: false + }); + + var getDraggableRubric = memoizeOne(function (descriptor) { + return { + draggableId: descriptor.id, + type: descriptor.type, + source: { + index: descriptor.index, + droppableId: descriptor.droppableId + } + }; + }); + var getMapProps = memoizeOne(function (id, isEnabled, isDraggingOverForConsumer, isDraggingOverForImpact, dragging, renderClone) { + var draggableId = dragging.descriptor.id; + var isHome = dragging.descriptor.droppableId === id; + + if (isHome) { + var useClone = renderClone ? { + render: renderClone, + dragging: getDraggableRubric(dragging.descriptor) + } : null; + var _snapshot = { + isDraggingOver: isDraggingOverForConsumer, + draggingOverWith: isDraggingOverForConsumer ? draggableId : null, + draggingFromThisWith: draggableId, + isUsingPlaceholder: true + }; + return { + placeholder: dragging.placeholder, + shouldAnimatePlaceholder: false, + snapshot: _snapshot, + useClone: useClone + }; + } + + if (!isEnabled) { + return idleWithoutAnimation; + } + + if (!isDraggingOverForImpact) { + return idleWithAnimation; + } + + var snapshot = { + isDraggingOver: isDraggingOverForConsumer, + draggingOverWith: draggableId, + draggingFromThisWith: null, + isUsingPlaceholder: true + }; + return { + placeholder: dragging.placeholder, + shouldAnimatePlaceholder: true, + snapshot: snapshot, + useClone: null + }; + }); + + var selector = function selector(state, ownProps) { + var id = ownProps.droppableId; + var type = ownProps.type; + var isEnabled = !ownProps.isDropDisabled; + var renderClone = ownProps.renderClone; + + if (state.isDragging) { + var critical = state.critical; + + if (!isMatchingType(type, critical)) { + return idleWithoutAnimation; + } + + var dragging = getDraggable(critical, state.dimensions); + var isDraggingOver = whatIsDraggedOver(state.impact) === id; + return getMapProps(id, isEnabled, isDraggingOver, isDraggingOver, dragging, renderClone); + } + + if (state.phase === 'DROP_ANIMATING') { + var completed = state.completed; + + if (!isMatchingType(type, completed.critical)) { + return idleWithoutAnimation; + } + + var _dragging = getDraggable(completed.critical, state.dimensions); + + return getMapProps(id, isEnabled, whatIsDraggedOverFromResult(completed.result) === id, whatIsDraggedOver(completed.impact) === id, _dragging, renderClone); + } + + if (state.phase === 'IDLE' && state.completed && !state.shouldFlush) { + var _completed = state.completed; + + if (!isMatchingType(type, _completed.critical)) { + return idleWithoutAnimation; + } + + var wasOver = whatIsDraggedOver(_completed.impact) === id; + var wasCombining = Boolean(_completed.impact.at && _completed.impact.at.type === 'COMBINE'); + var isHome = _completed.critical.droppable.id === id; + + if (wasOver) { + return wasCombining ? idleWithAnimation : idleWithoutAnimation; + } + + if (isHome) { + return idleWithAnimation; + } + + return idleWithoutAnimation; + } + + return idleWithoutAnimation; + }; + + return selector; +}; +var mapDispatchToProps$1 = { + updateViewportMaxScroll: updateViewportMaxScroll +}; + +function getBody() { + !document.body ? process.env.NODE_ENV !== "production" ? invariant(false, 'document.body is not ready') : invariant(false) : void 0; + return document.body; +} + +var defaultProps = { + mode: 'standard', + type: 'DEFAULT', + direction: 'vertical', + isDropDisabled: false, + isCombineEnabled: false, + ignoreContainerClipping: false, + renderClone: null, + getContainerForClone: getBody +}; +var ConnectedDroppable = connect(makeMapStateToProps$1, mapDispatchToProps$1, null, { + context: StoreContext, + pure: true, + areStatePropsEqual: isStrictEqual +})(Droppable); +ConnectedDroppable.defaultProps = defaultProps; + +export { DragDropContext, PublicDraggable as Draggable, ConnectedDroppable as Droppable, resetServerContext, useKeyboardSensor, useMouseSensor, useTouchSensor }; diff --git a/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.js b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.js new file mode 100644 index 00000000..3061e49c --- /dev/null +++ b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.js @@ -0,0 +1,11525 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('react-dom')) : + typeof define === 'function' && define.amd ? define(['exports', 'react', 'react-dom'], factory) : + (global = global || self, factory(global.ReactBeautifulDnd = {}, global.React, global.ReactDOM)); +}(this, (function (exports, React, ReactDOM) { 'use strict'; + + var React__default = 'default' in React ? React['default'] : React; + var ReactDOM__default = 'default' in ReactDOM ? ReactDOM['default'] : ReactDOM; + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; + } + + var spacesAndTabs = /[ \t]{2,}/g; + var lineStartWithSpaces = /^[ \t]*/gm; + + var clean = function clean(value) { + return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim(); + }; + + var getDevMessage = function getDevMessage(message) { + return clean("\n %creact-beautiful-dnd\n\n %c" + clean(message) + "\n\n %c\uD83D\uDC77\u200D This is a development only message. It will be removed in production builds.\n"); + }; + + var getFormattedMessage = function getFormattedMessage(message) { + return [getDevMessage(message), 'color: #00C584; font-size: 1.2em; font-weight: bold;', 'line-height: 1.5', 'color: #723874;']; + }; + var isDisabledFlag = '__react-beautiful-dnd-disable-dev-warnings'; + function log(type, message) { + var _console; + + if (typeof window !== 'undefined' && window[isDisabledFlag]) { + return; + } + + (_console = console)[type].apply(_console, getFormattedMessage(message)); + } + var warning = log.bind(null, 'warn'); + var error = log.bind(null, 'error'); + + function noop() {} + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function getOptions(shared, fromBinding) { + return _extends({}, shared, {}, fromBinding); + } + + function bindEvents(el, bindings, sharedOptions) { + var unbindings = bindings.map(function (binding) { + var options = getOptions(sharedOptions, binding.options); + el.addEventListener(binding.eventName, binding.fn, options); + return function unbind() { + el.removeEventListener(binding.eventName, binding.fn, options); + }; + }); + return function unbindAll() { + unbindings.forEach(function (unbind) { + unbind(); + }); + }; + } + + var prefix = 'Invariant failed'; + function RbdInvariant(message) { + this.message = message; + } + + RbdInvariant.prototype.toString = function toString() { + return this.message; + }; + + function invariant(condition, message) { + if (condition) { + return; + } + + { + throw new RbdInvariant(prefix + ": " + (message || '')); + } + } + + var ErrorBoundary = function (_React$Component) { + _inheritsLoose(ErrorBoundary, _React$Component); + + function ErrorBoundary() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.callbacks = null; + _this.unbind = noop; + + _this.onWindowError = function (event) { + var callbacks = _this.getCallbacks(); + + if (callbacks.isDragging()) { + callbacks.tryAbort(); + warning("\n An error was caught by our window 'error' event listener while a drag was occurring.\n The active drag has been aborted.\n ") ; + } + + var err = event.error; + + if (err instanceof RbdInvariant) { + event.preventDefault(); + + { + error(err.message); + } + } + }; + + _this.getCallbacks = function () { + if (!_this.callbacks) { + throw new Error('Unable to find AppCallbacks in '); + } + + return _this.callbacks; + }; + + _this.setCallbacks = function (callbacks) { + _this.callbacks = callbacks; + }; + + return _this; + } + + var _proto = ErrorBoundary.prototype; + + _proto.componentDidMount = function componentDidMount() { + this.unbind = bindEvents(window, [{ + eventName: 'error', + fn: this.onWindowError + }]); + }; + + _proto.componentDidCatch = function componentDidCatch(err) { + if (err instanceof RbdInvariant) { + { + error(err.message); + } + + this.setState({}); + return; + } + + throw err; + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + this.unbind(); + }; + + _proto.render = function render() { + return this.props.children(this.setCallbacks); + }; + + return ErrorBoundary; + }(React__default.Component); + + var dragHandleUsageInstructions = "\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n"; + + var position = function position(index) { + return index + 1; + }; + + var onDragStart = function onDragStart(start) { + return "\n You have lifted an item in position " + position(start.source.index) + "\n"; + }; + + var withLocation = function withLocation(source, destination) { + var isInHomeList = source.droppableId === destination.droppableId; + var startPosition = position(source.index); + var endPosition = position(destination.index); + + if (isInHomeList) { + return "\n You have moved the item from position " + startPosition + "\n to position " + endPosition + "\n "; + } + + return "\n You have moved the item from position " + startPosition + "\n in list " + source.droppableId + "\n to list " + destination.droppableId + "\n in position " + endPosition + "\n "; + }; + + var withCombine = function withCombine(id, source, combine) { + var inHomeList = source.droppableId === combine.droppableId; + + if (inHomeList) { + return "\n The item " + id + "\n has been combined with " + combine.draggableId; + } + + return "\n The item " + id + "\n in list " + source.droppableId + "\n has been combined with " + combine.draggableId + "\n in list " + combine.droppableId + "\n "; + }; + + var onDragUpdate = function onDragUpdate(update) { + var location = update.destination; + + if (location) { + return withLocation(update.source, location); + } + + var combine = update.combine; + + if (combine) { + return withCombine(update.draggableId, update.source, combine); + } + + return 'You are over an area that cannot be dropped on'; + }; + + var returnedToStart = function returnedToStart(source) { + return "\n The item has returned to its starting position\n of " + position(source.index) + "\n"; + }; + + var onDragEnd = function onDragEnd(result) { + if (result.reason === 'CANCEL') { + return "\n Movement cancelled.\n " + returnedToStart(result.source) + "\n "; + } + + var location = result.destination; + var combine = result.combine; + + if (location) { + return "\n You have dropped the item.\n " + withLocation(result.source, location) + "\n "; + } + + if (combine) { + return "\n You have dropped the item.\n " + withCombine(result.draggableId, result.source, combine) + "\n "; + } + + return "\n The item has been dropped while not over a drop area.\n " + returnedToStart(result.source) + "\n "; + }; + + var preset = { + dragHandleUsageInstructions: dragHandleUsageInstructions, + onDragStart: onDragStart, + onDragUpdate: onDragUpdate, + onDragEnd: onDragEnd + }; + + function symbolObservablePonyfill(root) { + var result; + var Symbol = root.Symbol; + + if (typeof Symbol === 'function') { + if (Symbol.observable) { + result = Symbol.observable; + } else { + result = Symbol('observable'); + Symbol.observable = result; + } + } else { + result = '@@observable'; + } + + return result; + } + + /* global window */ + + var root; + + if (typeof self !== 'undefined') { + root = self; + } else if (typeof window !== 'undefined') { + root = window; + } else if (typeof global !== 'undefined') { + root = global; + } else if (typeof module !== 'undefined') { + root = module; + } else { + root = Function('return this')(); + } + + var result = symbolObservablePonyfill(root); + + /** + * These are private action types reserved by Redux. + * For any unknown actions, you must return the current state. + * If the current state is undefined, you must return the initial state. + * Do not reference these action types directly in your code. + */ + var randomString = function randomString() { + return Math.random().toString(36).substring(7).split('').join('.'); + }; + + var ActionTypes = { + INIT: "@@redux/INIT" + randomString(), + REPLACE: "@@redux/REPLACE" + randomString(), + PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() { + return "@@redux/PROBE_UNKNOWN_ACTION" + randomString(); + } + }; + + /** + * @param {any} obj The object to inspect. + * @returns {boolean} True if the argument appears to be a plain object. + */ + function isPlainObject(obj) { + if (typeof obj !== 'object' || obj === null) return false; + var proto = obj; + + while (Object.getPrototypeOf(proto) !== null) { + proto = Object.getPrototypeOf(proto); + } + + return Object.getPrototypeOf(obj) === proto; + } + + /** + * Creates a Redux store that holds the state tree. + * The only way to change the data in the store is to call `dispatch()` on it. + * + * There should only be a single store in your app. To specify how different + * parts of the state tree respond to actions, you may combine several reducers + * into a single reducer function by using `combineReducers`. + * + * @param {Function} reducer A function that returns the next state tree, given + * the current state tree and the action to handle. + * + * @param {any} [preloadedState] The initial state. You may optionally specify it + * to hydrate the state from the server in universal apps, or to restore a + * previously serialized user session. + * If you use `combineReducers` to produce the root reducer function, this must be + * an object with the same shape as `combineReducers` keys. + * + * @param {Function} [enhancer] The store enhancer. You may optionally specify it + * to enhance the store with third-party capabilities such as middleware, + * time travel, persistence, etc. The only store enhancer that ships with Redux + * is `applyMiddleware()`. + * + * @returns {Store} A Redux store that lets you read the state, dispatch actions + * and subscribe to changes. + */ + + function createStore(reducer, preloadedState, enhancer) { + var _ref2; + + if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') { + throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.'); + } + + if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { + enhancer = preloadedState; + preloadedState = undefined; + } + + if (typeof enhancer !== 'undefined') { + if (typeof enhancer !== 'function') { + throw new Error('Expected the enhancer to be a function.'); + } + + return enhancer(createStore)(reducer, preloadedState); + } + + if (typeof reducer !== 'function') { + throw new Error('Expected the reducer to be a function.'); + } + + var currentReducer = reducer; + var currentState = preloadedState; + var currentListeners = []; + var nextListeners = currentListeners; + var isDispatching = false; + /** + * This makes a shallow copy of currentListeners so we can use + * nextListeners as a temporary list while dispatching. + * + * This prevents any bugs around consumers calling + * subscribe/unsubscribe in the middle of a dispatch. + */ + + function ensureCanMutateNextListeners() { + if (nextListeners === currentListeners) { + nextListeners = currentListeners.slice(); + } + } + /** + * Reads the state tree managed by the store. + * + * @returns {any} The current state tree of your application. + */ + + + function getState() { + if (isDispatching) { + throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.'); + } + + return currentState; + } + /** + * Adds a change listener. It will be called any time an action is dispatched, + * and some part of the state tree may potentially have changed. You may then + * call `getState()` to read the current state tree inside the callback. + * + * You may call `dispatch()` from a change listener, with the following + * caveats: + * + * 1. The subscriptions are snapshotted just before every `dispatch()` call. + * If you subscribe or unsubscribe while the listeners are being invoked, this + * will not have any effect on the `dispatch()` that is currently in progress. + * However, the next `dispatch()` call, whether nested or not, will use a more + * recent snapshot of the subscription list. + * + * 2. The listener should not expect to see all state changes, as the state + * might have been updated multiple times during a nested `dispatch()` before + * the listener is called. It is, however, guaranteed that all subscribers + * registered before the `dispatch()` started will be called with the latest + * state by the time it exits. + * + * @param {Function} listener A callback to be invoked on every dispatch. + * @returns {Function} A function to remove this change listener. + */ + + + function subscribe(listener) { + if (typeof listener !== 'function') { + throw new Error('Expected the listener to be a function.'); + } + + if (isDispatching) { + throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.'); + } + + var isSubscribed = true; + ensureCanMutateNextListeners(); + nextListeners.push(listener); + return function unsubscribe() { + if (!isSubscribed) { + return; + } + + if (isDispatching) { + throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.'); + } + + isSubscribed = false; + ensureCanMutateNextListeners(); + var index = nextListeners.indexOf(listener); + nextListeners.splice(index, 1); + currentListeners = null; + }; + } + /** + * Dispatches an action. It is the only way to trigger a state change. + * + * The `reducer` function, used to create the store, will be called with the + * current state tree and the given `action`. Its return value will + * be considered the **next** state of the tree, and the change listeners + * will be notified. + * + * The base implementation only supports plain object actions. If you want to + * dispatch a Promise, an Observable, a thunk, or something else, you need to + * wrap your store creating function into the corresponding middleware. For + * example, see the documentation for the `redux-thunk` package. Even the + * middleware will eventually dispatch plain object actions using this method. + * + * @param {Object} action A plain object representing “what changed”. It is + * a good idea to keep actions serializable so you can record and replay user + * sessions, or use the time travelling `redux-devtools`. An action must have + * a `type` property which may not be `undefined`. It is a good idea to use + * string constants for action types. + * + * @returns {Object} For convenience, the same action object you dispatched. + * + * Note that, if you use a custom middleware, it may wrap `dispatch()` to + * return something else (for example, a Promise you can await). + */ + + + function dispatch(action) { + if (!isPlainObject(action)) { + throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); + } + + if (typeof action.type === 'undefined') { + throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); + } + + if (isDispatching) { + throw new Error('Reducers may not dispatch actions.'); + } + + try { + isDispatching = true; + currentState = currentReducer(currentState, action); + } finally { + isDispatching = false; + } + + var listeners = currentListeners = nextListeners; + + for (var i = 0; i < listeners.length; i++) { + var listener = listeners[i]; + listener(); + } + + return action; + } + /** + * Replaces the reducer currently used by the store to calculate the state. + * + * You might need this if your app implements code splitting and you want to + * load some of the reducers dynamically. You might also need this if you + * implement a hot reloading mechanism for Redux. + * + * @param {Function} nextReducer The reducer for the store to use instead. + * @returns {void} + */ + + + function replaceReducer(nextReducer) { + if (typeof nextReducer !== 'function') { + throw new Error('Expected the nextReducer to be a function.'); + } + + currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT. + // Any reducers that existed in both the new and old rootReducer + // will receive the previous state. This effectively populates + // the new state tree with any relevant data from the old one. + + dispatch({ + type: ActionTypes.REPLACE + }); + } + /** + * Interoperability point for observable/reactive libraries. + * @returns {observable} A minimal observable of state changes. + * For more information, see the observable proposal: + * https://github.com/tc39/proposal-observable + */ + + + function observable() { + var _ref; + + var outerSubscribe = subscribe; + return _ref = { + /** + * The minimal observable subscription method. + * @param {Object} observer Any object that can be used as an observer. + * The observer object should have a `next` method. + * @returns {subscription} An object with an `unsubscribe` method that can + * be used to unsubscribe the observable from the store, and prevent further + * emission of values from the observable. + */ + subscribe: function subscribe(observer) { + if (typeof observer !== 'object' || observer === null) { + throw new TypeError('Expected the observer to be an object.'); + } + + function observeState() { + if (observer.next) { + observer.next(getState()); + } + } + + observeState(); + var unsubscribe = outerSubscribe(observeState); + return { + unsubscribe: unsubscribe + }; + } + }, _ref[result] = function () { + return this; + }, _ref; + } // When a store is created, an "INIT" action is dispatched so that every + // reducer returns their initial state. This effectively populates + // the initial state tree. + + + dispatch({ + type: ActionTypes.INIT + }); + return _ref2 = { + dispatch: dispatch, + subscribe: subscribe, + getState: getState, + replaceReducer: replaceReducer + }, _ref2[result] = observable, _ref2; + } + + /** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ + function warning$1(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + + + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + } catch (e) {} // eslint-disable-line no-empty + + } + + function bindActionCreator(actionCreator, dispatch) { + return function () { + return dispatch(actionCreator.apply(this, arguments)); + }; + } + /** + * Turns an object whose values are action creators, into an object with the + * same keys, but with every function wrapped into a `dispatch` call so they + * may be invoked directly. This is just a convenience method, as you can call + * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. + * + * For convenience, you can also pass an action creator as the first argument, + * and get a dispatch wrapped function in return. + * + * @param {Function|Object} actionCreators An object whose values are action + * creator functions. One handy way to obtain it is to use ES6 `import * as` + * syntax. You may also pass a single function. + * + * @param {Function} dispatch The `dispatch` function available on your Redux + * store. + * + * @returns {Function|Object} The object mimicking the original object, but with + * every action creator wrapped into the `dispatch` call. If you passed a + * function as `actionCreators`, the return value will also be a single + * function. + */ + + + function bindActionCreators(actionCreators, dispatch) { + if (typeof actionCreators === 'function') { + return bindActionCreator(actionCreators, dispatch); + } + + if (typeof actionCreators !== 'object' || actionCreators === null) { + throw new Error("bindActionCreators expected an object or a function, instead received " + (actionCreators === null ? 'null' : typeof actionCreators) + ". " + "Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?"); + } + + var boundActionCreators = {}; + + for (var key in actionCreators) { + var actionCreator = actionCreators[key]; + + if (typeof actionCreator === 'function') { + boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); + } + } + + return boundActionCreators; + } + + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + keys.push.apply(keys, Object.getOwnPropertySymbols(object)); + } + + if (enumerableOnly) keys = keys.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + return keys; + } + + function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(source, true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(source).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; + } + + /** + * Composes single-argument functions from right to left. The rightmost + * function can take multiple arguments as it provides the signature for + * the resulting composite function. + * + * @param {...Function} funcs The functions to compose. + * @returns {Function} A function obtained by composing the argument functions + * from right to left. For example, compose(f, g, h) is identical to doing + * (...args) => f(g(h(...args))). + */ + function compose() { + for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { + funcs[_key] = arguments[_key]; + } + + if (funcs.length === 0) { + return function (arg) { + return arg; + }; + } + + if (funcs.length === 1) { + return funcs[0]; + } + + return funcs.reduce(function (a, b) { + return function () { + return a(b.apply(void 0, arguments)); + }; + }); + } + + /** + * Creates a store enhancer that applies middleware to the dispatch method + * of the Redux store. This is handy for a variety of tasks, such as expressing + * asynchronous actions in a concise manner, or logging every action payload. + * + * See `redux-thunk` package as an example of the Redux middleware. + * + * Because middleware is potentially asynchronous, this should be the first + * store enhancer in the composition chain. + * + * Note that each middleware will be given the `dispatch` and `getState` functions + * as named arguments. + * + * @param {...Function} middlewares The middleware chain to be applied. + * @returns {Function} A store enhancer applying the middleware. + */ + + function applyMiddleware() { + for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) { + middlewares[_key] = arguments[_key]; + } + + return function (createStore) { + return function () { + var store = createStore.apply(void 0, arguments); + + var _dispatch = function dispatch() { + throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.'); + }; + + var middlewareAPI = { + getState: store.getState, + dispatch: function dispatch() { + return _dispatch.apply(void 0, arguments); + } + }; + var chain = middlewares.map(function (middleware) { + return middleware(middlewareAPI); + }); + _dispatch = compose.apply(void 0, chain)(store.dispatch); + return _objectSpread2({}, store, { + dispatch: _dispatch + }); + }; + }; + } + + /* + * This is a dummy function to check if the function name has been altered by minification. + * If the function has been minified and NODE_ENV !== 'production', warn the user. + */ + + function isCrushed() {} + + if ( typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') { + warning$1('You are currently using minified code outside of NODE_ENV === "production". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.'); + } + + function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var reactIs_production_min = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports,"__esModule",{value:!0}); + var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"): + 60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118,x=b?Symbol.for("react.scope"):60119;function y(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function z(a){return y(a)===m} + exports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p; + exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h}; + exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p}; + }); + + unwrapExports(reactIs_production_min); + var reactIs_production_min_1 = reactIs_production_min.typeOf; + var reactIs_production_min_2 = reactIs_production_min.AsyncMode; + var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode; + var reactIs_production_min_4 = reactIs_production_min.ContextConsumer; + var reactIs_production_min_5 = reactIs_production_min.ContextProvider; + var reactIs_production_min_6 = reactIs_production_min.Element; + var reactIs_production_min_7 = reactIs_production_min.ForwardRef; + var reactIs_production_min_8 = reactIs_production_min.Fragment; + var reactIs_production_min_9 = reactIs_production_min.Lazy; + var reactIs_production_min_10 = reactIs_production_min.Memo; + var reactIs_production_min_11 = reactIs_production_min.Portal; + var reactIs_production_min_12 = reactIs_production_min.Profiler; + var reactIs_production_min_13 = reactIs_production_min.StrictMode; + var reactIs_production_min_14 = reactIs_production_min.Suspense; + var reactIs_production_min_15 = reactIs_production_min.isValidElementType; + var reactIs_production_min_16 = reactIs_production_min.isAsyncMode; + var reactIs_production_min_17 = reactIs_production_min.isConcurrentMode; + var reactIs_production_min_18 = reactIs_production_min.isContextConsumer; + var reactIs_production_min_19 = reactIs_production_min.isContextProvider; + var reactIs_production_min_20 = reactIs_production_min.isElement; + var reactIs_production_min_21 = reactIs_production_min.isForwardRef; + var reactIs_production_min_22 = reactIs_production_min.isFragment; + var reactIs_production_min_23 = reactIs_production_min.isLazy; + var reactIs_production_min_24 = reactIs_production_min.isMemo; + var reactIs_production_min_25 = reactIs_production_min.isPortal; + var reactIs_production_min_26 = reactIs_production_min.isProfiler; + var reactIs_production_min_27 = reactIs_production_min.isStrictMode; + var reactIs_production_min_28 = reactIs_production_min.isSuspense; + + var reactIs_development = createCommonjsModule(function (module, exports) { + + + + { + (function() { + + Object.defineProperty(exports, '__esModule', { value: true }); + + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var hasSymbol = typeof Symbol === 'function' && Symbol.for; + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary + // (unstable) APIs that have been removed. Can we remove the symbols? + + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; + var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + + function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE); + } + + /** + * Forked from fbjs/warning: + * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js + * + * Only change is we use console.warn instead of console.error, + * and do nothing when 'console' is not supported. + * This really simplifies the code. + * --- + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + var lowPriorityWarningWithoutStack = function () {}; + + { + var printWarning = function (format) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + + if (typeof console !== 'undefined') { + console.warn(message); + } + + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + lowPriorityWarningWithoutStack = function (condition, format) { + if (format === undefined) { + throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (!condition) { + for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(void 0, [format].concat(args)); + } + }; + } + + var lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack; + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } // AsyncMode is deprecated along with isAsyncMode + + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; + lowPriorityWarningWithoutStack$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + exports.typeOf = typeOf; + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isValidElementType = isValidElementType; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + })(); + } + }); + + unwrapExports(reactIs_development); + var reactIs_development_1 = reactIs_development.typeOf; + var reactIs_development_2 = reactIs_development.AsyncMode; + var reactIs_development_3 = reactIs_development.ConcurrentMode; + var reactIs_development_4 = reactIs_development.ContextConsumer; + var reactIs_development_5 = reactIs_development.ContextProvider; + var reactIs_development_6 = reactIs_development.Element; + var reactIs_development_7 = reactIs_development.ForwardRef; + var reactIs_development_8 = reactIs_development.Fragment; + var reactIs_development_9 = reactIs_development.Lazy; + var reactIs_development_10 = reactIs_development.Memo; + var reactIs_development_11 = reactIs_development.Portal; + var reactIs_development_12 = reactIs_development.Profiler; + var reactIs_development_13 = reactIs_development.StrictMode; + var reactIs_development_14 = reactIs_development.Suspense; + var reactIs_development_15 = reactIs_development.isValidElementType; + var reactIs_development_16 = reactIs_development.isAsyncMode; + var reactIs_development_17 = reactIs_development.isConcurrentMode; + var reactIs_development_18 = reactIs_development.isContextConsumer; + var reactIs_development_19 = reactIs_development.isContextProvider; + var reactIs_development_20 = reactIs_development.isElement; + var reactIs_development_21 = reactIs_development.isForwardRef; + var reactIs_development_22 = reactIs_development.isFragment; + var reactIs_development_23 = reactIs_development.isLazy; + var reactIs_development_24 = reactIs_development.isMemo; + var reactIs_development_25 = reactIs_development.isPortal; + var reactIs_development_26 = reactIs_development.isProfiler; + var reactIs_development_27 = reactIs_development.isStrictMode; + var reactIs_development_28 = reactIs_development.isSuspense; + + var reactIs = createCommonjsModule(function (module) { + + { + module.exports = reactIs_development; + } + }); + var reactIs_1 = reactIs.isValidElementType; + var reactIs_2 = reactIs.isContextConsumer; + + /* + object-assign + (c) Sindre Sorhus + @license MIT + */ + /* eslint-disable no-unused-vars */ + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + + function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); + } + + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } + } + + var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; + }; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + + var ReactPropTypesSecret_1 = ReactPropTypesSecret; + + var printWarning = function() {}; + + { + var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; + var loggedTypeFailures = {}; + var has = Function.call.bind(Object.prototype.hasOwnProperty); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + } + + /** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } + } + + /** + * Resets warning cache when testing. + * + * @private + */ + checkPropTypes.resetWarningCache = function() { + { + loggedTypeFailures = {}; + } + }; + + var checkPropTypes_1 = checkPropTypes; + + var has$1 = Function.call.bind(Object.prototype.hasOwnProperty); + var printWarning$1 = function() {}; + + { + printWarning$1 = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + } + + function emptyFunctionThatReturnsNull() { + return null; + } + + var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret_1) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if ( typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning$1( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret_1); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!reactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + { + if (arguments.length > 1) { + printWarning$1( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning$1('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has$1(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + printWarning$1('Invalid argument supplied to oneOfType, expected an instance of array.') ; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning$1( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = objectAssign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes_1; + ReactPropTypes.resetWarningCache = checkPropTypes_1.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; + + var propTypes = createCommonjsModule(function (module) { + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + { + var ReactIs = reactIs; + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = factoryWithTypeCheckers(ReactIs.isElement, throwOnDirectAccess); + } + }); + + var ReactReduxContext = + /*#__PURE__*/ + React__default.createContext(null); + + { + ReactReduxContext.displayName = 'ReactRedux'; + } + + // Default to a dummy "batch" implementation that just runs the callback + function defaultNoopBatch(callback) { + callback(); + } + + var batch = defaultNoopBatch; // Allow injecting another batching function later + + var setBatch = function setBatch(newBatch) { + return batch = newBatch; + }; // Supply a getter just to skip dealing with ESM bindings + + var getBatch = function getBatch() { + return batch; + }; + + // well as nesting subscriptions of descendant components, so that we can ensure the + // ancestor components re-render before descendants + + var nullListeners = { + notify: function notify() {} + }; + + function createListenerCollection() { + var batch = getBatch(); + var first = null; + var last = null; + return { + clear: function clear() { + first = null; + last = null; + }, + notify: function notify() { + batch(function () { + var listener = first; + + while (listener) { + listener.callback(); + listener = listener.next; + } + }); + }, + get: function get() { + var listeners = []; + var listener = first; + + while (listener) { + listeners.push(listener); + listener = listener.next; + } + + return listeners; + }, + subscribe: function subscribe(callback) { + var isSubscribed = true; + var listener = last = { + callback: callback, + next: null, + prev: last + }; + + if (listener.prev) { + listener.prev.next = listener; + } else { + first = listener; + } + + return function unsubscribe() { + if (!isSubscribed || first === null) return; + isSubscribed = false; + + if (listener.next) { + listener.next.prev = listener.prev; + } else { + last = listener.prev; + } + + if (listener.prev) { + listener.prev.next = listener.next; + } else { + first = listener.next; + } + }; + } + }; + } + + var Subscription = + /*#__PURE__*/ + function () { + function Subscription(store, parentSub) { + this.store = store; + this.parentSub = parentSub; + this.unsubscribe = null; + this.listeners = nullListeners; + this.handleChangeWrapper = this.handleChangeWrapper.bind(this); + } + + var _proto = Subscription.prototype; + + _proto.addNestedSub = function addNestedSub(listener) { + this.trySubscribe(); + return this.listeners.subscribe(listener); + }; + + _proto.notifyNestedSubs = function notifyNestedSubs() { + this.listeners.notify(); + }; + + _proto.handleChangeWrapper = function handleChangeWrapper() { + if (this.onStateChange) { + this.onStateChange(); + } + }; + + _proto.isSubscribed = function isSubscribed() { + return Boolean(this.unsubscribe); + }; + + _proto.trySubscribe = function trySubscribe() { + if (!this.unsubscribe) { + this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper); + this.listeners = createListenerCollection(); + } + }; + + _proto.tryUnsubscribe = function tryUnsubscribe() { + if (this.unsubscribe) { + this.unsubscribe(); + this.unsubscribe = null; + this.listeners.clear(); + this.listeners = nullListeners; + } + }; + + return Subscription; + }(); + + function Provider(_ref) { + var store = _ref.store, + context = _ref.context, + children = _ref.children; + var contextValue = React.useMemo(function () { + var subscription = new Subscription(store); + subscription.onStateChange = subscription.notifyNestedSubs; + return { + store: store, + subscription: subscription + }; + }, [store]); + var previousState = React.useMemo(function () { + return store.getState(); + }, [store]); + React.useEffect(function () { + var subscription = contextValue.subscription; + subscription.trySubscribe(); + + if (previousState !== store.getState()) { + subscription.notifyNestedSubs(); + } + + return function () { + subscription.tryUnsubscribe(); + subscription.onStateChange = null; + }; + }, [contextValue, previousState]); + var Context = context || ReactReduxContext; + return React__default.createElement(Context.Provider, { + value: contextValue + }, children); + } + + { + Provider.propTypes = { + store: propTypes.shape({ + subscribe: propTypes.func.isRequired, + dispatch: propTypes.func.isRequired, + getState: propTypes.func.isRequired + }), + context: propTypes.object, + children: propTypes.any + }; + } + + function _extends$1() { + _extends$1 = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends$1.apply(this, arguments); + } + + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; + } + + /** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ + var REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true + }; + var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true + }; + var FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true + }; + var MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true + }; + var TYPE_STATICS = {}; + TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; + TYPE_STATICS[reactIs.Memo] = MEMO_STATICS; + + function getStatics(component) { + // React v16.11 and below + if (reactIs.isMemo(component)) { + return MEMO_STATICS; + } // React v16.12 and above + + + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; + } + + var defineProperty = Object.defineProperty; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertySymbols$1 = Object.getOwnPropertySymbols; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var getPrototypeOf = Object.getPrototypeOf; + var objectPrototype = Object.prototype; + function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { + // don't hoist over string (html) components + if (objectPrototype) { + var inheritedComponent = getPrototypeOf(sourceComponent); + + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + var keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols$1) { + keys = keys.concat(getOwnPropertySymbols$1(sourceComponent)); + } + + var targetStatics = getStatics(targetComponent); + var sourceStatics = getStatics(sourceComponent); + + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + + if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { + var descriptor = getOwnPropertyDescriptor(sourceComponent, key); + + try { + // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + } + + return targetComponent; + } + + var hoistNonReactStatics_cjs = hoistNonReactStatics; + + // To get around it, we can conditionally useEffect on the server (no-op) and + // useLayoutEffect in the browser. We need useLayoutEffect to ensure the store + // subscription callback always has the selector from the latest render commit + // available, otherwise a store update may happen between render and the effect, + // which may cause missed updates; we also must ensure the store subscription + // is created synchronously, otherwise a store update may occur before the + // subscription is created and an inconsistent state may be observed + + var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? React.useLayoutEffect : React.useEffect; + + var EMPTY_ARRAY = []; + var NO_SUBSCRIPTION_ARRAY = [null, null]; + + var stringifyComponent = function stringifyComponent(Comp) { + try { + return JSON.stringify(Comp); + } catch (err) { + return String(Comp); + } + }; + + function storeStateUpdatesReducer(state, action) { + var updateCount = state[1]; + return [action.payload, updateCount + 1]; + } + + function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) { + useIsomorphicLayoutEffect(function () { + return effectFunc.apply(void 0, effectArgs); + }, dependencies); + } + + function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) { + // We want to capture the wrapper props and child props we used for later comparisons + lastWrapperProps.current = wrapperProps; + lastChildProps.current = actualChildProps; + renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update + + if (childPropsFromStoreUpdate.current) { + childPropsFromStoreUpdate.current = null; + notifyNestedSubs(); + } + } + + function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) { + // If we're not subscribed to the store, nothing to do here + if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts + + var didUnsubscribe = false; + var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component + + var checkForUpdates = function checkForUpdates() { + if (didUnsubscribe) { + // Don't run stale listeners. + // Redux doesn't guarantee unsubscriptions happen until next dispatch. + return; + } + + var latestStoreState = store.getState(); + var newChildProps, error; + + try { + // Actually run the selector with the most recent store state and wrapper props + // to determine what the child props should be + newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current); + } catch (e) { + error = e; + lastThrownError = e; + } + + if (!error) { + lastThrownError = null; + } // If the child props haven't changed, nothing to do here - cascade the subscription update + + + if (newChildProps === lastChildProps.current) { + if (!renderIsScheduled.current) { + notifyNestedSubs(); + } + } else { + // Save references to the new child props. Note that we track the "child props from store update" + // as a ref instead of a useState/useReducer because we need a way to determine if that value has + // been processed. If this went into useState/useReducer, we couldn't clear out the value without + // forcing another re-render, which we don't want. + lastChildProps.current = newChildProps; + childPropsFromStoreUpdate.current = newChildProps; + renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render + + forceComponentUpdateDispatch({ + type: 'STORE_UPDATED', + payload: { + error: error + } + }); + } + }; // Actually subscribe to the nearest connected ancestor (or store) + + + subscription.onStateChange = checkForUpdates; + subscription.trySubscribe(); // Pull data from the store after first render in case the store has + // changed since we began. + + checkForUpdates(); + + var unsubscribeWrapper = function unsubscribeWrapper() { + didUnsubscribe = true; + subscription.tryUnsubscribe(); + subscription.onStateChange = null; + + if (lastThrownError) { + // It's possible that we caught an error due to a bad mapState function, but the + // parent re-rendered without this component and we're about to unmount. + // This shouldn't happen as long as we do top-down subscriptions correctly, but + // if we ever do those wrong, this throw will surface the error in our tests. + // In that case, throw the error from here so it doesn't get lost. + throw lastThrownError; + } + }; + + return unsubscribeWrapper; + } + + var initStateUpdates = function initStateUpdates() { + return [null, 0]; + }; + + function connectAdvanced( + /* + selectorFactory is a func that is responsible for returning the selector function used to + compute new props from state, props, and dispatch. For example: + export default connectAdvanced((dispatch, options) => (state, props) => ({ + thing: state.things[props.thingId], + saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)), + }))(YourComponent) + Access to dispatch is provided to the factory so selectorFactories can bind actionCreators + outside of their selector as an optimization. Options passed to connectAdvanced are passed to + the selectorFactory, along with displayName and WrappedComponent, as the second argument. + Note that selectorFactory is responsible for all caching/memoization of inbound and outbound + props. Do not use connectAdvanced directly without memoizing results between calls to your + selector, otherwise the Connect component will re-render on every state or props change. + */ + selectorFactory, // options object: + _ref) { + if (_ref === void 0) { + _ref = {}; + } + + var _ref2 = _ref, + _ref2$getDisplayName = _ref2.getDisplayName, + getDisplayName = _ref2$getDisplayName === void 0 ? function (name) { + return "ConnectAdvanced(" + name + ")"; + } : _ref2$getDisplayName, + _ref2$methodName = _ref2.methodName, + methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName, + _ref2$renderCountProp = _ref2.renderCountProp, + renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp, + _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges, + shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta, + _ref2$storeKey = _ref2.storeKey, + storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey, + _ref2$withRef = _ref2.withRef, + withRef = _ref2$withRef === void 0 ? false : _ref2$withRef, + _ref2$forwardRef = _ref2.forwardRef, + forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef, + _ref2$context = _ref2.context, + context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context, + connectOptions = _objectWithoutPropertiesLoose(_ref2, ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"]); + + { + if (renderCountProp !== undefined) { + throw new Error("renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension"); + } + + if (withRef) { + throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component'); + } + + var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + "React.createContext(), and pass the context object to React Redux's Provider and specific components" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect'; + + if (storeKey !== 'store') { + throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage); + } + } + + var Context = context; + return function wrapWithConnect(WrappedComponent) { + if ( !reactIs_1(WrappedComponent)) { + throw new Error("You must pass a component to the function returned by " + (methodName + ". Instead received " + stringifyComponent(WrappedComponent))); + } + + var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component'; + var displayName = getDisplayName(wrappedComponentName); + + var selectorFactoryOptions = _extends$1({}, connectOptions, { + getDisplayName: getDisplayName, + methodName: methodName, + renderCountProp: renderCountProp, + shouldHandleStateChanges: shouldHandleStateChanges, + storeKey: storeKey, + displayName: displayName, + wrappedComponentName: wrappedComponentName, + WrappedComponent: WrappedComponent + }); + + var pure = connectOptions.pure; + + function createChildSelector(store) { + return selectorFactory(store.dispatch, selectorFactoryOptions); + } // If we aren't running in "pure" mode, we don't want to memoize values. + // To avoid conditionally calling hooks, we fall back to a tiny wrapper + // that just executes the given callback immediately. + + + var usePureOnlyMemo = pure ? React.useMemo : function (callback) { + return callback(); + }; + + function ConnectFunction(props) { + var _useMemo = React.useMemo(function () { + // Distinguish between actual "data" props that were passed to the wrapper component, + // and values needed to control behavior (forwarded refs, alternate context instances). + // To maintain the wrapperProps object reference, memoize this destructuring. + var forwardedRef = props.forwardedRef, + wrapperProps = _objectWithoutPropertiesLoose(props, ["forwardedRef"]); + + return [props.context, forwardedRef, wrapperProps]; + }, [props]), + propsContext = _useMemo[0], + forwardedRef = _useMemo[1], + wrapperProps = _useMemo[2]; + + var ContextToUse = React.useMemo(function () { + // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext. + // Memoize the check that determines which context instance we should use. + return propsContext && propsContext.Consumer && reactIs_2(React__default.createElement(propsContext.Consumer, null)) ? propsContext : Context; + }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available + + var contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context. + // We'll check to see if it _looks_ like a Redux store first. + // This allows us to pass through a `store` prop that is just a plain value. + + var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch); + var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store); + + if ( !didStoreComeFromProps && !didStoreComeFromContext) { + throw new Error("Could not find \"store\" in the context of " + ("\"" + displayName + "\". Either wrap the root component in a , ") + "or pass a custom React context provider to and the corresponding " + ("React context consumer to " + displayName + " in connect options.")); + } // Based on the previous check, one of these must be true + + + var store = didStoreComeFromProps ? props.store : contextValue.store; + var childPropsSelector = React.useMemo(function () { + // The child props selector needs the store reference as an input. + // Re-create this selector whenever the store changes. + return createChildSelector(store); + }, [store]); + + var _useMemo2 = React.useMemo(function () { + if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + + var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `subscription` will then be null. This can + // probably be avoided if Subscription's listeners logic is changed to not call listeners + // that have been unsubscribed in the middle of the notification loop. + + var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription); + return [subscription, notifyNestedSubs]; + }, [store, didStoreComeFromProps, contextValue]), + subscription = _useMemo2[0], + notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary, + // and memoize that value to avoid unnecessary context updates. + + + var overriddenContextValue = React.useMemo(function () { + if (didStoreComeFromProps) { + // This component is directly subscribed to a store from props. + // We don't want descendants reading from this store - pass down whatever + // the existing context value is from the nearest connected ancestor. + return contextValue; + } // Otherwise, put this component's subscription instance into context, so that + // connected descendants won't update until after this component is done + + + return _extends$1({}, contextValue, { + subscription: subscription + }); + }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update + // causes a change to the calculated child component props (or we caught an error in mapState) + + var _useReducer = React.useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates), + _useReducer$ = _useReducer[0], + previousStateUpdateResult = _useReducer$[0], + forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards + + + if (previousStateUpdateResult && previousStateUpdateResult.error) { + throw previousStateUpdateResult.error; + } // Set up refs to coordinate values between the subscription effect and the render logic + + + var lastChildProps = React.useRef(); + var lastWrapperProps = React.useRef(wrapperProps); + var childPropsFromStoreUpdate = React.useRef(); + var renderIsScheduled = React.useRef(false); + var actualChildProps = usePureOnlyMemo(function () { + // Tricky logic here: + // - This render may have been triggered by a Redux store update that produced new child props + // - However, we may have gotten new wrapper props after that + // If we have new child props, and the same wrapper props, we know we should use the new child props as-is. + // But, if we have new wrapper props, those might change the child props, so we have to recalculate things. + // So, we'll use the child props from store update only if the wrapper props are the same as last time. + if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) { + return childPropsFromStoreUpdate.current; + } // TODO We're reading the store directly in render() here. Bad idea? + // This will likely cause Bad Things (TM) to happen in Concurrent Mode. + // Note that we do this because on renders _not_ caused by store updates, we need the latest store state + // to determine what the child props should be. + + + return childPropsSelector(store.getState(), wrapperProps); + }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns + // about useLayoutEffect in SSR, so we try to detect environment and fall back to + // just useEffect instead to avoid the warning, since neither will run anyway. + + useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes + + useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component. + // We memoize the elements for the rendered child component as an optimization. + + var renderedWrappedComponent = React.useMemo(function () { + return React__default.createElement(WrappedComponent, _extends$1({}, actualChildProps, { + ref: forwardedRef + })); + }, [forwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering + // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate. + + var renderedChild = React.useMemo(function () { + if (shouldHandleStateChanges) { + // If this component is subscribed to store updates, we need to pass its own + // subscription instance down to our descendants. That means rendering the same + // Context instance, and putting a different value into the context. + return React__default.createElement(ContextToUse.Provider, { + value: overriddenContextValue + }, renderedWrappedComponent); + } + + return renderedWrappedComponent; + }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]); + return renderedChild; + } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed. + + + var Connect = pure ? React__default.memo(ConnectFunction) : ConnectFunction; + Connect.WrappedComponent = WrappedComponent; + Connect.displayName = displayName; + + if (forwardRef) { + var forwarded = React__default.forwardRef(function forwardConnectRef(props, ref) { + return React__default.createElement(Connect, _extends$1({}, props, { + forwardedRef: ref + })); + }); + forwarded.displayName = displayName; + forwarded.WrappedComponent = WrappedComponent; + return hoistNonReactStatics_cjs(forwarded, WrappedComponent); + } + + return hoistNonReactStatics_cjs(Connect, WrappedComponent); + }; + } + + function is(x, y) { + if (x === y) { + return x !== 0 || y !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } + } + + function shallowEqual(objA, objB) { + if (is(objA, objB)) return true; + + if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + if (keysA.length !== keysB.length) return false; + + for (var i = 0; i < keysA.length; i++) { + if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { + return false; + } + } + + return true; + } + + /** + * @param {any} obj The object to inspect. + * @returns {boolean} True if the argument appears to be a plain object. + */ + function isPlainObject$1(obj) { + if (typeof obj !== 'object' || obj === null) return false; + var proto = Object.getPrototypeOf(obj); + if (proto === null) return true; + var baseProto = proto; + + while (Object.getPrototypeOf(baseProto) !== null) { + baseProto = Object.getPrototypeOf(baseProto); + } + + return proto === baseProto; + } + + /** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ + function warning$2(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + + + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + /* eslint-disable no-empty */ + } catch (e) {} + /* eslint-enable no-empty */ + + } + + function verifyPlainObject(value, displayName, methodName) { + if (!isPlainObject$1(value)) { + warning$2(methodName + "() in " + displayName + " must return a plain object. Instead received " + value + "."); + } + } + + function wrapMapToPropsConstant(getConstant) { + return function initConstantSelector(dispatch, options) { + var constant = getConstant(dispatch, options); + + function constantSelector() { + return constant; + } + + constantSelector.dependsOnOwnProps = false; + return constantSelector; + }; + } // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args + // to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine + // whether mapToProps needs to be invoked when props have changed. + // + // A length of one signals that mapToProps does not depend on props from the parent component. + // A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and + // therefore not reporting its length accurately.. + + function getDependsOnOwnProps(mapToProps) { + return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1; + } // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction, + // this function wraps mapToProps in a proxy function which does several things: + // + // * Detects whether the mapToProps function being called depends on props, which + // is used by selectorFactory to decide if it should reinvoke on props changes. + // + // * On first call, handles mapToProps if returns another function, and treats that + // new function as the true mapToProps for subsequent calls. + // + // * On first call, verifies the first result is a plain object, in order to warn + // the developer that their mapToProps function is not returning a valid result. + // + + function wrapMapToPropsFunc(mapToProps, methodName) { + return function initProxySelector(dispatch, _ref) { + var displayName = _ref.displayName; + + var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) { + return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch); + }; // allow detectFactoryAndVerify to get ownProps + + + proxy.dependsOnOwnProps = true; + + proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) { + proxy.mapToProps = mapToProps; + proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps); + var props = proxy(stateOrDispatch, ownProps); + + if (typeof props === 'function') { + proxy.mapToProps = props; + proxy.dependsOnOwnProps = getDependsOnOwnProps(props); + props = proxy(stateOrDispatch, ownProps); + } + + verifyPlainObject(props, displayName, methodName); + return props; + }; + + return proxy; + }; + } + + function whenMapDispatchToPropsIsFunction(mapDispatchToProps) { + return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined; + } + function whenMapDispatchToPropsIsMissing(mapDispatchToProps) { + return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) { + return { + dispatch: dispatch + }; + }) : undefined; + } + function whenMapDispatchToPropsIsObject(mapDispatchToProps) { + return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) { + return bindActionCreators(mapDispatchToProps, dispatch); + }) : undefined; + } + var defaultMapDispatchToPropsFactories = [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]; + + function whenMapStateToPropsIsFunction(mapStateToProps) { + return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined; + } + function whenMapStateToPropsIsMissing(mapStateToProps) { + return !mapStateToProps ? wrapMapToPropsConstant(function () { + return {}; + }) : undefined; + } + var defaultMapStateToPropsFactories = [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]; + + function defaultMergeProps(stateProps, dispatchProps, ownProps) { + return _extends$1({}, ownProps, {}, stateProps, {}, dispatchProps); + } + function wrapMergePropsFunc(mergeProps) { + return function initMergePropsProxy(dispatch, _ref) { + var displayName = _ref.displayName, + pure = _ref.pure, + areMergedPropsEqual = _ref.areMergedPropsEqual; + var hasRunOnce = false; + var mergedProps; + return function mergePropsProxy(stateProps, dispatchProps, ownProps) { + var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps); + + if (hasRunOnce) { + if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps; + } else { + hasRunOnce = true; + mergedProps = nextMergedProps; + verifyPlainObject(mergedProps, displayName, 'mergeProps'); + } + + return mergedProps; + }; + }; + } + function whenMergePropsIsFunction(mergeProps) { + return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined; + } + function whenMergePropsIsOmitted(mergeProps) { + return !mergeProps ? function () { + return defaultMergeProps; + } : undefined; + } + var defaultMergePropsFactories = [whenMergePropsIsFunction, whenMergePropsIsOmitted]; + + function verify(selector, methodName, displayName) { + if (!selector) { + throw new Error("Unexpected value for " + methodName + " in " + displayName + "."); + } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') { + if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) { + warning$2("The selector for " + methodName + " of " + displayName + " did not specify a value for dependsOnOwnProps."); + } + } + } + + function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) { + verify(mapStateToProps, 'mapStateToProps', displayName); + verify(mapDispatchToProps, 'mapDispatchToProps', displayName); + verify(mergeProps, 'mergeProps', displayName); + } + + function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) { + return function impureFinalPropsSelector(state, ownProps) { + return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps); + }; + } + function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) { + var areStatesEqual = _ref.areStatesEqual, + areOwnPropsEqual = _ref.areOwnPropsEqual, + areStatePropsEqual = _ref.areStatePropsEqual; + var hasRunAtLeastOnce = false; + var state; + var ownProps; + var stateProps; + var dispatchProps; + var mergedProps; + + function handleFirstCall(firstState, firstOwnProps) { + state = firstState; + ownProps = firstOwnProps; + stateProps = mapStateToProps(state, ownProps); + dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + hasRunAtLeastOnce = true; + return mergedProps; + } + + function handleNewPropsAndNewState() { + stateProps = mapStateToProps(state, ownProps); + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewProps() { + if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps); + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewState() { + var nextStateProps = mapStateToProps(state, ownProps); + var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps); + stateProps = nextStateProps; + if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleSubsequentCalls(nextState, nextOwnProps) { + var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps); + var stateChanged = !areStatesEqual(nextState, state); + state = nextState; + ownProps = nextOwnProps; + if (propsChanged && stateChanged) return handleNewPropsAndNewState(); + if (propsChanged) return handleNewProps(); + if (stateChanged) return handleNewState(); + return mergedProps; + } + + return function pureFinalPropsSelector(nextState, nextOwnProps) { + return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps); + }; + } // TODO: Add more comments + // If pure is true, the selector returned by selectorFactory will memoize its results, + // allowing connectAdvanced's shouldComponentUpdate to return false if final + // props have not changed. If false, the selector will always return a new + // object and shouldComponentUpdate will always return true. + + function finalPropsSelectorFactory(dispatch, _ref2) { + var initMapStateToProps = _ref2.initMapStateToProps, + initMapDispatchToProps = _ref2.initMapDispatchToProps, + initMergeProps = _ref2.initMergeProps, + options = _objectWithoutPropertiesLoose(_ref2, ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]); + + var mapStateToProps = initMapStateToProps(dispatch, options); + var mapDispatchToProps = initMapDispatchToProps(dispatch, options); + var mergeProps = initMergeProps(dispatch, options); + + { + verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName); + } + + var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory; + return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options); + } + + /* + connect is a facade over connectAdvanced. It turns its args into a compatible + selectorFactory, which has the signature: + + (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps + + connect passes its args to connectAdvanced as options, which will in turn pass them to + selectorFactory each time a Connect component instance is instantiated or hot reloaded. + + selectorFactory returns a final props selector from its mapStateToProps, + mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps, + mergePropsFactories, and pure args. + + The resulting final props selector is called by the Connect component instance whenever + it receives new props or store state. + */ + + function match(arg, factories, name) { + for (var i = factories.length - 1; i >= 0; i--) { + var result = factories[i](arg); + if (result) return result; + } + + return function (dispatch, options) { + throw new Error("Invalid value of type " + typeof arg + " for " + name + " argument when connecting component " + options.wrappedComponentName + "."); + }; + } + + function strictEqual(a, b) { + return a === b; + } // createConnect with default args builds the 'official' connect behavior. Calling it with + // different options opens up some testing and extensibility scenarios + + + function createConnect(_temp) { + var _ref = _temp === void 0 ? {} : _temp, + _ref$connectHOC = _ref.connectHOC, + connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC, + _ref$mapStateToPropsF = _ref.mapStateToPropsFactories, + mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF, + _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories, + mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro, + _ref$mergePropsFactor = _ref.mergePropsFactories, + mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor, + _ref$selectorFactory = _ref.selectorFactory, + selectorFactory = _ref$selectorFactory === void 0 ? finalPropsSelectorFactory : _ref$selectorFactory; + + return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) { + if (_ref2 === void 0) { + _ref2 = {}; + } + + var _ref3 = _ref2, + _ref3$pure = _ref3.pure, + pure = _ref3$pure === void 0 ? true : _ref3$pure, + _ref3$areStatesEqual = _ref3.areStatesEqual, + areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual, + _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual, + areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua, + _ref3$areStatePropsEq = _ref3.areStatePropsEqual, + areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq, + _ref3$areMergedPropsE = _ref3.areMergedPropsEqual, + areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE, + extraOptions = _objectWithoutPropertiesLoose(_ref3, ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]); + + var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps'); + var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps'); + var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps'); + return connectHOC(selectorFactory, _extends$1({ + // used in error messages + methodName: 'connect', + // used to compute Connect's displayName from the wrapped component's displayName. + getDisplayName: function getDisplayName(name) { + return "Connect(" + name + ")"; + }, + // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes + shouldHandleStateChanges: Boolean(mapStateToProps), + // passed through to selectorFactory + initMapStateToProps: initMapStateToProps, + initMapDispatchToProps: initMapDispatchToProps, + initMergeProps: initMergeProps, + pure: pure, + areStatesEqual: areStatesEqual, + areOwnPropsEqual: areOwnPropsEqual, + areStatePropsEqual: areStatePropsEqual, + areMergedPropsEqual: areMergedPropsEqual + }, extraOptions)); + }; + } + var connect = /*#__PURE__*/ + createConnect(); + + setBatch(ReactDOM.unstable_batchedUpdates); + + function areInputsEqual(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) { + return false; + } + + for (var i = 0; i < newInputs.length; i++) { + if (newInputs[i] !== lastInputs[i]) { + return false; + } + } + + return true; + } + + function useMemoOne(getResult, inputs) { + var initial = React.useState(function () { + return { + inputs: inputs, + result: getResult() + }; + })[0]; + var committed = React.useRef(initial); + var isInputMatch = Boolean(inputs && committed.current.inputs && areInputsEqual(inputs, committed.current.inputs)); + var cache = isInputMatch ? committed.current : { + inputs: inputs, + result: getResult() + }; + React.useEffect(function () { + committed.current = cache; + }, [cache]); + return cache.result; + } + function useCallbackOne(callback, inputs) { + return useMemoOne(function () { + return callback; + }, inputs); + } + var useMemo = useMemoOne; + var useCallback = useCallbackOne; + + var origin = { + x: 0, + y: 0 + }; + var add = function add(point1, point2) { + return { + x: point1.x + point2.x, + y: point1.y + point2.y + }; + }; + var subtract = function subtract(point1, point2) { + return { + x: point1.x - point2.x, + y: point1.y - point2.y + }; + }; + var isEqual = function isEqual(point1, point2) { + return point1.x === point2.x && point1.y === point2.y; + }; + var negate = function negate(point) { + return { + x: point.x !== 0 ? -point.x : 0, + y: point.y !== 0 ? -point.y : 0 + }; + }; + var patch = function patch(line, value, otherValue) { + var _ref; + + if (otherValue === void 0) { + otherValue = 0; + } + + return _ref = {}, _ref[line] = value, _ref[line === 'x' ? 'y' : 'x'] = otherValue, _ref; + }; + var distance = function distance(point1, point2) { + return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2)); + }; + var closest = function closest(target, points) { + return Math.min.apply(Math, points.map(function (point) { + return distance(target, point); + })); + }; + var apply = function apply(fn) { + return function (point) { + return { + x: fn(point.x), + y: fn(point.y) + }; + }; + }; + + var prefix$1 = 'Invariant failed'; + function invariant$1(condition, message) { + if (condition) { + return; + } + throw new Error(prefix$1 + ": " + (message || '')); + } + + var getRect = function getRect(_ref) { + var top = _ref.top, + right = _ref.right, + bottom = _ref.bottom, + left = _ref.left; + var width = right - left; + var height = bottom - top; + var rect = { + top: top, + right: right, + bottom: bottom, + left: left, + width: width, + height: height, + x: left, + y: top, + center: { + x: (right + left) / 2, + y: (bottom + top) / 2 + } + }; + return rect; + }; + var expand = function expand(target, expandBy) { + return { + top: target.top - expandBy.top, + left: target.left - expandBy.left, + bottom: target.bottom + expandBy.bottom, + right: target.right + expandBy.right + }; + }; + var shrink = function shrink(target, shrinkBy) { + return { + top: target.top + shrinkBy.top, + left: target.left + shrinkBy.left, + bottom: target.bottom - shrinkBy.bottom, + right: target.right - shrinkBy.right + }; + }; + + var shift = function shift(target, shiftBy) { + return { + top: target.top + shiftBy.y, + left: target.left + shiftBy.x, + bottom: target.bottom + shiftBy.y, + right: target.right + shiftBy.x + }; + }; + + var noSpacing = { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + var createBox = function createBox(_ref2) { + var borderBox = _ref2.borderBox, + _ref2$margin = _ref2.margin, + margin = _ref2$margin === void 0 ? noSpacing : _ref2$margin, + _ref2$border = _ref2.border, + border = _ref2$border === void 0 ? noSpacing : _ref2$border, + _ref2$padding = _ref2.padding, + padding = _ref2$padding === void 0 ? noSpacing : _ref2$padding; + var marginBox = getRect(expand(borderBox, margin)); + var paddingBox = getRect(shrink(borderBox, border)); + var contentBox = getRect(shrink(paddingBox, padding)); + return { + marginBox: marginBox, + borderBox: getRect(borderBox), + paddingBox: paddingBox, + contentBox: contentBox, + margin: margin, + border: border, + padding: padding + }; + }; + + var parse = function parse(raw) { + var value = raw.slice(0, -2); + var suffix = raw.slice(-2); + + if (suffix !== 'px') { + return 0; + } + + var result = Number(value); + !!isNaN(result) ? invariant$1(false, "Could not parse value [raw: " + raw + ", without suffix: " + value + "]") : void 0; + return result; + }; + + var getWindowScroll = function getWindowScroll() { + return { + x: window.pageXOffset, + y: window.pageYOffset + }; + }; + + var offset = function offset(original, change) { + var borderBox = original.borderBox, + border = original.border, + margin = original.margin, + padding = original.padding; + var shifted = shift(borderBox, change); + return createBox({ + borderBox: shifted, + border: border, + margin: margin, + padding: padding + }); + }; + var withScroll = function withScroll(original, scroll) { + if (scroll === void 0) { + scroll = getWindowScroll(); + } + + return offset(original, scroll); + }; + var calculateBox = function calculateBox(borderBox, styles) { + var margin = { + top: parse(styles.marginTop), + right: parse(styles.marginRight), + bottom: parse(styles.marginBottom), + left: parse(styles.marginLeft) + }; + var padding = { + top: parse(styles.paddingTop), + right: parse(styles.paddingRight), + bottom: parse(styles.paddingBottom), + left: parse(styles.paddingLeft) + }; + var border = { + top: parse(styles.borderTopWidth), + right: parse(styles.borderRightWidth), + bottom: parse(styles.borderBottomWidth), + left: parse(styles.borderLeftWidth) + }; + return createBox({ + borderBox: borderBox, + margin: margin, + padding: padding, + border: border + }); + }; + var getBox = function getBox(el) { + var borderBox = el.getBoundingClientRect(); + var styles = window.getComputedStyle(el); + return calculateBox(borderBox, styles); + }; + + var executeClip = (function (frame, subject) { + var result = getRect({ + top: Math.max(subject.top, frame.top), + right: Math.min(subject.right, frame.right), + bottom: Math.min(subject.bottom, frame.bottom), + left: Math.max(subject.left, frame.left) + }); + + if (result.width <= 0 || result.height <= 0) { + return null; + } + + return result; + }); + + var offsetByPosition = function offsetByPosition(spacing, point) { + return { + top: spacing.top + point.y, + left: spacing.left + point.x, + bottom: spacing.bottom + point.y, + right: spacing.right + point.x + }; + }; + var getCorners = function getCorners(spacing) { + return [{ + x: spacing.left, + y: spacing.top + }, { + x: spacing.right, + y: spacing.top + }, { + x: spacing.left, + y: spacing.bottom + }, { + x: spacing.right, + y: spacing.bottom + }]; + }; + var noSpacing$1 = { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + + var scroll = function scroll(target, frame) { + if (!frame) { + return target; + } + + return offsetByPosition(target, frame.scroll.diff.displacement); + }; + + var increase = function increase(target, axis, withPlaceholder) { + if (withPlaceholder && withPlaceholder.increasedBy) { + var _extends2; + + return _extends({}, target, (_extends2 = {}, _extends2[axis.end] = target[axis.end] + withPlaceholder.increasedBy[axis.line], _extends2)); + } + + return target; + }; + + var clip = function clip(target, frame) { + if (frame && frame.shouldClipSubject) { + return executeClip(frame.pageMarginBox, target); + } + + return getRect(target); + }; + + var getSubject = (function (_ref) { + var page = _ref.page, + withPlaceholder = _ref.withPlaceholder, + axis = _ref.axis, + frame = _ref.frame; + var scrolled = scroll(page.marginBox, frame); + var increased = increase(scrolled, axis, withPlaceholder); + var clipped = clip(increased, frame); + return { + page: page, + withPlaceholder: withPlaceholder, + active: clipped + }; + }); + + var scrollDroppable = (function (droppable, newScroll) { + !droppable.frame ? invariant(false) : void 0; + var scrollable = droppable.frame; + var scrollDiff = subtract(newScroll, scrollable.scroll.initial); + var scrollDisplacement = negate(scrollDiff); + + var frame = _extends({}, scrollable, { + scroll: { + initial: scrollable.scroll.initial, + current: newScroll, + diff: { + value: scrollDiff, + displacement: scrollDisplacement + }, + max: scrollable.scroll.max + } + }); + + var subject = getSubject({ + page: droppable.subject.page, + withPlaceholder: droppable.subject.withPlaceholder, + axis: droppable.axis, + frame: frame + }); + + var result = _extends({}, droppable, { + frame: frame, + subject: subject + }); + + return result; + }); + + function areInputsEqual$1(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) { + return false; + } + for (var i = 0; i < newInputs.length; i++) { + if (newInputs[i] !== lastInputs[i]) { + return false; + } + } + return true; + } + + function memoizeOne(resultFn, isEqual) { + if (isEqual === void 0) { isEqual = areInputsEqual$1; } + var lastThis; + var lastArgs = []; + var lastResult; + var calledOnce = false; + function memoized() { + var newArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + newArgs[_i] = arguments[_i]; + } + if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) { + return lastResult; + } + lastResult = resultFn.apply(this, newArgs); + calledOnce = true; + lastThis = this; + lastArgs = newArgs; + return lastResult; + } + return memoized; + } + + function isInteger(value) { + if (Number.isInteger) { + return Number.isInteger(value); + } + + return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; + } + function values(map) { + if (Object.values) { + return Object.values(map); + } + + return Object.keys(map).map(function (key) { + return map[key]; + }); + } + function findIndex(list, predicate) { + if (list.findIndex) { + return list.findIndex(predicate); + } + + for (var i = 0; i < list.length; i++) { + if (predicate(list[i])) { + return i; + } + } + + return -1; + } + function find(list, predicate) { + if (list.find) { + return list.find(predicate); + } + + var index = findIndex(list, predicate); + + if (index !== -1) { + return list[index]; + } + + return undefined; + } + function toArray(list) { + return Array.prototype.slice.call(list); + } + + var toDroppableMap = memoizeOne(function (droppables) { + return droppables.reduce(function (previous, current) { + previous[current.descriptor.id] = current; + return previous; + }, {}); + }); + var toDraggableMap = memoizeOne(function (draggables) { + return draggables.reduce(function (previous, current) { + previous[current.descriptor.id] = current; + return previous; + }, {}); + }); + var toDroppableList = memoizeOne(function (droppables) { + return values(droppables); + }); + var toDraggableList = memoizeOne(function (draggables) { + return values(draggables); + }); + + var getDraggablesInsideDroppable = memoizeOne(function (droppableId, draggables) { + var result = toDraggableList(draggables).filter(function (draggable) { + return droppableId === draggable.descriptor.droppableId; + }).sort(function (a, b) { + return a.descriptor.index - b.descriptor.index; + }); + return result; + }); + + function tryGetDestination(impact) { + if (impact.at && impact.at.type === 'REORDER') { + return impact.at.destination; + } + + return null; + } + function tryGetCombine(impact) { + if (impact.at && impact.at.type === 'COMBINE') { + return impact.at.combine; + } + + return null; + } + + var removeDraggableFromList = memoizeOne(function (remove, list) { + return list.filter(function (item) { + return item.descriptor.id !== remove.descriptor.id; + }); + }); + + var moveToNextCombine = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + draggable = _ref.draggable, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + previousImpact = _ref.previousImpact; + + if (!destination.isCombineEnabled) { + return null; + } + + var location = tryGetDestination(previousImpact); + + if (!location) { + return null; + } + + function getImpact(target) { + var at = { + type: 'COMBINE', + combine: { + draggableId: target, + droppableId: destination.descriptor.id + } + }; + return _extends({}, previousImpact, { + at: at + }); + } + + var all = previousImpact.displaced.all; + var closestId = all.length ? all[0] : null; + + if (isMovingForward) { + return closestId ? getImpact(closestId) : null; + } + + var withoutDraggable = removeDraggableFromList(draggable, insideDestination); + + if (!closestId) { + if (!withoutDraggable.length) { + return null; + } + + var last = withoutDraggable[withoutDraggable.length - 1]; + return getImpact(last.descriptor.id); + } + + var indexOfClosest = findIndex(withoutDraggable, function (d) { + return d.descriptor.id === closestId; + }); + !(indexOfClosest !== -1) ? invariant(false, 'Could not find displaced item in set') : void 0; + var proposedIndex = indexOfClosest - 1; + + if (proposedIndex < 0) { + return null; + } + + var before = withoutDraggable[proposedIndex]; + return getImpact(before.descriptor.id); + }); + + var isHomeOf = (function (draggable, destination) { + return draggable.descriptor.droppableId === destination.descriptor.id; + }); + + var noDisplacedBy = { + point: origin, + value: 0 + }; + var emptyGroups = { + invisible: {}, + visible: {}, + all: [] + }; + var noImpact = { + displaced: emptyGroups, + displacedBy: noDisplacedBy, + at: null + }; + + var isWithin = (function (lowerBound, upperBound) { + return function (value) { + return lowerBound <= value && value <= upperBound; + }; + }); + + var isPartiallyVisibleThroughFrame = (function (frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function (subject) { + var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right); + + if (isContained) { + return true; + } + + var isPartiallyVisibleVertically = isWithinVertical(subject.top) || isWithinVertical(subject.bottom); + var isPartiallyVisibleHorizontally = isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right); + var isPartiallyContained = isPartiallyVisibleVertically && isPartiallyVisibleHorizontally; + + if (isPartiallyContained) { + return true; + } + + var isBiggerVertically = subject.top < frame.top && subject.bottom > frame.bottom; + var isBiggerHorizontally = subject.left < frame.left && subject.right > frame.right; + var isTargetBiggerThanFrame = isBiggerVertically && isBiggerHorizontally; + + if (isTargetBiggerThanFrame) { + return true; + } + + var isTargetBiggerOnOneAxis = isBiggerVertically && isPartiallyVisibleHorizontally || isBiggerHorizontally && isPartiallyVisibleVertically; + return isTargetBiggerOnOneAxis; + }; + }); + + var isTotallyVisibleThroughFrame = (function (frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function (subject) { + var isContained = isWithinVertical(subject.top) && isWithinVertical(subject.bottom) && isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right); + return isContained; + }; + }); + + var vertical = { + direction: 'vertical', + line: 'y', + crossAxisLine: 'x', + start: 'top', + end: 'bottom', + size: 'height', + crossAxisStart: 'left', + crossAxisEnd: 'right', + crossAxisSize: 'width' + }; + var horizontal = { + direction: 'horizontal', + line: 'x', + crossAxisLine: 'y', + start: 'left', + end: 'right', + size: 'width', + crossAxisStart: 'top', + crossAxisEnd: 'bottom', + crossAxisSize: 'height' + }; + + var isTotallyVisibleThroughFrameOnAxis = (function (axis) { + return function (frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function (subject) { + if (axis === vertical) { + return isWithinVertical(subject.top) && isWithinVertical(subject.bottom); + } + + return isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right); + }; + }; + }); + + var getDroppableDisplaced = function getDroppableDisplaced(target, destination) { + var displacement = destination.frame ? destination.frame.scroll.diff.displacement : origin; + return offsetByPosition(target, displacement); + }; + + var isVisibleInDroppable = function isVisibleInDroppable(target, destination, isVisibleThroughFrameFn) { + if (!destination.subject.active) { + return false; + } + + return isVisibleThroughFrameFn(destination.subject.active)(target); + }; + + var isVisibleInViewport = function isVisibleInViewport(target, viewport, isVisibleThroughFrameFn) { + return isVisibleThroughFrameFn(viewport)(target); + }; + + var isVisible = function isVisible(_ref) { + var toBeDisplaced = _ref.target, + destination = _ref.destination, + viewport = _ref.viewport, + withDroppableDisplacement = _ref.withDroppableDisplacement, + isVisibleThroughFrameFn = _ref.isVisibleThroughFrameFn; + var displacedTarget = withDroppableDisplacement ? getDroppableDisplaced(toBeDisplaced, destination) : toBeDisplaced; + return isVisibleInDroppable(displacedTarget, destination, isVisibleThroughFrameFn) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn); + }; + + var isPartiallyVisible = function isPartiallyVisible(args) { + return isVisible(_extends({}, args, { + isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame + })); + }; + var isTotallyVisible = function isTotallyVisible(args) { + return isVisible(_extends({}, args, { + isVisibleThroughFrameFn: isTotallyVisibleThroughFrame + })); + }; + var isTotallyVisibleOnAxis = function isTotallyVisibleOnAxis(args) { + return isVisible(_extends({}, args, { + isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis(args.destination.axis) + })); + }; + + var getShouldAnimate = function getShouldAnimate(id, last, forceShouldAnimate) { + if (typeof forceShouldAnimate === 'boolean') { + return forceShouldAnimate; + } + + if (!last) { + return true; + } + + var invisible = last.invisible, + visible = last.visible; + + if (invisible[id]) { + return false; + } + + var previous = visible[id]; + return previous ? previous.shouldAnimate : true; + }; + + function getTarget(draggable, displacedBy) { + var marginBox = draggable.page.marginBox; + var expandBy = { + top: displacedBy.point.y, + right: 0, + bottom: 0, + left: displacedBy.point.x + }; + return getRect(expand(marginBox, expandBy)); + } + + function getDisplacementGroups(_ref) { + var afterDragging = _ref.afterDragging, + destination = _ref.destination, + displacedBy = _ref.displacedBy, + viewport = _ref.viewport, + forceShouldAnimate = _ref.forceShouldAnimate, + last = _ref.last; + return afterDragging.reduce(function process(groups, draggable) { + var target = getTarget(draggable, displacedBy); + var id = draggable.descriptor.id; + groups.all.push(id); + var isVisible = isPartiallyVisible({ + target: target, + destination: destination, + viewport: viewport, + withDroppableDisplacement: true + }); + + if (!isVisible) { + groups.invisible[draggable.descriptor.id] = true; + return groups; + } + + var shouldAnimate = getShouldAnimate(id, last, forceShouldAnimate); + var displacement = { + draggableId: id, + shouldAnimate: shouldAnimate + }; + groups.visible[id] = displacement; + return groups; + }, { + all: [], + visible: {}, + invisible: {} + }); + } + + function getIndexOfLastItem(draggables, options) { + if (!draggables.length) { + return 0; + } + + var indexOfLastItem = draggables[draggables.length - 1].descriptor.index; + return options.inHomeList ? indexOfLastItem : indexOfLastItem + 1; + } + + function goAtEnd(_ref) { + var insideDestination = _ref.insideDestination, + inHomeList = _ref.inHomeList, + displacedBy = _ref.displacedBy, + destination = _ref.destination; + var newIndex = getIndexOfLastItem(insideDestination, { + inHomeList: inHomeList + }); + return { + displaced: emptyGroups, + displacedBy: displacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: newIndex + } + } + }; + } + + function calculateReorderImpact(_ref2) { + var draggable = _ref2.draggable, + insideDestination = _ref2.insideDestination, + destination = _ref2.destination, + viewport = _ref2.viewport, + displacedBy = _ref2.displacedBy, + last = _ref2.last, + index = _ref2.index, + forceShouldAnimate = _ref2.forceShouldAnimate; + var inHomeList = isHomeOf(draggable, destination); + + if (index == null) { + return goAtEnd({ + insideDestination: insideDestination, + inHomeList: inHomeList, + displacedBy: displacedBy, + destination: destination + }); + } + + var match = find(insideDestination, function (item) { + return item.descriptor.index === index; + }); + + if (!match) { + return goAtEnd({ + insideDestination: insideDestination, + inHomeList: inHomeList, + displacedBy: displacedBy, + destination: destination + }); + } + + var withoutDragging = removeDraggableFromList(draggable, insideDestination); + var sliceFrom = insideDestination.indexOf(match); + var impacted = withoutDragging.slice(sliceFrom); + var displaced = getDisplacementGroups({ + afterDragging: impacted, + destination: destination, + displacedBy: displacedBy, + last: last, + viewport: viewport.frame, + forceShouldAnimate: forceShouldAnimate + }); + return { + displaced: displaced, + displacedBy: displacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: index + } + } + }; + } + + function didStartAfterCritical(draggableId, afterCritical) { + return Boolean(afterCritical.effected[draggableId]); + } + + var fromCombine = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + destination = _ref.destination, + draggables = _ref.draggables, + combine = _ref.combine, + afterCritical = _ref.afterCritical; + + if (!destination.isCombineEnabled) { + return null; + } + + var combineId = combine.draggableId; + var combineWith = draggables[combineId]; + var combineWithIndex = combineWith.descriptor.index; + var didCombineWithStartAfterCritical = didStartAfterCritical(combineId, afterCritical); + + if (didCombineWithStartAfterCritical) { + if (isMovingForward) { + return combineWithIndex; + } + + return combineWithIndex - 1; + } + + if (isMovingForward) { + return combineWithIndex + 1; + } + + return combineWithIndex; + }); + + var fromReorder = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + isInHomeList = _ref.isInHomeList, + insideDestination = _ref.insideDestination, + location = _ref.location; + + if (!insideDestination.length) { + return null; + } + + var currentIndex = location.index; + var proposedIndex = isMovingForward ? currentIndex + 1 : currentIndex - 1; + var firstIndex = insideDestination[0].descriptor.index; + var lastIndex = insideDestination[insideDestination.length - 1].descriptor.index; + var upperBound = isInHomeList ? lastIndex : lastIndex + 1; + + if (proposedIndex < firstIndex) { + return null; + } + + if (proposedIndex > upperBound) { + return null; + } + + return proposedIndex; + }); + + var moveToNextIndex = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + isInHomeList = _ref.isInHomeList, + draggable = _ref.draggable, + draggables = _ref.draggables, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + previousImpact = _ref.previousImpact, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var wasAt = previousImpact.at; + !wasAt ? invariant(false, 'Cannot move in direction without previous impact location') : void 0; + + if (wasAt.type === 'REORDER') { + var _newIndex = fromReorder({ + isMovingForward: isMovingForward, + isInHomeList: isInHomeList, + location: wasAt.destination, + insideDestination: insideDestination + }); + + if (_newIndex == null) { + return null; + } + + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + last: previousImpact.displaced, + displacedBy: previousImpact.displacedBy, + index: _newIndex + }); + } + + var newIndex = fromCombine({ + isMovingForward: isMovingForward, + destination: destination, + displaced: previousImpact.displaced, + draggables: draggables, + combine: wasAt.combine, + afterCritical: afterCritical + }); + + if (newIndex == null) { + return null; + } + + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + last: previousImpact.displaced, + displacedBy: previousImpact.displacedBy, + index: newIndex + }); + }); + + var getCombinedItemDisplacement = (function (_ref) { + var displaced = _ref.displaced, + afterCritical = _ref.afterCritical, + combineWith = _ref.combineWith, + displacedBy = _ref.displacedBy; + var isDisplaced = Boolean(displaced.visible[combineWith] || displaced.invisible[combineWith]); + + if (didStartAfterCritical(combineWith, afterCritical)) { + return isDisplaced ? origin : negate(displacedBy.point); + } + + return isDisplaced ? displacedBy.point : origin; + }); + + var whenCombining = (function (_ref) { + var afterCritical = _ref.afterCritical, + impact = _ref.impact, + draggables = _ref.draggables; + var combine = tryGetCombine(impact); + !combine ? invariant(false) : void 0; + var combineWith = combine.draggableId; + var center = draggables[combineWith].page.borderBox.center; + var displaceBy = getCombinedItemDisplacement({ + displaced: impact.displaced, + afterCritical: afterCritical, + combineWith: combineWith, + displacedBy: impact.displacedBy + }); + return add(center, displaceBy); + }); + + var distanceFromStartToBorderBoxCenter = function distanceFromStartToBorderBoxCenter(axis, box) { + return box.margin[axis.start] + box.borderBox[axis.size] / 2; + }; + + var distanceFromEndToBorderBoxCenter = function distanceFromEndToBorderBoxCenter(axis, box) { + return box.margin[axis.end] + box.borderBox[axis.size] / 2; + }; + + var getCrossAxisBorderBoxCenter = function getCrossAxisBorderBoxCenter(axis, target, isMoving) { + return target[axis.crossAxisStart] + isMoving.margin[axis.crossAxisStart] + isMoving.borderBox[axis.crossAxisSize] / 2; + }; + + var goAfter = function goAfter(_ref) { + var axis = _ref.axis, + moveRelativeTo = _ref.moveRelativeTo, + isMoving = _ref.isMoving; + return patch(axis.line, moveRelativeTo.marginBox[axis.end] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving)); + }; + var goBefore = function goBefore(_ref2) { + var axis = _ref2.axis, + moveRelativeTo = _ref2.moveRelativeTo, + isMoving = _ref2.isMoving; + return patch(axis.line, moveRelativeTo.marginBox[axis.start] - distanceFromEndToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving)); + }; + var goIntoStart = function goIntoStart(_ref3) { + var axis = _ref3.axis, + moveInto = _ref3.moveInto, + isMoving = _ref3.isMoving; + return patch(axis.line, moveInto.contentBox[axis.start] + distanceFromStartToBorderBoxCenter(axis, isMoving), getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving)); + }; + + var whenReordering = (function (_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + draggables = _ref.draggables, + droppable = _ref.droppable, + afterCritical = _ref.afterCritical; + var insideDestination = getDraggablesInsideDroppable(droppable.descriptor.id, draggables); + var draggablePage = draggable.page; + var axis = droppable.axis; + + if (!insideDestination.length) { + return goIntoStart({ + axis: axis, + moveInto: droppable.page, + isMoving: draggablePage + }); + } + + var displaced = impact.displaced, + displacedBy = impact.displacedBy; + var closestAfter = displaced.all[0]; + + if (closestAfter) { + var closest = draggables[closestAfter]; + + if (didStartAfterCritical(closestAfter, afterCritical)) { + return goBefore({ + axis: axis, + moveRelativeTo: closest.page, + isMoving: draggablePage + }); + } + + var withDisplacement = offset(closest.page, displacedBy.point); + return goBefore({ + axis: axis, + moveRelativeTo: withDisplacement, + isMoving: draggablePage + }); + } + + var last = insideDestination[insideDestination.length - 1]; + + if (last.descriptor.id === draggable.descriptor.id) { + return draggablePage.borderBox.center; + } + + if (didStartAfterCritical(last.descriptor.id, afterCritical)) { + var page = offset(last.page, negate(afterCritical.displacedBy.point)); + return goAfter({ + axis: axis, + moveRelativeTo: page, + isMoving: draggablePage + }); + } + + return goAfter({ + axis: axis, + moveRelativeTo: last.page, + isMoving: draggablePage + }); + }); + + var withDroppableDisplacement = (function (droppable, point) { + var frame = droppable.frame; + + if (!frame) { + return point; + } + + return add(point, frame.scroll.diff.displacement); + }); + + var getResultWithoutDroppableDisplacement = function getResultWithoutDroppableDisplacement(_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + droppable = _ref.droppable, + draggables = _ref.draggables, + afterCritical = _ref.afterCritical; + var original = draggable.page.borderBox.center; + var at = impact.at; + + if (!droppable) { + return original; + } + + if (!at) { + return original; + } + + if (at.type === 'REORDER') { + return whenReordering({ + impact: impact, + draggable: draggable, + draggables: draggables, + droppable: droppable, + afterCritical: afterCritical + }); + } + + return whenCombining({ + impact: impact, + draggables: draggables, + afterCritical: afterCritical + }); + }; + + var getPageBorderBoxCenterFromImpact = (function (args) { + var withoutDisplacement = getResultWithoutDroppableDisplacement(args); + var droppable = args.droppable; + var withDisplacement = droppable ? withDroppableDisplacement(droppable, withoutDisplacement) : withoutDisplacement; + return withDisplacement; + }); + + var scrollViewport = (function (viewport, newScroll) { + var diff = subtract(newScroll, viewport.scroll.initial); + var displacement = negate(diff); + var frame = getRect({ + top: newScroll.y, + bottom: newScroll.y + viewport.frame.height, + left: newScroll.x, + right: newScroll.x + viewport.frame.width + }); + var updated = { + frame: frame, + scroll: { + initial: viewport.scroll.initial, + max: viewport.scroll.max, + current: newScroll, + diff: { + value: diff, + displacement: displacement + } + } + }; + return updated; + }); + + function getDraggables(ids, draggables) { + return ids.map(function (id) { + return draggables[id]; + }); + } + + function tryGetVisible(id, groups) { + for (var i = 0; i < groups.length; i++) { + var displacement = groups[i].visible[id]; + + if (displacement) { + return displacement; + } + } + + return null; + } + + var speculativelyIncrease = (function (_ref) { + var impact = _ref.impact, + viewport = _ref.viewport, + destination = _ref.destination, + draggables = _ref.draggables, + maxScrollChange = _ref.maxScrollChange; + var scrolledViewport = scrollViewport(viewport, add(viewport.scroll.current, maxScrollChange)); + var scrolledDroppable = destination.frame ? scrollDroppable(destination, add(destination.frame.scroll.current, maxScrollChange)) : destination; + var last = impact.displaced; + var withViewportScroll = getDisplacementGroups({ + afterDragging: getDraggables(last.all, draggables), + destination: destination, + displacedBy: impact.displacedBy, + viewport: scrolledViewport.frame, + last: last, + forceShouldAnimate: false + }); + var withDroppableScroll = getDisplacementGroups({ + afterDragging: getDraggables(last.all, draggables), + destination: scrolledDroppable, + displacedBy: impact.displacedBy, + viewport: viewport.frame, + last: last, + forceShouldAnimate: false + }); + var invisible = {}; + var visible = {}; + var groups = [last, withViewportScroll, withDroppableScroll]; + last.all.forEach(function (id) { + var displacement = tryGetVisible(id, groups); + + if (displacement) { + visible[id] = displacement; + return; + } + + invisible[id] = true; + }); + + var newImpact = _extends({}, impact, { + displaced: { + all: last.all, + invisible: invisible, + visible: visible + } + }); + + return newImpact; + }); + + var withViewportDisplacement = (function (viewport, point) { + return add(viewport.scroll.diff.displacement, point); + }); + + var getClientFromPageBorderBoxCenter = (function (_ref) { + var pageBorderBoxCenter = _ref.pageBorderBoxCenter, + draggable = _ref.draggable, + viewport = _ref.viewport; + var withoutPageScrollChange = withViewportDisplacement(viewport, pageBorderBoxCenter); + var offset = subtract(withoutPageScrollChange, draggable.page.borderBox.center); + return add(draggable.client.borderBox.center, offset); + }); + + var isTotallyVisibleInNewLocation = (function (_ref) { + var draggable = _ref.draggable, + destination = _ref.destination, + newPageBorderBoxCenter = _ref.newPageBorderBoxCenter, + viewport = _ref.viewport, + withDroppableDisplacement = _ref.withDroppableDisplacement, + _ref$onlyOnMainAxis = _ref.onlyOnMainAxis, + onlyOnMainAxis = _ref$onlyOnMainAxis === void 0 ? false : _ref$onlyOnMainAxis; + var changeNeeded = subtract(newPageBorderBoxCenter, draggable.page.borderBox.center); + var shifted = offsetByPosition(draggable.page.borderBox, changeNeeded); + var args = { + target: shifted, + destination: destination, + withDroppableDisplacement: withDroppableDisplacement, + viewport: viewport + }; + return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args); + }); + + var moveToNextPlace = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + draggable = _ref.draggable, + destination = _ref.destination, + draggables = _ref.draggables, + previousImpact = _ref.previousImpact, + viewport = _ref.viewport, + previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter, + previousClientSelection = _ref.previousClientSelection, + afterCritical = _ref.afterCritical; + + if (!destination.isEnabled) { + return null; + } + + var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables); + var isInHomeList = isHomeOf(draggable, destination); + var impact = moveToNextCombine({ + isMovingForward: isMovingForward, + draggable: draggable, + destination: destination, + insideDestination: insideDestination, + previousImpact: previousImpact + }) || moveToNextIndex({ + isMovingForward: isMovingForward, + isInHomeList: isInHomeList, + draggable: draggable, + draggables: draggables, + destination: destination, + insideDestination: insideDestination, + previousImpact: previousImpact, + viewport: viewport, + afterCritical: afterCritical + }); + + if (!impact) { + return null; + } + + var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: impact, + draggable: draggable, + droppable: destination, + draggables: draggables, + afterCritical: afterCritical + }); + var isVisibleInNewLocation = isTotallyVisibleInNewLocation({ + draggable: draggable, + destination: destination, + newPageBorderBoxCenter: pageBorderBoxCenter, + viewport: viewport.frame, + withDroppableDisplacement: false, + onlyOnMainAxis: true + }); + + if (isVisibleInNewLocation) { + var clientSelection = getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter: pageBorderBoxCenter, + draggable: draggable, + viewport: viewport + }); + return { + clientSelection: clientSelection, + impact: impact, + scrollJumpRequest: null + }; + } + + var distance = subtract(pageBorderBoxCenter, previousPageBorderBoxCenter); + var cautious = speculativelyIncrease({ + impact: impact, + viewport: viewport, + destination: destination, + draggables: draggables, + maxScrollChange: distance + }); + return { + clientSelection: previousClientSelection, + impact: cautious, + scrollJumpRequest: distance + }; + }); + + var getKnownActive = function getKnownActive(droppable) { + var rect = droppable.subject.active; + !rect ? invariant(false, 'Cannot get clipped area from droppable') : void 0; + return rect; + }; + + var getBestCrossAxisDroppable = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + pageBorderBoxCenter = _ref.pageBorderBoxCenter, + source = _ref.source, + droppables = _ref.droppables, + viewport = _ref.viewport; + var active = source.subject.active; + + if (!active) { + return null; + } + + var axis = source.axis; + var isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]); + var candidates = toDroppableList(droppables).filter(function (droppable) { + return droppable !== source; + }).filter(function (droppable) { + return droppable.isEnabled; + }).filter(function (droppable) { + return Boolean(droppable.subject.active); + }).filter(function (droppable) { + return isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable)); + }).filter(function (droppable) { + var activeOfTarget = getKnownActive(droppable); + + if (isMovingForward) { + return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd]; + } + + return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart]; + }).filter(function (droppable) { + var activeOfTarget = getKnownActive(droppable); + var isBetweenDestinationClipped = isWithin(activeOfTarget[axis.start], activeOfTarget[axis.end]); + return isBetweenSourceClipped(activeOfTarget[axis.start]) || isBetweenSourceClipped(activeOfTarget[axis.end]) || isBetweenDestinationClipped(active[axis.start]) || isBetweenDestinationClipped(active[axis.end]); + }).sort(function (a, b) { + var first = getKnownActive(a)[axis.crossAxisStart]; + var second = getKnownActive(b)[axis.crossAxisStart]; + + if (isMovingForward) { + return first - second; + } + + return second - first; + }).filter(function (droppable, index, array) { + return getKnownActive(droppable)[axis.crossAxisStart] === getKnownActive(array[0])[axis.crossAxisStart]; + }); + + if (!candidates.length) { + return null; + } + + if (candidates.length === 1) { + return candidates[0]; + } + + var contains = candidates.filter(function (droppable) { + var isWithinDroppable = isWithin(getKnownActive(droppable)[axis.start], getKnownActive(droppable)[axis.end]); + return isWithinDroppable(pageBorderBoxCenter[axis.line]); + }); + + if (contains.length === 1) { + return contains[0]; + } + + if (contains.length > 1) { + return contains.sort(function (a, b) { + return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start]; + })[0]; + } + + return candidates.sort(function (a, b) { + var first = closest(pageBorderBoxCenter, getCorners(getKnownActive(a))); + var second = closest(pageBorderBoxCenter, getCorners(getKnownActive(b))); + + if (first !== second) { + return first - second; + } + + return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start]; + })[0]; + }); + + var getCurrentPageBorderBoxCenter = function getCurrentPageBorderBoxCenter(draggable, afterCritical) { + var original = draggable.page.borderBox.center; + return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? subtract(original, afterCritical.displacedBy.point) : original; + }; + var getCurrentPageBorderBox = function getCurrentPageBorderBox(draggable, afterCritical) { + var original = draggable.page.borderBox; + return didStartAfterCritical(draggable.descriptor.id, afterCritical) ? offsetByPosition(original, negate(afterCritical.displacedBy.point)) : original; + }; + + var getClosestDraggable = (function (_ref) { + var pageBorderBoxCenter = _ref.pageBorderBoxCenter, + viewport = _ref.viewport, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + afterCritical = _ref.afterCritical; + var sorted = insideDestination.filter(function (draggable) { + return isTotallyVisible({ + target: getCurrentPageBorderBox(draggable, afterCritical), + destination: destination, + viewport: viewport.frame, + withDroppableDisplacement: true + }); + }).sort(function (a, b) { + var distanceToA = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(a, afterCritical))); + var distanceToB = distance(pageBorderBoxCenter, withDroppableDisplacement(destination, getCurrentPageBorderBoxCenter(b, afterCritical))); + + if (distanceToA < distanceToB) { + return -1; + } + + if (distanceToB < distanceToA) { + return 1; + } + + return a.descriptor.index - b.descriptor.index; + }); + return sorted[0] || null; + }); + + var getDisplacedBy = memoizeOne(function getDisplacedBy(axis, displaceBy) { + var displacement = displaceBy[axis.line]; + return { + value: displacement, + point: patch(axis.line, displacement) + }; + }); + + var getRequiredGrowthForPlaceholder = function getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables) { + var axis = droppable.axis; + + if (droppable.descriptor.mode === 'virtual') { + return patch(axis.line, placeholderSize[axis.line]); + } + + var availableSpace = droppable.subject.page.contentBox[axis.size]; + var insideDroppable = getDraggablesInsideDroppable(droppable.descriptor.id, draggables); + var spaceUsed = insideDroppable.reduce(function (sum, dimension) { + return sum + dimension.client.marginBox[axis.size]; + }, 0); + var requiredSpace = spaceUsed + placeholderSize[axis.line]; + var needsToGrowBy = requiredSpace - availableSpace; + + if (needsToGrowBy <= 0) { + return null; + } + + return patch(axis.line, needsToGrowBy); + }; + + var withMaxScroll = function withMaxScroll(frame, max) { + return _extends({}, frame, { + scroll: _extends({}, frame.scroll, { + max: max + }) + }); + }; + + var addPlaceholder = function addPlaceholder(droppable, draggable, draggables) { + var frame = droppable.frame; + !!isHomeOf(draggable, droppable) ? invariant(false, 'Should not add placeholder space to home list') : void 0; + !!droppable.subject.withPlaceholder ? invariant(false, 'Cannot add placeholder size to a subject when it already has one') : void 0; + var placeholderSize = getDisplacedBy(droppable.axis, draggable.displaceBy).point; + var requiredGrowth = getRequiredGrowthForPlaceholder(droppable, placeholderSize, draggables); + var added = { + placeholderSize: placeholderSize, + increasedBy: requiredGrowth, + oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null + }; + + if (!frame) { + var _subject = getSubject({ + page: droppable.subject.page, + withPlaceholder: added, + axis: droppable.axis, + frame: droppable.frame + }); + + return _extends({}, droppable, { + subject: _subject + }); + } + + var maxScroll = requiredGrowth ? add(frame.scroll.max, requiredGrowth) : frame.scroll.max; + var newFrame = withMaxScroll(frame, maxScroll); + var subject = getSubject({ + page: droppable.subject.page, + withPlaceholder: added, + axis: droppable.axis, + frame: newFrame + }); + return _extends({}, droppable, { + subject: subject, + frame: newFrame + }); + }; + var removePlaceholder = function removePlaceholder(droppable) { + var added = droppable.subject.withPlaceholder; + !added ? invariant(false, 'Cannot remove placeholder form subject when there was none') : void 0; + var frame = droppable.frame; + + if (!frame) { + var _subject2 = getSubject({ + page: droppable.subject.page, + axis: droppable.axis, + frame: null, + withPlaceholder: null + }); + + return _extends({}, droppable, { + subject: _subject2 + }); + } + + var oldMaxScroll = added.oldFrameMaxScroll; + !oldMaxScroll ? invariant(false, 'Expected droppable with frame to have old max frame scroll when removing placeholder') : void 0; + var newFrame = withMaxScroll(frame, oldMaxScroll); + var subject = getSubject({ + page: droppable.subject.page, + axis: droppable.axis, + frame: newFrame, + withPlaceholder: null + }); + return _extends({}, droppable, { + subject: subject, + frame: newFrame + }); + }; + + var moveToNewDroppable = (function (_ref) { + var previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter, + moveRelativeTo = _ref.moveRelativeTo, + insideDestination = _ref.insideDestination, + draggable = _ref.draggable, + draggables = _ref.draggables, + destination = _ref.destination, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + + if (!moveRelativeTo) { + if (insideDestination.length) { + return null; + } + + var proposed = { + displaced: emptyGroups, + displacedBy: noDisplacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: 0 + } + } + }; + var proposedPageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: proposed, + draggable: draggable, + droppable: destination, + draggables: draggables, + afterCritical: afterCritical + }); + var withPlaceholder = isHomeOf(draggable, destination) ? destination : addPlaceholder(destination, draggable, draggables); + var isVisibleInNewLocation = isTotallyVisibleInNewLocation({ + draggable: draggable, + destination: withPlaceholder, + newPageBorderBoxCenter: proposedPageBorderBoxCenter, + viewport: viewport.frame, + withDroppableDisplacement: false, + onlyOnMainAxis: true + }); + return isVisibleInNewLocation ? proposed : null; + } + + var isGoingBeforeTarget = Boolean(previousPageBorderBoxCenter[destination.axis.line] <= moveRelativeTo.page.borderBox.center[destination.axis.line]); + + var proposedIndex = function () { + var relativeTo = moveRelativeTo.descriptor.index; + + if (moveRelativeTo.descriptor.id === draggable.descriptor.id) { + return relativeTo; + } + + if (isGoingBeforeTarget) { + return relativeTo; + } + + return relativeTo + 1; + }(); + + var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy); + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + displacedBy: displacedBy, + last: emptyGroups, + index: proposedIndex + }); + }); + + var moveCrossAxis = (function (_ref) { + var isMovingForward = _ref.isMovingForward, + previousPageBorderBoxCenter = _ref.previousPageBorderBoxCenter, + draggable = _ref.draggable, + isOver = _ref.isOver, + draggables = _ref.draggables, + droppables = _ref.droppables, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var destination = getBestCrossAxisDroppable({ + isMovingForward: isMovingForward, + pageBorderBoxCenter: previousPageBorderBoxCenter, + source: isOver, + droppables: droppables, + viewport: viewport + }); + + if (!destination) { + return null; + } + + var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables); + var moveRelativeTo = getClosestDraggable({ + pageBorderBoxCenter: previousPageBorderBoxCenter, + viewport: viewport, + destination: destination, + insideDestination: insideDestination, + afterCritical: afterCritical + }); + var impact = moveToNewDroppable({ + previousPageBorderBoxCenter: previousPageBorderBoxCenter, + destination: destination, + draggable: draggable, + draggables: draggables, + moveRelativeTo: moveRelativeTo, + insideDestination: insideDestination, + viewport: viewport, + afterCritical: afterCritical + }); + + if (!impact) { + return null; + } + + var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: impact, + draggable: draggable, + droppable: destination, + draggables: draggables, + afterCritical: afterCritical + }); + var clientSelection = getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter: pageBorderBoxCenter, + draggable: draggable, + viewport: viewport + }); + return { + clientSelection: clientSelection, + impact: impact, + scrollJumpRequest: null + }; + }); + + var whatIsDraggedOver = (function (impact) { + var at = impact.at; + + if (!at) { + return null; + } + + if (at.type === 'REORDER') { + return at.destination.droppableId; + } + + return at.combine.droppableId; + }); + + var getDroppableOver = function getDroppableOver(impact, droppables) { + var id = whatIsDraggedOver(impact); + return id ? droppables[id] : null; + }; + + var moveInDirection = (function (_ref) { + var state = _ref.state, + type = _ref.type; + var isActuallyOver = getDroppableOver(state.impact, state.dimensions.droppables); + var isMainAxisMovementAllowed = Boolean(isActuallyOver); + var home = state.dimensions.droppables[state.critical.droppable.id]; + var isOver = isActuallyOver || home; + var direction = isOver.axis.direction; + var isMovingOnMainAxis = direction === 'vertical' && (type === 'MOVE_UP' || type === 'MOVE_DOWN') || direction === 'horizontal' && (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT'); + + if (isMovingOnMainAxis && !isMainAxisMovementAllowed) { + return null; + } + + var isMovingForward = type === 'MOVE_DOWN' || type === 'MOVE_RIGHT'; + var draggable = state.dimensions.draggables[state.critical.draggable.id]; + var previousPageBorderBoxCenter = state.current.page.borderBoxCenter; + var _state$dimensions = state.dimensions, + draggables = _state$dimensions.draggables, + droppables = _state$dimensions.droppables; + return isMovingOnMainAxis ? moveToNextPlace({ + isMovingForward: isMovingForward, + previousPageBorderBoxCenter: previousPageBorderBoxCenter, + draggable: draggable, + destination: isOver, + draggables: draggables, + viewport: state.viewport, + previousClientSelection: state.current.client.selection, + previousImpact: state.impact, + afterCritical: state.afterCritical + }) : moveCrossAxis({ + isMovingForward: isMovingForward, + previousPageBorderBoxCenter: previousPageBorderBoxCenter, + draggable: draggable, + isOver: isOver, + draggables: draggables, + droppables: droppables, + viewport: state.viewport, + afterCritical: state.afterCritical + }); + }); + + function isMovementAllowed(state) { + return state.phase === 'DRAGGING' || state.phase === 'COLLECTING'; + } + + function isPositionInFrame(frame) { + var isWithinVertical = isWithin(frame.top, frame.bottom); + var isWithinHorizontal = isWithin(frame.left, frame.right); + return function run(point) { + return isWithinVertical(point.y) && isWithinHorizontal(point.x); + }; + } + + function getHasOverlap(first, second) { + return first.left < second.right && first.right > second.left && first.top < second.bottom && first.bottom > second.top; + } + + function getFurthestAway(_ref) { + var pageBorderBox = _ref.pageBorderBox, + draggable = _ref.draggable, + candidates = _ref.candidates; + var startCenter = draggable.page.borderBox.center; + var sorted = candidates.map(function (candidate) { + var axis = candidate.axis; + var target = patch(candidate.axis.line, pageBorderBox.center[axis.line], candidate.page.borderBox.center[axis.crossAxisLine]); + return { + id: candidate.descriptor.id, + distance: distance(startCenter, target) + }; + }).sort(function (a, b) { + return b.distance - a.distance; + }); + return sorted[0] ? sorted[0].id : null; + } + + function getDroppableOver$1(_ref2) { + var pageBorderBox = _ref2.pageBorderBox, + draggable = _ref2.draggable, + droppables = _ref2.droppables; + var candidates = toDroppableList(droppables).filter(function (item) { + if (!item.isEnabled) { + return false; + } + + var active = item.subject.active; + + if (!active) { + return false; + } + + if (!getHasOverlap(pageBorderBox, active)) { + return false; + } + + if (isPositionInFrame(active)(pageBorderBox.center)) { + return true; + } + + var axis = item.axis; + var childCenter = active.center[axis.crossAxisLine]; + var crossAxisStart = pageBorderBox[axis.crossAxisStart]; + var crossAxisEnd = pageBorderBox[axis.crossAxisEnd]; + var isContained = isWithin(active[axis.crossAxisStart], active[axis.crossAxisEnd]); + var isStartContained = isContained(crossAxisStart); + var isEndContained = isContained(crossAxisEnd); + + if (!isStartContained && !isEndContained) { + return true; + } + + if (isStartContained) { + return crossAxisStart < childCenter; + } + + return crossAxisEnd > childCenter; + }); + + if (!candidates.length) { + return null; + } + + if (candidates.length === 1) { + return candidates[0].descriptor.id; + } + + return getFurthestAway({ + pageBorderBox: pageBorderBox, + draggable: draggable, + candidates: candidates + }); + } + + var offsetRectByPosition = function offsetRectByPosition(rect, point) { + return getRect(offsetByPosition(rect, point)); + }; + + var withDroppableScroll = (function (droppable, area) { + var frame = droppable.frame; + + if (!frame) { + return area; + } + + return offsetRectByPosition(area, frame.scroll.diff.value); + }); + + function getIsDisplaced(_ref) { + var displaced = _ref.displaced, + id = _ref.id; + return Boolean(displaced.visible[id] || displaced.invisible[id]); + } + + function atIndex(_ref) { + var draggable = _ref.draggable, + closest = _ref.closest, + inHomeList = _ref.inHomeList; + + if (!closest) { + return null; + } + + if (!inHomeList) { + return closest.descriptor.index; + } + + if (closest.descriptor.index > draggable.descriptor.index) { + return closest.descriptor.index - 1; + } + + return closest.descriptor.index; + } + + var getReorderImpact = (function (_ref2) { + var targetRect = _ref2.pageBorderBoxWithDroppableScroll, + draggable = _ref2.draggable, + destination = _ref2.destination, + insideDestination = _ref2.insideDestination, + last = _ref2.last, + viewport = _ref2.viewport, + afterCritical = _ref2.afterCritical; + var axis = destination.axis; + var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy); + var displacement = displacedBy.value; + var targetStart = targetRect[axis.start]; + var targetEnd = targetRect[axis.end]; + var withoutDragging = removeDraggableFromList(draggable, insideDestination); + var closest = find(withoutDragging, function (child) { + var id = child.descriptor.id; + var childCenter = child.page.borderBox.center[axis.line]; + var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical); + var isDisplaced = getIsDisplaced({ + displaced: last, + id: id + }); + + if (didStartAfterCritical$1) { + if (isDisplaced) { + return targetEnd <= childCenter; + } + + return targetStart < childCenter - displacement; + } + + if (isDisplaced) { + return targetEnd <= childCenter + displacement; + } + + return targetStart < childCenter; + }); + var newIndex = atIndex({ + draggable: draggable, + closest: closest, + inHomeList: isHomeOf(draggable, destination) + }); + return calculateReorderImpact({ + draggable: draggable, + insideDestination: insideDestination, + destination: destination, + viewport: viewport, + last: last, + displacedBy: displacedBy, + index: newIndex + }); + }); + + var combineThresholdDivisor = 4; + var getCombineImpact = (function (_ref) { + var draggable = _ref.draggable, + targetRect = _ref.pageBorderBoxWithDroppableScroll, + previousImpact = _ref.previousImpact, + destination = _ref.destination, + insideDestination = _ref.insideDestination, + afterCritical = _ref.afterCritical; + + if (!destination.isCombineEnabled) { + return null; + } + + var axis = destination.axis; + var displacedBy = getDisplacedBy(destination.axis, draggable.displaceBy); + var displacement = displacedBy.value; + var targetStart = targetRect[axis.start]; + var targetEnd = targetRect[axis.end]; + var withoutDragging = removeDraggableFromList(draggable, insideDestination); + var combineWith = find(withoutDragging, function (child) { + var id = child.descriptor.id; + var childRect = child.page.borderBox; + var childSize = childRect[axis.size]; + var threshold = childSize / combineThresholdDivisor; + var didStartAfterCritical$1 = didStartAfterCritical(id, afterCritical); + var isDisplaced = getIsDisplaced({ + displaced: previousImpact.displaced, + id: id + }); + + if (didStartAfterCritical$1) { + if (isDisplaced) { + return targetEnd > childRect[axis.start] + threshold && targetEnd < childRect[axis.end] - threshold; + } + + return targetStart > childRect[axis.start] - displacement + threshold && targetStart < childRect[axis.end] - displacement - threshold; + } + + if (isDisplaced) { + return targetEnd > childRect[axis.start] + displacement + threshold && targetEnd < childRect[axis.end] + displacement - threshold; + } + + return targetStart > childRect[axis.start] + threshold && targetStart < childRect[axis.end] - threshold; + }); + + if (!combineWith) { + return null; + } + + var impact = { + displacedBy: displacedBy, + displaced: previousImpact.displaced, + at: { + type: 'COMBINE', + combine: { + draggableId: combineWith.descriptor.id, + droppableId: destination.descriptor.id + } + } + }; + return impact; + }); + + var getDragImpact = (function (_ref) { + var pageOffset = _ref.pageOffset, + draggable = _ref.draggable, + draggables = _ref.draggables, + droppables = _ref.droppables, + previousImpact = _ref.previousImpact, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var pageBorderBox = offsetRectByPosition(draggable.page.borderBox, pageOffset); + var destinationId = getDroppableOver$1({ + pageBorderBox: pageBorderBox, + draggable: draggable, + droppables: droppables + }); + + if (!destinationId) { + return noImpact; + } + + var destination = droppables[destinationId]; + var insideDestination = getDraggablesInsideDroppable(destination.descriptor.id, draggables); + var pageBorderBoxWithDroppableScroll = withDroppableScroll(destination, pageBorderBox); + return getCombineImpact({ + pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll, + draggable: draggable, + previousImpact: previousImpact, + destination: destination, + insideDestination: insideDestination, + afterCritical: afterCritical + }) || getReorderImpact({ + pageBorderBoxWithDroppableScroll: pageBorderBoxWithDroppableScroll, + draggable: draggable, + destination: destination, + insideDestination: insideDestination, + last: previousImpact.displaced, + viewport: viewport, + afterCritical: afterCritical + }); + }); + + var patchDroppableMap = (function (droppables, updated) { + var _extends2; + + return _extends({}, droppables, (_extends2 = {}, _extends2[updated.descriptor.id] = updated, _extends2)); + }); + + var clearUnusedPlaceholder = function clearUnusedPlaceholder(_ref) { + var previousImpact = _ref.previousImpact, + impact = _ref.impact, + droppables = _ref.droppables; + var last = whatIsDraggedOver(previousImpact); + var now = whatIsDraggedOver(impact); + + if (!last) { + return droppables; + } + + if (last === now) { + return droppables; + } + + var lastDroppable = droppables[last]; + + if (!lastDroppable.subject.withPlaceholder) { + return droppables; + } + + var updated = removePlaceholder(lastDroppable); + return patchDroppableMap(droppables, updated); + }; + + var recomputePlaceholders = (function (_ref2) { + var draggable = _ref2.draggable, + draggables = _ref2.draggables, + droppables = _ref2.droppables, + previousImpact = _ref2.previousImpact, + impact = _ref2.impact; + var cleaned = clearUnusedPlaceholder({ + previousImpact: previousImpact, + impact: impact, + droppables: droppables + }); + var isOver = whatIsDraggedOver(impact); + + if (!isOver) { + return cleaned; + } + + var droppable = droppables[isOver]; + + if (isHomeOf(draggable, droppable)) { + return cleaned; + } + + if (droppable.subject.withPlaceholder) { + return cleaned; + } + + var patched = addPlaceholder(droppable, draggable, draggables); + return patchDroppableMap(cleaned, patched); + }); + + var update = (function (_ref) { + var state = _ref.state, + forcedClientSelection = _ref.clientSelection, + forcedDimensions = _ref.dimensions, + forcedViewport = _ref.viewport, + forcedImpact = _ref.impact, + scrollJumpRequest = _ref.scrollJumpRequest; + var viewport = forcedViewport || state.viewport; + var dimensions = forcedDimensions || state.dimensions; + var clientSelection = forcedClientSelection || state.current.client.selection; + var offset = subtract(clientSelection, state.initial.client.selection); + var client = { + offset: offset, + selection: clientSelection, + borderBoxCenter: add(state.initial.client.borderBoxCenter, offset) + }; + var page = { + selection: add(client.selection, viewport.scroll.current), + borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current), + offset: add(client.offset, viewport.scroll.diff.value) + }; + var current = { + client: client, + page: page + }; + + if (state.phase === 'COLLECTING') { + return _extends({ + phase: 'COLLECTING' + }, state, { + dimensions: dimensions, + viewport: viewport, + current: current + }); + } + + var draggable = dimensions.draggables[state.critical.draggable.id]; + var newImpact = forcedImpact || getDragImpact({ + pageOffset: page.offset, + draggable: draggable, + draggables: dimensions.draggables, + droppables: dimensions.droppables, + previousImpact: state.impact, + viewport: viewport, + afterCritical: state.afterCritical + }); + var withUpdatedPlaceholders = recomputePlaceholders({ + draggable: draggable, + impact: newImpact, + previousImpact: state.impact, + draggables: dimensions.draggables, + droppables: dimensions.droppables + }); + + var result = _extends({}, state, { + current: current, + dimensions: { + draggables: dimensions.draggables, + droppables: withUpdatedPlaceholders + }, + impact: newImpact, + viewport: viewport, + scrollJumpRequest: scrollJumpRequest || null, + forceShouldAnimate: scrollJumpRequest ? false : null + }); + + return result; + }); + + function getDraggables$1(ids, draggables) { + return ids.map(function (id) { + return draggables[id]; + }); + } + + var recompute = (function (_ref) { + var impact = _ref.impact, + viewport = _ref.viewport, + draggables = _ref.draggables, + destination = _ref.destination, + forceShouldAnimate = _ref.forceShouldAnimate; + var last = impact.displaced; + var afterDragging = getDraggables$1(last.all, draggables); + var displaced = getDisplacementGroups({ + afterDragging: afterDragging, + destination: destination, + displacedBy: impact.displacedBy, + viewport: viewport.frame, + forceShouldAnimate: forceShouldAnimate, + last: last + }); + return _extends({}, impact, { + displaced: displaced + }); + }); + + var getClientBorderBoxCenter = (function (_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + droppable = _ref.droppable, + draggables = _ref.draggables, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var pageBorderBoxCenter = getPageBorderBoxCenterFromImpact({ + impact: impact, + draggable: draggable, + draggables: draggables, + droppable: droppable, + afterCritical: afterCritical + }); + return getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter: pageBorderBoxCenter, + draggable: draggable, + viewport: viewport + }); + }); + + var refreshSnap = (function (_ref) { + var state = _ref.state, + forcedDimensions = _ref.dimensions, + forcedViewport = _ref.viewport; + !(state.movementMode === 'SNAP') ? invariant(false) : void 0; + var needsVisibilityCheck = state.impact; + var viewport = forcedViewport || state.viewport; + var dimensions = forcedDimensions || state.dimensions; + var draggables = dimensions.draggables, + droppables = dimensions.droppables; + var draggable = draggables[state.critical.draggable.id]; + var isOver = whatIsDraggedOver(needsVisibilityCheck); + !isOver ? invariant(false, 'Must be over a destination in SNAP movement mode') : void 0; + var destination = droppables[isOver]; + var impact = recompute({ + impact: needsVisibilityCheck, + viewport: viewport, + destination: destination, + draggables: draggables + }); + var clientSelection = getClientBorderBoxCenter({ + impact: impact, + draggable: draggable, + droppable: destination, + draggables: draggables, + viewport: viewport, + afterCritical: state.afterCritical + }); + return update({ + impact: impact, + clientSelection: clientSelection, + state: state, + dimensions: dimensions, + viewport: viewport + }); + }); + + var getHomeLocation = (function (descriptor) { + return { + index: descriptor.index, + droppableId: descriptor.droppableId + }; + }); + + var getLiftEffect = (function (_ref) { + var draggable = _ref.draggable, + home = _ref.home, + draggables = _ref.draggables, + viewport = _ref.viewport; + var displacedBy = getDisplacedBy(home.axis, draggable.displaceBy); + var insideHome = getDraggablesInsideDroppable(home.descriptor.id, draggables); + var rawIndex = insideHome.indexOf(draggable); + !(rawIndex !== -1) ? invariant(false, 'Expected draggable to be inside home list') : void 0; + var afterDragging = insideHome.slice(rawIndex + 1); + var effected = afterDragging.reduce(function (previous, item) { + previous[item.descriptor.id] = true; + return previous; + }, {}); + var afterCritical = { + inVirtualList: home.descriptor.mode === 'virtual', + displacedBy: displacedBy, + effected: effected + }; + var displaced = getDisplacementGroups({ + afterDragging: afterDragging, + destination: home, + displacedBy: displacedBy, + last: null, + viewport: viewport.frame, + forceShouldAnimate: false + }); + var impact = { + displaced: displaced, + displacedBy: displacedBy, + at: { + type: 'REORDER', + destination: getHomeLocation(draggable.descriptor) + } + }; + return { + impact: impact, + afterCritical: afterCritical + }; + }); + + var patchDimensionMap = (function (dimensions, updated) { + return { + draggables: dimensions.draggables, + droppables: patchDroppableMap(dimensions.droppables, updated) + }; + }); + + var offsetDraggable = (function (_ref) { + var draggable = _ref.draggable, + offset$1 = _ref.offset, + initialWindowScroll = _ref.initialWindowScroll; + var client = offset(draggable.client, offset$1); + var page = withScroll(client, initialWindowScroll); + + var moved = _extends({}, draggable, { + placeholder: _extends({}, draggable.placeholder, { + client: client + }), + client: client, + page: page + }); + + return moved; + }); + + var getFrame = (function (droppable) { + var frame = droppable.frame; + !frame ? invariant(false, 'Expected Droppable to have a frame') : void 0; + return frame; + }); + + var adjustAdditionsForScrollChanges = (function (_ref) { + var additions = _ref.additions, + updatedDroppables = _ref.updatedDroppables, + viewport = _ref.viewport; + var windowScrollChange = viewport.scroll.diff.value; + return additions.map(function (draggable) { + var droppableId = draggable.descriptor.droppableId; + var modified = updatedDroppables[droppableId]; + var frame = getFrame(modified); + var droppableScrollChange = frame.scroll.diff.value; + var totalChange = add(windowScrollChange, droppableScrollChange); + var moved = offsetDraggable({ + draggable: draggable, + offset: totalChange, + initialWindowScroll: viewport.scroll.initial + }); + return moved; + }); + }); + + var publishWhileDraggingInVirtual = (function (_ref) { + var state = _ref.state, + published = _ref.published; + var withScrollChange = published.modified.map(function (update) { + var existing = state.dimensions.droppables[update.droppableId]; + var scrolled = scrollDroppable(existing, update.scroll); + return scrolled; + }); + + var droppables = _extends({}, state.dimensions.droppables, {}, toDroppableMap(withScrollChange)); + + var updatedAdditions = toDraggableMap(adjustAdditionsForScrollChanges({ + additions: published.additions, + updatedDroppables: droppables, + viewport: state.viewport + })); + + var draggables = _extends({}, state.dimensions.draggables, {}, updatedAdditions); + + published.removals.forEach(function (id) { + delete draggables[id]; + }); + var dimensions = { + droppables: droppables, + draggables: draggables + }; + var wasOverId = whatIsDraggedOver(state.impact); + var wasOver = wasOverId ? dimensions.droppables[wasOverId] : null; + var draggable = dimensions.draggables[state.critical.draggable.id]; + var home = dimensions.droppables[state.critical.droppable.id]; + + var _getLiftEffect = getLiftEffect({ + draggable: draggable, + home: home, + draggables: draggables, + viewport: state.viewport + }), + onLiftImpact = _getLiftEffect.impact, + afterCritical = _getLiftEffect.afterCritical; + + var previousImpact = wasOver && wasOver.isCombineEnabled ? state.impact : onLiftImpact; + var impact = getDragImpact({ + pageOffset: state.current.page.offset, + draggable: dimensions.draggables[state.critical.draggable.id], + draggables: dimensions.draggables, + droppables: dimensions.droppables, + previousImpact: previousImpact, + viewport: state.viewport, + afterCritical: afterCritical + }); + + var draggingState = _extends({ + phase: 'DRAGGING' + }, state, { + phase: 'DRAGGING', + impact: impact, + onLiftImpact: onLiftImpact, + dimensions: dimensions, + afterCritical: afterCritical, + forceShouldAnimate: false + }); + + if (state.phase === 'COLLECTING') { + return draggingState; + } + + var dropPending = _extends({ + phase: 'DROP_PENDING' + }, draggingState, { + phase: 'DROP_PENDING', + reason: state.reason, + isWaiting: false + }); + + return dropPending; + }); + + var isSnapping = function isSnapping(state) { + return state.movementMode === 'SNAP'; + }; + + var postDroppableChange = function postDroppableChange(state, updated, isEnabledChanging) { + var dimensions = patchDimensionMap(state.dimensions, updated); + + if (!isSnapping(state) || isEnabledChanging) { + return update({ + state: state, + dimensions: dimensions + }); + } + + return refreshSnap({ + state: state, + dimensions: dimensions + }); + }; + + function removeScrollJumpRequest(state) { + if (state.isDragging && state.movementMode === 'SNAP') { + return _extends({ + phase: 'DRAGGING' + }, state, { + scrollJumpRequest: null + }); + } + + return state; + } + + var idle = { + phase: 'IDLE', + completed: null, + shouldFlush: false + }; + var reducer = (function (state, action) { + if (state === void 0) { + state = idle; + } + + if (action.type === 'FLUSH') { + return _extends({}, idle, { + shouldFlush: true + }); + } + + if (action.type === 'INITIAL_PUBLISH') { + !(state.phase === 'IDLE') ? invariant(false, 'INITIAL_PUBLISH must come after a IDLE phase') : void 0; + var _action$payload = action.payload, + critical = _action$payload.critical, + clientSelection = _action$payload.clientSelection, + viewport = _action$payload.viewport, + dimensions = _action$payload.dimensions, + movementMode = _action$payload.movementMode; + var draggable = dimensions.draggables[critical.draggable.id]; + var home = dimensions.droppables[critical.droppable.id]; + var client = { + selection: clientSelection, + borderBoxCenter: draggable.client.borderBox.center, + offset: origin + }; + var initial = { + client: client, + page: { + selection: add(client.selection, viewport.scroll.initial), + borderBoxCenter: add(client.selection, viewport.scroll.initial), + offset: add(client.selection, viewport.scroll.diff.value) + } + }; + var isWindowScrollAllowed = toDroppableList(dimensions.droppables).every(function (item) { + return !item.isFixedOnPage; + }); + + var _getLiftEffect = getLiftEffect({ + draggable: draggable, + home: home, + draggables: dimensions.draggables, + viewport: viewport + }), + impact = _getLiftEffect.impact, + afterCritical = _getLiftEffect.afterCritical; + + var result = { + phase: 'DRAGGING', + isDragging: true, + critical: critical, + movementMode: movementMode, + dimensions: dimensions, + initial: initial, + current: initial, + isWindowScrollAllowed: isWindowScrollAllowed, + impact: impact, + afterCritical: afterCritical, + onLiftImpact: impact, + viewport: viewport, + scrollJumpRequest: null, + forceShouldAnimate: null + }; + return result; + } + + if (action.type === 'COLLECTION_STARTING') { + if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') { + return state; + } + + !(state.phase === 'DRAGGING') ? invariant(false, "Collection cannot start from phase " + state.phase) : void 0; + + var _result = _extends({ + phase: 'COLLECTING' + }, state, { + phase: 'COLLECTING' + }); + + return _result; + } + + if (action.type === 'PUBLISH_WHILE_DRAGGING') { + !(state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') ? invariant(false, "Unexpected " + action.type + " received in phase " + state.phase) : void 0; + return publishWhileDraggingInVirtual({ + state: state, + published: action.payload + }); + } + + if (action.type === 'MOVE') { + if (state.phase === 'DROP_PENDING') { + return state; + } + + !isMovementAllowed(state) ? invariant(false, action.type + " not permitted in phase " + state.phase) : void 0; + var _clientSelection = action.payload.client; + + if (isEqual(_clientSelection, state.current.client.selection)) { + return state; + } + + return update({ + state: state, + clientSelection: _clientSelection, + impact: isSnapping(state) ? state.impact : null + }); + } + + if (action.type === 'UPDATE_DROPPABLE_SCROLL') { + if (state.phase === 'DROP_PENDING') { + return removeScrollJumpRequest(state); + } + + if (state.phase === 'COLLECTING') { + return removeScrollJumpRequest(state); + } + + !isMovementAllowed(state) ? invariant(false, action.type + " not permitted in phase " + state.phase) : void 0; + var _action$payload2 = action.payload, + id = _action$payload2.id, + newScroll = _action$payload2.newScroll; + var target = state.dimensions.droppables[id]; + + if (!target) { + return state; + } + + var scrolled = scrollDroppable(target, newScroll); + return postDroppableChange(state, scrolled, false); + } + + if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') { + if (state.phase === 'DROP_PENDING') { + return state; + } + + !isMovementAllowed(state) ? invariant(false, "Attempting to move in an unsupported phase " + state.phase) : void 0; + var _action$payload3 = action.payload, + _id = _action$payload3.id, + isEnabled = _action$payload3.isEnabled; + var _target = state.dimensions.droppables[_id]; + !_target ? invariant(false, "Cannot find Droppable[id: " + _id + "] to toggle its enabled state") : void 0; + !(_target.isEnabled !== isEnabled) ? invariant(false, "Trying to set droppable isEnabled to " + String(isEnabled) + "\n but it is already " + String(_target.isEnabled)) : void 0; + + var updated = _extends({}, _target, { + isEnabled: isEnabled + }); + + return postDroppableChange(state, updated, true); + } + + if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') { + if (state.phase === 'DROP_PENDING') { + return state; + } + + !isMovementAllowed(state) ? invariant(false, "Attempting to move in an unsupported phase " + state.phase) : void 0; + var _action$payload4 = action.payload, + _id2 = _action$payload4.id, + isCombineEnabled = _action$payload4.isCombineEnabled; + var _target2 = state.dimensions.droppables[_id2]; + !_target2 ? invariant(false, "Cannot find Droppable[id: " + _id2 + "] to toggle its isCombineEnabled state") : void 0; + !(_target2.isCombineEnabled !== isCombineEnabled) ? invariant(false, "Trying to set droppable isCombineEnabled to " + String(isCombineEnabled) + "\n but it is already " + String(_target2.isCombineEnabled)) : void 0; + + var _updated = _extends({}, _target2, { + isCombineEnabled: isCombineEnabled + }); + + return postDroppableChange(state, _updated, true); + } + + if (action.type === 'MOVE_BY_WINDOW_SCROLL') { + if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') { + return state; + } + + !isMovementAllowed(state) ? invariant(false, "Cannot move by window in phase " + state.phase) : void 0; + !state.isWindowScrollAllowed ? invariant(false, 'Window scrolling is currently not supported for fixed lists') : void 0; + var _newScroll = action.payload.newScroll; + + if (isEqual(state.viewport.scroll.current, _newScroll)) { + return removeScrollJumpRequest(state); + } + + var _viewport = scrollViewport(state.viewport, _newScroll); + + if (isSnapping(state)) { + return refreshSnap({ + state: state, + viewport: _viewport + }); + } + + return update({ + state: state, + viewport: _viewport + }); + } + + if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') { + if (!isMovementAllowed(state)) { + return state; + } + + var maxScroll = action.payload.maxScroll; + + if (isEqual(maxScroll, state.viewport.scroll.max)) { + return state; + } + + var withMaxScroll = _extends({}, state.viewport, { + scroll: _extends({}, state.viewport.scroll, { + max: maxScroll + }) + }); + + return _extends({ + phase: 'DRAGGING' + }, state, { + viewport: withMaxScroll + }); + } + + if (action.type === 'MOVE_UP' || action.type === 'MOVE_DOWN' || action.type === 'MOVE_LEFT' || action.type === 'MOVE_RIGHT') { + if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') { + return state; + } + + !(state.phase === 'DRAGGING') ? invariant(false, action.type + " received while not in DRAGGING phase") : void 0; + + var _result2 = moveInDirection({ + state: state, + type: action.type + }); + + if (!_result2) { + return state; + } + + return update({ + state: state, + impact: _result2.impact, + clientSelection: _result2.clientSelection, + scrollJumpRequest: _result2.scrollJumpRequest + }); + } + + if (action.type === 'DROP_PENDING') { + var reason = action.payload.reason; + !(state.phase === 'COLLECTING') ? invariant(false, 'Can only move into the DROP_PENDING phase from the COLLECTING phase') : void 0; + + var newState = _extends({ + phase: 'DROP_PENDING' + }, state, { + phase: 'DROP_PENDING', + isWaiting: true, + reason: reason + }); + + return newState; + } + + if (action.type === 'DROP_ANIMATE') { + var _action$payload5 = action.payload, + completed = _action$payload5.completed, + dropDuration = _action$payload5.dropDuration, + newHomeClientOffset = _action$payload5.newHomeClientOffset; + !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? invariant(false, "Cannot animate drop from phase " + state.phase) : void 0; + var _result3 = { + phase: 'DROP_ANIMATING', + completed: completed, + dropDuration: dropDuration, + newHomeClientOffset: newHomeClientOffset, + dimensions: state.dimensions + }; + return _result3; + } + + if (action.type === 'DROP_COMPLETE') { + var _completed = action.payload.completed; + return { + phase: 'IDLE', + completed: _completed, + shouldFlush: false + }; + } + + return state; + }); + + var beforeInitialCapture = function beforeInitialCapture(args) { + return { + type: 'BEFORE_INITIAL_CAPTURE', + payload: args + }; + }; + var lift = function lift(args) { + return { + type: 'LIFT', + payload: args + }; + }; + var initialPublish = function initialPublish(args) { + return { + type: 'INITIAL_PUBLISH', + payload: args + }; + }; + var publishWhileDragging = function publishWhileDragging(args) { + return { + type: 'PUBLISH_WHILE_DRAGGING', + payload: args + }; + }; + var collectionStarting = function collectionStarting() { + return { + type: 'COLLECTION_STARTING', + payload: null + }; + }; + var updateDroppableScroll = function updateDroppableScroll(args) { + return { + type: 'UPDATE_DROPPABLE_SCROLL', + payload: args + }; + }; + var updateDroppableIsEnabled = function updateDroppableIsEnabled(args) { + return { + type: 'UPDATE_DROPPABLE_IS_ENABLED', + payload: args + }; + }; + var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(args) { + return { + type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED', + payload: args + }; + }; + var move = function move(args) { + return { + type: 'MOVE', + payload: args + }; + }; + var moveByWindowScroll = function moveByWindowScroll(args) { + return { + type: 'MOVE_BY_WINDOW_SCROLL', + payload: args + }; + }; + var updateViewportMaxScroll = function updateViewportMaxScroll(args) { + return { + type: 'UPDATE_VIEWPORT_MAX_SCROLL', + payload: args + }; + }; + var moveUp = function moveUp() { + return { + type: 'MOVE_UP', + payload: null + }; + }; + var moveDown = function moveDown() { + return { + type: 'MOVE_DOWN', + payload: null + }; + }; + var moveRight = function moveRight() { + return { + type: 'MOVE_RIGHT', + payload: null + }; + }; + var moveLeft = function moveLeft() { + return { + type: 'MOVE_LEFT', + payload: null + }; + }; + var flush = function flush() { + return { + type: 'FLUSH', + payload: null + }; + }; + var animateDrop = function animateDrop(args) { + return { + type: 'DROP_ANIMATE', + payload: args + }; + }; + var completeDrop = function completeDrop(args) { + return { + type: 'DROP_COMPLETE', + payload: args + }; + }; + var drop = function drop(args) { + return { + type: 'DROP', + payload: args + }; + }; + var dropPending = function dropPending(args) { + return { + type: 'DROP_PENDING', + payload: args + }; + }; + var dropAnimationFinished = function dropAnimationFinished() { + return { + type: 'DROP_ANIMATION_FINISHED', + payload: null + }; + }; + + function checkIndexes(insideDestination) { + if (insideDestination.length <= 1) { + return; + } + + var indexes = insideDestination.map(function (d) { + return d.descriptor.index; + }); + var errors = {}; + + for (var i = 1; i < indexes.length; i++) { + var current = indexes[i]; + var previous = indexes[i - 1]; + + if (current !== previous + 1) { + errors[current] = true; + } + } + + if (!Object.keys(errors).length) { + return; + } + + var formatted = indexes.map(function (index) { + var hasError = Boolean(errors[index]); + return hasError ? "[\uD83D\uDD25" + index + "]" : "" + index; + }).join(', '); + warning("\n Detected non-consecutive indexes.\n\n (This can cause unexpected bugs)\n\n " + formatted + "\n ") ; + } + + function validateDimensions(critical, dimensions) { + { + var insideDestination = getDraggablesInsideDroppable(critical.droppable.id, dimensions.draggables); + checkIndexes(insideDestination); + } + } + + var lift$1 = (function (marshal) { + return function (_ref) { + var getState = _ref.getState, + dispatch = _ref.dispatch; + return function (next) { + return function (action) { + if (action.type !== 'LIFT') { + next(action); + return; + } + + var _action$payload = action.payload, + id = _action$payload.id, + clientSelection = _action$payload.clientSelection, + movementMode = _action$payload.movementMode; + var initial = getState(); + + if (initial.phase === 'DROP_ANIMATING') { + dispatch(completeDrop({ + completed: initial.completed + })); + } + + !(getState().phase === 'IDLE') ? invariant(false, 'Unexpected phase to start a drag') : void 0; + dispatch(flush()); + dispatch(beforeInitialCapture({ + draggableId: id, + movementMode: movementMode + })); + var scrollOptions = { + shouldPublishImmediately: movementMode === 'SNAP' + }; + var request = { + draggableId: id, + scrollOptions: scrollOptions + }; + + var _marshal$startPublish = marshal.startPublishing(request), + critical = _marshal$startPublish.critical, + dimensions = _marshal$startPublish.dimensions, + viewport = _marshal$startPublish.viewport; + + validateDimensions(critical, dimensions); + dispatch(initialPublish({ + critical: critical, + dimensions: dimensions, + clientSelection: clientSelection, + movementMode: movementMode, + viewport: viewport + })); + }; + }; + }; + }); + + var style = (function (marshal) { + return function () { + return function (next) { + return function (action) { + if (action.type === 'INITIAL_PUBLISH') { + marshal.dragging(); + } + + if (action.type === 'DROP_ANIMATE') { + marshal.dropping(action.payload.completed.result.reason); + } + + if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE') { + marshal.resting(); + } + + next(action); + }; + }; + }; + }); + + var curves = { + outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)', + drop: 'cubic-bezier(.2,1,.1,1)' + }; + var combine = { + opacity: { + drop: 0, + combining: 0.7 + }, + scale: { + drop: 0.75 + } + }; + var timings = { + outOfTheWay: 0.2, + minDropTime: 0.33, + maxDropTime: 0.55 + }; + var outOfTheWayTiming = timings.outOfTheWay + "s " + curves.outOfTheWay; + var transitions = { + fluid: "opacity " + outOfTheWayTiming, + snap: "transform " + outOfTheWayTiming + ", opacity " + outOfTheWayTiming, + drop: function drop(duration) { + var timing = duration + "s " + curves.drop; + return "transform " + timing + ", opacity " + timing; + }, + outOfTheWay: "transform " + outOfTheWayTiming, + placeholder: "height " + outOfTheWayTiming + ", width " + outOfTheWayTiming + ", margin " + outOfTheWayTiming + }; + + var moveTo = function moveTo(offset) { + return isEqual(offset, origin) ? null : "translate(" + offset.x + "px, " + offset.y + "px)"; + }; + + var transforms = { + moveTo: moveTo, + drop: function drop(offset, isCombining) { + var translate = moveTo(offset); + + if (!translate) { + return null; + } + + if (!isCombining) { + return translate; + } + + return translate + " scale(" + combine.scale.drop + ")"; + } + }; + + var minDropTime = timings.minDropTime, + maxDropTime = timings.maxDropTime; + var dropTimeRange = maxDropTime - minDropTime; + var maxDropTimeAtDistance = 1500; + var cancelDropModifier = 0.6; + var getDropDuration = (function (_ref) { + var current = _ref.current, + destination = _ref.destination, + reason = _ref.reason; + var distance$1 = distance(current, destination); + + if (distance$1 <= 0) { + return minDropTime; + } + + if (distance$1 >= maxDropTimeAtDistance) { + return maxDropTime; + } + + var percentage = distance$1 / maxDropTimeAtDistance; + var duration = minDropTime + dropTimeRange * percentage; + var withDuration = reason === 'CANCEL' ? duration * cancelDropModifier : duration; + return Number(withDuration.toFixed(2)); + }); + + var getNewHomeClientOffset = (function (_ref) { + var impact = _ref.impact, + draggable = _ref.draggable, + dimensions = _ref.dimensions, + viewport = _ref.viewport, + afterCritical = _ref.afterCritical; + var draggables = dimensions.draggables, + droppables = dimensions.droppables; + var droppableId = whatIsDraggedOver(impact); + var destination = droppableId ? droppables[droppableId] : null; + var home = droppables[draggable.descriptor.droppableId]; + var newClientCenter = getClientBorderBoxCenter({ + impact: impact, + draggable: draggable, + draggables: draggables, + afterCritical: afterCritical, + droppable: destination || home, + viewport: viewport + }); + var offset = subtract(newClientCenter, draggable.client.borderBox.center); + return offset; + }); + + var getDropImpact = (function (_ref) { + var draggables = _ref.draggables, + reason = _ref.reason, + lastImpact = _ref.lastImpact, + home = _ref.home, + viewport = _ref.viewport, + onLiftImpact = _ref.onLiftImpact; + + if (!lastImpact.at || reason !== 'DROP') { + var recomputedHomeImpact = recompute({ + draggables: draggables, + impact: onLiftImpact, + destination: home, + viewport: viewport, + forceShouldAnimate: true + }); + return { + impact: recomputedHomeImpact, + didDropInsideDroppable: false + }; + } + + if (lastImpact.at.type === 'REORDER') { + return { + impact: lastImpact, + didDropInsideDroppable: true + }; + } + + var withoutMovement = _extends({}, lastImpact, { + displaced: emptyGroups + }); + + return { + impact: withoutMovement, + didDropInsideDroppable: true + }; + }); + + var drop$1 = (function (_ref) { + var getState = _ref.getState, + dispatch = _ref.dispatch; + return function (next) { + return function (action) { + if (action.type !== 'DROP') { + next(action); + return; + } + + var state = getState(); + var reason = action.payload.reason; + + if (state.phase === 'COLLECTING') { + dispatch(dropPending({ + reason: reason + })); + return; + } + + if (state.phase === 'IDLE') { + return; + } + + var isWaitingForDrop = state.phase === 'DROP_PENDING' && state.isWaiting; + !!isWaitingForDrop ? invariant(false, 'A DROP action occurred while DROP_PENDING and still waiting') : void 0; + !(state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING') ? invariant(false, "Cannot drop in phase: " + state.phase) : void 0; + var critical = state.critical; + var dimensions = state.dimensions; + var draggable = dimensions.draggables[state.critical.draggable.id]; + + var _getDropImpact = getDropImpact({ + reason: reason, + lastImpact: state.impact, + afterCritical: state.afterCritical, + onLiftImpact: state.onLiftImpact, + home: state.dimensions.droppables[state.critical.droppable.id], + viewport: state.viewport, + draggables: state.dimensions.draggables + }), + impact = _getDropImpact.impact, + didDropInsideDroppable = _getDropImpact.didDropInsideDroppable; + + var destination = didDropInsideDroppable ? tryGetDestination(impact) : null; + var combine = didDropInsideDroppable ? tryGetCombine(impact) : null; + var source = { + index: critical.draggable.index, + droppableId: critical.droppable.id + }; + var result = { + draggableId: draggable.descriptor.id, + type: draggable.descriptor.type, + source: source, + reason: reason, + mode: state.movementMode, + destination: destination, + combine: combine + }; + var newHomeClientOffset = getNewHomeClientOffset({ + impact: impact, + draggable: draggable, + dimensions: dimensions, + viewport: state.viewport, + afterCritical: state.afterCritical + }); + var completed = { + critical: state.critical, + afterCritical: state.afterCritical, + result: result, + impact: impact + }; + var isAnimationRequired = !isEqual(state.current.client.offset, newHomeClientOffset) || Boolean(result.combine); + + if (!isAnimationRequired) { + dispatch(completeDrop({ + completed: completed + })); + return; + } + + var dropDuration = getDropDuration({ + current: state.current.client.offset, + destination: newHomeClientOffset, + reason: reason + }); + var args = { + newHomeClientOffset: newHomeClientOffset, + dropDuration: dropDuration, + completed: completed + }; + dispatch(animateDrop(args)); + }; + }; + }); + + var rafSchd = function rafSchd(fn) { + var lastArgs = []; + var frameId = null; + + var wrapperFn = function wrapperFn() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + lastArgs = args; + + if (frameId) { + return; + } + + frameId = requestAnimationFrame(function () { + frameId = null; + fn.apply(void 0, lastArgs); + }); + }; + + wrapperFn.cancel = function () { + if (!frameId) { + return; + } + + cancelAnimationFrame(frameId); + frameId = null; + }; + + return wrapperFn; + }; + + var getWindowScroll$1 = (function () { + return { + x: window.pageXOffset, + y: window.pageYOffset + }; + }); + + function getWindowScrollBinding(update) { + return { + eventName: 'scroll', + options: { + passive: true, + capture: false + }, + fn: function fn(event) { + if (event.target !== window && event.target !== window.document) { + return; + } + + update(); + } + }; + } + + function getScrollListener(_ref) { + var onWindowScroll = _ref.onWindowScroll; + + function updateScroll() { + onWindowScroll(getWindowScroll$1()); + } + + var scheduled = rafSchd(updateScroll); + var binding = getWindowScrollBinding(scheduled); + var unbind = noop; + + function isActive() { + return unbind !== noop; + } + + function start() { + !!isActive() ? invariant(false, 'Cannot start scroll listener when already active') : void 0; + unbind = bindEvents(window, [binding]); + } + + function stop() { + !isActive() ? invariant(false, 'Cannot stop scroll listener when not active') : void 0; + scheduled.cancel(); + unbind(); + unbind = noop; + } + + return { + start: start, + stop: stop, + isActive: isActive + }; + } + + var shouldEnd = function shouldEnd(action) { + return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH'; + }; + + var scrollListener = (function (store) { + var listener = getScrollListener({ + onWindowScroll: function onWindowScroll(newScroll) { + store.dispatch(moveByWindowScroll({ + newScroll: newScroll + })); + } + }); + return function (next) { + return function (action) { + if (!listener.isActive() && action.type === 'INITIAL_PUBLISH') { + listener.start(); + } + + if (listener.isActive() && shouldEnd(action)) { + listener.stop(); + } + + next(action); + }; + }; + }); + + var getExpiringAnnounce = (function (announce) { + var wasCalled = false; + var isExpired = false; + var timeoutId = setTimeout(function () { + isExpired = true; + }); + + var result = function result(message) { + if (wasCalled) { + warning('Announcement already made. Not making a second announcement') ; + return; + } + + if (isExpired) { + warning("\n Announcements cannot be made asynchronously.\n Default message has already been announced.\n ") ; + return; + } + + wasCalled = true; + announce(message); + clearTimeout(timeoutId); + }; + + result.wasCalled = function () { + return wasCalled; + }; + + return result; + }); + + var getAsyncMarshal = (function () { + var entries = []; + + var execute = function execute(timerId) { + var index = findIndex(entries, function (item) { + return item.timerId === timerId; + }); + !(index !== -1) ? invariant(false, 'Could not find timer') : void 0; + + var _entries$splice = entries.splice(index, 1), + entry = _entries$splice[0]; + + entry.callback(); + }; + + var add = function add(fn) { + var timerId = setTimeout(function () { + return execute(timerId); + }); + var entry = { + timerId: timerId, + callback: fn + }; + entries.push(entry); + }; + + var flush = function flush() { + if (!entries.length) { + return; + } + + var shallow = [].concat(entries); + entries.length = 0; + shallow.forEach(function (entry) { + clearTimeout(entry.timerId); + entry.callback(); + }); + }; + + return { + add: add, + flush: flush + }; + }); + + var areLocationsEqual = function areLocationsEqual(first, second) { + if (first == null && second == null) { + return true; + } + + if (first == null || second == null) { + return false; + } + + return first.droppableId === second.droppableId && first.index === second.index; + }; + var isCombineEqual = function isCombineEqual(first, second) { + if (first == null && second == null) { + return true; + } + + if (first == null || second == null) { + return false; + } + + return first.draggableId === second.draggableId && first.droppableId === second.droppableId; + }; + var isCriticalEqual = function isCriticalEqual(first, second) { + if (first === second) { + return true; + } + + var isDraggableEqual = first.draggable.id === second.draggable.id && first.draggable.droppableId === second.draggable.droppableId && first.draggable.type === second.draggable.type && first.draggable.index === second.draggable.index; + var isDroppableEqual = first.droppable.id === second.droppable.id && first.droppable.type === second.droppable.type; + return isDraggableEqual && isDroppableEqual; + }; + + var withTimings = function withTimings(key, fn) { + fn(); + }; + + var getDragStart = function getDragStart(critical, mode) { + return { + draggableId: critical.draggable.id, + type: critical.droppable.type, + source: { + droppableId: critical.droppable.id, + index: critical.draggable.index + }, + mode: mode + }; + }; + + var execute = function execute(responder, data, announce, getDefaultMessage) { + if (!responder) { + announce(getDefaultMessage(data)); + return; + } + + var willExpire = getExpiringAnnounce(announce); + var provided = { + announce: willExpire + }; + responder(data, provided); + + if (!willExpire.wasCalled()) { + announce(getDefaultMessage(data)); + } + }; + + var getPublisher = (function (getResponders, announce) { + var asyncMarshal = getAsyncMarshal(); + var dragging = null; + + var beforeCapture = function beforeCapture(draggableId, mode) { + !!dragging ? invariant(false, 'Cannot fire onBeforeCapture as a drag start has already been published') : void 0; + withTimings('onBeforeCapture', function () { + var fn = getResponders().onBeforeCapture; + + if (fn) { + var before = { + draggableId: draggableId, + mode: mode + }; + fn(before); + } + }); + }; + + var beforeStart = function beforeStart(critical, mode) { + !!dragging ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : void 0; + withTimings('onBeforeDragStart', function () { + var fn = getResponders().onBeforeDragStart; + + if (fn) { + fn(getDragStart(critical, mode)); + } + }); + }; + + var start = function start(critical, mode) { + !!dragging ? invariant(false, 'Cannot fire onBeforeDragStart as a drag start has already been published') : void 0; + var data = getDragStart(critical, mode); + dragging = { + mode: mode, + lastCritical: critical, + lastLocation: data.source, + lastCombine: null + }; + asyncMarshal.add(function () { + withTimings('onDragStart', function () { + return execute(getResponders().onDragStart, data, announce, preset.onDragStart); + }); + }); + }; + + var update = function update(critical, impact) { + var location = tryGetDestination(impact); + var combine = tryGetCombine(impact); + !dragging ? invariant(false, 'Cannot fire onDragMove when onDragStart has not been called') : void 0; + var hasCriticalChanged = !isCriticalEqual(critical, dragging.lastCritical); + + if (hasCriticalChanged) { + dragging.lastCritical = critical; + } + + var hasLocationChanged = !areLocationsEqual(dragging.lastLocation, location); + + if (hasLocationChanged) { + dragging.lastLocation = location; + } + + var hasGroupingChanged = !isCombineEqual(dragging.lastCombine, combine); + + if (hasGroupingChanged) { + dragging.lastCombine = combine; + } + + if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) { + return; + } + + var data = _extends({}, getDragStart(critical, dragging.mode), { + combine: combine, + destination: location + }); + + asyncMarshal.add(function () { + withTimings('onDragUpdate', function () { + return execute(getResponders().onDragUpdate, data, announce, preset.onDragUpdate); + }); + }); + }; + + var flush = function flush() { + !dragging ? invariant(false, 'Can only flush responders while dragging') : void 0; + asyncMarshal.flush(); + }; + + var drop = function drop(result) { + !dragging ? invariant(false, 'Cannot fire onDragEnd when there is no matching onDragStart') : void 0; + dragging = null; + withTimings('onDragEnd', function () { + return execute(getResponders().onDragEnd, result, announce, preset.onDragEnd); + }); + }; + + var abort = function abort() { + if (!dragging) { + return; + } + + var result = _extends({}, getDragStart(dragging.lastCritical, dragging.mode), { + combine: null, + destination: null, + reason: 'CANCEL' + }); + + drop(result); + }; + + return { + beforeCapture: beforeCapture, + beforeStart: beforeStart, + start: start, + update: update, + flush: flush, + drop: drop, + abort: abort + }; + }); + + var responders = (function (getResponders, announce) { + var publisher = getPublisher(getResponders, announce); + return function (store) { + return function (next) { + return function (action) { + if (action.type === 'BEFORE_INITIAL_CAPTURE') { + publisher.beforeCapture(action.payload.draggableId, action.payload.movementMode); + return; + } + + if (action.type === 'INITIAL_PUBLISH') { + var critical = action.payload.critical; + publisher.beforeStart(critical, action.payload.movementMode); + next(action); + publisher.start(critical, action.payload.movementMode); + return; + } + + if (action.type === 'DROP_COMPLETE') { + var result = action.payload.completed.result; + publisher.flush(); + next(action); + publisher.drop(result); + return; + } + + next(action); + + if (action.type === 'FLUSH') { + publisher.abort(); + return; + } + + var state = store.getState(); + + if (state.phase === 'DRAGGING') { + publisher.update(state.critical, state.impact); + } + }; + }; + }; + }); + + var dropAnimationFinish = (function (store) { + return function (next) { + return function (action) { + if (action.type !== 'DROP_ANIMATION_FINISHED') { + next(action); + return; + } + + var state = store.getState(); + !(state.phase === 'DROP_ANIMATING') ? invariant(false, 'Cannot finish a drop animating when no drop is occurring') : void 0; + store.dispatch(completeDrop({ + completed: state.completed + })); + }; + }; + }); + + var dropAnimationFlushOnScroll = (function (store) { + var unbind = null; + var frameId = null; + + function clear() { + if (frameId) { + cancelAnimationFrame(frameId); + frameId = null; + } + + if (unbind) { + unbind(); + unbind = null; + } + } + + return function (next) { + return function (action) { + if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATION_FINISHED') { + clear(); + } + + next(action); + + if (action.type !== 'DROP_ANIMATE') { + return; + } + + var binding = { + eventName: 'scroll', + options: { + capture: true, + passive: false, + once: true + }, + fn: function flushDropAnimation() { + var state = store.getState(); + + if (state.phase === 'DROP_ANIMATING') { + store.dispatch(dropAnimationFinished()); + } + } + }; + frameId = requestAnimationFrame(function () { + frameId = null; + unbind = bindEvents(window, [binding]); + }); + }; + }; + }); + + var dimensionMarshalStopper = (function (marshal) { + return function () { + return function (next) { + return function (action) { + if (action.type === 'DROP_COMPLETE' || action.type === 'FLUSH' || action.type === 'DROP_ANIMATE') { + marshal.stopPublishing(); + } + + next(action); + }; + }; + }; + }); + + var focus = (function (marshal) { + var isWatching = false; + return function () { + return function (next) { + return function (action) { + if (action.type === 'INITIAL_PUBLISH') { + isWatching = true; + marshal.tryRecordFocus(action.payload.critical.draggable.id); + next(action); + marshal.tryRestoreFocusRecorded(); + return; + } + + next(action); + + if (!isWatching) { + return; + } + + if (action.type === 'FLUSH') { + isWatching = false; + marshal.tryRestoreFocusRecorded(); + return; + } + + if (action.type === 'DROP_COMPLETE') { + isWatching = false; + var result = action.payload.completed.result; + + if (result.combine) { + marshal.tryShiftRecord(result.draggableId, result.combine.draggableId); + } + + marshal.tryRestoreFocusRecorded(); + } + }; + }; + }; + }); + + var shouldStop = function shouldStop(action) { + return action.type === 'DROP_COMPLETE' || action.type === 'DROP_ANIMATE' || action.type === 'FLUSH'; + }; + + var autoScroll = (function (autoScroller) { + return function (store) { + return function (next) { + return function (action) { + if (shouldStop(action)) { + autoScroller.stop(); + next(action); + return; + } + + if (action.type === 'INITIAL_PUBLISH') { + next(action); + var state = store.getState(); + !(state.phase === 'DRAGGING') ? invariant(false, 'Expected phase to be DRAGGING after INITIAL_PUBLISH') : void 0; + autoScroller.start(state); + return; + } + + next(action); + autoScroller.scroll(store.getState()); + }; + }; + }; + }); + + var pendingDrop = (function (store) { + return function (next) { + return function (action) { + next(action); + + if (action.type !== 'PUBLISH_WHILE_DRAGGING') { + return; + } + + var postActionState = store.getState(); + + if (postActionState.phase !== 'DROP_PENDING') { + return; + } + + if (postActionState.isWaiting) { + return; + } + + store.dispatch(drop({ + reason: postActionState.reason + })); + }; + }; + }); + + var composeEnhancers = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ + name: 'react-beautiful-dnd' + }) : compose; + var createStore$1 = (function (_ref) { + var dimensionMarshal = _ref.dimensionMarshal, + focusMarshal = _ref.focusMarshal, + styleMarshal = _ref.styleMarshal, + getResponders = _ref.getResponders, + announce = _ref.announce, + autoScroller = _ref.autoScroller; + return createStore(reducer, composeEnhancers(applyMiddleware(style(styleMarshal), dimensionMarshalStopper(dimensionMarshal), lift$1(dimensionMarshal), drop$1, dropAnimationFinish, dropAnimationFlushOnScroll, pendingDrop, autoScroll(autoScroller), scrollListener, focus(focusMarshal), responders(getResponders, announce)))); + }); + + var clean$1 = function clean() { + return { + additions: {}, + removals: {}, + modified: {} + }; + }; + function createPublisher(_ref) { + var registry = _ref.registry, + callbacks = _ref.callbacks; + var staging = clean$1(); + var frameId = null; + + var collect = function collect() { + if (frameId) { + return; + } + + callbacks.collectionStarting(); + frameId = requestAnimationFrame(function () { + frameId = null; + var _staging = staging, + additions = _staging.additions, + removals = _staging.removals, + modified = _staging.modified; + var added = Object.keys(additions).map(function (id) { + return registry.draggable.getById(id).getDimension(origin); + }).sort(function (a, b) { + return a.descriptor.index - b.descriptor.index; + }); + var updated = Object.keys(modified).map(function (id) { + var entry = registry.droppable.getById(id); + var scroll = entry.callbacks.getScrollWhileDragging(); + return { + droppableId: id, + scroll: scroll + }; + }); + var result = { + additions: added, + removals: Object.keys(removals), + modified: updated + }; + staging = clean$1(); + callbacks.publish(result); + }); + }; + + var add = function add(entry) { + var id = entry.descriptor.id; + staging.additions[id] = entry; + staging.modified[entry.descriptor.droppableId] = true; + + if (staging.removals[id]) { + delete staging.removals[id]; + } + + collect(); + }; + + var remove = function remove(entry) { + var descriptor = entry.descriptor; + staging.removals[descriptor.id] = true; + staging.modified[descriptor.droppableId] = true; + + if (staging.additions[descriptor.id]) { + delete staging.additions[descriptor.id]; + } + + collect(); + }; + + var stop = function stop() { + if (!frameId) { + return; + } + + cancelAnimationFrame(frameId); + frameId = null; + staging = clean$1(); + }; + + return { + add: add, + remove: remove, + stop: stop + }; + } + + var getMaxScroll = (function (_ref) { + var scrollHeight = _ref.scrollHeight, + scrollWidth = _ref.scrollWidth, + height = _ref.height, + width = _ref.width; + var maxScroll = subtract({ + x: scrollWidth, + y: scrollHeight + }, { + x: width, + y: height + }); + var adjustedMaxScroll = { + x: Math.max(0, maxScroll.x), + y: Math.max(0, maxScroll.y) + }; + return adjustedMaxScroll; + }); + + var getDocumentElement = (function () { + var doc = document.documentElement; + !doc ? invariant(false, 'Cannot find document.documentElement') : void 0; + return doc; + }); + + var getMaxWindowScroll = (function () { + var doc = getDocumentElement(); + var maxScroll = getMaxScroll({ + scrollHeight: doc.scrollHeight, + scrollWidth: doc.scrollWidth, + width: doc.clientWidth, + height: doc.clientHeight + }); + return maxScroll; + }); + + var getViewport = (function () { + var scroll = getWindowScroll$1(); + var maxScroll = getMaxWindowScroll(); + var top = scroll.y; + var left = scroll.x; + var doc = getDocumentElement(); + var width = doc.clientWidth; + var height = doc.clientHeight; + var right = left + width; + var bottom = top + height; + var frame = getRect({ + top: top, + left: left, + right: right, + bottom: bottom + }); + var viewport = { + frame: frame, + scroll: { + initial: scroll, + current: scroll, + max: maxScroll, + diff: { + value: origin, + displacement: origin + } + } + }; + return viewport; + }); + + var getInitialPublish = (function (_ref) { + var critical = _ref.critical, + scrollOptions = _ref.scrollOptions, + registry = _ref.registry; + var viewport = getViewport(); + var windowScroll = viewport.scroll.current; + var home = critical.droppable; + var droppables = registry.droppable.getAllByType(home.type).map(function (entry) { + return entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions); + }); + var draggables = registry.draggable.getAllByType(critical.draggable.type).map(function (entry) { + return entry.getDimension(windowScroll); + }); + var dimensions = { + draggables: toDraggableMap(draggables), + droppables: toDroppableMap(droppables) + }; + var result = { + dimensions: dimensions, + critical: critical, + viewport: viewport + }; + return result; + }); + + function shouldPublishUpdate(registry, dragging, entry) { + if (entry.descriptor.id === dragging.id) { + return false; + } + + if (entry.descriptor.type !== dragging.type) { + return false; + } + + var home = registry.droppable.getById(entry.descriptor.droppableId); + + if (home.descriptor.mode !== 'virtual') { + warning("\n You are attempting to add or remove a Draggable [id: " + entry.descriptor.id + "]\n while a drag is occurring. This is only supported for virtual lists.\n\n See https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/patterns/virtual-lists.md\n ") ; + return false; + } + + return true; + } + + var createDimensionMarshal = (function (registry, callbacks) { + var collection = null; + var publisher = createPublisher({ + callbacks: { + publish: callbacks.publishWhileDragging, + collectionStarting: callbacks.collectionStarting + }, + registry: registry + }); + + var updateDroppableIsEnabled = function updateDroppableIsEnabled(id, isEnabled) { + !registry.droppable.exists(id) ? invariant(false, "Cannot update is enabled flag of Droppable " + id + " as it is not registered") : void 0; + + if (!collection) { + return; + } + + callbacks.updateDroppableIsEnabled({ + id: id, + isEnabled: isEnabled + }); + }; + + var updateDroppableIsCombineEnabled = function updateDroppableIsCombineEnabled(id, isCombineEnabled) { + if (!collection) { + return; + } + + !registry.droppable.exists(id) ? invariant(false, "Cannot update isCombineEnabled flag of Droppable " + id + " as it is not registered") : void 0; + callbacks.updateDroppableIsCombineEnabled({ + id: id, + isCombineEnabled: isCombineEnabled + }); + }; + + var updateDroppableScroll = function updateDroppableScroll(id, newScroll) { + if (!collection) { + return; + } + + !registry.droppable.exists(id) ? invariant(false, "Cannot update the scroll on Droppable " + id + " as it is not registered") : void 0; + callbacks.updateDroppableScroll({ + id: id, + newScroll: newScroll + }); + }; + + var scrollDroppable = function scrollDroppable(id, change) { + if (!collection) { + return; + } + + registry.droppable.getById(id).callbacks.scroll(change); + }; + + var stopPublishing = function stopPublishing() { + if (!collection) { + return; + } + + publisher.stop(); + var home = collection.critical.droppable; + registry.droppable.getAllByType(home.type).forEach(function (entry) { + return entry.callbacks.dragStopped(); + }); + collection.unsubscribe(); + collection = null; + }; + + var subscriber = function subscriber(event) { + !collection ? invariant(false, 'Should only be subscribed when a collection is occurring') : void 0; + var dragging = collection.critical.draggable; + + if (event.type === 'ADDITION') { + if (shouldPublishUpdate(registry, dragging, event.value)) { + publisher.add(event.value); + } + } + + if (event.type === 'REMOVAL') { + if (shouldPublishUpdate(registry, dragging, event.value)) { + publisher.remove(event.value); + } + } + }; + + var startPublishing = function startPublishing(request) { + !!collection ? invariant(false, 'Cannot start capturing critical dimensions as there is already a collection') : void 0; + var entry = registry.draggable.getById(request.draggableId); + var home = registry.droppable.getById(entry.descriptor.droppableId); + var critical = { + draggable: entry.descriptor, + droppable: home.descriptor + }; + var unsubscribe = registry.subscribe(subscriber); + collection = { + critical: critical, + unsubscribe: unsubscribe + }; + return getInitialPublish({ + critical: critical, + registry: registry, + scrollOptions: request.scrollOptions + }); + }; + + var marshal = { + updateDroppableIsEnabled: updateDroppableIsEnabled, + updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled, + scrollDroppable: scrollDroppable, + updateDroppableScroll: updateDroppableScroll, + startPublishing: startPublishing, + stopPublishing: stopPublishing + }; + return marshal; + }); + + var canStartDrag = (function (state, id) { + if (state.phase === 'IDLE') { + return true; + } + + if (state.phase !== 'DROP_ANIMATING') { + return false; + } + + if (state.completed.result.draggableId === id) { + return false; + } + + return state.completed.result.reason === 'DROP'; + }); + + var scrollWindow = (function (change) { + window.scrollBy(change.x, change.y); + }); + + var getScrollableDroppables = memoizeOne(function (droppables) { + return toDroppableList(droppables).filter(function (droppable) { + if (!droppable.isEnabled) { + return false; + } + + if (!droppable.frame) { + return false; + } + + return true; + }); + }); + + var getScrollableDroppableOver = function getScrollableDroppableOver(target, droppables) { + var maybe = find(getScrollableDroppables(droppables), function (droppable) { + !droppable.frame ? invariant(false, 'Invalid result') : void 0; + return isPositionInFrame(droppable.frame.pageMarginBox)(target); + }); + return maybe; + }; + + var getBestScrollableDroppable = (function (_ref) { + var center = _ref.center, + destination = _ref.destination, + droppables = _ref.droppables; + + if (destination) { + var _dimension = droppables[destination]; + + if (!_dimension.frame) { + return null; + } + + return _dimension; + } + + var dimension = getScrollableDroppableOver(center, droppables); + return dimension; + }); + + var config = { + startFromPercentage: 0.25, + maxScrollAtPercentage: 0.05, + maxPixelScroll: 28, + ease: function ease(percentage) { + return Math.pow(percentage, 2); + }, + durationDampening: { + stopDampeningAt: 1200, + accelerateAt: 360 + } + }; + + var getDistanceThresholds = (function (container, axis) { + var startScrollingFrom = container[axis.size] * config.startFromPercentage; + var maxScrollValueAt = container[axis.size] * config.maxScrollAtPercentage; + var thresholds = { + startScrollingFrom: startScrollingFrom, + maxScrollValueAt: maxScrollValueAt + }; + return thresholds; + }); + + var getPercentage = (function (_ref) { + var startOfRange = _ref.startOfRange, + endOfRange = _ref.endOfRange, + current = _ref.current; + var range = endOfRange - startOfRange; + + if (range === 0) { + warning("\n Detected distance range of 0 in the fluid auto scroller\n This is unexpected and would cause a divide by 0 issue.\n Not allowing an auto scroll\n ") ; + return 0; + } + + var currentInRange = current - startOfRange; + var percentage = currentInRange / range; + return percentage; + }); + + var minScroll = 1; + + var getValueFromDistance = (function (distanceToEdge, thresholds) { + if (distanceToEdge > thresholds.startScrollingFrom) { + return 0; + } + + if (distanceToEdge <= thresholds.maxScrollValueAt) { + return config.maxPixelScroll; + } + + if (distanceToEdge === thresholds.startScrollingFrom) { + return minScroll; + } + + var percentageFromMaxScrollValueAt = getPercentage({ + startOfRange: thresholds.maxScrollValueAt, + endOfRange: thresholds.startScrollingFrom, + current: distanceToEdge + }); + var percentageFromStartScrollingFrom = 1 - percentageFromMaxScrollValueAt; + var scroll = config.maxPixelScroll * config.ease(percentageFromStartScrollingFrom); + return Math.ceil(scroll); + }); + + var accelerateAt = config.durationDampening.accelerateAt; + var stopAt = config.durationDampening.stopDampeningAt; + var dampenValueByTime = (function (proposedScroll, dragStartTime) { + var startOfRange = dragStartTime; + var endOfRange = stopAt; + var now = Date.now(); + var runTime = now - startOfRange; + + if (runTime >= stopAt) { + return proposedScroll; + } + + if (runTime < accelerateAt) { + return minScroll; + } + + var betweenAccelerateAtAndStopAtPercentage = getPercentage({ + startOfRange: accelerateAt, + endOfRange: endOfRange, + current: runTime + }); + var scroll = proposedScroll * config.ease(betweenAccelerateAtAndStopAtPercentage); + return Math.ceil(scroll); + }); + + var getValue = (function (_ref) { + var distanceToEdge = _ref.distanceToEdge, + thresholds = _ref.thresholds, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var scroll = getValueFromDistance(distanceToEdge, thresholds); + + if (scroll === 0) { + return 0; + } + + if (!shouldUseTimeDampening) { + return scroll; + } + + return Math.max(dampenValueByTime(scroll, dragStartTime), minScroll); + }); + + var getScrollOnAxis = (function (_ref) { + var container = _ref.container, + distanceToEdges = _ref.distanceToEdges, + dragStartTime = _ref.dragStartTime, + axis = _ref.axis, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var thresholds = getDistanceThresholds(container, axis); + var isCloserToEnd = distanceToEdges[axis.end] < distanceToEdges[axis.start]; + + if (isCloserToEnd) { + return getValue({ + distanceToEdge: distanceToEdges[axis.end], + thresholds: thresholds, + dragStartTime: dragStartTime, + shouldUseTimeDampening: shouldUseTimeDampening + }); + } + + return -1 * getValue({ + distanceToEdge: distanceToEdges[axis.start], + thresholds: thresholds, + dragStartTime: dragStartTime, + shouldUseTimeDampening: shouldUseTimeDampening + }); + }); + + var adjustForSizeLimits = (function (_ref) { + var container = _ref.container, + subject = _ref.subject, + proposedScroll = _ref.proposedScroll; + var isTooBigVertically = subject.height > container.height; + var isTooBigHorizontally = subject.width > container.width; + + if (!isTooBigHorizontally && !isTooBigVertically) { + return proposedScroll; + } + + if (isTooBigHorizontally && isTooBigVertically) { + return null; + } + + return { + x: isTooBigHorizontally ? 0 : proposedScroll.x, + y: isTooBigVertically ? 0 : proposedScroll.y + }; + }); + + var clean$2 = apply(function (value) { + return value === 0 ? 0 : value; + }); + var getScroll = (function (_ref) { + var dragStartTime = _ref.dragStartTime, + container = _ref.container, + subject = _ref.subject, + center = _ref.center, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var distanceToEdges = { + top: center.y - container.top, + right: container.right - center.x, + bottom: container.bottom - center.y, + left: center.x - container.left + }; + var y = getScrollOnAxis({ + container: container, + distanceToEdges: distanceToEdges, + dragStartTime: dragStartTime, + axis: vertical, + shouldUseTimeDampening: shouldUseTimeDampening + }); + var x = getScrollOnAxis({ + container: container, + distanceToEdges: distanceToEdges, + dragStartTime: dragStartTime, + axis: horizontal, + shouldUseTimeDampening: shouldUseTimeDampening + }); + var required = clean$2({ + x: x, + y: y + }); + + if (isEqual(required, origin)) { + return null; + } + + var limited = adjustForSizeLimits({ + container: container, + subject: subject, + proposedScroll: required + }); + + if (!limited) { + return null; + } + + return isEqual(limited, origin) ? null : limited; + }); + + var smallestSigned = apply(function (value) { + if (value === 0) { + return 0; + } + + return value > 0 ? 1 : -1; + }); + var getOverlap = function () { + var getRemainder = function getRemainder(target, max) { + if (target < 0) { + return target; + } + + if (target > max) { + return target - max; + } + + return 0; + }; + + return function (_ref) { + var current = _ref.current, + max = _ref.max, + change = _ref.change; + var targetScroll = add(current, change); + var overlap = { + x: getRemainder(targetScroll.x, max.x), + y: getRemainder(targetScroll.y, max.y) + }; + + if (isEqual(overlap, origin)) { + return null; + } + + return overlap; + }; + }(); + var canPartiallyScroll = function canPartiallyScroll(_ref2) { + var rawMax = _ref2.max, + current = _ref2.current, + change = _ref2.change; + var max = { + x: Math.max(current.x, rawMax.x), + y: Math.max(current.y, rawMax.y) + }; + var smallestChange = smallestSigned(change); + var overlap = getOverlap({ + max: max, + current: current, + change: smallestChange + }); + + if (!overlap) { + return true; + } + + if (smallestChange.x !== 0 && overlap.x === 0) { + return true; + } + + if (smallestChange.y !== 0 && overlap.y === 0) { + return true; + } + + return false; + }; + var canScrollWindow = function canScrollWindow(viewport, change) { + return canPartiallyScroll({ + current: viewport.scroll.current, + max: viewport.scroll.max, + change: change + }); + }; + var getWindowOverlap = function getWindowOverlap(viewport, change) { + if (!canScrollWindow(viewport, change)) { + return null; + } + + var max = viewport.scroll.max; + var current = viewport.scroll.current; + return getOverlap({ + current: current, + max: max, + change: change + }); + }; + var canScrollDroppable = function canScrollDroppable(droppable, change) { + var frame = droppable.frame; + + if (!frame) { + return false; + } + + return canPartiallyScroll({ + current: frame.scroll.current, + max: frame.scroll.max, + change: change + }); + }; + var getDroppableOverlap = function getDroppableOverlap(droppable, change) { + var frame = droppable.frame; + + if (!frame) { + return null; + } + + if (!canScrollDroppable(droppable, change)) { + return null; + } + + return getOverlap({ + current: frame.scroll.current, + max: frame.scroll.max, + change: change + }); + }; + + var getWindowScrollChange = (function (_ref) { + var viewport = _ref.viewport, + subject = _ref.subject, + center = _ref.center, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var scroll = getScroll({ + dragStartTime: dragStartTime, + container: viewport.frame, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + return scroll && canScrollWindow(viewport, scroll) ? scroll : null; + }); + + var getDroppableScrollChange = (function (_ref) { + var droppable = _ref.droppable, + subject = _ref.subject, + center = _ref.center, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening; + var frame = droppable.frame; + + if (!frame) { + return null; + } + + var scroll = getScroll({ + dragStartTime: dragStartTime, + container: frame.pageMarginBox, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + return scroll && canScrollDroppable(droppable, scroll) ? scroll : null; + }); + + var scroll$1 = (function (_ref) { + var state = _ref.state, + dragStartTime = _ref.dragStartTime, + shouldUseTimeDampening = _ref.shouldUseTimeDampening, + scrollWindow = _ref.scrollWindow, + scrollDroppable = _ref.scrollDroppable; + var center = state.current.page.borderBoxCenter; + var draggable = state.dimensions.draggables[state.critical.draggable.id]; + var subject = draggable.page.marginBox; + + if (state.isWindowScrollAllowed) { + var viewport = state.viewport; + + var _change = getWindowScrollChange({ + dragStartTime: dragStartTime, + viewport: viewport, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + + if (_change) { + scrollWindow(_change); + return; + } + } + + var droppable = getBestScrollableDroppable({ + center: center, + destination: whatIsDraggedOver(state.impact), + droppables: state.dimensions.droppables + }); + + if (!droppable) { + return; + } + + var change = getDroppableScrollChange({ + dragStartTime: dragStartTime, + droppable: droppable, + subject: subject, + center: center, + shouldUseTimeDampening: shouldUseTimeDampening + }); + + if (change) { + scrollDroppable(droppable.descriptor.id, change); + } + }); + + var createFluidScroller = (function (_ref) { + var scrollWindow = _ref.scrollWindow, + scrollDroppable = _ref.scrollDroppable; + var scheduleWindowScroll = rafSchd(scrollWindow); + var scheduleDroppableScroll = rafSchd(scrollDroppable); + var dragging = null; + + var tryScroll = function tryScroll(state) { + !dragging ? invariant(false, 'Cannot fluid scroll if not dragging') : void 0; + var _dragging = dragging, + shouldUseTimeDampening = _dragging.shouldUseTimeDampening, + dragStartTime = _dragging.dragStartTime; + scroll$1({ + state: state, + scrollWindow: scheduleWindowScroll, + scrollDroppable: scheduleDroppableScroll, + dragStartTime: dragStartTime, + shouldUseTimeDampening: shouldUseTimeDampening + }); + }; + + var start = function start(state) { + !!dragging ? invariant(false, 'Cannot start auto scrolling when already started') : void 0; + var dragStartTime = Date.now(); + var wasScrollNeeded = false; + + var fakeScrollCallback = function fakeScrollCallback() { + wasScrollNeeded = true; + }; + + scroll$1({ + state: state, + dragStartTime: 0, + shouldUseTimeDampening: false, + scrollWindow: fakeScrollCallback, + scrollDroppable: fakeScrollCallback + }); + dragging = { + dragStartTime: dragStartTime, + shouldUseTimeDampening: wasScrollNeeded + }; + + if (wasScrollNeeded) { + tryScroll(state); + } + }; + + var stop = function stop() { + if (!dragging) { + return; + } + + scheduleWindowScroll.cancel(); + scheduleDroppableScroll.cancel(); + dragging = null; + }; + + return { + start: start, + stop: stop, + scroll: tryScroll + }; + }); + + var createJumpScroller = (function (_ref) { + var move = _ref.move, + scrollDroppable = _ref.scrollDroppable, + scrollWindow = _ref.scrollWindow; + + var moveByOffset = function moveByOffset(state, offset) { + var client = add(state.current.client.selection, offset); + move({ + client: client + }); + }; + + var scrollDroppableAsMuchAsItCan = function scrollDroppableAsMuchAsItCan(droppable, change) { + if (!canScrollDroppable(droppable, change)) { + return change; + } + + var overlap = getDroppableOverlap(droppable, change); + + if (!overlap) { + scrollDroppable(droppable.descriptor.id, change); + return null; + } + + var whatTheDroppableCanScroll = subtract(change, overlap); + scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll); + var remainder = subtract(change, whatTheDroppableCanScroll); + return remainder; + }; + + var scrollWindowAsMuchAsItCan = function scrollWindowAsMuchAsItCan(isWindowScrollAllowed, viewport, change) { + if (!isWindowScrollAllowed) { + return change; + } + + if (!canScrollWindow(viewport, change)) { + return change; + } + + var overlap = getWindowOverlap(viewport, change); + + if (!overlap) { + scrollWindow(change); + return null; + } + + var whatTheWindowCanScroll = subtract(change, overlap); + scrollWindow(whatTheWindowCanScroll); + var remainder = subtract(change, whatTheWindowCanScroll); + return remainder; + }; + + var jumpScroller = function jumpScroller(state) { + var request = state.scrollJumpRequest; + + if (!request) { + return; + } + + var destination = whatIsDraggedOver(state.impact); + !destination ? invariant(false, 'Cannot perform a jump scroll when there is no destination') : void 0; + var droppableRemainder = scrollDroppableAsMuchAsItCan(state.dimensions.droppables[destination], request); + + if (!droppableRemainder) { + return; + } + + var viewport = state.viewport; + var windowRemainder = scrollWindowAsMuchAsItCan(state.isWindowScrollAllowed, viewport, droppableRemainder); + + if (!windowRemainder) { + return; + } + + moveByOffset(state, windowRemainder); + }; + + return jumpScroller; + }); + + var createAutoScroller = (function (_ref) { + var scrollDroppable = _ref.scrollDroppable, + scrollWindow = _ref.scrollWindow, + move = _ref.move; + var fluidScroller = createFluidScroller({ + scrollWindow: scrollWindow, + scrollDroppable: scrollDroppable + }); + var jumpScroll = createJumpScroller({ + move: move, + scrollWindow: scrollWindow, + scrollDroppable: scrollDroppable + }); + + var scroll = function scroll(state) { + if (state.phase !== 'DRAGGING') { + return; + } + + if (state.movementMode === 'FLUID') { + fluidScroller.scroll(state); + return; + } + + if (!state.scrollJumpRequest) { + return; + } + + jumpScroll(state); + }; + + var scroller = { + scroll: scroll, + start: fluidScroller.start, + stop: fluidScroller.stop + }; + return scroller; + }); + + var prefix$2 = 'data-rbd'; + var dragHandle = function () { + var base = prefix$2 + "-drag-handle"; + return { + base: base, + draggableId: base + "-draggable-id", + contextId: base + "-context-id" + }; + }(); + var draggable = function () { + var base = prefix$2 + "-draggable"; + return { + base: base, + contextId: base + "-context-id", + id: base + "-id" + }; + }(); + var droppable = function () { + var base = prefix$2 + "-droppable"; + return { + base: base, + contextId: base + "-context-id", + id: base + "-id" + }; + }(); + var scrollContainer = { + contextId: prefix$2 + "-scroll-container-context-id" + }; + + var makeGetSelector = function makeGetSelector(context) { + return function (attribute) { + return "[" + attribute + "=\"" + context + "\"]"; + }; + }; + + var getStyles = function getStyles(rules, property) { + return rules.map(function (rule) { + var value = rule.styles[property]; + + if (!value) { + return ''; + } + + return rule.selector + " { " + value + " }"; + }).join(' '); + }; + + var noPointerEvents = 'pointer-events: none;'; + var getStyles$1 = (function (contextId) { + var getSelector = makeGetSelector(contextId); + + var dragHandle$1 = function () { + var grabCursor = "\n cursor: -webkit-grab;\n cursor: grab;\n "; + return { + selector: getSelector(dragHandle.contextId), + styles: { + always: "\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n ", + resting: grabCursor, + dragging: noPointerEvents, + dropAnimating: grabCursor + } + }; + }(); + + var draggable$1 = function () { + var transition = "\n transition: " + transitions.outOfTheWay + ";\n "; + return { + selector: getSelector(draggable.contextId), + styles: { + dragging: transition, + dropAnimating: transition, + userCancel: transition + } + }; + }(); + + var droppable$1 = { + selector: getSelector(droppable.contextId), + styles: { + always: "overflow-anchor: none;" + } + }; + var body = { + selector: 'body', + styles: { + dragging: "\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n " + } + }; + var rules = [draggable$1, dragHandle$1, droppable$1, body]; + return { + always: getStyles(rules, 'always'), + resting: getStyles(rules, 'resting'), + dragging: getStyles(rules, 'dragging'), + dropAnimating: getStyles(rules, 'dropAnimating'), + userCancel: getStyles(rules, 'userCancel') + }; + }); + + var useIsomorphicLayoutEffect$1 = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? React.useLayoutEffect : React.useEffect; + + var getHead = function getHead() { + var head = document.querySelector('head'); + !head ? invariant(false, 'Cannot find the head to append a style to') : void 0; + return head; + }; + + var createStyleEl = function createStyleEl(nonce) { + var el = document.createElement('style'); + + if (nonce) { + el.setAttribute('nonce', nonce); + } + + el.type = 'text/css'; + return el; + }; + + function useStyleMarshal(contextId, nonce) { + var styles = useMemo(function () { + return getStyles$1(contextId); + }, [contextId]); + var alwaysRef = React.useRef(null); + var dynamicRef = React.useRef(null); + var setDynamicStyle = useCallback(memoizeOne(function (proposed) { + var el = dynamicRef.current; + !el ? invariant(false, 'Cannot set dynamic style element if it is not set') : void 0; + el.textContent = proposed; + }), []); + var setAlwaysStyle = useCallback(function (proposed) { + var el = alwaysRef.current; + !el ? invariant(false, 'Cannot set dynamic style element if it is not set') : void 0; + el.textContent = proposed; + }, []); + useIsomorphicLayoutEffect$1(function () { + !(!alwaysRef.current && !dynamicRef.current) ? invariant(false, 'style elements already mounted') : void 0; + var always = createStyleEl(nonce); + var dynamic = createStyleEl(nonce); + alwaysRef.current = always; + dynamicRef.current = dynamic; + always.setAttribute(prefix$2 + "-always", contextId); + dynamic.setAttribute(prefix$2 + "-dynamic", contextId); + getHead().appendChild(always); + getHead().appendChild(dynamic); + setAlwaysStyle(styles.always); + setDynamicStyle(styles.resting); + return function () { + var remove = function remove(ref) { + var current = ref.current; + !current ? invariant(false, 'Cannot unmount ref as it is not set') : void 0; + getHead().removeChild(current); + ref.current = null; + }; + + remove(alwaysRef); + remove(dynamicRef); + }; + }, [nonce, setAlwaysStyle, setDynamicStyle, styles.always, styles.resting, contextId]); + var dragging = useCallback(function () { + return setDynamicStyle(styles.dragging); + }, [setDynamicStyle, styles.dragging]); + var dropping = useCallback(function (reason) { + if (reason === 'DROP') { + setDynamicStyle(styles.dropAnimating); + return; + } + + setDynamicStyle(styles.userCancel); + }, [setDynamicStyle, styles.dropAnimating, styles.userCancel]); + var resting = useCallback(function () { + if (!dynamicRef.current) { + return; + } + + setDynamicStyle(styles.resting); + }, [setDynamicStyle, styles.resting]); + var marshal = useMemo(function () { + return { + dragging: dragging, + dropping: dropping, + resting: resting + }; + }, [dragging, dropping, resting]); + return marshal; + } + + var getWindowFromEl = (function (el) { + return el && el.ownerDocument ? el.ownerDocument.defaultView : window; + }); + + function isHtmlElement(el) { + return el instanceof getWindowFromEl(el).HTMLElement; + } + + function findDragHandle(contextId, draggableId) { + var selector = "[" + dragHandle.contextId + "=\"" + contextId + "\"]"; + var possible = toArray(document.querySelectorAll(selector)); + + if (!possible.length) { + warning("Unable to find any drag handles in the context \"" + contextId + "\"") ; + return null; + } + + var handle = find(possible, function (el) { + return el.getAttribute(dragHandle.draggableId) === draggableId; + }); + + if (!handle) { + warning("Unable to find drag handle with id \"" + draggableId + "\" as no handle with a matching id was found") ; + return null; + } + + if (!isHtmlElement(handle)) { + warning('drag handle needs to be a HTMLElement') ; + return null; + } + + return handle; + } + + function useFocusMarshal(contextId) { + var entriesRef = React.useRef({}); + var recordRef = React.useRef(null); + var restoreFocusFrameRef = React.useRef(null); + var isMountedRef = React.useRef(false); + var register = useCallback(function register(id, focus) { + var entry = { + id: id, + focus: focus + }; + entriesRef.current[id] = entry; + return function unregister() { + var entries = entriesRef.current; + var current = entries[id]; + + if (current !== entry) { + delete entries[id]; + } + }; + }, []); + var tryGiveFocus = useCallback(function tryGiveFocus(tryGiveFocusTo) { + var handle = findDragHandle(contextId, tryGiveFocusTo); + + if (handle && handle !== document.activeElement) { + handle.focus(); + } + }, [contextId]); + var tryShiftRecord = useCallback(function tryShiftRecord(previous, redirectTo) { + if (recordRef.current === previous) { + recordRef.current = redirectTo; + } + }, []); + var tryRestoreFocusRecorded = useCallback(function tryRestoreFocusRecorded() { + if (restoreFocusFrameRef.current) { + return; + } + + if (!isMountedRef.current) { + return; + } + + restoreFocusFrameRef.current = requestAnimationFrame(function () { + restoreFocusFrameRef.current = null; + var record = recordRef.current; + + if (record) { + tryGiveFocus(record); + } + }); + }, [tryGiveFocus]); + var tryRecordFocus = useCallback(function tryRecordFocus(id) { + recordRef.current = null; + var focused = document.activeElement; + + if (!focused) { + return; + } + + if (focused.getAttribute(dragHandle.draggableId) !== id) { + return; + } + + recordRef.current = id; + }, []); + useIsomorphicLayoutEffect$1(function () { + isMountedRef.current = true; + return function clearFrameOnUnmount() { + isMountedRef.current = false; + var frameId = restoreFocusFrameRef.current; + + if (frameId) { + cancelAnimationFrame(frameId); + } + }; + }, []); + var marshal = useMemo(function () { + return { + register: register, + tryRecordFocus: tryRecordFocus, + tryRestoreFocusRecorded: tryRestoreFocusRecorded, + tryShiftRecord: tryShiftRecord + }; + }, [register, tryRecordFocus, tryRestoreFocusRecorded, tryShiftRecord]); + return marshal; + } + + function createRegistry() { + var entries = { + draggables: {}, + droppables: {} + }; + var subscribers = []; + + function subscribe(cb) { + subscribers.push(cb); + return function unsubscribe() { + var index = subscribers.indexOf(cb); + + if (index === -1) { + return; + } + + subscribers.splice(index, 1); + }; + } + + function notify(event) { + if (subscribers.length) { + subscribers.forEach(function (cb) { + return cb(event); + }); + } + } + + function findDraggableById(id) { + return entries.draggables[id] || null; + } + + function getDraggableById(id) { + var entry = findDraggableById(id); + !entry ? invariant(false, "Cannot find draggable entry with id [" + id + "]") : void 0; + return entry; + } + + var draggableAPI = { + register: function register(entry) { + entries.draggables[entry.descriptor.id] = entry; + notify({ + type: 'ADDITION', + value: entry + }); + }, + update: function update(entry, last) { + var current = entries.draggables[last.descriptor.id]; + + if (!current) { + return; + } + + if (current.uniqueId !== entry.uniqueId) { + return; + } + + delete entries.draggables[last.descriptor.id]; + entries.draggables[entry.descriptor.id] = entry; + }, + unregister: function unregister(entry) { + var draggableId = entry.descriptor.id; + var current = findDraggableById(draggableId); + + if (!current) { + return; + } + + if (entry.uniqueId !== current.uniqueId) { + return; + } + + delete entries.draggables[draggableId]; + notify({ + type: 'REMOVAL', + value: entry + }); + }, + getById: getDraggableById, + findById: findDraggableById, + exists: function exists(id) { + return Boolean(findDraggableById(id)); + }, + getAllByType: function getAllByType(type) { + return values(entries.draggables).filter(function (entry) { + return entry.descriptor.type === type; + }); + } + }; + + function findDroppableById(id) { + return entries.droppables[id] || null; + } + + function getDroppableById(id) { + var entry = findDroppableById(id); + !entry ? invariant(false, "Cannot find droppable entry with id [" + id + "]") : void 0; + return entry; + } + + var droppableAPI = { + register: function register(entry) { + entries.droppables[entry.descriptor.id] = entry; + }, + unregister: function unregister(entry) { + var current = findDroppableById(entry.descriptor.id); + + if (!current) { + return; + } + + if (entry.uniqueId !== current.uniqueId) { + return; + } + + delete entries.droppables[entry.descriptor.id]; + }, + getById: getDroppableById, + findById: findDroppableById, + exists: function exists(id) { + return Boolean(findDroppableById(id)); + }, + getAllByType: function getAllByType(type) { + return values(entries.droppables).filter(function (entry) { + return entry.descriptor.type === type; + }); + } + }; + + function clean() { + entries.draggables = {}; + entries.droppables = {}; + subscribers.length = 0; + } + + return { + draggable: draggableAPI, + droppable: droppableAPI, + subscribe: subscribe, + clean: clean + }; + } + + function useRegistry() { + var registry = useMemo(createRegistry, []); + React.useEffect(function () { + return function unmount() { + requestAnimationFrame(registry.clean); + }; + }, [registry]); + return registry; + } + + var StoreContext = React__default.createContext(null); + + var getBodyElement = (function () { + var body = document.body; + !body ? invariant(false, 'Cannot find document.body') : void 0; + return body; + }); + + var visuallyHidden = { + position: 'absolute', + width: '1px', + height: '1px', + margin: '-1px', + border: '0', + padding: '0', + overflow: 'hidden', + clip: 'rect(0 0 0 0)', + 'clip-path': 'inset(100%)' + }; + + var getId = function getId(contextId) { + return "rbd-announcement-" + contextId; + }; + function useAnnouncer(contextId) { + var id = useMemo(function () { + return getId(contextId); + }, [contextId]); + var ref = React.useRef(null); + React.useEffect(function setup() { + var el = document.createElement('div'); + ref.current = el; + el.id = id; + el.setAttribute('aria-live', 'assertive'); + el.setAttribute('aria-atomic', 'true'); + + _extends(el.style, visuallyHidden); + + getBodyElement().appendChild(el); + return function cleanup() { + setTimeout(function remove() { + var body = getBodyElement(); + + if (body.contains(el)) { + body.removeChild(el); + } + + if (el === ref.current) { + ref.current = null; + } + }); + }; + }, [id]); + var announce = useCallback(function (message) { + var el = ref.current; + + if (el) { + el.textContent = message; + return; + } + + warning("\n A screen reader message was trying to be announced but it was unable to do so.\n This can occur if you unmount your in your onDragEnd.\n Consider calling provided.announce() before the unmount so that the instruction will\n not be lost for users relying on a screen reader.\n\n Message not passed to screen reader:\n\n \"" + message + "\"\n ") ; + }, []); + return announce; + } + + var count = 0; + var defaults = { + separator: '::' + }; + function reset() { + count = 0; + } + function useUniqueId(prefix, options) { + if (options === void 0) { + options = defaults; + } + + return useMemo(function () { + return "" + prefix + options.separator + count++; + }, [options.separator, prefix]); + } + + function getElementId(_ref) { + var contextId = _ref.contextId, + uniqueId = _ref.uniqueId; + return "rbd-hidden-text-" + contextId + "-" + uniqueId; + } + function useHiddenTextElement(_ref2) { + var contextId = _ref2.contextId, + text = _ref2.text; + var uniqueId = useUniqueId('hidden-text', { + separator: '-' + }); + var id = useMemo(function () { + return getElementId({ + contextId: contextId, + uniqueId: uniqueId + }); + }, [uniqueId, contextId]); + React.useEffect(function mount() { + var el = document.createElement('div'); + el.id = id; + el.textContent = text; + el.style.display = 'none'; + getBodyElement().appendChild(el); + return function unmount() { + var body = getBodyElement(); + + if (body.contains(el)) { + body.removeChild(el); + } + }; + }, [id, text]); + return id; + } + + var AppContext = React__default.createContext(null); + + var peerDependencies = { + react: "^16.8.5 || ^17.0.0", + "react-dom": "^16.8.5 || ^17.0.0" + }; + + var semver = /(\d+)\.(\d+)\.(\d+)/; + + var getVersion = function getVersion(value) { + var result = semver.exec(value); + !(result != null) ? invariant(false, "Unable to parse React version " + value) : void 0; + var major = Number(result[1]); + var minor = Number(result[2]); + var patch = Number(result[3]); + return { + major: major, + minor: minor, + patch: patch, + raw: value + }; + }; + + var isSatisfied = function isSatisfied(expected, actual) { + if (actual.major > expected.major) { + return true; + } + + if (actual.major < expected.major) { + return false; + } + + if (actual.minor > expected.minor) { + return true; + } + + if (actual.minor < expected.minor) { + return false; + } + + return actual.patch >= expected.patch; + }; + + var checkReactVersion = (function (peerDepValue, actualValue) { + var peerDep = getVersion(peerDepValue); + var actual = getVersion(actualValue); + + if (isSatisfied(peerDep, actual)) { + return; + } + + warning("\n React version: [" + actual.raw + "]\n does not satisfy expected peer dependency version: [" + peerDep.raw + "]\n\n This can result in run time bugs, and even fatal crashes\n ") ; + }); + + var suffix = "\n We expect a html5 doctype: \n This is to ensure consistent browser layout and measurement\n\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md\n"; + var checkDoctype = (function (doc) { + var doctype = doc.doctype; + + if (!doctype) { + warning("\n No found.\n\n " + suffix + "\n ") ; + return; + } + + if (doctype.name.toLowerCase() !== 'html') { + warning("\n Unexpected found: (" + doctype.name + ")\n\n " + suffix + "\n ") ; + } + + if (doctype.publicId !== '') { + warning("\n Unexpected publicId found: (" + doctype.publicId + ")\n A html5 doctype does not have a publicId\n\n " + suffix + "\n ") ; + } + }); + + function useDev(useHook) { + { + useHook(); + } + } + + function useDevSetupWarning(fn, inputs) { + useDev(function () { + React.useEffect(function () { + try { + fn(); + } catch (e) { + error("\n A setup problem was encountered.\n\n > " + e.message + "\n "); + } + }, inputs); + }); + } + + function useStartupValidation() { + useDevSetupWarning(function () { + checkReactVersion(peerDependencies.react, React__default.version); + checkDoctype(document); + }, []); + } + + function usePrevious(current) { + var ref = React.useRef(current); + React.useEffect(function () { + ref.current = current; + }); + return ref; + } + + function create() { + var lock = null; + + function isClaimed() { + return Boolean(lock); + } + + function isActive(value) { + return value === lock; + } + + function claim(abandon) { + !!lock ? invariant(false, 'Cannot claim lock as it is already claimed') : void 0; + var newLock = { + abandon: abandon + }; + lock = newLock; + return newLock; + } + + function release() { + !lock ? invariant(false, 'Cannot release lock when there is no lock') : void 0; + lock = null; + } + + function tryAbandon() { + if (lock) { + lock.abandon(); + release(); + } + } + + return { + isClaimed: isClaimed, + isActive: isActive, + claim: claim, + release: release, + tryAbandon: tryAbandon + }; + } + + var tab = 9; + var enter = 13; + var escape = 27; + var space = 32; + var pageUp = 33; + var pageDown = 34; + var end = 35; + var home = 36; + var arrowLeft = 37; + var arrowUp = 38; + var arrowRight = 39; + var arrowDown = 40; + + var _preventedKeys; + var preventedKeys = (_preventedKeys = {}, _preventedKeys[enter] = true, _preventedKeys[tab] = true, _preventedKeys); + var preventStandardKeyEvents = (function (event) { + if (preventedKeys[event.keyCode]) { + event.preventDefault(); + } + }); + + var supportedEventName = function () { + var base = 'visibilitychange'; + + if (typeof document === 'undefined') { + return base; + } + + var candidates = [base, "ms" + base, "webkit" + base, "moz" + base, "o" + base]; + var supported = find(candidates, function (eventName) { + return "on" + eventName in document; + }); + return supported || base; + }(); + + var primaryButton = 0; + var sloppyClickThreshold = 5; + + function isSloppyClickThresholdExceeded(original, current) { + return Math.abs(current.x - original.x) >= sloppyClickThreshold || Math.abs(current.y - original.y) >= sloppyClickThreshold; + } + + var idle$1 = { + type: 'IDLE' + }; + + function getCaptureBindings(_ref) { + var cancel = _ref.cancel, + completed = _ref.completed, + getPhase = _ref.getPhase, + setPhase = _ref.setPhase; + return [{ + eventName: 'mousemove', + fn: function fn(event) { + var button = event.button, + clientX = event.clientX, + clientY = event.clientY; + + if (button !== primaryButton) { + return; + } + + var point = { + x: clientX, + y: clientY + }; + var phase = getPhase(); + + if (phase.type === 'DRAGGING') { + event.preventDefault(); + phase.actions.move(point); + return; + } + + !(phase.type === 'PENDING') ? invariant(false, 'Cannot be IDLE') : void 0; + var pending = phase.point; + + if (!isSloppyClickThresholdExceeded(pending, point)) { + return; + } + + event.preventDefault(); + var actions = phase.actions.fluidLift(point); + setPhase({ + type: 'DRAGGING', + actions: actions + }); + } + }, { + eventName: 'mouseup', + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + event.preventDefault(); + phase.actions.drop({ + shouldBlockNextClick: true + }); + completed(); + } + }, { + eventName: 'mousedown', + fn: function fn(event) { + if (getPhase().type === 'DRAGGING') { + event.preventDefault(); + } + + cancel(); + } + }, { + eventName: 'keydown', + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type === 'PENDING') { + cancel(); + return; + } + + if (event.keyCode === escape) { + event.preventDefault(); + cancel(); + return; + } + + preventStandardKeyEvents(event); + } + }, { + eventName: 'resize', + fn: cancel + }, { + eventName: 'scroll', + options: { + passive: true, + capture: false + }, + fn: function fn() { + if (getPhase().type === 'PENDING') { + cancel(); + } + } + }, { + eventName: 'webkitmouseforcedown', + fn: function fn(event) { + var phase = getPhase(); + !(phase.type !== 'IDLE') ? invariant(false, 'Unexpected phase') : void 0; + + if (phase.actions.shouldRespectForcePress()) { + cancel(); + return; + } + + event.preventDefault(); + } + }, { + eventName: supportedEventName, + fn: cancel + }]; + } + + function useMouseSensor(api) { + var phaseRef = React.useRef(idle$1); + var unbindEventsRef = React.useRef(noop); + var startCaptureBinding = useMemo(function () { + return { + eventName: 'mousedown', + fn: function onMouseDown(event) { + if (event.defaultPrevented) { + return; + } + + if (event.button !== primaryButton) { + return; + } + + if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) { + return; + } + + var draggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + var actions = api.tryGetLock(draggableId, stop, { + sourceEvent: event + }); + + if (!actions) { + return; + } + + event.preventDefault(); + var point = { + x: event.clientX, + y: event.clientY + }; + unbindEventsRef.current(); + startPendingDrag(actions, point); + } + }; + }, [api]); + var preventForcePressBinding = useMemo(function () { + return { + eventName: 'webkitmouseforcewillbegin', + fn: function fn(event) { + if (event.defaultPrevented) { + return; + } + + var id = api.findClosestDraggableId(event); + + if (!id) { + return; + } + + var options = api.findOptionsForDraggable(id); + + if (!options) { + return; + } + + if (options.shouldRespectForcePress) { + return; + } + + if (!api.canGetLock(id)) { + return; + } + + event.preventDefault(); + } + }; + }, [api]); + var listenForCapture = useCallback(function listenForCapture() { + var options = { + passive: false, + capture: true + }; + unbindEventsRef.current = bindEvents(window, [preventForcePressBinding, startCaptureBinding], options); + }, [preventForcePressBinding, startCaptureBinding]); + var stop = useCallback(function () { + var current = phaseRef.current; + + if (current.type === 'IDLE') { + return; + } + + phaseRef.current = idle$1; + unbindEventsRef.current(); + listenForCapture(); + }, [listenForCapture]); + var cancel = useCallback(function () { + var phase = phaseRef.current; + stop(); + + if (phase.type === 'DRAGGING') { + phase.actions.cancel({ + shouldBlockNextClick: true + }); + } + + if (phase.type === 'PENDING') { + phase.actions.abort(); + } + }, [stop]); + var bindCapturingEvents = useCallback(function bindCapturingEvents() { + var options = { + capture: true, + passive: false + }; + var bindings = getCaptureBindings({ + cancel: cancel, + completed: stop, + getPhase: function getPhase() { + return phaseRef.current; + }, + setPhase: function setPhase(phase) { + phaseRef.current = phase; + } + }); + unbindEventsRef.current = bindEvents(window, bindings, options); + }, [cancel, stop]); + var startPendingDrag = useCallback(function startPendingDrag(actions, point) { + !(phaseRef.current.type === 'IDLE') ? invariant(false, 'Expected to move from IDLE to PENDING drag') : void 0; + phaseRef.current = { + type: 'PENDING', + point: point, + actions: actions + }; + bindCapturingEvents(); + }, [bindCapturingEvents]); + useIsomorphicLayoutEffect$1(function mount() { + listenForCapture(); + return function unmount() { + unbindEventsRef.current(); + }; + }, [listenForCapture]); + } + + var _scrollJumpKeys; + + function noop$1() {} + + var scrollJumpKeys = (_scrollJumpKeys = {}, _scrollJumpKeys[pageDown] = true, _scrollJumpKeys[pageUp] = true, _scrollJumpKeys[home] = true, _scrollJumpKeys[end] = true, _scrollJumpKeys); + + function getDraggingBindings(actions, stop) { + function cancel() { + stop(); + actions.cancel(); + } + + function drop() { + stop(); + actions.drop(); + } + + return [{ + eventName: 'keydown', + fn: function fn(event) { + if (event.keyCode === escape) { + event.preventDefault(); + cancel(); + return; + } + + if (event.keyCode === space) { + event.preventDefault(); + drop(); + return; + } + + if (event.keyCode === arrowDown) { + event.preventDefault(); + actions.moveDown(); + return; + } + + if (event.keyCode === arrowUp) { + event.preventDefault(); + actions.moveUp(); + return; + } + + if (event.keyCode === arrowRight) { + event.preventDefault(); + actions.moveRight(); + return; + } + + if (event.keyCode === arrowLeft) { + event.preventDefault(); + actions.moveLeft(); + return; + } + + if (scrollJumpKeys[event.keyCode]) { + event.preventDefault(); + return; + } + + preventStandardKeyEvents(event); + } + }, { + eventName: 'mousedown', + fn: cancel + }, { + eventName: 'mouseup', + fn: cancel + }, { + eventName: 'click', + fn: cancel + }, { + eventName: 'touchstart', + fn: cancel + }, { + eventName: 'resize', + fn: cancel + }, { + eventName: 'wheel', + fn: cancel, + options: { + passive: true + } + }, { + eventName: supportedEventName, + fn: cancel + }]; + } + + function useKeyboardSensor(api) { + var unbindEventsRef = React.useRef(noop$1); + var startCaptureBinding = useMemo(function () { + return { + eventName: 'keydown', + fn: function onKeyDown(event) { + if (event.defaultPrevented) { + return; + } + + if (event.keyCode !== space) { + return; + } + + var draggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + var preDrag = api.tryGetLock(draggableId, stop, { + sourceEvent: event + }); + + if (!preDrag) { + return; + } + + event.preventDefault(); + var isCapturing = true; + var actions = preDrag.snapLift(); + unbindEventsRef.current(); + + function stop() { + !isCapturing ? invariant(false, 'Cannot stop capturing a keyboard drag when not capturing') : void 0; + isCapturing = false; + unbindEventsRef.current(); + listenForCapture(); + } + + unbindEventsRef.current = bindEvents(window, getDraggingBindings(actions, stop), { + capture: true, + passive: false + }); + } + }; + }, [api]); + var listenForCapture = useCallback(function tryStartCapture() { + var options = { + passive: false, + capture: true + }; + unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options); + }, [startCaptureBinding]); + useIsomorphicLayoutEffect$1(function mount() { + listenForCapture(); + return function unmount() { + unbindEventsRef.current(); + }; + }, [listenForCapture]); + } + + var idle$2 = { + type: 'IDLE' + }; + var timeForLongPress = 120; + var forcePressThreshold = 0.15; + + function getWindowBindings(_ref) { + var cancel = _ref.cancel, + getPhase = _ref.getPhase; + return [{ + eventName: 'orientationchange', + fn: cancel + }, { + eventName: 'resize', + fn: cancel + }, { + eventName: 'contextmenu', + fn: function fn(event) { + event.preventDefault(); + } + }, { + eventName: 'keydown', + fn: function fn(event) { + if (getPhase().type !== 'DRAGGING') { + cancel(); + return; + } + + if (event.keyCode === escape) { + event.preventDefault(); + } + + cancel(); + } + }, { + eventName: supportedEventName, + fn: cancel + }]; + } + + function getHandleBindings(_ref2) { + var cancel = _ref2.cancel, + completed = _ref2.completed, + getPhase = _ref2.getPhase; + return [{ + eventName: 'touchmove', + options: { + capture: false + }, + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + phase.hasMoved = true; + var _event$touches$ = event.touches[0], + clientX = _event$touches$.clientX, + clientY = _event$touches$.clientY; + var point = { + x: clientX, + y: clientY + }; + event.preventDefault(); + phase.actions.move(point); + } + }, { + eventName: 'touchend', + fn: function fn(event) { + var phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + event.preventDefault(); + phase.actions.drop({ + shouldBlockNextClick: true + }); + completed(); + } + }, { + eventName: 'touchcancel', + fn: function fn(event) { + if (getPhase().type !== 'DRAGGING') { + cancel(); + return; + } + + event.preventDefault(); + cancel(); + } + }, { + eventName: 'touchforcechange', + fn: function fn(event) { + var phase = getPhase(); + !(phase.type !== 'IDLE') ? invariant(false) : void 0; + var touch = event.touches[0]; + + if (!touch) { + return; + } + + var isForcePress = touch.force >= forcePressThreshold; + + if (!isForcePress) { + return; + } + + var shouldRespect = phase.actions.shouldRespectForcePress(); + + if (phase.type === 'PENDING') { + if (shouldRespect) { + cancel(); + } + + return; + } + + if (shouldRespect) { + if (phase.hasMoved) { + event.preventDefault(); + return; + } + + cancel(); + return; + } + + event.preventDefault(); + } + }, { + eventName: supportedEventName, + fn: cancel + }]; + } + + function useTouchSensor(api) { + var phaseRef = React.useRef(idle$2); + var unbindEventsRef = React.useRef(noop); + var getPhase = useCallback(function getPhase() { + return phaseRef.current; + }, []); + var setPhase = useCallback(function setPhase(phase) { + phaseRef.current = phase; + }, []); + var startCaptureBinding = useMemo(function () { + return { + eventName: 'touchstart', + fn: function onTouchStart(event) { + if (event.defaultPrevented) { + return; + } + + var draggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + var actions = api.tryGetLock(draggableId, stop, { + sourceEvent: event + }); + + if (!actions) { + return; + } + + var touch = event.touches[0]; + var clientX = touch.clientX, + clientY = touch.clientY; + var point = { + x: clientX, + y: clientY + }; + unbindEventsRef.current(); + startPendingDrag(actions, point); + } + }; + }, [api]); + var listenForCapture = useCallback(function listenForCapture() { + var options = { + capture: true, + passive: false + }; + unbindEventsRef.current = bindEvents(window, [startCaptureBinding], options); + }, [startCaptureBinding]); + var stop = useCallback(function () { + var current = phaseRef.current; + + if (current.type === 'IDLE') { + return; + } + + if (current.type === 'PENDING') { + clearTimeout(current.longPressTimerId); + } + + setPhase(idle$2); + unbindEventsRef.current(); + listenForCapture(); + }, [listenForCapture, setPhase]); + var cancel = useCallback(function () { + var phase = phaseRef.current; + stop(); + + if (phase.type === 'DRAGGING') { + phase.actions.cancel({ + shouldBlockNextClick: true + }); + } + + if (phase.type === 'PENDING') { + phase.actions.abort(); + } + }, [stop]); + var bindCapturingEvents = useCallback(function bindCapturingEvents() { + var options = { + capture: true, + passive: false + }; + var args = { + cancel: cancel, + completed: stop, + getPhase: getPhase + }; + var unbindTarget = bindEvents(window, getHandleBindings(args), options); + var unbindWindow = bindEvents(window, getWindowBindings(args), options); + + unbindEventsRef.current = function unbindAll() { + unbindTarget(); + unbindWindow(); + }; + }, [cancel, getPhase, stop]); + var startDragging = useCallback(function startDragging() { + var phase = getPhase(); + !(phase.type === 'PENDING') ? invariant(false, "Cannot start dragging from phase " + phase.type) : void 0; + var actions = phase.actions.fluidLift(phase.point); + setPhase({ + type: 'DRAGGING', + actions: actions, + hasMoved: false + }); + }, [getPhase, setPhase]); + var startPendingDrag = useCallback(function startPendingDrag(actions, point) { + !(getPhase().type === 'IDLE') ? invariant(false, 'Expected to move from IDLE to PENDING drag') : void 0; + var longPressTimerId = setTimeout(startDragging, timeForLongPress); + setPhase({ + type: 'PENDING', + point: point, + actions: actions, + longPressTimerId: longPressTimerId + }); + bindCapturingEvents(); + }, [bindCapturingEvents, getPhase, setPhase, startDragging]); + useIsomorphicLayoutEffect$1(function mount() { + listenForCapture(); + return function unmount() { + unbindEventsRef.current(); + var phase = getPhase(); + + if (phase.type === 'PENDING') { + clearTimeout(phase.longPressTimerId); + setPhase(idle$2); + } + }; + }, [getPhase, listenForCapture, setPhase]); + useIsomorphicLayoutEffect$1(function webkitHack() { + var unbind = bindEvents(window, [{ + eventName: 'touchmove', + fn: function fn() {}, + options: { + capture: false, + passive: false + } + }]); + return unbind; + }, []); + } + + function useValidateSensorHooks(sensorHooks) { + useDev(function () { + var previousRef = usePrevious(sensorHooks); + useDevSetupWarning(function () { + !(previousRef.current.length === sensorHooks.length) ? "development" !== "production" ? invariant(false, 'Cannot change the amount of sensor hooks after mounting') : invariant(false) : void 0; + }); + }); + } + + var interactiveTagNames = { + input: true, + button: true, + textarea: true, + select: true, + option: true, + optgroup: true, + video: true, + audio: true + }; + + function isAnInteractiveElement(parent, current) { + if (current == null) { + return false; + } + + var hasAnInteractiveTag = Boolean(interactiveTagNames[current.tagName.toLowerCase()]); + + if (hasAnInteractiveTag) { + return true; + } + + var attribute = current.getAttribute('contenteditable'); + + if (attribute === 'true' || attribute === '') { + return true; + } + + if (current === parent) { + return false; + } + + return isAnInteractiveElement(parent, current.parentElement); + } + + function isEventInInteractiveElement(draggable, event) { + var target = event.target; + + if (!isHtmlElement(target)) { + return false; + } + + return isAnInteractiveElement(draggable, target); + } + + var getBorderBoxCenterPosition = (function (el) { + return getRect(el.getBoundingClientRect()).center; + }); + + function isElement(el) { + return el instanceof getWindowFromEl(el).Element; + } + + var supportedMatchesName = function () { + var base = 'matches'; + + if (typeof document === 'undefined') { + return base; + } + + var candidates = [base, 'msMatchesSelector', 'webkitMatchesSelector']; + var value = find(candidates, function (name) { + return name in Element.prototype; + }); + return value || base; + }(); + + function closestPonyfill(el, selector) { + if (el == null) { + return null; + } + + if (el[supportedMatchesName](selector)) { + return el; + } + + return closestPonyfill(el.parentElement, selector); + } + + function closest$1(el, selector) { + if (el.closest) { + return el.closest(selector); + } + + return closestPonyfill(el, selector); + } + + function getSelector(contextId) { + return "[" + dragHandle.contextId + "=\"" + contextId + "\"]"; + } + + function findClosestDragHandleFromEvent(contextId, event) { + var target = event.target; + + if (!isElement(target)) { + warning('event.target must be a Element') ; + return null; + } + + var selector = getSelector(contextId); + var handle = closest$1(target, selector); + + if (!handle) { + return null; + } + + if (!isHtmlElement(handle)) { + warning('drag handle must be a HTMLElement') ; + return null; + } + + return handle; + } + + function tryGetClosestDraggableIdFromEvent(contextId, event) { + var handle = findClosestDragHandleFromEvent(contextId, event); + + if (!handle) { + return null; + } + + return handle.getAttribute(dragHandle.draggableId); + } + + function findDraggable(contextId, draggableId) { + var selector = "[" + draggable.contextId + "=\"" + contextId + "\"]"; + var possible = toArray(document.querySelectorAll(selector)); + var draggable$1 = find(possible, function (el) { + return el.getAttribute(draggable.id) === draggableId; + }); + + if (!draggable$1) { + return null; + } + + if (!isHtmlElement(draggable$1)) { + warning('Draggable element is not a HTMLElement') ; + return null; + } + + return draggable$1; + } + + function preventDefault(event) { + event.preventDefault(); + } + + function _isActive(_ref) { + var expected = _ref.expected, + phase = _ref.phase, + isLockActive = _ref.isLockActive, + shouldWarn = _ref.shouldWarn; + + if (!isLockActive()) { + if (shouldWarn) { + warning("\n Cannot perform action.\n The sensor no longer has an action lock.\n\n Tips:\n\n - Throw away your action handlers when forceStop() is called\n - Check actions.isActive() if you really need to\n ") ; + } + + return false; + } + + if (expected !== phase) { + if (shouldWarn) { + warning("\n Cannot perform action.\n The actions you used belong to an outdated phase\n\n Current phase: " + expected + "\n You called an action from outdated phase: " + phase + "\n\n Tips:\n\n - Do not use preDragActions actions after calling preDragActions.lift()\n ") ; + } + + return false; + } + + return true; + } + + function canStart(_ref2) { + var lockAPI = _ref2.lockAPI, + store = _ref2.store, + registry = _ref2.registry, + draggableId = _ref2.draggableId; + + if (lockAPI.isClaimed()) { + return false; + } + + var entry = registry.draggable.findById(draggableId); + + if (!entry) { + warning("Unable to find draggable with id: " + draggableId) ; + return false; + } + + if (!entry.options.isEnabled) { + return false; + } + + if (!canStartDrag(store.getState(), draggableId)) { + return false; + } + + return true; + } + + function tryStart(_ref3) { + var lockAPI = _ref3.lockAPI, + contextId = _ref3.contextId, + store = _ref3.store, + registry = _ref3.registry, + draggableId = _ref3.draggableId, + forceSensorStop = _ref3.forceSensorStop, + sourceEvent = _ref3.sourceEvent; + var shouldStart = canStart({ + lockAPI: lockAPI, + store: store, + registry: registry, + draggableId: draggableId + }); + + if (!shouldStart) { + return null; + } + + var entry = registry.draggable.getById(draggableId); + var el = findDraggable(contextId, entry.descriptor.id); + + if (!el) { + warning("Unable to find draggable element with id: " + draggableId) ; + return null; + } + + if (sourceEvent && !entry.options.canDragInteractiveElements && isEventInInteractiveElement(el, sourceEvent)) { + return null; + } + + var lock = lockAPI.claim(forceSensorStop || noop); + var phase = 'PRE_DRAG'; + + function getShouldRespectForcePress() { + return entry.options.shouldRespectForcePress; + } + + function isLockActive() { + return lockAPI.isActive(lock); + } + + function tryDispatch(expected, getAction) { + if (_isActive({ + expected: expected, + phase: phase, + isLockActive: isLockActive, + shouldWarn: true + })) { + store.dispatch(getAction()); + } + } + + var tryDispatchWhenDragging = tryDispatch.bind(null, 'DRAGGING'); + + function lift$1(args) { + function completed() { + lockAPI.release(); + phase = 'COMPLETED'; + } + + if (phase !== 'PRE_DRAG') { + completed(); + !(phase === 'PRE_DRAG') ? invariant(false, "Cannot lift in phase " + phase) : void 0; + } + + store.dispatch(lift(args.liftActionArgs)); + phase = 'DRAGGING'; + + function finish(reason, options) { + if (options === void 0) { + options = { + shouldBlockNextClick: false + }; + } + + args.cleanup(); + + if (options.shouldBlockNextClick) { + var unbind = bindEvents(window, [{ + eventName: 'click', + fn: preventDefault, + options: { + once: true, + passive: false, + capture: true + } + }]); + setTimeout(unbind); + } + + completed(); + store.dispatch(drop({ + reason: reason + })); + } + + return _extends({ + isActive: function isActive() { + return _isActive({ + expected: 'DRAGGING', + phase: phase, + isLockActive: isLockActive, + shouldWarn: false + }); + }, + shouldRespectForcePress: getShouldRespectForcePress, + drop: function drop(options) { + return finish('DROP', options); + }, + cancel: function cancel(options) { + return finish('CANCEL', options); + } + }, args.actions); + } + + function fluidLift(clientSelection) { + var move$1 = rafSchd(function (client) { + tryDispatchWhenDragging(function () { + return move({ + client: client + }); + }); + }); + var api = lift$1({ + liftActionArgs: { + id: draggableId, + clientSelection: clientSelection, + movementMode: 'FLUID' + }, + cleanup: function cleanup() { + return move$1.cancel(); + }, + actions: { + move: move$1 + } + }); + return _extends({}, api, { + move: move$1 + }); + } + + function snapLift() { + var actions = { + moveUp: function moveUp$1() { + return tryDispatchWhenDragging(moveUp); + }, + moveRight: function moveRight$1() { + return tryDispatchWhenDragging(moveRight); + }, + moveDown: function moveDown$1() { + return tryDispatchWhenDragging(moveDown); + }, + moveLeft: function moveLeft$1() { + return tryDispatchWhenDragging(moveLeft); + } + }; + return lift$1({ + liftActionArgs: { + id: draggableId, + clientSelection: getBorderBoxCenterPosition(el), + movementMode: 'SNAP' + }, + cleanup: noop, + actions: actions + }); + } + + function abortPreDrag() { + var shouldRelease = _isActive({ + expected: 'PRE_DRAG', + phase: phase, + isLockActive: isLockActive, + shouldWarn: true + }); + + if (shouldRelease) { + lockAPI.release(); + } + } + + var preDrag = { + isActive: function isActive() { + return _isActive({ + expected: 'PRE_DRAG', + phase: phase, + isLockActive: isLockActive, + shouldWarn: false + }); + }, + shouldRespectForcePress: getShouldRespectForcePress, + fluidLift: fluidLift, + snapLift: snapLift, + abort: abortPreDrag + }; + return preDrag; + } + + var defaultSensors = [useMouseSensor, useKeyboardSensor, useTouchSensor]; + function useSensorMarshal(_ref4) { + var contextId = _ref4.contextId, + store = _ref4.store, + registry = _ref4.registry, + customSensors = _ref4.customSensors, + enableDefaultSensors = _ref4.enableDefaultSensors; + var useSensors = [].concat(enableDefaultSensors ? defaultSensors : [], customSensors || []); + var lockAPI = React.useState(function () { + return create(); + })[0]; + var tryAbandonLock = useCallback(function tryAbandonLock(previous, current) { + if (previous.isDragging && !current.isDragging) { + lockAPI.tryAbandon(); + } + }, [lockAPI]); + useIsomorphicLayoutEffect$1(function listenToStore() { + var previous = store.getState(); + var unsubscribe = store.subscribe(function () { + var current = store.getState(); + tryAbandonLock(previous, current); + previous = current; + }); + return unsubscribe; + }, [lockAPI, store, tryAbandonLock]); + useIsomorphicLayoutEffect$1(function () { + return lockAPI.tryAbandon; + }, [lockAPI.tryAbandon]); + var canGetLock = useCallback(function (draggableId) { + return canStart({ + lockAPI: lockAPI, + registry: registry, + store: store, + draggableId: draggableId + }); + }, [lockAPI, registry, store]); + var tryGetLock = useCallback(function (draggableId, forceStop, options) { + return tryStart({ + lockAPI: lockAPI, + registry: registry, + contextId: contextId, + store: store, + draggableId: draggableId, + forceSensorStop: forceStop, + sourceEvent: options && options.sourceEvent ? options.sourceEvent : null + }); + }, [contextId, lockAPI, registry, store]); + var findClosestDraggableId = useCallback(function (event) { + return tryGetClosestDraggableIdFromEvent(contextId, event); + }, [contextId]); + var findOptionsForDraggable = useCallback(function (id) { + var entry = registry.draggable.findById(id); + return entry ? entry.options : null; + }, [registry.draggable]); + var tryReleaseLock = useCallback(function tryReleaseLock() { + if (!lockAPI.isClaimed()) { + return; + } + + lockAPI.tryAbandon(); + + if (store.getState().phase !== 'IDLE') { + store.dispatch(flush()); + } + }, [lockAPI, store]); + var isLockClaimed = useCallback(lockAPI.isClaimed, [lockAPI]); + var api = useMemo(function () { + return { + canGetLock: canGetLock, + tryGetLock: tryGetLock, + findClosestDraggableId: findClosestDraggableId, + findOptionsForDraggable: findOptionsForDraggable, + tryReleaseLock: tryReleaseLock, + isLockClaimed: isLockClaimed + }; + }, [canGetLock, tryGetLock, findClosestDraggableId, findOptionsForDraggable, tryReleaseLock, isLockClaimed]); + useValidateSensorHooks(useSensors); + + for (var i = 0; i < useSensors.length; i++) { + useSensors[i](api); + } + } + + var createResponders = function createResponders(props) { + return { + onBeforeCapture: props.onBeforeCapture, + onBeforeDragStart: props.onBeforeDragStart, + onDragStart: props.onDragStart, + onDragEnd: props.onDragEnd, + onDragUpdate: props.onDragUpdate + }; + }; + + function getStore(lazyRef) { + !lazyRef.current ? invariant(false, 'Could not find store from lazy ref') : void 0; + return lazyRef.current; + } + + function App(props) { + var contextId = props.contextId, + setCallbacks = props.setCallbacks, + sensors = props.sensors, + nonce = props.nonce, + dragHandleUsageInstructions = props.dragHandleUsageInstructions; + var lazyStoreRef = React.useRef(null); + useStartupValidation(); + var lastPropsRef = usePrevious(props); + var getResponders = useCallback(function () { + return createResponders(lastPropsRef.current); + }, [lastPropsRef]); + var announce = useAnnouncer(contextId); + var dragHandleUsageInstructionsId = useHiddenTextElement({ + contextId: contextId, + text: dragHandleUsageInstructions + }); + var styleMarshal = useStyleMarshal(contextId, nonce); + var lazyDispatch = useCallback(function (action) { + getStore(lazyStoreRef).dispatch(action); + }, []); + var marshalCallbacks = useMemo(function () { + return bindActionCreators({ + publishWhileDragging: publishWhileDragging, + updateDroppableScroll: updateDroppableScroll, + updateDroppableIsEnabled: updateDroppableIsEnabled, + updateDroppableIsCombineEnabled: updateDroppableIsCombineEnabled, + collectionStarting: collectionStarting + }, lazyDispatch); + }, [lazyDispatch]); + var registry = useRegistry(); + var dimensionMarshal = useMemo(function () { + return createDimensionMarshal(registry, marshalCallbacks); + }, [registry, marshalCallbacks]); + var autoScroller = useMemo(function () { + return createAutoScroller(_extends({ + scrollWindow: scrollWindow, + scrollDroppable: dimensionMarshal.scrollDroppable + }, bindActionCreators({ + move: move + }, lazyDispatch))); + }, [dimensionMarshal.scrollDroppable, lazyDispatch]); + var focusMarshal = useFocusMarshal(contextId); + var store = useMemo(function () { + return createStore$1({ + announce: announce, + autoScroller: autoScroller, + dimensionMarshal: dimensionMarshal, + focusMarshal: focusMarshal, + getResponders: getResponders, + styleMarshal: styleMarshal + }); + }, [announce, autoScroller, dimensionMarshal, focusMarshal, getResponders, styleMarshal]); + + { + if (lazyStoreRef.current && lazyStoreRef.current !== store) { + warning('unexpected store change') ; + } + } + + lazyStoreRef.current = store; + var tryResetStore = useCallback(function () { + var current = getStore(lazyStoreRef); + var state = current.getState(); + + if (state.phase !== 'IDLE') { + current.dispatch(flush()); + } + }, []); + var isDragging = useCallback(function () { + var state = getStore(lazyStoreRef).getState(); + return state.isDragging || state.phase === 'DROP_ANIMATING'; + }, []); + var appCallbacks = useMemo(function () { + return { + isDragging: isDragging, + tryAbort: tryResetStore + }; + }, [isDragging, tryResetStore]); + setCallbacks(appCallbacks); + var getCanLift = useCallback(function (id) { + return canStartDrag(getStore(lazyStoreRef).getState(), id); + }, []); + var getIsMovementAllowed = useCallback(function () { + return isMovementAllowed(getStore(lazyStoreRef).getState()); + }, []); + var appContext = useMemo(function () { + return { + marshal: dimensionMarshal, + focus: focusMarshal, + contextId: contextId, + canLift: getCanLift, + isMovementAllowed: getIsMovementAllowed, + dragHandleUsageInstructionsId: dragHandleUsageInstructionsId, + registry: registry + }; + }, [contextId, dimensionMarshal, dragHandleUsageInstructionsId, focusMarshal, getCanLift, getIsMovementAllowed, registry]); + useSensorMarshal({ + contextId: contextId, + store: store, + registry: registry, + customSensors: sensors, + enableDefaultSensors: props.enableDefaultSensors !== false + }); + React.useEffect(function () { + return tryResetStore; + }, [tryResetStore]); + return React__default.createElement(AppContext.Provider, { + value: appContext + }, React__default.createElement(Provider, { + context: StoreContext, + store: store + }, props.children)); + } + + var count$1 = 0; + function reset$1() { + count$1 = 0; + } + function useInstanceCount() { + return useMemo(function () { + return "" + count$1++; + }, []); + } + + function resetServerContext() { + reset$1(); + reset(); + } + function DragDropContext(props) { + var contextId = useInstanceCount(); + var dragHandleUsageInstructions = props.dragHandleUsageInstructions || preset.dragHandleUsageInstructions; + return React__default.createElement(ErrorBoundary, null, function (setCallbacks) { + return React__default.createElement(App, { + nonce: props.nonce, + contextId: contextId, + setCallbacks: setCallbacks, + dragHandleUsageInstructions: dragHandleUsageInstructions, + enableDefaultSensors: props.enableDefaultSensors, + sensors: props.sensors, + onBeforeCapture: props.onBeforeCapture, + onBeforeDragStart: props.onBeforeDragStart, + onDragStart: props.onDragStart, + onDragUpdate: props.onDragUpdate, + onDragEnd: props.onDragEnd + }, props.children); + }); + } + + var isEqual$1 = function isEqual(base) { + return function (value) { + return base === value; + }; + }; + + var isScroll = isEqual$1('scroll'); + var isAuto = isEqual$1('auto'); + var isVisible$1 = isEqual$1('visible'); + + var isEither = function isEither(overflow, fn) { + return fn(overflow.overflowX) || fn(overflow.overflowY); + }; + + var isBoth = function isBoth(overflow, fn) { + return fn(overflow.overflowX) && fn(overflow.overflowY); + }; + + var isElementScrollable = function isElementScrollable(el) { + var style = window.getComputedStyle(el); + var overflow = { + overflowX: style.overflowX, + overflowY: style.overflowY + }; + return isEither(overflow, isScroll) || isEither(overflow, isAuto); + }; + + var isBodyScrollable = function isBodyScrollable() { + + var body = getBodyElement(); + var html = document.documentElement; + !html ? invariant(false) : void 0; + + if (!isElementScrollable(body)) { + return false; + } + + var htmlStyle = window.getComputedStyle(html); + var htmlOverflow = { + overflowX: htmlStyle.overflowX, + overflowY: htmlStyle.overflowY + }; + + if (isBoth(htmlOverflow, isVisible$1)) { + return false; + } + + warning("\n We have detected that your element might be a scroll container.\n We have found no reliable way of detecting whether the element is a scroll container.\n Under most circumstances a scroll bar will be on the element (document.documentElement)\n\n Because we cannot determine if the is a scroll container, and generally it is not one,\n we will be treating the as *not* a scroll container\n\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/how-we-detect-scroll-containers.md\n ") ; + return false; + }; + + var getClosestScrollable = function getClosestScrollable(el) { + if (el == null) { + return null; + } + + if (el === document.body) { + return isBodyScrollable() ? el : null; + } + + if (el === document.documentElement) { + return null; + } + + if (!isElementScrollable(el)) { + return getClosestScrollable(el.parentElement); + } + + return el; + }; + + var checkForNestedScrollContainers = (function (scrollable) { + if (!scrollable) { + return; + } + + var anotherScrollParent = getClosestScrollable(scrollable.parentElement); + + if (!anotherScrollParent) { + return; + } + + warning("\n Droppable: unsupported nested scroll container detected.\n A Droppable can only have one scroll parent (which can be itself)\n Nested scroll containers are currently not supported.\n\n We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131\n ") ; + }); + + var getScroll$1 = (function (el) { + return { + x: el.scrollLeft, + y: el.scrollTop + }; + }); + + var getIsFixed = function getIsFixed(el) { + if (!el) { + return false; + } + + var style = window.getComputedStyle(el); + + if (style.position === 'fixed') { + return true; + } + + return getIsFixed(el.parentElement); + }; + + var getEnv = (function (start) { + var closestScrollable = getClosestScrollable(start); + var isFixedOnPage = getIsFixed(start); + return { + closestScrollable: closestScrollable, + isFixedOnPage: isFixedOnPage + }; + }); + + var getDroppableDimension = (function (_ref) { + var descriptor = _ref.descriptor, + isEnabled = _ref.isEnabled, + isCombineEnabled = _ref.isCombineEnabled, + isFixedOnPage = _ref.isFixedOnPage, + direction = _ref.direction, + client = _ref.client, + page = _ref.page, + closest = _ref.closest; + + var frame = function () { + if (!closest) { + return null; + } + + var scrollSize = closest.scrollSize, + frameClient = closest.client; + var maxScroll = getMaxScroll({ + scrollHeight: scrollSize.scrollHeight, + scrollWidth: scrollSize.scrollWidth, + height: frameClient.paddingBox.height, + width: frameClient.paddingBox.width + }); + return { + pageMarginBox: closest.page.marginBox, + frameClient: frameClient, + scrollSize: scrollSize, + shouldClipSubject: closest.shouldClipSubject, + scroll: { + initial: closest.scroll, + current: closest.scroll, + max: maxScroll, + diff: { + value: origin, + displacement: origin + } + } + }; + }(); + + var axis = direction === 'vertical' ? vertical : horizontal; + var subject = getSubject({ + page: page, + withPlaceholder: null, + axis: axis, + frame: frame + }); + var dimension = { + descriptor: descriptor, + isCombineEnabled: isCombineEnabled, + isFixedOnPage: isFixedOnPage, + axis: axis, + isEnabled: isEnabled, + client: client, + page: page, + frame: frame, + subject: subject + }; + return dimension; + }); + + var getClient = function getClient(targetRef, closestScrollable) { + var base = getBox(targetRef); + + if (!closestScrollable) { + return base; + } + + if (targetRef !== closestScrollable) { + return base; + } + + var top = base.paddingBox.top - closestScrollable.scrollTop; + var left = base.paddingBox.left - closestScrollable.scrollLeft; + var bottom = top + closestScrollable.scrollHeight; + var right = left + closestScrollable.scrollWidth; + var paddingBox = { + top: top, + right: right, + bottom: bottom, + left: left + }; + var borderBox = expand(paddingBox, base.border); + var client = createBox({ + borderBox: borderBox, + margin: base.margin, + border: base.border, + padding: base.padding + }); + return client; + }; + + var getDimension = (function (_ref) { + var ref = _ref.ref, + descriptor = _ref.descriptor, + env = _ref.env, + windowScroll = _ref.windowScroll, + direction = _ref.direction, + isDropDisabled = _ref.isDropDisabled, + isCombineEnabled = _ref.isCombineEnabled, + shouldClipSubject = _ref.shouldClipSubject; + var closestScrollable = env.closestScrollable; + var client = getClient(ref, closestScrollable); + var page = withScroll(client, windowScroll); + + var closest = function () { + if (!closestScrollable) { + return null; + } + + var frameClient = getBox(closestScrollable); + var scrollSize = { + scrollHeight: closestScrollable.scrollHeight, + scrollWidth: closestScrollable.scrollWidth + }; + return { + client: frameClient, + page: withScroll(frameClient, windowScroll), + scroll: getScroll$1(closestScrollable), + scrollSize: scrollSize, + shouldClipSubject: shouldClipSubject + }; + }(); + + var dimension = getDroppableDimension({ + descriptor: descriptor, + isEnabled: !isDropDisabled, + isCombineEnabled: isCombineEnabled, + isFixedOnPage: env.isFixedOnPage, + direction: direction, + client: client, + page: page, + closest: closest + }); + return dimension; + }); + + var immediate = { + passive: false + }; + var delayed = { + passive: true + }; + var getListenerOptions = (function (options) { + return options.shouldPublishImmediately ? immediate : delayed; + }); + + function useRequiredContext(Context) { + var result = React.useContext(Context); + !result ? invariant(false, 'Could not find required context') : void 0; + return result; + } + + var getClosestScrollableFromDrag = function getClosestScrollableFromDrag(dragging) { + return dragging && dragging.env.closestScrollable || null; + }; + + function useDroppablePublisher(args) { + var whileDraggingRef = React.useRef(null); + var appContext = useRequiredContext(AppContext); + var uniqueId = useUniqueId('droppable'); + var registry = appContext.registry, + marshal = appContext.marshal; + var previousRef = usePrevious(args); + var descriptor = useMemo(function () { + return { + id: args.droppableId, + type: args.type, + mode: args.mode + }; + }, [args.droppableId, args.mode, args.type]); + var publishedDescriptorRef = React.useRef(descriptor); + var memoizedUpdateScroll = useMemo(function () { + return memoizeOne(function (x, y) { + !whileDraggingRef.current ? invariant(false, 'Can only update scroll when dragging') : void 0; + var scroll = { + x: x, + y: y + }; + marshal.updateDroppableScroll(descriptor.id, scroll); + }); + }, [descriptor.id, marshal]); + var getClosestScroll = useCallback(function () { + var dragging = whileDraggingRef.current; + + if (!dragging || !dragging.env.closestScrollable) { + return origin; + } + + return getScroll$1(dragging.env.closestScrollable); + }, []); + var updateScroll = useCallback(function () { + var scroll = getClosestScroll(); + memoizedUpdateScroll(scroll.x, scroll.y); + }, [getClosestScroll, memoizedUpdateScroll]); + var scheduleScrollUpdate = useMemo(function () { + return rafSchd(updateScroll); + }, [updateScroll]); + var onClosestScroll = useCallback(function () { + var dragging = whileDraggingRef.current; + var closest = getClosestScrollableFromDrag(dragging); + !(dragging && closest) ? invariant(false, 'Could not find scroll options while scrolling') : void 0; + var options = dragging.scrollOptions; + + if (options.shouldPublishImmediately) { + updateScroll(); + return; + } + + scheduleScrollUpdate(); + }, [scheduleScrollUpdate, updateScroll]); + var getDimensionAndWatchScroll = useCallback(function (windowScroll, options) { + !!whileDraggingRef.current ? invariant(false, 'Cannot collect a droppable while a drag is occurring') : void 0; + var previous = previousRef.current; + var ref = previous.getDroppableRef(); + !ref ? invariant(false, 'Cannot collect without a droppable ref') : void 0; + var env = getEnv(ref); + var dragging = { + ref: ref, + descriptor: descriptor, + env: env, + scrollOptions: options + }; + whileDraggingRef.current = dragging; + var dimension = getDimension({ + ref: ref, + descriptor: descriptor, + env: env, + windowScroll: windowScroll, + direction: previous.direction, + isDropDisabled: previous.isDropDisabled, + isCombineEnabled: previous.isCombineEnabled, + shouldClipSubject: !previous.ignoreContainerClipping + }); + var scrollable = env.closestScrollable; + + if (scrollable) { + scrollable.setAttribute(scrollContainer.contextId, appContext.contextId); + scrollable.addEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions)); + + { + checkForNestedScrollContainers(scrollable); + } + } + + return dimension; + }, [appContext.contextId, descriptor, onClosestScroll, previousRef]); + var getScrollWhileDragging = useCallback(function () { + var dragging = whileDraggingRef.current; + var closest = getClosestScrollableFromDrag(dragging); + !(dragging && closest) ? invariant(false, 'Can only recollect Droppable client for Droppables that have a scroll container') : void 0; + return getScroll$1(closest); + }, []); + var dragStopped = useCallback(function () { + var dragging = whileDraggingRef.current; + !dragging ? invariant(false, 'Cannot stop drag when no active drag') : void 0; + var closest = getClosestScrollableFromDrag(dragging); + whileDraggingRef.current = null; + + if (!closest) { + return; + } + + scheduleScrollUpdate.cancel(); + closest.removeAttribute(scrollContainer.contextId); + closest.removeEventListener('scroll', onClosestScroll, getListenerOptions(dragging.scrollOptions)); + }, [onClosestScroll, scheduleScrollUpdate]); + var scroll = useCallback(function (change) { + var dragging = whileDraggingRef.current; + !dragging ? invariant(false, 'Cannot scroll when there is no drag') : void 0; + var closest = getClosestScrollableFromDrag(dragging); + !closest ? invariant(false, 'Cannot scroll a droppable with no closest scrollable') : void 0; + closest.scrollTop += change.y; + closest.scrollLeft += change.x; + }, []); + var callbacks = useMemo(function () { + return { + getDimensionAndWatchScroll: getDimensionAndWatchScroll, + getScrollWhileDragging: getScrollWhileDragging, + dragStopped: dragStopped, + scroll: scroll + }; + }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]); + var entry = useMemo(function () { + return { + uniqueId: uniqueId, + descriptor: descriptor, + callbacks: callbacks + }; + }, [callbacks, descriptor, uniqueId]); + useIsomorphicLayoutEffect$1(function () { + publishedDescriptorRef.current = entry.descriptor; + registry.droppable.register(entry); + return function () { + if (whileDraggingRef.current) { + warning('Unsupported: changing the droppableId or type of a Droppable during a drag') ; + dragStopped(); + } + + registry.droppable.unregister(entry); + }; + }, [callbacks, descriptor, dragStopped, entry, marshal, registry.droppable]); + useIsomorphicLayoutEffect$1(function () { + if (!whileDraggingRef.current) { + return; + } + + marshal.updateDroppableIsEnabled(publishedDescriptorRef.current.id, !args.isDropDisabled); + }, [args.isDropDisabled, marshal]); + useIsomorphicLayoutEffect$1(function () { + if (!whileDraggingRef.current) { + return; + } + + marshal.updateDroppableIsCombineEnabled(publishedDescriptorRef.current.id, args.isCombineEnabled); + }, [args.isCombineEnabled, marshal]); + } + + function noop$2() {} + + var empty = { + width: 0, + height: 0, + margin: noSpacing$1 + }; + + var getSize = function getSize(_ref) { + var isAnimatingOpenOnMount = _ref.isAnimatingOpenOnMount, + placeholder = _ref.placeholder, + animate = _ref.animate; + + if (isAnimatingOpenOnMount) { + return empty; + } + + if (animate === 'close') { + return empty; + } + + return { + height: placeholder.client.borderBox.height, + width: placeholder.client.borderBox.width, + margin: placeholder.client.margin + }; + }; + + var getStyle = function getStyle(_ref2) { + var isAnimatingOpenOnMount = _ref2.isAnimatingOpenOnMount, + placeholder = _ref2.placeholder, + animate = _ref2.animate; + var size = getSize({ + isAnimatingOpenOnMount: isAnimatingOpenOnMount, + placeholder: placeholder, + animate: animate + }); + return { + display: placeholder.display, + boxSizing: 'border-box', + width: size.width, + height: size.height, + marginTop: size.margin.top, + marginRight: size.margin.right, + marginBottom: size.margin.bottom, + marginLeft: size.margin.left, + flexShrink: '0', + flexGrow: '0', + pointerEvents: 'none', + transition: animate !== 'none' ? transitions.placeholder : null + }; + }; + + function Placeholder(props) { + var animateOpenTimerRef = React.useRef(null); + var tryClearAnimateOpenTimer = useCallback(function () { + if (!animateOpenTimerRef.current) { + return; + } + + clearTimeout(animateOpenTimerRef.current); + animateOpenTimerRef.current = null; + }, []); + var animate = props.animate, + onTransitionEnd = props.onTransitionEnd, + onClose = props.onClose, + contextId = props.contextId; + + var _useState = React.useState(props.animate === 'open'), + isAnimatingOpenOnMount = _useState[0], + setIsAnimatingOpenOnMount = _useState[1]; + + React.useEffect(function () { + if (!isAnimatingOpenOnMount) { + return noop$2; + } + + if (animate !== 'open') { + tryClearAnimateOpenTimer(); + setIsAnimatingOpenOnMount(false); + return noop$2; + } + + if (animateOpenTimerRef.current) { + return noop$2; + } + + animateOpenTimerRef.current = setTimeout(function () { + animateOpenTimerRef.current = null; + setIsAnimatingOpenOnMount(false); + }); + return tryClearAnimateOpenTimer; + }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]); + var onSizeChangeEnd = useCallback(function (event) { + if (event.propertyName !== 'height') { + return; + } + + onTransitionEnd(); + + if (animate === 'close') { + onClose(); + } + }, [animate, onClose, onTransitionEnd]); + var style = getStyle({ + isAnimatingOpenOnMount: isAnimatingOpenOnMount, + animate: props.animate, + placeholder: props.placeholder + }); + return React__default.createElement(props.placeholder.tagName, { + style: style, + 'data-rbd-placeholder-context-id': contextId, + onTransitionEnd: onSizeChangeEnd, + ref: props.innerRef + }); + } + + var Placeholder$1 = React__default.memo(Placeholder); + + var DroppableContext = React__default.createContext(null); + + function checkIsValidInnerRef(el) { + !(el && isHtmlElement(el)) ? invariant(false, "\n provided.innerRef has not been provided with a HTMLElement.\n\n You can find a guide on using the innerRef callback functions at:\n https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md\n ") : void 0; + } + + function isBoolean(value) { + return typeof value === 'boolean'; + } + + function runChecks(args, checks) { + checks.forEach(function (check) { + return check(args); + }); + } + + var shared = [function required(_ref) { + var props = _ref.props; + !props.droppableId ? invariant(false, 'A Droppable requires a droppableId prop') : void 0; + !(typeof props.droppableId === 'string') ? invariant(false, "A Droppable requires a [string] droppableId. Provided: [" + typeof props.droppableId + "]") : void 0; + }, function _boolean(_ref2) { + var props = _ref2.props; + !isBoolean(props.isDropDisabled) ? invariant(false, 'isDropDisabled must be a boolean') : void 0; + !isBoolean(props.isCombineEnabled) ? invariant(false, 'isCombineEnabled must be a boolean') : void 0; + !isBoolean(props.ignoreContainerClipping) ? invariant(false, 'ignoreContainerClipping must be a boolean') : void 0; + }, function ref(_ref3) { + var getDroppableRef = _ref3.getDroppableRef; + checkIsValidInnerRef(getDroppableRef()); + }]; + var standard = [function placeholder(_ref4) { + var props = _ref4.props, + getPlaceholderRef = _ref4.getPlaceholderRef; + + if (!props.placeholder) { + return; + } + + var ref = getPlaceholderRef(); + + if (ref) { + return; + } + + warning("\n Droppable setup issue [droppableId: \"" + props.droppableId + "\"]:\n DroppableProvided > placeholder could not be found.\n\n Please be sure to add the {provided.placeholder} React Node as a child of your Droppable.\n More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/droppable.md\n ") ; + }]; + var virtual = [function hasClone(_ref5) { + var props = _ref5.props; + !props.renderClone ? invariant(false, 'Must provide a clone render function (renderClone) for virtual lists') : void 0; + }, function hasNoPlaceholder(_ref6) { + var getPlaceholderRef = _ref6.getPlaceholderRef; + !!getPlaceholderRef() ? invariant(false, 'Expected virtual list to not have a placeholder') : void 0; + }]; + function useValidation(args) { + useDevSetupWarning(function () { + runChecks(args, shared); + + if (args.props.mode === 'standard') { + runChecks(args, standard); + } + + if (args.props.mode === 'virtual') { + runChecks(args, virtual); + } + }); + } + + var AnimateInOut = function (_React$PureComponent) { + _inheritsLoose(AnimateInOut, _React$PureComponent); + + function AnimateInOut() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this; + _this.state = { + isVisible: Boolean(_this.props.on), + data: _this.props.on, + animate: _this.props.shouldAnimate && _this.props.on ? 'open' : 'none' + }; + + _this.onClose = function () { + if (_this.state.animate !== 'close') { + return; + } + + _this.setState({ + isVisible: false + }); + }; + + return _this; + } + + AnimateInOut.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) { + if (!props.shouldAnimate) { + return { + isVisible: Boolean(props.on), + data: props.on, + animate: 'none' + }; + } + + if (props.on) { + return { + isVisible: true, + data: props.on, + animate: 'open' + }; + } + + if (state.isVisible) { + return { + isVisible: true, + data: state.data, + animate: 'close' + }; + } + + return { + isVisible: false, + animate: 'close', + data: null + }; + }; + + var _proto = AnimateInOut.prototype; + + _proto.render = function render() { + if (!this.state.isVisible) { + return null; + } + + var provided = { + onClose: this.onClose, + data: this.state.data, + animate: this.state.animate + }; + return this.props.children(provided); + }; + + return AnimateInOut; + }(React__default.PureComponent); + + var zIndexOptions = { + dragging: 5000, + dropAnimating: 4500 + }; + + var getDraggingTransition = function getDraggingTransition(shouldAnimateDragMovement, dropping) { + if (dropping) { + return transitions.drop(dropping.duration); + } + + if (shouldAnimateDragMovement) { + return transitions.snap; + } + + return transitions.fluid; + }; + + var getDraggingOpacity = function getDraggingOpacity(isCombining, isDropAnimating) { + if (!isCombining) { + return null; + } + + return isDropAnimating ? combine.opacity.drop : combine.opacity.combining; + }; + + var getShouldDraggingAnimate = function getShouldDraggingAnimate(dragging) { + if (dragging.forceShouldAnimate != null) { + return dragging.forceShouldAnimate; + } + + return dragging.mode === 'SNAP'; + }; + + function getDraggingStyle(dragging) { + var dimension = dragging.dimension; + var box = dimension.client; + var offset = dragging.offset, + combineWith = dragging.combineWith, + dropping = dragging.dropping; + var isCombining = Boolean(combineWith); + var shouldAnimate = getShouldDraggingAnimate(dragging); + var isDropAnimating = Boolean(dropping); + var transform = isDropAnimating ? transforms.drop(offset, isCombining) : transforms.moveTo(offset); + var style = { + position: 'fixed', + top: box.marginBox.top, + left: box.marginBox.left, + boxSizing: 'border-box', + width: box.borderBox.width, + height: box.borderBox.height, + transition: getDraggingTransition(shouldAnimate, dropping), + transform: transform, + opacity: getDraggingOpacity(isCombining, isDropAnimating), + zIndex: isDropAnimating ? zIndexOptions.dropAnimating : zIndexOptions.dragging, + pointerEvents: 'none' + }; + return style; + } + + function getSecondaryStyle(secondary) { + return { + transform: transforms.moveTo(secondary.offset), + transition: secondary.shouldAnimateDisplacement ? null : 'none' + }; + } + + function getStyle$1(mapped) { + return mapped.type === 'DRAGGING' ? getDraggingStyle(mapped) : getSecondaryStyle(mapped); + } + + function getDimension$1(descriptor, el, windowScroll) { + if (windowScroll === void 0) { + windowScroll = origin; + } + + var computedStyles = window.getComputedStyle(el); + var borderBox = el.getBoundingClientRect(); + var client = calculateBox(borderBox, computedStyles); + var page = withScroll(client, windowScroll); + var placeholder = { + client: client, + tagName: el.tagName.toLowerCase(), + display: computedStyles.display + }; + var displaceBy = { + x: client.marginBox.width, + y: client.marginBox.height + }; + var dimension = { + descriptor: descriptor, + placeholder: placeholder, + displaceBy: displaceBy, + client: client, + page: page + }; + return dimension; + } + + function useDraggablePublisher(args) { + var uniqueId = useUniqueId('draggable'); + var descriptor = args.descriptor, + registry = args.registry, + getDraggableRef = args.getDraggableRef, + canDragInteractiveElements = args.canDragInteractiveElements, + shouldRespectForcePress = args.shouldRespectForcePress, + isEnabled = args.isEnabled; + var options = useMemo(function () { + return { + canDragInteractiveElements: canDragInteractiveElements, + shouldRespectForcePress: shouldRespectForcePress, + isEnabled: isEnabled + }; + }, [canDragInteractiveElements, isEnabled, shouldRespectForcePress]); + var getDimension = useCallback(function (windowScroll) { + var el = getDraggableRef(); + !el ? invariant(false, 'Cannot get dimension when no ref is set') : void 0; + return getDimension$1(descriptor, el, windowScroll); + }, [descriptor, getDraggableRef]); + var entry = useMemo(function () { + return { + uniqueId: uniqueId, + descriptor: descriptor, + options: options, + getDimension: getDimension + }; + }, [descriptor, getDimension, options, uniqueId]); + var publishedRef = React.useRef(entry); + var isFirstPublishRef = React.useRef(true); + useIsomorphicLayoutEffect$1(function () { + registry.draggable.register(publishedRef.current); + return function () { + return registry.draggable.unregister(publishedRef.current); + }; + }, [registry.draggable]); + useIsomorphicLayoutEffect$1(function () { + if (isFirstPublishRef.current) { + isFirstPublishRef.current = false; + return; + } + + var last = publishedRef.current; + publishedRef.current = entry; + registry.draggable.update(entry, last); + }, [entry, registry.draggable]); + } + + function useValidation$1(props, contextId, getRef) { + useDevSetupWarning(function () { + function prefix(id) { + return "Draggable[id: " + id + "]: "; + } + + var id = props.draggableId; + !id ? "development" !== "production" ? invariant(false, 'Draggable requires a draggableId') : invariant(false) : void 0; + !(typeof id === 'string') ? "development" !== "production" ? invariant(false, "Draggable requires a [string] draggableId.\n Provided: [type: " + typeof id + "] (value: " + id + ")") : invariant(false) : void 0; + !isInteger(props.index) ? "development" !== "production" ? invariant(false, prefix(id) + " requires an integer index prop") : invariant(false) : void 0; + + if (props.mapped.type === 'DRAGGING') { + return; + } + + checkIsValidInnerRef(getRef()); + + if (props.isEnabled) { + !findDragHandle(contextId, id) ? "development" !== "production" ? invariant(false, prefix(id) + " Unable to find drag handle") : invariant(false) : void 0; + } + }); + } + function useClonePropValidation(isClone) { + useDev(function () { + var initialRef = React.useRef(isClone); + useDevSetupWarning(function () { + !(isClone === initialRef.current) ? "development" !== "production" ? invariant(false, 'Draggable isClone prop value changed during component life') : invariant(false) : void 0; + }, [isClone]); + }); + } + + function preventHtml5Dnd(event) { + event.preventDefault(); + } + + function Draggable(props) { + var ref = React.useRef(null); + var setRef = useCallback(function (el) { + ref.current = el; + }, []); + var getRef = useCallback(function () { + return ref.current; + }, []); + + var _useRequiredContext = useRequiredContext(AppContext), + contextId = _useRequiredContext.contextId, + dragHandleUsageInstructionsId = _useRequiredContext.dragHandleUsageInstructionsId, + registry = _useRequiredContext.registry; + + var _useRequiredContext2 = useRequiredContext(DroppableContext), + type = _useRequiredContext2.type, + droppableId = _useRequiredContext2.droppableId; + + var descriptor = useMemo(function () { + return { + id: props.draggableId, + index: props.index, + type: type, + droppableId: droppableId + }; + }, [props.draggableId, props.index, type, droppableId]); + var children = props.children, + draggableId = props.draggableId, + isEnabled = props.isEnabled, + shouldRespectForcePress = props.shouldRespectForcePress, + canDragInteractiveElements = props.canDragInteractiveElements, + isClone = props.isClone, + mapped = props.mapped, + dropAnimationFinishedAction = props.dropAnimationFinished; + useValidation$1(props, contextId, getRef); + useClonePropValidation(isClone); + + if (!isClone) { + var forPublisher = useMemo(function () { + return { + descriptor: descriptor, + registry: registry, + getDraggableRef: getRef, + canDragInteractiveElements: canDragInteractiveElements, + shouldRespectForcePress: shouldRespectForcePress, + isEnabled: isEnabled + }; + }, [descriptor, registry, getRef, canDragInteractiveElements, shouldRespectForcePress, isEnabled]); + useDraggablePublisher(forPublisher); + } + + var dragHandleProps = useMemo(function () { + return isEnabled ? { + tabIndex: 0, + role: 'button', + 'aria-describedby': dragHandleUsageInstructionsId, + 'data-rbd-drag-handle-draggable-id': draggableId, + 'data-rbd-drag-handle-context-id': contextId, + draggable: false, + onDragStart: preventHtml5Dnd + } : null; + }, [contextId, dragHandleUsageInstructionsId, draggableId, isEnabled]); + var onMoveEnd = useCallback(function (event) { + if (mapped.type !== 'DRAGGING') { + return; + } + + if (!mapped.dropping) { + return; + } + + if (event.propertyName !== 'transform') { + return; + } + + dropAnimationFinishedAction(); + }, [dropAnimationFinishedAction, mapped]); + var provided = useMemo(function () { + var style = getStyle$1(mapped); + var onTransitionEnd = mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null; + var result = { + innerRef: setRef, + draggableProps: { + 'data-rbd-draggable-context-id': contextId, + 'data-rbd-draggable-id': draggableId, + style: style, + onTransitionEnd: onTransitionEnd + }, + dragHandleProps: dragHandleProps + }; + return result; + }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]); + var rubric = useMemo(function () { + return { + draggableId: descriptor.id, + type: descriptor.type, + source: { + index: descriptor.index, + droppableId: descriptor.droppableId + } + }; + }, [descriptor.droppableId, descriptor.id, descriptor.index, descriptor.type]); + return children(provided, mapped.snapshot, rubric); + } + + var isStrictEqual = (function (a, b) { + return a === b; + }); + + var whatIsDraggedOverFromResult = (function (result) { + var combine = result.combine, + destination = result.destination; + + if (destination) { + return destination.droppableId; + } + + if (combine) { + return combine.droppableId; + } + + return null; + }); + + var getCombineWithFromResult = function getCombineWithFromResult(result) { + return result.combine ? result.combine.draggableId : null; + }; + + var getCombineWithFromImpact = function getCombineWithFromImpact(impact) { + return impact.at && impact.at.type === 'COMBINE' ? impact.at.combine.draggableId : null; + }; + + function getDraggableSelector() { + var memoizedOffset = memoizeOne(function (x, y) { + return { + x: x, + y: y + }; + }); + var getMemoizedSnapshot = memoizeOne(function (mode, isClone, draggingOver, combineWith, dropping) { + return { + isDragging: true, + isClone: isClone, + isDropAnimating: Boolean(dropping), + dropAnimation: dropping, + mode: mode, + draggingOver: draggingOver, + combineWith: combineWith, + combineTargetFor: null + }; + }); + var getMemoizedProps = memoizeOne(function (offset, mode, dimension, isClone, draggingOver, combineWith, forceShouldAnimate) { + return { + mapped: { + type: 'DRAGGING', + dropping: null, + draggingOver: draggingOver, + combineWith: combineWith, + mode: mode, + offset: offset, + dimension: dimension, + forceShouldAnimate: forceShouldAnimate, + snapshot: getMemoizedSnapshot(mode, isClone, draggingOver, combineWith, null) + } + }; + }); + + var selector = function selector(state, ownProps) { + if (state.isDragging) { + if (state.critical.draggable.id !== ownProps.draggableId) { + return null; + } + + var offset = state.current.client.offset; + var dimension = state.dimensions.draggables[ownProps.draggableId]; + var draggingOver = whatIsDraggedOver(state.impact); + var combineWith = getCombineWithFromImpact(state.impact); + var forceShouldAnimate = state.forceShouldAnimate; + return getMemoizedProps(memoizedOffset(offset.x, offset.y), state.movementMode, dimension, ownProps.isClone, draggingOver, combineWith, forceShouldAnimate); + } + + if (state.phase === 'DROP_ANIMATING') { + var completed = state.completed; + + if (completed.result.draggableId !== ownProps.draggableId) { + return null; + } + + var isClone = ownProps.isClone; + var _dimension = state.dimensions.draggables[ownProps.draggableId]; + var result = completed.result; + var mode = result.mode; + + var _draggingOver = whatIsDraggedOverFromResult(result); + + var _combineWith = getCombineWithFromResult(result); + + var duration = state.dropDuration; + var dropping = { + duration: duration, + curve: curves.drop, + moveTo: state.newHomeClientOffset, + opacity: _combineWith ? combine.opacity.drop : null, + scale: _combineWith ? combine.scale.drop : null + }; + return { + mapped: { + type: 'DRAGGING', + offset: state.newHomeClientOffset, + dimension: _dimension, + dropping: dropping, + draggingOver: _draggingOver, + combineWith: _combineWith, + mode: mode, + forceShouldAnimate: null, + snapshot: getMemoizedSnapshot(mode, isClone, _draggingOver, _combineWith, dropping) + } + }; + } + + return null; + }; + + return selector; + } + + function getSecondarySnapshot(combineTargetFor) { + return { + isDragging: false, + isDropAnimating: false, + isClone: false, + dropAnimation: null, + mode: null, + draggingOver: null, + combineTargetFor: combineTargetFor, + combineWith: null + }; + } + + var atRest = { + mapped: { + type: 'SECONDARY', + offset: origin, + combineTargetFor: null, + shouldAnimateDisplacement: true, + snapshot: getSecondarySnapshot(null) + } + }; + + function getSecondarySelector() { + var memoizedOffset = memoizeOne(function (x, y) { + return { + x: x, + y: y + }; + }); + var getMemoizedSnapshot = memoizeOne(getSecondarySnapshot); + var getMemoizedProps = memoizeOne(function (offset, combineTargetFor, shouldAnimateDisplacement) { + if (combineTargetFor === void 0) { + combineTargetFor = null; + } + + return { + mapped: { + type: 'SECONDARY', + offset: offset, + combineTargetFor: combineTargetFor, + shouldAnimateDisplacement: shouldAnimateDisplacement, + snapshot: getMemoizedSnapshot(combineTargetFor) + } + }; + }); + + var getFallback = function getFallback(combineTargetFor) { + return combineTargetFor ? getMemoizedProps(origin, combineTargetFor, true) : null; + }; + + var getProps = function getProps(ownId, draggingId, impact, afterCritical) { + var visualDisplacement = impact.displaced.visible[ownId]; + var isAfterCriticalInVirtualList = Boolean(afterCritical.inVirtualList && afterCritical.effected[ownId]); + var combine = tryGetCombine(impact); + var combineTargetFor = combine && combine.draggableId === ownId ? draggingId : null; + + if (!visualDisplacement) { + if (!isAfterCriticalInVirtualList) { + return getFallback(combineTargetFor); + } + + if (impact.displaced.invisible[ownId]) { + return null; + } + + var change = negate(afterCritical.displacedBy.point); + + var _offset = memoizedOffset(change.x, change.y); + + return getMemoizedProps(_offset, combineTargetFor, true); + } + + if (isAfterCriticalInVirtualList) { + return getFallback(combineTargetFor); + } + + var displaceBy = impact.displacedBy.point; + var offset = memoizedOffset(displaceBy.x, displaceBy.y); + return getMemoizedProps(offset, combineTargetFor, visualDisplacement.shouldAnimate); + }; + + var selector = function selector(state, ownProps) { + if (state.isDragging) { + if (state.critical.draggable.id === ownProps.draggableId) { + return null; + } + + return getProps(ownProps.draggableId, state.critical.draggable.id, state.impact, state.afterCritical); + } + + if (state.phase === 'DROP_ANIMATING') { + var completed = state.completed; + + if (completed.result.draggableId === ownProps.draggableId) { + return null; + } + + return getProps(ownProps.draggableId, completed.result.draggableId, completed.impact, completed.afterCritical); + } + + return null; + }; + + return selector; + } + + var makeMapStateToProps = function makeMapStateToProps() { + var draggingSelector = getDraggableSelector(); + var secondarySelector = getSecondarySelector(); + + var selector = function selector(state, ownProps) { + return draggingSelector(state, ownProps) || secondarySelector(state, ownProps) || atRest; + }; + + return selector; + }; + var mapDispatchToProps = { + dropAnimationFinished: dropAnimationFinished + }; + var ConnectedDraggable = connect(makeMapStateToProps, mapDispatchToProps, null, { + context: StoreContext, + pure: true, + areStatePropsEqual: isStrictEqual + })(Draggable); + + function PrivateDraggable(props) { + var droppableContext = useRequiredContext(DroppableContext); + var isUsingCloneFor = droppableContext.isUsingCloneFor; + + if (isUsingCloneFor === props.draggableId && !props.isClone) { + return null; + } + + return React__default.createElement(ConnectedDraggable, props); + } + function PublicDraggable(props) { + var isEnabled = typeof props.isDragDisabled === 'boolean' ? !props.isDragDisabled : true; + var canDragInteractiveElements = Boolean(props.disableInteractiveElementBlocking); + var shouldRespectForcePress = Boolean(props.shouldRespectForcePress); + return React__default.createElement(PrivateDraggable, _extends({}, props, { + isClone: false, + isEnabled: isEnabled, + canDragInteractiveElements: canDragInteractiveElements, + shouldRespectForcePress: shouldRespectForcePress + })); + } + + function Droppable(props) { + var appContext = React.useContext(AppContext); + !appContext ? invariant(false, 'Could not find app context') : void 0; + var contextId = appContext.contextId, + isMovementAllowed = appContext.isMovementAllowed; + var droppableRef = React.useRef(null); + var placeholderRef = React.useRef(null); + var children = props.children, + droppableId = props.droppableId, + type = props.type, + mode = props.mode, + direction = props.direction, + ignoreContainerClipping = props.ignoreContainerClipping, + isDropDisabled = props.isDropDisabled, + isCombineEnabled = props.isCombineEnabled, + snapshot = props.snapshot, + useClone = props.useClone, + updateViewportMaxScroll = props.updateViewportMaxScroll, + getContainerForClone = props.getContainerForClone; + var getDroppableRef = useCallback(function () { + return droppableRef.current; + }, []); + var setDroppableRef = useCallback(function (value) { + droppableRef.current = value; + }, []); + var getPlaceholderRef = useCallback(function () { + return placeholderRef.current; + }, []); + var setPlaceholderRef = useCallback(function (value) { + placeholderRef.current = value; + }, []); + useValidation({ + props: props, + getDroppableRef: getDroppableRef, + getPlaceholderRef: getPlaceholderRef + }); + var onPlaceholderTransitionEnd = useCallback(function () { + if (isMovementAllowed()) { + updateViewportMaxScroll({ + maxScroll: getMaxWindowScroll() + }); + } + }, [isMovementAllowed, updateViewportMaxScroll]); + useDroppablePublisher({ + droppableId: droppableId, + type: type, + mode: mode, + direction: direction, + isDropDisabled: isDropDisabled, + isCombineEnabled: isCombineEnabled, + ignoreContainerClipping: ignoreContainerClipping, + getDroppableRef: getDroppableRef + }); + var placeholder = React__default.createElement(AnimateInOut, { + on: props.placeholder, + shouldAnimate: props.shouldAnimatePlaceholder + }, function (_ref) { + var onClose = _ref.onClose, + data = _ref.data, + animate = _ref.animate; + return React__default.createElement(Placeholder$1, { + placeholder: data, + onClose: onClose, + innerRef: setPlaceholderRef, + animate: animate, + contextId: contextId, + onTransitionEnd: onPlaceholderTransitionEnd + }); + }); + var provided = useMemo(function () { + return { + innerRef: setDroppableRef, + placeholder: placeholder, + droppableProps: { + 'data-rbd-droppable-id': droppableId, + 'data-rbd-droppable-context-id': contextId + } + }; + }, [contextId, droppableId, placeholder, setDroppableRef]); + var isUsingCloneFor = useClone ? useClone.dragging.draggableId : null; + var droppableContext = useMemo(function () { + return { + droppableId: droppableId, + type: type, + isUsingCloneFor: isUsingCloneFor + }; + }, [droppableId, isUsingCloneFor, type]); + + function getClone() { + if (!useClone) { + return null; + } + + var dragging = useClone.dragging, + render = useClone.render; + var node = React__default.createElement(PrivateDraggable, { + draggableId: dragging.draggableId, + index: dragging.source.index, + isClone: true, + isEnabled: true, + shouldRespectForcePress: false, + canDragInteractiveElements: true + }, function (draggableProvided, draggableSnapshot) { + return render(draggableProvided, draggableSnapshot, dragging); + }); + return ReactDOM__default.createPortal(node, getContainerForClone()); + } + + return React__default.createElement(DroppableContext.Provider, { + value: droppableContext + }, children(provided, snapshot), getClone()); + } + + var isMatchingType = function isMatchingType(type, critical) { + return type === critical.droppable.type; + }; + + var getDraggable = function getDraggable(critical, dimensions) { + return dimensions.draggables[critical.draggable.id]; + }; + + var makeMapStateToProps$1 = function makeMapStateToProps() { + var idleWithAnimation = { + placeholder: null, + shouldAnimatePlaceholder: true, + snapshot: { + isDraggingOver: false, + draggingOverWith: null, + draggingFromThisWith: null, + isUsingPlaceholder: false + }, + useClone: null + }; + + var idleWithoutAnimation = _extends({}, idleWithAnimation, { + shouldAnimatePlaceholder: false + }); + + var getDraggableRubric = memoizeOne(function (descriptor) { + return { + draggableId: descriptor.id, + type: descriptor.type, + source: { + index: descriptor.index, + droppableId: descriptor.droppableId + } + }; + }); + var getMapProps = memoizeOne(function (id, isEnabled, isDraggingOverForConsumer, isDraggingOverForImpact, dragging, renderClone) { + var draggableId = dragging.descriptor.id; + var isHome = dragging.descriptor.droppableId === id; + + if (isHome) { + var useClone = renderClone ? { + render: renderClone, + dragging: getDraggableRubric(dragging.descriptor) + } : null; + var _snapshot = { + isDraggingOver: isDraggingOverForConsumer, + draggingOverWith: isDraggingOverForConsumer ? draggableId : null, + draggingFromThisWith: draggableId, + isUsingPlaceholder: true + }; + return { + placeholder: dragging.placeholder, + shouldAnimatePlaceholder: false, + snapshot: _snapshot, + useClone: useClone + }; + } + + if (!isEnabled) { + return idleWithoutAnimation; + } + + if (!isDraggingOverForImpact) { + return idleWithAnimation; + } + + var snapshot = { + isDraggingOver: isDraggingOverForConsumer, + draggingOverWith: draggableId, + draggingFromThisWith: null, + isUsingPlaceholder: true + }; + return { + placeholder: dragging.placeholder, + shouldAnimatePlaceholder: true, + snapshot: snapshot, + useClone: null + }; + }); + + var selector = function selector(state, ownProps) { + var id = ownProps.droppableId; + var type = ownProps.type; + var isEnabled = !ownProps.isDropDisabled; + var renderClone = ownProps.renderClone; + + if (state.isDragging) { + var critical = state.critical; + + if (!isMatchingType(type, critical)) { + return idleWithoutAnimation; + } + + var dragging = getDraggable(critical, state.dimensions); + var isDraggingOver = whatIsDraggedOver(state.impact) === id; + return getMapProps(id, isEnabled, isDraggingOver, isDraggingOver, dragging, renderClone); + } + + if (state.phase === 'DROP_ANIMATING') { + var completed = state.completed; + + if (!isMatchingType(type, completed.critical)) { + return idleWithoutAnimation; + } + + var _dragging = getDraggable(completed.critical, state.dimensions); + + return getMapProps(id, isEnabled, whatIsDraggedOverFromResult(completed.result) === id, whatIsDraggedOver(completed.impact) === id, _dragging, renderClone); + } + + if (state.phase === 'IDLE' && state.completed && !state.shouldFlush) { + var _completed = state.completed; + + if (!isMatchingType(type, _completed.critical)) { + return idleWithoutAnimation; + } + + var wasOver = whatIsDraggedOver(_completed.impact) === id; + var wasCombining = Boolean(_completed.impact.at && _completed.impact.at.type === 'COMBINE'); + var isHome = _completed.critical.droppable.id === id; + + if (wasOver) { + return wasCombining ? idleWithAnimation : idleWithoutAnimation; + } + + if (isHome) { + return idleWithAnimation; + } + + return idleWithoutAnimation; + } + + return idleWithoutAnimation; + }; + + return selector; + }; + var mapDispatchToProps$1 = { + updateViewportMaxScroll: updateViewportMaxScroll + }; + + function getBody() { + !document.body ? invariant(false, 'document.body is not ready') : void 0; + return document.body; + } + + var defaultProps = { + mode: 'standard', + type: 'DEFAULT', + direction: 'vertical', + isDropDisabled: false, + isCombineEnabled: false, + ignoreContainerClipping: false, + renderClone: null, + getContainerForClone: getBody + }; + var ConnectedDroppable = connect(makeMapStateToProps$1, mapDispatchToProps$1, null, { + context: StoreContext, + pure: true, + areStatePropsEqual: isStrictEqual + })(Droppable); + ConnectedDroppable.defaultProps = defaultProps; + + exports.DragDropContext = DragDropContext; + exports.Draggable = PublicDraggable; + exports.Droppable = ConnectedDroppable; + exports.resetServerContext = resetServerContext; + exports.useKeyboardSensor = useKeyboardSensor; + exports.useMouseSensor = useMouseSensor; + exports.useTouchSensor = useTouchSensor; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.min.js b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.min.js new file mode 100644 index 00000000..a18e84d8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","react","react-dom"],t):t((e=e||self).ReactBeautifulDnd={},e.React,e.ReactDOM)}(this,(function(e,t,r){"use strict";var n="default"in t?t.default:t,i="default"in r?r.default:r;function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(){}function l(){return(l=Object.assign||function(e){for(var t=1;t");return t.callbacks},t.setCallbacks=function(e){t.callbacks=e},t}o(t,e);var r=t.prototype;return r.componentDidMount=function(){this.unbind=u(window,[{eventName:"error",fn:this.onWindowError}])},r.componentDidCatch=function(e){if(!(e instanceof c))throw e;this.setState({})},r.componentWillUnmount=function(){this.unbind()},r.render=function(){return this.props.children(this.setCallbacks)},t}(n.Component),p=function(e){return e+1},f=function(e,t){var r=e.droppableId===t.droppableId,n=p(e.index),i=p(t.index);return r?"\n You have moved the item from position "+n+"\n to position "+i+"\n ":"\n You have moved the item from position "+n+"\n in list "+e.droppableId+"\n to list "+t.droppableId+"\n in position "+i+"\n "},g=function(e,t,r){return t.droppableId===r.droppableId?"\n The item "+e+"\n has been combined with "+r.draggableId:"\n The item "+e+"\n in list "+t.droppableId+"\n has been combined with "+r.draggableId+"\n in list "+r.droppableId+"\n "},v=function(e){return"\n The item has returned to its starting position\n of "+p(e.index)+"\n"},m="\n Press space bar to start a drag.\n When dragging you can use the arrow keys to move the item around and escape to cancel.\n Some screen readers may require you to be in focus mode or to use your pass through key\n",b=function(e){return"\n You have lifted an item in position "+p(e.source.index)+"\n"},h=function(e){var t=e.destination;if(t)return f(e.source,t);var r=e.combine;return r?g(e.draggableId,e.source,r):"You are over an area that cannot be dropped on"},y=function(e){if("CANCEL"===e.reason)return"\n Movement cancelled.\n "+v(e.source)+"\n ";var t=e.destination,r=e.combine;return t?"\n You have dropped the item.\n "+f(e.source,t)+"\n ":r?"\n You have dropped the item.\n "+g(e.draggableId,e.source,r)+"\n ":"\n The item has been dropped while not over a drop area.\n "+v(e.source)+"\n "};var x=function(e){var t,r=e.Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),I=function(){return Math.random().toString(36).substring(7).split("").join(".")},D={INIT:"@@redux/INIT"+I(),REPLACE:"@@redux/REPLACE"+I(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+I()}};function w(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function E(e,t,r){var n;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error("Expected the enhancer to be a function.");return r(E)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var i=e,o=t,a=[],l=a,u=!1;function c(){l===a&&(l=a.slice())}function s(){if(u)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return o}function d(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(u)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return c(),l.push(e),function(){if(t){if(u)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,c();var r=l.indexOf(e);l.splice(r,1),a=null}}}function p(e){if(!w(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw new Error("Reducers may not dispatch actions.");try{u=!0,o=i(o,e)}finally{u=!1}for(var t=a=l,r=0;r=0||(i[r]=e[r]);return i}var K={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},Q={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Z={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},ee={};function te(e){return L.isMemo(e)?Z:ee[e.$$typeof]||K}ee[L.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},ee[L.Memo]=Z;var re=Object.defineProperty,ne=Object.getOwnPropertyNames,ie=Object.getOwnPropertySymbols,oe=Object.getOwnPropertyDescriptor,ae=Object.getPrototypeOf,le=Object.prototype;var ue=function e(t,r,n){if("string"!=typeof r){if(le){var i=ae(r);i&&i!==le&&e(t,i,n)}var o=ne(r);ie&&(o=o.concat(ie(r)));for(var a=te(t),l=te(r),u=0;u=0;n--){var i=t[n](e);if(i)return i}return function(t,n){throw new Error("Invalid value of type "+typeof e+" for "+r+" argument when connecting component "+n.wrappedComponentName+".")}}function Ne(e,t){return e===t}function Be(e){var t=void 0===e?{}:e,r=t.connectHOC,n=void 0===r?be:r,i=t.mapStateToPropsFactories,o=void 0===i?Ee:i,a=t.mapDispatchToPropsFactories,l=void 0===a?we:a,u=t.mergePropsFactories,c=void 0===u?Se:u,s=t.selectorFactory,d=void 0===s?Ae:s;return function(e,t,r,i){void 0===i&&(i={});var a=i,u=a.pure,s=void 0===u||u,p=a.areStatesEqual,f=void 0===p?Ne:p,g=a.areOwnPropsEqual,v=void 0===g?ye:g,m=a.areStatePropsEqual,b=void 0===m?ye:m,h=a.areMergedPropsEqual,y=void 0===h?ye:h,x=X(a,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),I=Re(e,o,"mapStateToProps"),D=Re(t,l,"mapDispatchToProps"),w=Re(r,c,"mergeProps");return n(d,J({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:I,initMapDispatchToProps:D,initMergeProps:w,pure:s,areStatesEqual:f,areOwnPropsEqual:v,areStatePropsEqual:b,areMergedPropsEqual:y},x))}}var Te,Me=Be();function Le(e,r){var n=t.useState((function(){return{inputs:r,result:e()}}))[0],i=t.useRef(n),o=Boolean(r&&i.current.inputs&&function(e,t){if(e.length!==t.length)return!1;for(var r=0;re.bottom,l=n.lefte.right;return!(!a||!l)||(a&&o||l&&i)}},Ot=function(e){var t=St(e.top,e.bottom),r=St(e.left,e.right);return function(e){return t(e.top)&&t(e.bottom)&&r(e.left)&&r(e.right)}},At={direction:"vertical",line:"y",crossAxisLine:"x",start:"top",end:"bottom",size:"height",crossAxisStart:"left",crossAxisEnd:"right",crossAxisSize:"width"},Rt={direction:"horizontal",line:"x",crossAxisLine:"y",start:"left",end:"right",size:"width",crossAxisStart:"top",crossAxisEnd:"bottom",crossAxisSize:"height"},Nt=function(e){var t=e.target,r=e.destination,n=e.viewport,i=e.withDroppableDisplacement,o=e.isVisibleThroughFrameFn,a=i?function(e,t){var r=t.frame?t.frame.scroll.diff.displacement:Fe;return nt(e,r)}(t,r):t;return function(e,t,r){return!!t.subject.active&&r(t.subject.active)(e)}(a,r,o)&&function(e,t,r){return r(t)(e)}(a,n,o)},Bt=function(e){return Nt(l({},e,{isVisibleThroughFrameFn:Pt}))},Tt=function(e){return Nt(l({},e,{isVisibleThroughFrameFn:Ot}))};function Mt(e){var t=e.afterDragging,r=e.destination,n=e.displacedBy,i=e.viewport,o=e.forceShouldAnimate,a=e.last;return t.reduce((function(e,t){var l=function(e,t){var r=e.page.marginBox,n={top:t.point.y,right:0,bottom:0,left:t.point.x};return $e(Ye(r,n))}(t,n),u=t.descriptor.id;if(e.all.push(u),!Bt({target:l,destination:r,viewport:i,withDroppableDisplacement:!0}))return e.invisible[t.descriptor.id]=!0,e;var c={draggableId:u,shouldAnimate:function(e,t,r){if("boolean"==typeof r)return r;if(!t)return!0;var n=t.invisible,i=t.visible;if(n[e])return!1;var o=i[e];return!o||o.shouldAnimate}(u,a,o)};return e.visible[u]=c,e}),{all:[],visible:{},invisible:{}})}function Lt(e){var t=e.insideDestination,r=e.inHomeList,n=e.displacedBy,i=e.destination,o=function(e,t){if(!e.length)return 0;var r=e[e.length-1].descriptor.index;return t.inHomeList?r:r+1}(t,{inHomeList:r});return{displaced:Et,displacedBy:n,at:{type:"REORDER",destination:{droppableId:i.descriptor.id,index:o}}}}function Gt(e){var t=e.draggable,r=e.insideDestination,n=e.destination,i=e.viewport,o=e.displacedBy,a=e.last,l=e.index,u=e.forceShouldAnimate,c=Dt(t,n);if(null==l)return Lt({insideDestination:r,inHomeList:c,displacedBy:o,destination:n});var s=pt(r,(function(e){return e.descriptor.index===l}));if(!s)return Lt({insideDestination:r,inHomeList:c,displacedBy:o,destination:n});var d=It(t,r),p=r.indexOf(s);return{displaced:Mt({afterDragging:d.slice(p),destination:n,displacedBy:o,last:a,viewport:i.frame,forceShouldAnimate:u}),displacedBy:o,at:{type:"REORDER",destination:{droppableId:n.descriptor.id,index:l}}}}function _t(e,t){return Boolean(t.effected[e])}var Ft=function(e){var t=e.isMovingForward,r=e.isInHomeList,n=e.draggable,i=e.draggables,o=e.destination,a=e.insideDestination,l=e.previousImpact,u=e.viewport,c=e.afterCritical,d=l.at;if(d||s(!1),"REORDER"===d.type){var p=function(e){var t=e.isMovingForward,r=e.isInHomeList,n=e.insideDestination,i=e.location;if(!n.length)return null;var o=i.index,a=t?o+1:o-1,l=n[0].descriptor.index,u=n[n.length-1].descriptor.index;return a(r?u:u+1)?null:a}({isMovingForward:t,isInHomeList:r,location:d.destination,insideDestination:a});return null==p?null:Gt({draggable:n,insideDestination:a,destination:o,viewport:u,last:l.displaced,displacedBy:l.displacedBy,index:p})}var f=function(e){var t=e.isMovingForward,r=e.destination,n=e.draggables,i=e.combine,o=e.afterCritical;if(!r.isCombineEnabled)return null;var a=i.draggableId,l=n[a].descriptor.index;return _t(a,o)?t?l:l-1:t?l+1:l}({isMovingForward:t,destination:o,displaced:l.displaced,draggables:i,combine:d.combine,afterCritical:c});return null==f?null:Gt({draggable:n,insideDestination:a,destination:o,viewport:u,last:l.displaced,displacedBy:l.displacedBy,index:f})},jt=function(e){var t=e.afterCritical,r=e.impact,n=e.draggables,i=xt(r);i||s(!1);var o=i.draggableId,a=n[o].page.borderBox.center,l=function(e){var t=e.displaced,r=e.afterCritical,n=e.combineWith,i=e.displacedBy,o=Boolean(t.visible[n]||t.invisible[n]);return _t(n,r)?o?Fe:Ue(i.point):o?i.point:Fe}({displaced:r.displaced,afterCritical:t,combineWith:o,displacedBy:r.displacedBy});return je(a,l)},kt=function(e,t){return t.margin[e.start]+t.borderBox[e.size]/2},Wt=function(e,t,r){return t[e.crossAxisStart]+r.margin[e.crossAxisStart]+r.borderBox[e.crossAxisSize]/2},Ut=function(e){var t=e.axis,r=e.moveRelativeTo,n=e.isMoving;return He(t.line,r.marginBox[t.end]+kt(t,n),Wt(t,r.marginBox,n))},Ht=function(e){var t=e.axis,r=e.moveRelativeTo,n=e.isMoving;return He(t.line,r.marginBox[t.start]-function(e,t){return t.margin[e.end]+t.borderBox[e.size]/2}(t,n),Wt(t,r.marginBox,n))},qt=function(e){var t=e.impact,r=e.draggable,n=e.draggables,i=e.droppable,o=e.afterCritical,a=ht(i.descriptor.id,n),l=r.page,u=i.axis;if(!a.length)return function(e){var t=e.axis,r=e.moveInto,n=e.isMoving;return He(t.line,r.contentBox[t.start]+kt(t,n),Wt(t,r.contentBox,n))}({axis:u,moveInto:i.page,isMoving:l});var c=t.displaced,s=t.displacedBy,d=c.all[0];if(d){var p=n[d];if(_t(d,o))return Ht({axis:u,moveRelativeTo:p.page,isMoving:l});var f=Ze(p.page,s.point);return Ht({axis:u,moveRelativeTo:f,isMoving:l})}var g=a[a.length-1];if(g.descriptor.id===r.descriptor.id)return l.borderBox.center;if(_t(g.descriptor.id,o)){var v=Ze(g.page,Ue(o.displacedBy.point));return Ut({axis:u,moveRelativeTo:v,isMoving:l})}return Ut({axis:u,moveRelativeTo:g.page,isMoving:l})},Vt=function(e,t){var r=e.frame;return r?je(t,r.scroll.diff.displacement):t},zt=function(e){var t=function(e){var t=e.impact,r=e.draggable,n=e.droppable,i=e.draggables,o=e.afterCritical,a=r.page.borderBox.center,l=t.at;return n&&l?"REORDER"===l.type?qt({impact:t,draggable:r,draggables:i,droppable:n,afterCritical:o}):jt({impact:t,draggables:i,afterCritical:o}):a}(e),r=e.droppable;return r?Vt(r,t):t},$t=function(e,t){var r=ke(t,e.scroll.initial),n=Ue(r);return{frame:$e({top:t.y,bottom:t.y+e.frame.height,left:t.x,right:t.x+e.frame.width}),scroll:{initial:e.scroll.initial,max:e.scroll.max,current:t,diff:{value:r,displacement:n}}}};function Yt(e,t){return e.map((function(e){return t[e]}))}var Jt=function(e){var t=e.pageBorderBoxCenter,r=e.draggable,n=function(e,t){return je(e.scroll.diff.displacement,t)}(e.viewport,t),i=ke(n,r.page.borderBox.center);return je(r.client.borderBox.center,i)},Xt=function(e){var t=e.draggable,r=e.destination,n=e.newPageBorderBoxCenter,i=e.viewport,o=e.withDroppableDisplacement,a=e.onlyOnMainAxis,u=void 0!==a&&a,c=ke(n,t.page.borderBox.center),s={target:nt(t.page.borderBox,c),destination:r,withDroppableDisplacement:o,viewport:i};return u?function(e){return Nt(l({},e,{isVisibleThroughFrameFn:(t=e.destination.axis,function(e){var r=St(e.top,e.bottom),n=St(e.left,e.right);return function(e){return t===At?r(e.top)&&r(e.bottom):n(e.left)&&n(e.right)}})}));var t}(s):Tt(s)},Kt=function(e){var t=e.isMovingForward,r=e.draggable,n=e.destination,i=e.draggables,o=e.previousImpact,a=e.viewport,u=e.previousPageBorderBoxCenter,c=e.previousClientSelection,d=e.afterCritical;if(!n.isEnabled)return null;var p=ht(n.descriptor.id,i),f=Dt(r,n),g=function(e){var t=e.isMovingForward,r=e.draggable,n=e.destination,i=e.insideDestination,o=e.previousImpact;if(!n.isCombineEnabled)return null;if(!yt(o))return null;function a(e){var t={type:"COMBINE",combine:{draggableId:e,droppableId:n.descriptor.id}};return l({},o,{at:t})}var u=o.displaced.all,c=u.length?u[0]:null;if(t)return c?a(c):null;var d=It(r,i);if(!c)return d.length?a(d[d.length-1].descriptor.id):null;var p=dt(d,(function(e){return e.descriptor.id===c}));-1===p&&s(!1);var f=p-1;return f<0?null:a(d[f].descriptor.id)}({isMovingForward:t,draggable:r,destination:n,insideDestination:p,previousImpact:o})||Ft({isMovingForward:t,isInHomeList:f,draggable:r,draggables:i,destination:n,insideDestination:p,previousImpact:o,viewport:a,afterCritical:d});if(!g)return null;var v=zt({impact:g,draggable:r,droppable:n,draggables:i,afterCritical:d});if(Xt({draggable:r,destination:n,newPageBorderBoxCenter:v,viewport:a.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0}))return{clientSelection:Jt({pageBorderBoxCenter:v,draggable:r,viewport:a}),impact:g,scrollJumpRequest:null};var m=ke(v,u);return{clientSelection:c,impact:function(e){var t=e.impact,r=e.viewport,n=e.destination,i=e.draggables,o=e.maxScrollChange,a=$t(r,je(r.scroll.current,o)),u=n.frame?lt(n,je(n.frame.scroll.current,o)):n,c=t.displaced,s=Mt({afterDragging:Yt(c.all,i),destination:n,displacedBy:t.displacedBy,viewport:a.frame,last:c,forceShouldAnimate:!1}),d=Mt({afterDragging:Yt(c.all,i),destination:u,displacedBy:t.displacedBy,viewport:r.frame,last:c,forceShouldAnimate:!1}),p={},f={},g=[c,s,d];return c.all.forEach((function(e){var t=function(e,t){for(var r=0;r1?s.sort((function(e,t){return Qt(e)[l.start]-Qt(t)[l.start]}))[0]:c.sort((function(e,t){var n=Ve(r,it(Qt(e))),i=Ve(r,it(Qt(t)));return n!==i?n-i:Qt(e)[l.start]-Qt(t)[l.start]}))[0]}({isMovingForward:t,pageBorderBoxCenter:r,source:i,droppables:a,viewport:l});if(!c)return null;var s=ht(c.descriptor.id,o),d=function(e){var t=e.previousPageBorderBoxCenter,r=e.moveRelativeTo,n=e.insideDestination,i=e.draggable,o=e.draggables,a=e.destination,l=e.viewport,u=e.afterCritical;if(!r){if(n.length)return null;var c={displaced:Et,displacedBy:wt,at:{type:"REORDER",destination:{droppableId:a.descriptor.id,index:0}}},s=zt({impact:c,draggable:i,droppable:a,draggables:o,afterCritical:u}),d=Dt(i,a)?a:nr(a,i,o);return Xt({draggable:i,destination:d,newPageBorderBoxCenter:s,viewport:l.frame,withDroppableDisplacement:!1,onlyOnMainAxis:!0})?c:null}var p,f=Boolean(t[a.axis.line]<=r.page.borderBox.center[a.axis.line]),g=(p=r.descriptor.index,r.descriptor.id===i.descriptor.id?p:f?p:p+1),v=tr(a.axis,i.displaceBy);return Gt({draggable:i,insideDestination:n,destination:a,viewport:l,displacedBy:v,last:Et,index:g})}({previousPageBorderBoxCenter:r,destination:c,draggable:n,draggables:o,moveRelativeTo:function(e){var t=e.pageBorderBoxCenter,r=e.viewport,n=e.destination,i=e.insideDestination,o=e.afterCritical;return i.filter((function(e){return Tt({target:er(e,o),destination:n,viewport:r.frame,withDroppableDisplacement:!0})})).sort((function(e,r){var i=qe(t,Vt(n,Zt(e,o))),a=qe(t,Vt(n,Zt(r,o)));return in.left&&r.topn.top))return!1;if(ur(i)(t.center))return!0;var o=e.axis,a=i.center[o.crossAxisLine],l=t[o.crossAxisStart],u=t[o.crossAxisEnd],c=St(i[o.crossAxisStart],i[o.crossAxisEnd]),s=c(l),d=c(u);return!s&&!d||(s?la)}));return i.length?1===i.length?i[0].descriptor.id:function(e){var t=e.pageBorderBox,r=e.draggable,n=e.candidates,i=r.page.borderBox.center,o=n.map((function(e){var r=e.axis,n=He(e.axis.line,t.center[r.line],e.page.borderBox.center[r.crossAxisLine]);return{id:e.descriptor.id,distance:qe(i,n)}})).sort((function(e,t){return t.distance-e.distance}));return o[0]?o[0].id:null}({pageBorderBox:t,draggable:r,candidates:i}):null}var sr=function(e,t){return $e(nt(e,t))};function dr(e){var t=e.displaced,r=e.id;return Boolean(t.visible[r]||t.invisible[r])}var pr=function(e){var t=e.pageOffset,r=e.draggable,n=e.draggables,i=e.droppables,o=e.previousImpact,a=e.viewport,l=e.afterCritical,u=sr(r.page.borderBox,t),c=cr({pageBorderBox:u,draggable:r,droppables:i});if(!c)return Ct;var s=i[c],d=ht(s.descriptor.id,n),p=function(e,t){var r=e.frame;return r?sr(t,r.scroll.diff.value):t}(s,u);return function(e){var t=e.draggable,r=e.pageBorderBoxWithDroppableScroll,n=e.previousImpact,i=e.destination,o=e.insideDestination,a=e.afterCritical;if(!i.isCombineEnabled)return null;var l=i.axis,u=tr(i.axis,t.displaceBy),c=u.value,s=r[l.start],d=r[l.end],p=pt(It(t,o),(function(e){var t=e.descriptor.id,r=e.page.borderBox,i=r[l.size]/4,o=_t(t,a),u=dr({displaced:n.displaced,id:t});return o?u?d>r[l.start]+i&&dr[l.start]-c+i&&sr[l.start]+c+i&&dr[l.start]+i&&st.descriptor.index?r.descriptor.index-1:r.descriptor.index:null}({draggable:r,closest:pt(It(r,i),(function(e){var t=e.descriptor.id,r=e.page.borderBox.center[u.line],n=_t(t,l),i=dr({displaced:o,id:t});return n?i?p<=r:d=1500)return Yr;var o=$r+Jr*(i/1500);return Number(("CANCEL"===n?.6*o:o).toFixed(2))}({current:i.current.client.offset,destination:h,reason:o});r(function(e){return{type:"DROP_ANIMATE",payload:e}}({newHomeClientOffset:h,dropDuration:x,completed:y}))}else r(Gr({completed:y}))}}else r(function(e){return{type:"DROP_PENDING",payload:e}}({reason:o}))}else e(n)}}},Kr=function(e){var t=[],r=null,n=function(){for(var n=arguments.length,i=new Array(n),o=0;ot.startScrollingFrom)return 0;if(e<=t.maxScrollValueAt)return Sn;if(e===t.startScrollingFrom)return 1;var r=An({startOfRange:t.maxScrollValueAt,endOfRange:t.startScrollingFrom,current:e}),n=Sn*Pn(1-r);return Math.ceil(n)}(t,r);return 0===o?0:i?Math.max(function(e,t){var r=t,n=Nn,i=Date.now()-r;if(i>=Nn)return e;if(it.height,o=r.width>t.width;return o||i?o&&i?null:{x:o?0:n.x,y:i?0:n.y}:n}({container:r,subject:n,proposedScroll:c});return s?We(s,Fe)?null:s:null},Gn=ze((function(e){return 0===e?0:e>0?1:-1})),_n=(bn=function(e,t){return e<0?e:e>t?e-t:0},function(e){var t=e.current,r=e.max,n=e.change,i=je(t,n),o={x:bn(i.x,r.x),y:bn(i.y,r.y)};return We(o,Fe)?null:o}),Fn=function(e){var t=e.max,r=e.current,n=e.change,i={x:Math.max(r.x,t.x),y:Math.max(r.y,t.y)},o=Gn(n),a=_n({max:i,current:r,change:o});return!a||(0!==o.x&&0===a.x||0!==o.y&&0===a.y)},jn=function(e,t){return Fn({current:e.scroll.current,max:e.scroll.max,change:t})},kn=function(e,t){var r=e.frame;return!!r&&Fn({current:r.scroll.current,max:r.scroll.max,change:t})},Wn=function(e){var t=e.state,r=e.dragStartTime,n=e.shouldUseTimeDampening,i=e.scrollWindow,o=e.scrollDroppable,a=t.current.page.borderBoxCenter,l=t.dimensions.draggables[t.critical.draggable.id].page.marginBox;if(t.isWindowScrollAllowed){var u=function(e){var t=e.viewport,r=e.subject,n=e.center,i=e.dragStartTime,o=e.shouldUseTimeDampening,a=Ln({dragStartTime:i,container:t.frame,subject:r,center:n,shouldUseTimeDampening:o});return a&&jn(t,a)?a:null}({dragStartTime:r,viewport:t.viewport,subject:l,center:a,shouldUseTimeDampening:n});if(u)return void i(u)}var c=wn({center:a,destination:or(t.impact),droppables:t.dimensions.droppables});if(c){var s=function(e){var t=e.droppable,r=e.subject,n=e.center,i=e.dragStartTime,o=e.shouldUseTimeDampening,a=t.frame;if(!a)return null;var l=Ln({dragStartTime:i,container:a.pageMarginBox,subject:r,center:n,shouldUseTimeDampening:o});return l&&kn(t,l)?l:null}({dragStartTime:r,droppable:c,subject:l,center:a,shouldUseTimeDampening:n});s&&o(c.descriptor.id,s)}},Un=function(e){var t=e.move,r=e.scrollDroppable,n=e.scrollWindow,i=function(e,t){if(!kn(e,t))return t;var n=function(e,t){var r=e.frame;return r&&kn(e,t)?_n({current:r.scroll.current,max:r.scroll.max,change:t}):null}(e,t);if(!n)return r(e.descriptor.id,t),null;var i=ke(t,n);return r(e.descriptor.id,i),ke(t,i)},o=function(e,t,r){if(!e)return r;if(!jn(t,r))return r;var i=function(e,t){if(!jn(e,t))return null;var r=e.scroll.max,n=e.scroll.current;return _n({current:n,max:r,change:t})}(t,r);if(!i)return n(r),null;var o=ke(r,i);return n(o),ke(r,o)};return function(e){var r=e.scrollJumpRequest;if(r){var n=or(e.impact);n||s(!1);var a=i(e.dimensions.droppables[n],r);if(a){var l=e.viewport,u=o(e.isWindowScrollAllowed,l,a);u&&function(e,r){var n=je(e.current.client.selection,r);t({client:n})}(e,u)}}}},Hn=function(e){var t=e.scrollDroppable,r=e.scrollWindow,n=e.move,i=function(e){var t=e.scrollWindow,r=e.scrollDroppable,n=Kr(t),i=Kr(r),o=null,a=function(e){o||s(!1);var t=o,r=t.shouldUseTimeDampening,a=t.dragStartTime;Wn({state:e,scrollWindow:n,scrollDroppable:i,dragStartTime:a,shouldUseTimeDampening:r})};return{start:function(e){o&&s(!1);var t=Date.now(),r=!1,n=function(){r=!0};Wn({state:e,dragStartTime:0,shouldUseTimeDampening:!1,scrollWindow:n,scrollDroppable:n}),o={dragStartTime:t,shouldUseTimeDampening:r},r&&a(e)},stop:function(){o&&(n.cancel(),i.cancel(),o=null)},scroll:a}}({scrollWindow:r,scrollDroppable:t}),o=Un({move:n,scrollWindow:r,scrollDroppable:t});return{scroll:function(e){"DRAGGING"===e.phase&&("FLUID"!==e.movementMode?e.scrollJumpRequest&&o(e):i.scroll(e))},start:i.start,stop:i.stop}},qn={base:hn="data-rbd-drag-handle",draggableId:hn+"-draggable-id",contextId:hn+"-context-id"},Vn=function(){var e="data-rbd-draggable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),zn=function(){var e="data-rbd-droppable";return{base:e,contextId:e+"-context-id",id:e+"-id"}}(),$n={contextId:"data-rbd-scroll-container-context-id"},Yn=function(e,t){return e.map((function(e){var r=e.styles[t];return r?e.selector+" { "+r+" }":""})).join(" ")},Jn="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?t.useLayoutEffect:t.useEffect,Xn=function(){var e=document.querySelector("head");return e||s(!1),e},Kn=function(e){var t=document.createElement("style");return e&&t.setAttribute("nonce",e),t.type="text/css",t};function Qn(e,r){var n=Ge((function(){return function(e){var t,r,n,i=(t=e,function(e){return"["+e+'="'+t+'"]'}),o=(r="\n cursor: -webkit-grab;\n cursor: grab;\n ",{selector:i(qn.contextId),styles:{always:"\n -webkit-touch-callout: none;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n touch-action: manipulation;\n ",resting:r,dragging:"pointer-events: none;",dropAnimating:r}}),a=[(n="\n transition: "+Hr.outOfTheWay+";\n ",{selector:i(Vn.contextId),styles:{dragging:n,dropAnimating:n,userCancel:n}}),o,{selector:i(zn.contextId),styles:{always:"overflow-anchor: none;"}},{selector:"body",styles:{dragging:"\n cursor: grabbing;\n cursor: -webkit-grabbing;\n user-select: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n overflow-anchor: none;\n "}}];return{always:Yn(a,"always"),resting:Yn(a,"resting"),dragging:Yn(a,"dragging"),dropAnimating:Yn(a,"dropAnimating"),userCancel:Yn(a,"userCancel")}}(e)}),[e]),i=t.useRef(null),o=t.useRef(null),a=_e(ct((function(e){var t=o.current;t||s(!1),t.textContent=e})),[]),l=_e((function(e){var t=i.current;t||s(!1),t.textContent=e}),[]);Jn((function(){(i.current||o.current)&&s(!1);var t=Kn(r),u=Kn(r);return i.current=t,o.current=u,t.setAttribute("data-rbd-always",e),u.setAttribute("data-rbd-dynamic",e),Xn().appendChild(t),Xn().appendChild(u),l(n.always),a(n.resting),function(){var e=function(e){var t=e.current;t||s(!1),Xn().removeChild(t),e.current=null};e(i),e(o)}}),[r,l,a,n.always,n.resting,e]);var u=_e((function(){return a(n.dragging)}),[a,n.dragging]),c=_e((function(e){a("DROP"!==e?n.userCancel:n.dropAnimating)}),[a,n.dropAnimating,n.userCancel]),d=_e((function(){o.current&&a(n.resting)}),[a,n.resting]);return Ge((function(){return{dragging:u,dropping:c,resting:d}}),[u,c,d])}var Zn=function(e){return e&&e.ownerDocument?e.ownerDocument.defaultView:window};function ei(e){return e instanceof Zn(e).HTMLElement}function ti(e){var r=t.useRef({}),n=t.useRef(null),i=t.useRef(null),o=t.useRef(!1),a=_e((function(e,t){var n={id:e,focus:t};return r.current[e]=n,function(){var t=r.current;t[e]!==n&&delete t[e]}}),[]),l=_e((function(t){var r=function(e,t){var r="["+qn.contextId+'="'+e+'"]',n=ft(document.querySelectorAll(r));if(!n.length)return null;var i=pt(n,(function(e){return e.getAttribute(qn.draggableId)===t}));return i&&ei(i)?i:null}(e,t);r&&r!==document.activeElement&&r.focus()}),[e]),u=_e((function(e,t){n.current===e&&(n.current=t)}),[]),c=_e((function(){i.current||o.current&&(i.current=requestAnimationFrame((function(){i.current=null;var e=n.current;e&&l(e)})))}),[l]),s=_e((function(e){n.current=null;var t=document.activeElement;t&&t.getAttribute(qn.draggableId)===e&&(n.current=e)}),[]);return Jn((function(){return o.current=!0,function(){o.current=!1;var e=i.current;e&&cancelAnimationFrame(e)}}),[]),Ge((function(){return{register:a,tryRecordFocus:s,tryRestoreFocusRecorded:c,tryShiftRecord:u}}),[a,s,c,u])}function ri(){var e={draggables:{},droppables:{}},t=[];function r(e){t.length&&t.forEach((function(t){return t(e)}))}function n(t){return e.draggables[t]||null}function i(t){return e.droppables[t]||null}return{draggable:{register:function(t){e.draggables[t.descriptor.id]=t,r({type:"ADDITION",value:t})},update:function(t,r){var n=e.draggables[r.descriptor.id];n&&n.uniqueId===t.uniqueId&&(delete e.draggables[r.descriptor.id],e.draggables[t.descriptor.id]=t)},unregister:function(t){var i=t.descriptor.id,o=n(i);o&&t.uniqueId===o.uniqueId&&(delete e.draggables[i],r({type:"REMOVAL",value:t}))},getById:function(e){var t=n(e);return t||s(!1),t},findById:n,exists:function(e){return Boolean(n(e))},getAllByType:function(t){return st(e.draggables).filter((function(e){return e.descriptor.type===t}))}},droppable:{register:function(t){e.droppables[t.descriptor.id]=t},unregister:function(t){var r=i(t.descriptor.id);r&&t.uniqueId===r.uniqueId&&delete e.droppables[t.descriptor.id]},getById:function(e){var t=i(e);return t||s(!1),t},findById:i,exists:function(e){return Boolean(i(e))},getAllByType:function(t){return st(e.droppables).filter((function(e){return e.descriptor.type===t}))}},subscribe:function(e){return t.push(e),function(){var r=t.indexOf(e);-1!==r&&t.splice(r,1)}},clean:function(){e.draggables={},e.droppables={},t.length=0}}}var ni=n.createContext(null),ii=function(){var e=document.body;return e||s(!1),e},oi={position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)","clip-path":"inset(100%)"};var ai=0,li={separator:"::"};function ui(e,t){return void 0===t&&(t=li),Ge((function(){return""+e+t.separator+ai++}),[t.separator,e])}var ci=n.createContext(null);function si(e){var r=t.useRef(e);return t.useEffect((function(){r.current=e})),r}var di,pi=((di={})[13]=!0,di[9]=!0,di),fi=function(e){pi[e.keyCode]&&e.preventDefault()},gi=function(){var e="visibilitychange";return"undefined"==typeof document?e:pt([e,"ms"+e,"webkit"+e,"moz"+e,"o"+e],(function(e){return"on"+e in document}))||e}();var vi,mi={type:"IDLE"};function bi(e){var t=e.cancel,r=e.completed,n=e.getPhase,i=e.setPhase;return[{eventName:"mousemove",fn:function(e){var t=e.button,r=e.clientX,o=e.clientY;if(0===t){var a={x:r,y:o},l=n();if("DRAGGING"===l.type)return e.preventDefault(),void l.actions.move(a);"PENDING"!==l.type&&s(!1);var u=l.point;if(c=u,d=a,Math.abs(d.x-c.x)>=5||Math.abs(d.y-c.y)>=5){var c,d;e.preventDefault();var p=l.actions.fluidLift(a);i({type:"DRAGGING",actions:p})}}}},{eventName:"mouseup",fn:function(e){var i=n();"DRAGGING"===i.type?(e.preventDefault(),i.actions.drop({shouldBlockNextClick:!0}),r()):t()}},{eventName:"mousedown",fn:function(e){"DRAGGING"===n().type&&e.preventDefault(),t()}},{eventName:"keydown",fn:function(e){if("PENDING"!==n().type)return 27===e.keyCode?(e.preventDefault(),void t()):void fi(e);t()}},{eventName:"resize",fn:t},{eventName:"scroll",options:{passive:!0,capture:!1},fn:function(){"PENDING"===n().type&&t()}},{eventName:"webkitmouseforcedown",fn:function(e){var r=n();"IDLE"===r.type&&s(!1),r.actions.shouldRespectForcePress()?t():e.preventDefault()}},{eventName:gi,fn:t}]}function hi(e){var r=t.useRef(mi),n=t.useRef(a),i=Ge((function(){return{eventName:"mousedown",fn:function(t){if(!t.defaultPrevented&&0===t.button&&!(t.ctrlKey||t.metaKey||t.shiftKey||t.altKey)){var r=e.findClosestDraggableId(t);if(r){var i=e.tryGetLock(r,c,{sourceEvent:t});if(i){t.preventDefault();var o={x:t.clientX,y:t.clientY};n.current(),f(i,o)}}}}}}),[e]),o=Ge((function(){return{eventName:"webkitmouseforcewillbegin",fn:function(t){if(!t.defaultPrevented){var r=e.findClosestDraggableId(t);if(r){var n=e.findOptionsForDraggable(r);n&&(n.shouldRespectForcePress||e.canGetLock(r)&&t.preventDefault())}}}}}),[e]),l=_e((function(){n.current=u(window,[o,i],{passive:!1,capture:!0})}),[o,i]),c=_e((function(){"IDLE"!==r.current.type&&(r.current=mi,n.current(),l())}),[l]),d=_e((function(){var e=r.current;c(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[c]),p=_e((function(){var e=bi({cancel:d,completed:c,getPhase:function(){return r.current},setPhase:function(e){r.current=e}});n.current=u(window,e,{capture:!0,passive:!1})}),[d,c]),f=_e((function(e,t){"IDLE"!==r.current.type&&s(!1),r.current={type:"PENDING",point:t,actions:e},p()}),[p]);Jn((function(){return l(),function(){n.current()}}),[l])}function yi(){}var xi=((vi={})[34]=!0,vi[33]=!0,vi[36]=!0,vi[35]=!0,vi);function Ii(e,t){function r(){t(),e.cancel()}return[{eventName:"keydown",fn:function(n){return 27===n.keyCode?(n.preventDefault(),void r()):32===n.keyCode?(n.preventDefault(),t(),void e.drop()):40===n.keyCode?(n.preventDefault(),void e.moveDown()):38===n.keyCode?(n.preventDefault(),void e.moveUp()):39===n.keyCode?(n.preventDefault(),void e.moveRight()):37===n.keyCode?(n.preventDefault(),void e.moveLeft()):void(xi[n.keyCode]?n.preventDefault():fi(n))}},{eventName:"mousedown",fn:r},{eventName:"mouseup",fn:r},{eventName:"click",fn:r},{eventName:"touchstart",fn:r},{eventName:"resize",fn:r},{eventName:"wheel",fn:r,options:{passive:!0}},{eventName:gi,fn:r}]}function Di(e){var r=t.useRef(yi),n=Ge((function(){return{eventName:"keydown",fn:function(t){if(!t.defaultPrevented&&32===t.keyCode){var n=e.findClosestDraggableId(t);if(n){var o=e.tryGetLock(n,c,{sourceEvent:t});if(o){t.preventDefault();var a=!0,l=o.snapLift();r.current(),r.current=u(window,Ii(l,c),{capture:!0,passive:!1})}}}function c(){a||s(!1),a=!1,r.current(),i()}}}}),[e]),i=_e((function(){r.current=u(window,[n],{passive:!1,capture:!0})}),[n]);Jn((function(){return i(),function(){r.current()}}),[i])}var wi={type:"IDLE"};function Ei(e){var r=t.useRef(wi),n=t.useRef(a),i=_e((function(){return r.current}),[]),o=_e((function(e){r.current=e}),[]),l=Ge((function(){return{eventName:"touchstart",fn:function(t){if(!t.defaultPrevented){var r=e.findClosestDraggableId(t);if(r){var i=e.tryGetLock(r,d,{sourceEvent:t});if(i){var o=t.touches[0],a={x:o.clientX,y:o.clientY};n.current(),v(i,a)}}}}}}),[e]),c=_e((function(){n.current=u(window,[l],{capture:!0,passive:!1})}),[l]),d=_e((function(){var e=r.current;"IDLE"!==e.type&&("PENDING"===e.type&&clearTimeout(e.longPressTimerId),o(wi),n.current(),c())}),[c,o]),p=_e((function(){var e=r.current;d(),"DRAGGING"===e.type&&e.actions.cancel({shouldBlockNextClick:!0}),"PENDING"===e.type&&e.actions.abort()}),[d]),f=_e((function(){var e={capture:!0,passive:!1},t={cancel:p,completed:d,getPhase:i},r=u(window,function(e){var t=e.cancel,r=e.completed,n=e.getPhase;return[{eventName:"touchmove",options:{capture:!1},fn:function(e){var r=n();if("DRAGGING"===r.type){r.hasMoved=!0;var i=e.touches[0],o={x:i.clientX,y:i.clientY};e.preventDefault(),r.actions.move(o)}else t()}},{eventName:"touchend",fn:function(e){var i=n();"DRAGGING"===i.type?(e.preventDefault(),i.actions.drop({shouldBlockNextClick:!0}),r()):t()}},{eventName:"touchcancel",fn:function(e){"DRAGGING"===n().type?(e.preventDefault(),t()):t()}},{eventName:"touchforcechange",fn:function(e){var r=n();"IDLE"===r.type&&s(!1);var i=e.touches[0];if(i&&i.force>=.15){var o=r.actions.shouldRespectForcePress();if("PENDING"!==r.type)return o?r.hasMoved?void e.preventDefault():void t():void e.preventDefault();o&&t()}}},{eventName:gi,fn:t}]}(t),e),o=u(window,function(e){var t=e.cancel,r=e.getPhase;return[{eventName:"orientationchange",fn:t},{eventName:"resize",fn:t},{eventName:"contextmenu",fn:function(e){e.preventDefault()}},{eventName:"keydown",fn:function(e){"DRAGGING"===r().type?(27===e.keyCode&&e.preventDefault(),t()):t()}},{eventName:gi,fn:t}]}(t),e);n.current=function(){r(),o()}}),[p,i,d]),g=_e((function(){var e=i();"PENDING"!==e.type&&s(!1);var t=e.actions.fluidLift(e.point);o({type:"DRAGGING",actions:t,hasMoved:!1})}),[i,o]),v=_e((function(e,t){"IDLE"!==i().type&&s(!1);var r=setTimeout(g,120);o({type:"PENDING",point:t,actions:e,longPressTimerId:r}),f()}),[f,i,o,g]);Jn((function(){return c(),function(){n.current();var e=i();"PENDING"===e.type&&(clearTimeout(e.longPressTimerId),o(wi))}}),[i,c,o]),Jn((function(){return u(window,[{eventName:"touchmove",fn:function(){},options:{capture:!1,passive:!1}}])}),[])}var Ci={input:!0,button:!0,textarea:!0,select:!0,option:!0,optgroup:!0,video:!0,audio:!0};function Si(e,t){var r=t.target;return!!ei(r)&&function e(t,r){if(null==r)return!1;if(Boolean(Ci[r.tagName.toLowerCase()]))return!0;var n=r.getAttribute("contenteditable");return"true"===n||""===n||r!==t&&e(t,r.parentElement)}(e,r)}var Pi=function(e){return $e(e.getBoundingClientRect()).center};var Oi="undefined"==typeof document?"matches":pt(["matches","msMatchesSelector","webkitMatchesSelector"],(function(e){return e in Element.prototype}))||"matches";function Ai(e,t){return e.closest?e.closest(t):function e(t,r){return null==t?null:t[Oi](r)?t:e(t.parentElement,r)}(e,t)}function Ri(e,t){var r,n=t.target;if(!((r=n)instanceof Zn(r).Element))return null;var i=Ai(n,function(e){return"["+qn.contextId+'="'+e+'"]'}(e));return i&&ei(i)?i:null}function Ni(e){e.preventDefault()}function Bi(e){var t=e.expected,r=e.phase,n=e.isLockActive;e.shouldWarn;return!!n()&&t===r}function Ti(e){var t=e.lockAPI,r=e.store,n=e.registry,i=e.draggableId;if(t.isClaimed())return!1;var o=n.draggable.findById(i);return!!o&&(!!o.options.isEnabled&&!!xn(r.getState(),i))}function Mi(e){var t=e.lockAPI,r=e.contextId,n=e.store,i=e.registry,o=e.draggableId,c=e.forceSensorStop,d=e.sourceEvent;if(!Ti({lockAPI:t,store:n,registry:i,draggableId:o}))return null;var p=i.draggable.getById(o),f=function(e,t){var r="["+Vn.contextId+'="'+e+'"]',n=pt(ft(document.querySelectorAll(r)),(function(e){return e.getAttribute(Vn.id)===t}));return n&&ei(n)?n:null}(r,p.descriptor.id);if(!f)return null;if(d&&!p.options.canDragInteractiveElements&&Si(f,d))return null;var g=t.claim(c||a),v="PRE_DRAG";function m(){return p.options.shouldRespectForcePress}function b(){return t.isActive(g)}var h=function(e,t){Bi({expected:e,phase:v,isLockActive:b,shouldWarn:!0})&&n.dispatch(t())}.bind(null,"DRAGGING");function y(e){function r(){t.release(),v="COMPLETED"}function i(t,i){if(void 0===i&&(i={shouldBlockNextClick:!1}),e.cleanup(),i.shouldBlockNextClick){var o=u(window,[{eventName:"click",fn:Ni,options:{once:!0,passive:!1,capture:!0}}]);setTimeout(o)}r(),n.dispatch(_r({reason:t}))}return"PRE_DRAG"!==v&&(r(),"PRE_DRAG"!==v&&s(!1)),n.dispatch(function(e){return{type:"LIFT",payload:e}}(e.liftActionArgs)),v="DRAGGING",l({isActive:function(){return Bi({expected:"DRAGGING",phase:v,isLockActive:b,shouldWarn:!1})},shouldRespectForcePress:m,drop:function(e){return i("DROP",e)},cancel:function(e){return i("CANCEL",e)}},e.actions)}return{isActive:function(){return Bi({expected:"PRE_DRAG",phase:v,isLockActive:b,shouldWarn:!1})},shouldRespectForcePress:m,fluidLift:function(e){var t=Kr((function(e){h((function(){return Nr({client:e})}))}));return l({},y({liftActionArgs:{id:o,clientSelection:e,movementMode:"FLUID"},cleanup:function(){return t.cancel()},actions:{move:t}}),{move:t})},snapLift:function(){var e={moveUp:function(){return h(Br)},moveRight:function(){return h(Mr)},moveDown:function(){return h(Tr)},moveLeft:function(){return h(Lr)}};return y({liftActionArgs:{id:o,clientSelection:Pi(f),movementMode:"SNAP"},cleanup:a,actions:e})},abort:function(){Bi({expected:"PRE_DRAG",phase:v,isLockActive:b,shouldWarn:!0})&&t.release()}}}var Li=[hi,Di,Ei];function Gi(e){var r=e.contextId,n=e.store,i=e.registry,o=e.customSensors,a=e.enableDefaultSensors,l=[].concat(a?Li:[],o||[]),u=t.useState((function(){return function(){var e=null;function t(){e||s(!1),e=null}return{isClaimed:function(){return Boolean(e)},isActive:function(t){return t===e},claim:function(t){e&&s(!1);var r={abandon:t};return e=r,r},release:t,tryAbandon:function(){e&&(e.abandon(),t())}}}()}))[0],c=_e((function(e,t){e.isDragging&&!t.isDragging&&u.tryAbandon()}),[u]);Jn((function(){var e=n.getState();return n.subscribe((function(){var t=n.getState();c(e,t),e=t}))}),[u,n,c]),Jn((function(){return u.tryAbandon}),[u.tryAbandon]);for(var d=_e((function(e){return Ti({lockAPI:u,registry:i,store:n,draggableId:e})}),[u,i,n]),p=_e((function(e,t,o){return Mi({lockAPI:u,registry:i,contextId:r,store:n,draggableId:e,forceSensorStop:t,sourceEvent:o&&o.sourceEvent?o.sourceEvent:null})}),[r,u,i,n]),f=_e((function(e){return function(e,t){var r=Ri(e,t);return r?r.getAttribute(qn.draggableId):null}(r,e)}),[r]),g=_e((function(e){var t=i.draggable.findById(e);return t?t.options:null}),[i.draggable]),v=_e((function(){u.isClaimed()&&(u.tryAbandon(),"IDLE"!==n.getState().phase&&n.dispatch({type:"FLUSH",payload:null}))}),[u,n]),m=_e(u.isClaimed,[u]),b=Ge((function(){return{canGetLock:d,tryGetLock:p,findClosestDraggableId:f,findOptionsForDraggable:g,tryReleaseLock:v,isLockClaimed:m}}),[d,p,f,g,v,m]),h=0;h", + "keywords": [ + "drag and drop", + "dnd", + "sortable", + "reorder", + "reorderable", + "react", + "react.js", + "natural", + "beautiful", + "accessible" + ], + "repository": { + "type": "git", + "url": "https://github.com/atlassian/react-beautiful-dnd.git" + }, + "bugs": { + "url": "https://github.com/atlassian/react-beautiful-dnd/issues" + }, + "main": "dist/react-beautiful-dnd.cjs.js", + "module": "dist/react-beautiful-dnd.esm.js", + "sideEffects": false, + "files": [ + "/dist", + "/src" + ], + "config": { + "prettier_target": "*.{js,jsx,md,json} src/**/*.{js,jsx,md,json} test/**/*.{js,jsx,md,json} docs/**/*.{js,jsx,md,json} stories/**/*.{js,jsx,md,json} cypress/**/*.{js,jsx,md,json} csp-server/**/*.{js,jsx,md,json}" + }, + "scripts": { + "test:accessibility": "lighthouse http://localhost:9002/iframe.html?id=single-vertical-list--basic --chrome-flags='--headless' --output=json --output=html --output-path=./test-reports/lighthouse/a11y.json && node a11y-audit-parse.js", + "test": "jest --config ./jest.config.js", + "test:ci": "jest test --maxWorkers=2", + "test:browser": "cypress open", + "test:browser:ci": "cypress run", + "test:coverage": "yarn test --coverage --coveragePathIgnorePatterns=/debug", + "validate": "yarn prettier:check && yarn lint:eslint && yarn lint:css && yarn typecheck", + "prettier:check": "yarn prettier --debug-check $npm_package_config_prettier_target", + "prettier:write": "yarn prettier --write $npm_package_config_prettier_target", + "lint:eslint": "yarn eslint \"./**/*.{js,jsx}\"", + "lint:css": "stylelint \"stories/**/*.{js,jsx}\"", + "typecheck": "flow check --max-warnings=0", + "bundle-size:check": "cross-env SNAPSHOT=match yarn bundle-size:update", + "bundle-size:update": "yarn build:clean && yarn build:dist && yarn build:clean", + "build": "yarn build:clean && yarn build:dist && yarn build:flow", + "build:clean": "rimraf dist", + "build:dist": "rollup -c", + "build:flow": "echo \"// @flow\n\nexport * from '../src';\" > dist/react-beautiful-dnd.cjs.js.flow", + "storybook": "start-storybook -p 9002", + "build-storybook": "build-storybook -c .storybook -o site", + "prepublishOnly": "yarn build" + }, + "dependencies": { + "@babel/runtime": "^7.9.2", + "css-box-model": "^1.2.0", + "memoize-one": "^5.1.1", + "raf-schd": "^4.0.2", + "react-redux": "^7.2.0", + "redux": "^4.0.4", + "use-memo-one": "^1.1.1" + }, + "devDependencies": { + "@atlaskit/css-reset": "^5.0.10", + "@atlaskit/theme": "^9.5.2", + "@babel/core": "^7.9.0", + "@babel/plugin-proposal-class-properties": "^7.8.3", + "@babel/plugin-transform-modules-commonjs": "^7.9.0", + "@babel/plugin-transform-object-assign": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.9.0", + "@babel/preset-env": "^7.9.5", + "@babel/preset-flow": "^7.9.0", + "@babel/preset-react": "^7.9.4", + "@emotion/babel-preset-css-prop": "^10.0.27", + "@emotion/core": "^10.0.28", + "@emotion/styled": "^10.0.27", + "@storybook/addon-storysource": "5.3.18", + "@storybook/react": "^5.3.18", + "@storybook/theming": "^5.3.18", + "@testing-library/react": "^10.0.2", + "babel-core": "^7.0.0-bridge.0", + "babel-eslint": "^10.1.0", + "babel-jest": "^25.3.0", + "babel-loader": "^8.1.0", + "babel-plugin-dev-expression": "^0.2.2", + "babel-plugin-emotion": "^10.0.33", + "cross-env": "^7.0.2", + "cypress": "^4.4.0", + "emotion-theming": "^10.0.27", + "enzyme": "^3.11.0", + "enzyme-adapter-react-16": "^1.15.2", + "eslint": "6.8.0", + "eslint-config-airbnb": "^18.1.0", + "eslint-config-prettier": "^6.10.1", + "eslint-plugin-cypress": "^2.10.3", + "eslint-plugin-emotion": "^10.0.27", + "eslint-plugin-es5": "^1.5.0", + "eslint-plugin-flowtype": "^4.7.0", + "eslint-plugin-import": "^2.20.2", + "eslint-plugin-jest": "^23.8.2", + "eslint-plugin-jsx-a11y": "^6.2.1", + "eslint-plugin-prettier": "^3.1.3", + "eslint-plugin-react": "^7.19.0", + "eslint-plugin-react-hooks": "^3.0.0", + "flow-bin": "0.110.1", + "fs-extra": "^9.0.0", + "globby": "^11.0.0", + "jest": "^25.3.0", + "jest-axe": "^3.4.0", + "jest-junit": "^10.0.0", + "jest-watch-typeahead": "^0.5.0", + "lighthouse": "^5.6.0", + "markdown-it": "^10.0.0", + "prettier": "^2.0.4", + "raf-stub": "^3.0.0", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "react-test-renderer": "^16.13.1", + "react-virtualized": "^9.21.2", + "react-window": "^1.8.5", + "require-from-string": "^2.0.2", + "rimraf": "^3.0.2", + "rollup": "^2.6.1", + "rollup-plugin-babel": "^4.4.0", + "rollup-plugin-commonjs": "^10.1.0", + "rollup-plugin-json": "^4.0.0", + "rollup-plugin-node-resolve": "^5.1.0", + "rollup-plugin-replace": "^2.2.0", + "rollup-plugin-size-snapshot": "^0.11.0", + "rollup-plugin-strip": "^1.2.2", + "rollup-plugin-terser": "^5.3.0", + "storybook-addon-performance": "0.9.0", + "styled-components": "5.1.0", + "stylelint": "^13.3.2", + "stylelint-config-prettier": "^8.0.1", + "stylelint-config-recommended": "^3.0.0", + "stylelint-config-standard": "^20.0.0", + "stylelint-config-styled-components": "^0.1.1", + "stylelint-processor-styled-components": "^1.10.0", + "wait-port": "^0.2.7", + "webpack": "^4.42.1" + }, + "peerDependencies": { + "react": "^16.8.5 || ^17.0.0", + "react-dom": "^16.8.5 || ^17.0.0" + }, + "license": "Apache-2.0", + "jest-junit": { + "output": "test-reports/junit/js-test-results.xml" + } +} diff --git a/node_modules/react-beautiful-dnd/src/animation.js b/node_modules/react-beautiful-dnd/src/animation.js new file mode 100644 index 00000000..c1b5bea6 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/animation.js @@ -0,0 +1,75 @@ +// @flow +import type { Position } from 'css-box-model'; +import { isEqual, origin } from './state/position'; + +export const curves = { + outOfTheWay: 'cubic-bezier(0.2, 0, 0, 1)', + drop: 'cubic-bezier(.2,1,.1,1)', +}; + +export const combine = { + opacity: { + // while dropping: fade out totally + drop: 0, + // while dragging: fade out partially + combining: 0.7, + }, + scale: { + drop: 0.75, + }, +}; + +export const timings = { + outOfTheWay: 0.2, + // greater than the out of the way time + // so that when the drop ends everything will + // have to be out of the way + minDropTime: 0.33, + maxDropTime: 0.55, +}; + +// slow timings +// uncomment to use +// export const timings = { +// outOfTheWay: 2, +// // greater than the out of the way time +// // so that when the drop ends everything will +// // have to be out of the way +// minDropTime: 3, +// maxDropTime: 4, +// }; + +const outOfTheWayTiming: string = `${timings.outOfTheWay}s ${curves.outOfTheWay}`; +export const placeholderTransitionDelayTime: number = 0.1; + +export const transitions = { + fluid: `opacity ${outOfTheWayTiming}`, + snap: `transform ${outOfTheWayTiming}, opacity ${outOfTheWayTiming}`, + drop: (duration: number): string => { + const timing: string = `${duration}s ${curves.drop}`; + return `transform ${timing}, opacity ${timing}`; + }, + outOfTheWay: `transform ${outOfTheWayTiming}`, + placeholder: `height ${outOfTheWayTiming}, width ${outOfTheWayTiming}, margin ${outOfTheWayTiming}`, +}; + +const moveTo = (offset: Position): ?string => + isEqual(offset, origin) ? null : `translate(${offset.x}px, ${offset.y}px)`; + +export const transforms = { + moveTo, + drop: (offset: Position, isCombining: boolean) => { + const translate: ?string = moveTo(offset); + if (!translate) { + return null; + } + + // only transforming the translate + if (!isCombining) { + return translate; + } + + // when dropping while combining we also update the scale + return `${translate} scale(${combine.scale.drop})`; + }, +}; diff --git a/node_modules/react-beautiful-dnd/src/debug/middleware/action-timing-average.js b/node_modules/react-beautiful-dnd/src/debug/middleware/action-timing-average.js new file mode 100644 index 00000000..681970d3 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/debug/middleware/action-timing-average.js @@ -0,0 +1,52 @@ +// @flow +/* eslint-disable no-console */ +import type { Action } from '../../state/store-types'; + +type Bucket = { + [key: string]: number[], +}; + +const average = (values: number[]): number => { + const sum: number = values.reduce( + (previous: number, current: number) => previous + current, + 0, + ); + return sum / values.length; +}; + +export default (groupSize: number) => { + console.log('Starting average action timer middleware'); + console.log(`Will take an average every ${groupSize} actions`); + const bucket: Bucket = {}; + + return () => (next: (Action) => mixed) => (action: Action): any => { + const start: number = performance.now(); + + const result: mixed = next(action); + + const end: number = performance.now(); + + const duration: number = end - start; + + if (!bucket[action.type]) { + bucket[action.type] = [duration]; + return result; + } + + bucket[action.type].push(duration); + + if (bucket[action.type].length < groupSize) { + return result; + } + + console.warn( + `Average time for ${action.type}`, + average(bucket[action.type]), + ); + + // reset + bucket[action.type] = []; + + return result; + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/debug/middleware/action-timing.js b/node_modules/react-beautiful-dnd/src/debug/middleware/action-timing.js new file mode 100644 index 00000000..efc8efed --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/debug/middleware/action-timing.js @@ -0,0 +1,16 @@ +// @flow +/* eslint-disable no-console */ +import * as timings from '../timings'; +import type { Action } from '../../state/store-types'; + +export default () => (next: (Action) => mixed) => (action: Action): any => { + timings.forceEnable(); + const key = `redux action: ${action.type}`; + timings.start(key); + + const result: mixed = next(action); + + timings.finish(key); + + return result; +}; diff --git a/node_modules/react-beautiful-dnd/src/debug/middleware/log.js b/node_modules/react-beautiful-dnd/src/debug/middleware/log.js new file mode 100644 index 00000000..b3988038 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/debug/middleware/log.js @@ -0,0 +1,26 @@ +// @flow +/* eslint-disable no-console */ +import type { Action, Store } from '../../state/store-types'; + +type Mode = 'verbose' | 'light'; + +export default (mode?: Mode = 'verbose') => (store: Store) => ( + next: (Action) => mixed, +) => (action: Action): any => { + if (mode === 'light') { + console.log('🏃‍ Action:', action.type); + return next(action); + } + + console.group(`action: ${action.type}`); + console.log('action payload', action.payload); + + console.log('state before', store.getState()); + + const result: mixed = next(action); + + console.log('state after', store.getState()); + console.groupEnd(); + + return result; +}; diff --git a/node_modules/react-beautiful-dnd/src/debug/middleware/user-timing.js b/node_modules/react-beautiful-dnd/src/debug/middleware/user-timing.js new file mode 100644 index 00000000..1a8b9342 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/debug/middleware/user-timing.js @@ -0,0 +1,16 @@ +// @flow +import type { Action } from '../../state/store-types'; + +export default () => (next: (Action) => mixed) => (action: Action): any => { + const title: string = `👾 redux (action): ${action.type}`; + const startMark: string = `${action.type}:start`; + const endMark: string = `${action.type}:end`; + + performance.mark(startMark); + const result: mixed = next(action); + performance.mark(endMark); + + performance.measure(title, startMark, endMark); + + return result; +}; diff --git a/node_modules/react-beautiful-dnd/src/debug/timings.js b/node_modules/react-beautiful-dnd/src/debug/timings.js new file mode 100644 index 00000000..90bdce9b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/debug/timings.js @@ -0,0 +1,86 @@ +// @flow +type Records = { + [key: string]: number, +}; + +const records: Records = {}; +let isEnabled: boolean = false; + +const isTimingsEnabled = (): boolean => isEnabled; + +export const forceEnable = () => { + isEnabled = true; +}; + +// Debug: uncomment to enable +// forceEnable(); + +export const start = (key: string) => { + // we want to strip all the code out for production builds + // draw back: can only do timings in dev env (which seems to be fine for now) + if (process.env.NODE_ENV !== 'production') { + if (!isTimingsEnabled()) { + return; + } + const now: number = performance.now(); + + records[key] = now; + } +}; + +type Style = {| + textColor: string, + symbol: string, +|}; + +export const finish = (key: string) => { + if (process.env.NODE_ENV !== 'production') { + if (!isTimingsEnabled()) { + return; + } + const now: number = performance.now(); + + const previous: ?number = records[key]; + + if (!previous) { + // eslint-disable-next-line no-console + console.warn('cannot finish timing as no previous time found', key); + return; + } + + const result: number = now - previous; + const rounded: string = result.toFixed(2); + + const style: Style = (() => { + if (result < 12) { + return { + textColor: 'green', + symbol: '✅', + }; + } + if (result < 40) { + return { + textColor: 'orange', + symbol: '⚠️', + }; + } + return { + textColor: 'red', + symbol: '❌', + }; + })(); + + // eslint-disable-next-line no-console + console.log( + `${style.symbol} %cTiming %c${rounded} %cms %c${key}`, + // title + 'color: blue; font-weight: bold;', + // result + `color: ${style.textColor}; font-size: 1.1em;`, + // ms + 'color: grey;', + // key + 'color: purple; font-weight: bold;', + ); + } +}; diff --git a/node_modules/react-beautiful-dnd/src/dev-warning.js b/node_modules/react-beautiful-dnd/src/dev-warning.js new file mode 100644 index 00000000..dcdb7a78 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/dev-warning.js @@ -0,0 +1,50 @@ +// @flow + +const isProduction: boolean = process.env.NODE_ENV === 'production'; + +// not replacing newlines (which \s does) +const spacesAndTabs: RegExp = /[ \t]{2,}/g; +const lineStartWithSpaces: RegExp = /^[ \t]*/gm; + +// using .trim() to clear the any newlines before the first text and after last text +const clean = (value: string): string => + value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim(); + +const getDevMessage = (message: string): string => + clean(` + %creact-beautiful-dnd + + %c${clean(message)} + + %c👷‍ This is a development only message. It will be removed in production builds. +`); + +export const getFormattedMessage = (message: string): string[] => [ + getDevMessage(message), + // title (green400) + 'color: #00C584; font-size: 1.2em; font-weight: bold;', + // message + 'line-height: 1.5', + // footer (purple300) + 'color: #723874;', +]; + +const isDisabledFlag: string = '__react-beautiful-dnd-disable-dev-warnings'; + +export function log(type: 'error' | 'warn', message: string) { + // no warnings in production + if (isProduction) { + return; + } + + // manual opt out of warnings + if (typeof window !== 'undefined' && window[isDisabledFlag]) { + return; + } + + // eslint-disable-next-line no-console + console[type](...getFormattedMessage(message)); +} + +export const warning = log.bind(null, 'warn'); +export const error = log.bind(null, 'error'); diff --git a/node_modules/react-beautiful-dnd/src/empty.js b/node_modules/react-beautiful-dnd/src/empty.js new file mode 100644 index 00000000..7c6e177f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/empty.js @@ -0,0 +1,6 @@ +// @flow +export function noop(): void {} + +export function identity(value: T): T { + return value; +} diff --git a/node_modules/react-beautiful-dnd/src/index.js b/node_modules/react-beautiful-dnd/src/index.js new file mode 100644 index 00000000..98302ac1 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/index.js @@ -0,0 +1,67 @@ +// @flow + +// Components + +export { default as DragDropContext } from './view/drag-drop-context'; +export { default as Droppable } from './view/droppable'; +export { default as Draggable } from './view/draggable'; + +// Default sensors + +export { + useMouseSensor, + useTouchSensor, + useKeyboardSensor, +} from './view/use-sensor-marshal'; + +// Utils + +export { resetServerContext } from './view/drag-drop-context'; + +// Public flow types + +export type { + Id, + TypeId, + DraggableId, + DroppableId, + DraggableRubric, + MovementMode, + BeforeCapture, + DragStart, + DragUpdate, + DropResult, + Direction, + ResponderProvided, + Announce, + DraggableLocation, + OnBeforeCaptureResponder, + OnBeforeDragStartResponder, + OnDragStartResponder, + OnDragUpdateResponder, + OnDragEndResponder, + SensorAPI, + Sensor, + TryGetLock, + TryGetLockOptions, +} from './types'; + +// Droppable types +export type { + Provided as DroppableProvided, + StateSnapshot as DroppableStateSnapshot, + DroppableProps, +} from './view/droppable/droppable-types'; + +// Draggable types +export type { + Provided as DraggableProvided, + StateSnapshot as DraggableStateSnapshot, + DragHandleProps, + DropAnimation, + DraggableProps, + DraggableStyle, + DraggingStyle, + NotDraggingStyle, + ChildrenFn as DraggableChildrenFn, +} from './view/draggable/draggable-types'; diff --git a/node_modules/react-beautiful-dnd/src/invariant.js b/node_modules/react-beautiful-dnd/src/invariant.js new file mode 100644 index 00000000..511cca8c --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/invariant.js @@ -0,0 +1,33 @@ +// @flow +/* eslint-disable no-restricted-syntax */ +const isProduction: boolean = process.env.NODE_ENV === 'production'; +const prefix: string = 'Invariant failed'; + +// Want to use this: +// export class RbdInvariant extends Error { } +// But it causes babel to bring in a lot of code + +export function RbdInvariant(message: string) { + this.message = message; +} +// $FlowFixMe +RbdInvariant.prototype.toString = function toString() { + return this.message; +}; + +// A copy-paste of tiny-invariant but with a custom error type +// Throw an error if the condition fails +export function invariant(condition: mixed, message?: string) { + if (condition) { + return; + } + + if (isProduction) { + // In production we strip the message but still throw + throw new RbdInvariant(prefix); + } else { + // When not in production we allow the message to pass through + // *This block will be removed in production builds* + throw new RbdInvariant(`${prefix}: ${message || ''}`); + } +} diff --git a/node_modules/react-beautiful-dnd/src/native-with-fallback.js b/node_modules/react-beautiful-dnd/src/native-with-fallback.js new file mode 100644 index 00000000..baf83f37 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/native-with-fallback.js @@ -0,0 +1,69 @@ +// @flow +/* eslint-disable es5/no-es6-methods */ +/* eslint-disable es5/no-es6-static-methods */ +/* eslint-disable no-restricted-globals */ + +type Map = { + [key: string]: T, +}; + +export function isInteger(value: mixed): boolean { + if (Number.isInteger) { + return Number.isInteger(value); + } + return ( + typeof value === 'number' && isFinite(value) && Math.floor(value) === value + ); +} + +// Using this helper to ensure there are correct flow types +// https://github.com/facebook/flow/issues/2221 +export function values(map: Map): T[] { + if (Object.values) { + // $FlowFixMe - Object.values currently does not have good flow support + return Object.values(map); + } + + return Object.keys(map).map((key) => map[key]); +} + +// Could also extend to pass index and list +type PredicateFn = (value: T) => boolean; + +// TODO: swap order +export function findIndex( + list: Array, + predicate: PredicateFn, +): number { + if (list.findIndex) { + return list.findIndex(predicate); + } + + // Using a for loop so that we can exit early + for (let i = 0; i < list.length; i++) { + if (predicate(list[i])) { + return i; + } + } + // Array.prototype.find returns -1 when nothing is found + return -1; +} + +export function find(list: Array, predicate: PredicateFn): ?T { + if (list.find) { + return list.find(predicate); + } + const index: number = findIndex(list, predicate); + if (index !== -1) { + return list[index]; + } + // Array.prototype.find returns undefined when nothing is found + return undefined; +} + +// Using this rather than Array.from as Array.from adds 2kb to the gzip +// document.querySelector actually returns Element[], but flow thinks it is HTMLElement[] +// So we downcast the result to Element[] +export function toArray(list: NodeList): Element[] { + return Array.prototype.slice.call(list); +} diff --git a/node_modules/react-beautiful-dnd/src/screen-reader-message-preset.js b/node_modules/react-beautiful-dnd/src/screen-reader-message-preset.js new file mode 100644 index 00000000..4f77eafd --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/screen-reader-message-preset.js @@ -0,0 +1,134 @@ +// @flow +import type { + DraggableId, + DragStart, + DragUpdate, + DropResult, + DraggableLocation, + Combine, +} from './types'; + +export type MessagePreset = {| + dragHandleUsageInstructions: string, + onDragStart: (start: DragStart) => string, + onDragUpdate: (update: DragUpdate) => string, + onDragEnd: (result: DropResult) => string, +|}; + +const dragHandleUsageInstructions: string = ` + Press space bar to start a drag. + When dragging you can use the arrow keys to move the item around and escape to cancel. + Some screen readers may require you to be in focus mode or to use your pass through key +`; + +const position = (index: number): number => index + 1; + +// We cannot list what index the Droppable is in automatically as we are not sure how +// the Droppable's have been configured +const onDragStart = (start: DragStart): string => ` + You have lifted an item in position ${position(start.source.index)} +`; + +const withLocation = ( + source: DraggableLocation, + destination: DraggableLocation, +) => { + const isInHomeList: boolean = source.droppableId === destination.droppableId; + + const startPosition: number = position(source.index); + const endPosition: number = position(destination.index); + + if (isInHomeList) { + return ` + You have moved the item from position ${startPosition} + to position ${endPosition} + `; + } + + return ` + You have moved the item from position ${startPosition} + in list ${source.droppableId} + to list ${destination.droppableId} + in position ${endPosition} + `; +}; + +const withCombine = ( + id: DraggableId, + source: DraggableLocation, + combine: Combine, +): string => { + const inHomeList: boolean = source.droppableId === combine.droppableId; + + if (inHomeList) { + return ` + The item ${id} + has been combined with ${combine.draggableId}`; + } + + return ` + The item ${id} + in list ${source.droppableId} + has been combined with ${combine.draggableId} + in list ${combine.droppableId} + `; +}; + +const onDragUpdate = (update: DragUpdate): string => { + const location: ?DraggableLocation = update.destination; + if (location) { + return withLocation(update.source, location); + } + + const combine: ?Combine = update.combine; + if (combine) { + return withCombine(update.draggableId, update.source, combine); + } + + return 'You are over an area that cannot be dropped on'; +}; + +const returnedToStart = (source: DraggableLocation): string => ` + The item has returned to its starting position + of ${position(source.index)} +`; + +const onDragEnd = (result: DropResult): string => { + if (result.reason === 'CANCEL') { + return ` + Movement cancelled. + ${returnedToStart(result.source)} + `; + } + + const location: ?DraggableLocation = result.destination; + const combine: ?Combine = result.combine; + + if (location) { + return ` + You have dropped the item. + ${withLocation(result.source, location)} + `; + } + + if (combine) { + return ` + You have dropped the item. + ${withCombine(result.draggableId, result.source, combine)} + `; + } + + return ` + The item has been dropped while not over a drop area. + ${returnedToStart(result.source)} + `; +}; + +const preset: MessagePreset = { + dragHandleUsageInstructions, + onDragStart, + onDragUpdate, + onDragEnd, +}; + +export default preset; diff --git a/node_modules/react-beautiful-dnd/src/state/action-creators.js b/node_modules/react-beautiful-dnd/src/state/action-creators.js new file mode 100644 index 00000000..1131e425 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/action-creators.js @@ -0,0 +1,328 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + Critical, + DraggableId, + DroppableId, + CompletedDrag, + MovementMode, + Viewport, + DimensionMap, + DropReason, + Published, +} from '../types'; + +export type BeforeInitialCaptureArgs = {| + draggableId: DraggableId, + movementMode: MovementMode, +|}; + +export type BeforeInitialCaptureAction = {| + type: 'BEFORE_INITIAL_CAPTURE', + payload: BeforeInitialCaptureArgs, +|}; + +export const beforeInitialCapture = ( + args: BeforeInitialCaptureArgs, +): BeforeInitialCaptureAction => ({ + type: 'BEFORE_INITIAL_CAPTURE', + payload: args, +}); + +export type LiftArgs = {| + // lifting with DraggableId rather than descriptor + // as the descriptor might change after a drop is flushed + id: DraggableId, + clientSelection: Position, + movementMode: MovementMode, +|}; + +export type LiftAction = {| + type: 'LIFT', + payload: LiftArgs, +|}; + +export const lift = (args: LiftArgs): LiftAction => ({ + type: 'LIFT', + payload: args, +}); + +export type InitialPublishArgs = {| + critical: Critical, + dimensions: DimensionMap, + clientSelection: Position, + viewport: Viewport, + movementMode: MovementMode, +|}; + +export type InitialPublishAction = {| + type: 'INITIAL_PUBLISH', + payload: InitialPublishArgs, +|}; + +export const initialPublish = ( + args: InitialPublishArgs, +): InitialPublishAction => ({ + type: 'INITIAL_PUBLISH', + payload: args, +}); + +export type WhileDraggingPublishAction = {| + type: 'PUBLISH_WHILE_DRAGGING', + payload: Published, +|}; + +export const publishWhileDragging = ( + args: Published, +): WhileDraggingPublishAction => ({ + type: 'PUBLISH_WHILE_DRAGGING', + payload: args, +}); + +export type CollectionStartingAction = {| + type: 'COLLECTION_STARTING', + payload: null, +|}; + +export const collectionStarting = (): CollectionStartingAction => ({ + type: 'COLLECTION_STARTING', + payload: null, +}); + +export type UpdateDroppableScrollArgs = { + id: DroppableId, + newScroll: Position, +}; + +export type UpdateDroppableScrollAction = {| + type: 'UPDATE_DROPPABLE_SCROLL', + payload: UpdateDroppableScrollArgs, +|}; + +export const updateDroppableScroll = ( + args: UpdateDroppableScrollArgs, +): UpdateDroppableScrollAction => ({ + type: 'UPDATE_DROPPABLE_SCROLL', + payload: args, +}); + +export type UpdateDroppableIsEnabledArgs = {| + id: DroppableId, + isEnabled: boolean, +|}; + +export type UpdateDroppableIsEnabledAction = {| + type: 'UPDATE_DROPPABLE_IS_ENABLED', + payload: UpdateDroppableIsEnabledArgs, +|}; + +export const updateDroppableIsEnabled = ( + args: UpdateDroppableIsEnabledArgs, +): UpdateDroppableIsEnabledAction => ({ + type: 'UPDATE_DROPPABLE_IS_ENABLED', + payload: args, +}); + +export type UpdateDroppableIsCombineEnabledArgs = {| + id: DroppableId, + isCombineEnabled: boolean, +|}; + +export type UpdateDroppableIsCombineEnabledAction = {| + type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED', + payload: UpdateDroppableIsCombineEnabledArgs, +|}; + +export const updateDroppableIsCombineEnabled = ( + args: UpdateDroppableIsCombineEnabledArgs, +): UpdateDroppableIsCombineEnabledAction => ({ + type: 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED', + payload: args, +}); + +export type MoveArgs = {| + client: Position, +|}; + +export type MoveAction = {| + type: 'MOVE', + payload: MoveArgs, +|}; + +export const move = (args: MoveArgs): MoveAction => ({ + type: 'MOVE', + payload: args, +}); + +type MoveByWindowScrollArgs = {| + newScroll: Position, +|}; + +export type MoveByWindowScrollAction = {| + type: 'MOVE_BY_WINDOW_SCROLL', + payload: MoveByWindowScrollArgs, +|}; + +export const moveByWindowScroll = ( + args: MoveByWindowScrollArgs, +): MoveByWindowScrollAction => ({ + type: 'MOVE_BY_WINDOW_SCROLL', + payload: args, +}); + +export type UpdateViewportMaxScrollArgs = {| + maxScroll: Position, +|}; + +type UpdateViewportMaxScrollAction = {| + type: 'UPDATE_VIEWPORT_MAX_SCROLL', + payload: UpdateViewportMaxScrollArgs, +|}; + +export const updateViewportMaxScroll = ( + args: UpdateViewportMaxScrollArgs, +): UpdateViewportMaxScrollAction => ({ + type: 'UPDATE_VIEWPORT_MAX_SCROLL', + payload: args, +}); + +export type MoveUpAction = {| + type: 'MOVE_UP', + payload: null, +|}; + +export const moveUp = (): MoveUpAction => ({ + type: 'MOVE_UP', + payload: null, +}); + +export type MoveDownAction = {| + type: 'MOVE_DOWN', + payload: null, +|}; + +export const moveDown = (): MoveDownAction => ({ + type: 'MOVE_DOWN', + payload: null, +}); + +export type MoveRightAction = {| + type: 'MOVE_RIGHT', + payload: null, +|}; + +export const moveRight = (): MoveRightAction => ({ + type: 'MOVE_RIGHT', + payload: null, +}); + +export type MoveLeftAction = {| + type: 'MOVE_LEFT', + payload: null, +|}; + +export const moveLeft = (): MoveLeftAction => ({ + type: 'MOVE_LEFT', + payload: null, +}); + +type FlushAction = {| + type: 'FLUSH', + payload: null, +|}; + +export const flush = (): FlushAction => ({ + type: 'FLUSH', + payload: null, +}); + +export type AnimateDropArgs = {| + completed: CompletedDrag, + newHomeClientOffset: Position, + dropDuration: number, +|}; + +export type DropAnimateAction = { + type: 'DROP_ANIMATE', + payload: AnimateDropArgs, +}; + +export const animateDrop = (args: AnimateDropArgs): DropAnimateAction => ({ + type: 'DROP_ANIMATE', + payload: args, +}); + +export type DropCompleteArgs = {| + completed: CompletedDrag, +|}; + +export type DropCompleteAction = { + type: 'DROP_COMPLETE', + payload: DropCompleteArgs, +}; + +export const completeDrop = (args: DropCompleteArgs): DropCompleteAction => ({ + type: 'DROP_COMPLETE', + payload: args, +}); + +type DropArgs = {| + reason: DropReason, +|}; + +export type DropAction = {| + type: 'DROP', + payload: DropArgs, +|}; + +export const drop = (args: DropArgs) => ({ + type: 'DROP', + payload: args, +}); + +export const cancel = () => drop({ reason: 'CANCEL' }); + +export type DropPendingAction = {| + type: 'DROP_PENDING', + payload: DropArgs, +|}; + +export const dropPending = (args: DropArgs): DropPendingAction => ({ + type: 'DROP_PENDING', + payload: args, +}); + +export type DropAnimationFinishedAction = {| + type: 'DROP_ANIMATION_FINISHED', + payload: null, +|}; + +export const dropAnimationFinished = (): DropAnimationFinishedAction => ({ + type: 'DROP_ANIMATION_FINISHED', + payload: null, +}); + +export type Action = + | BeforeInitialCaptureAction + | LiftAction + | InitialPublishAction + | WhileDraggingPublishAction + | CollectionStartingAction + | UpdateDroppableScrollAction + | UpdateDroppableIsEnabledAction + | UpdateDroppableIsCombineEnabledAction + | MoveByWindowScrollAction + | UpdateViewportMaxScrollAction + // | PostJumpScrollAction + // | PostSnapDestinationChangeAction + | MoveAction + | MoveUpAction + | MoveDownAction + | MoveRightAction + | MoveLeftAction + | DropPendingAction + | DropAction + | DropAnimateAction + | DropAnimationFinishedAction + | DropCompleteAction + | FlushAction; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/auto-scroller-types.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/auto-scroller-types.js new file mode 100644 index 00000000..1de87546 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/auto-scroller-types.js @@ -0,0 +1,8 @@ +// @flow +import type { State, DraggingState } from '../../types'; + +export type AutoScroller = {| + start: (state: DraggingState) => void, + stop: () => void, + scroll: (state: State) => void, +|}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/can-scroll.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/can-scroll.js new file mode 100644 index 00000000..8dc5f0a9 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/can-scroll.js @@ -0,0 +1,160 @@ +// @flow +import { type Position } from 'css-box-model'; +import { add, apply, isEqual, origin } from '../position'; +import type { DroppableDimension, Viewport, Scrollable } from '../../types'; + +type CanPartiallyScrollArgs = {| + max: Position, + current: Position, + change: Position, +|}; + +const smallestSigned = apply((value: number) => { + if (value === 0) { + return 0; + } + return value > 0 ? 1 : -1; +}); + +type GetRemainderArgs = {| + current: Position, + max: Position, + change: Position, +|}; + +// We need to figure out how much of the movement +// cannot be done with a scroll +export const getOverlap = (() => { + const getRemainder = (target: number, max: number): number => { + if (target < 0) { + return target; + } + if (target > max) { + return target - max; + } + return 0; + }; + + return ({ current, max, change }: GetRemainderArgs): ?Position => { + const targetScroll: Position = add(current, change); + + const overlap: Position = { + x: getRemainder(targetScroll.x, max.x), + y: getRemainder(targetScroll.y, max.y), + }; + + if (isEqual(overlap, origin)) { + return null; + } + + return overlap; + }; +})(); + +export const canPartiallyScroll = ({ + max: rawMax, + current, + change, +}: CanPartiallyScrollArgs): boolean => { + // It is possible for the max scroll to be greater than the current scroll + // when there are scrollbars on the cross axis. We adjust for this by + // increasing the max scroll point if needed + // This will allow movements backwards even if the current scroll is greater than the max scroll + const max: Position = { + x: Math.max(current.x, rawMax.x), + y: Math.max(current.y, rawMax.y), + }; + + // Only need to be able to move the smallest amount in the desired direction + const smallestChange: Position = smallestSigned(change); + + const overlap: ?Position = getOverlap({ + max, + current, + change: smallestChange, + }); + + // no overlap at all - we can move there! + if (!overlap) { + return true; + } + + // if there was an x value, but there is no x overlap - then we can scroll on the x! + if (smallestChange.x !== 0 && overlap.x === 0) { + return true; + } + + // if there was an y value, but there is no y overlap - then we can scroll on the y! + if (smallestChange.y !== 0 && overlap.y === 0) { + return true; + } + + return false; +}; + +export const canScrollWindow = ( + viewport: Viewport, + change: Position, +): boolean => + canPartiallyScroll({ + current: viewport.scroll.current, + max: viewport.scroll.max, + change, + }); + +export const getWindowOverlap = ( + viewport: Viewport, + change: Position, +): ?Position => { + if (!canScrollWindow(viewport, change)) { + return null; + } + + const max: Position = viewport.scroll.max; + const current: Position = viewport.scroll.current; + + return getOverlap({ + current, + max, + change, + }); +}; + +export const canScrollDroppable = ( + droppable: DroppableDimension, + change: Position, +): boolean => { + const frame: ?Scrollable = droppable.frame; + + // Cannot scroll when there is no scrollable + if (!frame) { + return false; + } + + return canPartiallyScroll({ + current: frame.scroll.current, + max: frame.scroll.max, + change, + }); +}; + +export const getDroppableOverlap = ( + droppable: DroppableDimension, + change: Position, +): ?Position => { + const frame: ?Scrollable = droppable.frame; + + if (!frame) { + return null; + } + + if (!canScrollDroppable(droppable, change)) { + return null; + } + + return getOverlap({ + current: frame.scroll.current, + max: frame.scroll.max, + change, + }); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/config.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/config.js new file mode 100644 index 00000000..cf291e0d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/config.js @@ -0,0 +1,25 @@ +// @flow + +// Values used to control how the fluid auto scroll feels +const config = { + // percentage distance from edge of container: + startFromPercentage: 0.25, + maxScrollAtPercentage: 0.05, + // pixels per frame + maxPixelScroll: 28, + + // A function used to ease a percentage value + // A simple linear function would be: (percentage) => percentage; + // percentage is between 0 and 1 + // result must be between 0 and 1 + ease: (percentage: number): number => Math.pow(percentage, 2), + + durationDampening: { + // ms: how long to dampen the speed of an auto scroll from the start of a drag + stopDampeningAt: 1200, + // ms: when to start accelerating the reduction of duration dampening + accelerateAt: 360, + }, +}; + +export default config; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/did-start-in-scrollable-area.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/did-start-in-scrollable-area.js new file mode 100644 index 00000000..46e7f7c0 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/did-start-in-scrollable-area.js @@ -0,0 +1 @@ +// @flow diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-best-scrollable-droppable.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-best-scrollable-droppable.js new file mode 100644 index 00000000..f23c636f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-best-scrollable-droppable.js @@ -0,0 +1,77 @@ +// @flow +import memoizeOne from 'memoize-one'; +import { type Position } from 'css-box-model'; +import type { + DroppableDimension, + DroppableDimensionMap, + DroppableId, +} from '../../../types'; +import { invariant } from '../../../invariant'; +import isPositionInFrame from '../../visibility/is-position-in-frame'; +import { toDroppableList } from '../../dimension-structures'; +import { find } from '../../../native-with-fallback'; + +const getScrollableDroppables = memoizeOne( + (droppables: DroppableDimensionMap): DroppableDimension[] => + toDroppableList(droppables).filter( + (droppable: DroppableDimension): boolean => { + // exclude disabled droppables + if (!droppable.isEnabled) { + return false; + } + + // only want droppables that are scrollable + if (!droppable.frame) { + return false; + } + + return true; + }, + ), +); + +const getScrollableDroppableOver = ( + target: Position, + droppables: DroppableDimensionMap, +): ?DroppableDimension => { + const maybe: ?DroppableDimension = find( + getScrollableDroppables(droppables), + (droppable: DroppableDimension): boolean => { + invariant(droppable.frame, 'Invalid result'); + return isPositionInFrame(droppable.frame.pageMarginBox)(target); + }, + ); + + return maybe; +}; + +type Api = {| + center: Position, + destination: ?DroppableId, + droppables: DroppableDimensionMap, +|}; + +export default ({ + center, + destination, + droppables, +}: Api): ?DroppableDimension => { + // We need to scroll the best droppable frame we can so that the + // placeholder buffer logic works correctly + + if (destination) { + const dimension: DroppableDimension = droppables[destination]; + if (!dimension.frame) { + return null; + } + return dimension; + } + + // 2. If we are not over a droppable - are we over a droppable frame? + const dimension: ?DroppableDimension = getScrollableDroppableOver( + center, + droppables, + ); + + return dimension; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-droppable-scroll-change.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-droppable-scroll-change.js new file mode 100644 index 00000000..16088bd2 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-droppable-scroll-change.js @@ -0,0 +1,39 @@ +// @flow +import type { Position, Rect } from 'css-box-model'; +import type { Scrollable, DroppableDimension } from '../../../types'; +import getScroll from './get-scroll'; +import { canScrollDroppable } from '../can-scroll'; + +type Args = {| + droppable: DroppableDimension, + subject: Rect, + center: Position, + dragStartTime: number, + shouldUseTimeDampening: boolean, +|}; + +export default ({ + droppable, + subject, + center, + dragStartTime, + shouldUseTimeDampening, +}: Args): ?Position => { + // We know this has a closestScrollable + const frame: ?Scrollable = droppable.frame; + + // this should never happen - just being safe + if (!frame) { + return null; + } + + const scroll: ?Position = getScroll({ + dragStartTime, + container: frame.pageMarginBox, + subject, + center, + shouldUseTimeDampening, + }); + + return scroll && canScrollDroppable(droppable, scroll) ? scroll : null; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-percentage.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-percentage.js new file mode 100644 index 00000000..f1d8d22b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-percentage.js @@ -0,0 +1,25 @@ +// @flow +import { warning } from '../../../dev-warning'; + +type Args = {| + startOfRange: number, + endOfRange: number, + current: number, +|}; + +export default ({ startOfRange, endOfRange, current }: Args): number => { + const range: number = endOfRange - startOfRange; + + if (range === 0) { + warning(` + Detected distance range of 0 in the fluid auto scroller + This is unexpected and would cause a divide by 0 issue. + Not allowing an auto scroll + `); + return 0; + } + + const currentInRange: number = current - startOfRange; + const percentage: number = currentInRange / range; + return percentage; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/adjust-for-size-limits.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/adjust-for-size-limits.js new file mode 100644 index 00000000..47f7f3c8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/adjust-for-size-limits.js @@ -0,0 +1,30 @@ +// @flow +import type { Rect, Position } from 'css-box-model'; + +type Args = {| + container: Rect, + subject: Rect, + proposedScroll: Position, +|}; + +export default ({ container, subject, proposedScroll }: Args): ?Position => { + const isTooBigVertically: boolean = subject.height > container.height; + const isTooBigHorizontally: boolean = subject.width > container.width; + + // not too big on any axis + if (!isTooBigHorizontally && !isTooBigVertically) { + return proposedScroll; + } + + // too big on both axis + if (isTooBigHorizontally && isTooBigVertically) { + return null; + } + + // Only too big on one axis + // Exclude the axis that we cannot scroll on + return { + x: isTooBigHorizontally ? 0 : proposedScroll.x, + y: isTooBigVertically ? 0 : proposedScroll.y, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/dampen-value-by-time.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/dampen-value-by-time.js new file mode 100644 index 00000000..c258a0e8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/dampen-value-by-time.js @@ -0,0 +1,37 @@ +// @flow +import getPercentage from '../../get-percentage'; +import config from '../../config'; +import minScroll from './min-scroll'; + +const accelerateAt: number = config.durationDampening.accelerateAt; +const stopAt: number = config.durationDampening.stopDampeningAt; + +export default (proposedScroll: number, dragStartTime: number): number => { + const startOfRange: number = dragStartTime; + const endOfRange: number = stopAt; + const now: number = Date.now(); + const runTime: number = now - startOfRange; + + // we have finished the time dampening period + if (runTime >= stopAt) { + return proposedScroll; + } + + // Up to this point we know there is a proposed scroll + // but we have not reached our accelerate point + // Return the minimum amount of scroll + if (runTime < accelerateAt) { + return minScroll; + } + + const betweenAccelerateAtAndStopAtPercentage: number = getPercentage({ + startOfRange: accelerateAt, + endOfRange, + current: runTime, + }); + + const scroll: number = + proposedScroll * config.ease(betweenAccelerateAtAndStopAtPercentage); + + return Math.ceil(scroll); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/get-distance-thresholds.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/get-distance-thresholds.js new file mode 100644 index 00000000..922e993a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/get-distance-thresholds.js @@ -0,0 +1,25 @@ +// @flow +import type { Rect } from 'css-box-model'; +import config from '../../config'; +import type { Axis } from '../../../../../types'; + +// all in pixels +export type DistanceThresholds = {| + startScrollingFrom: number, + maxScrollValueAt: number, +|}; + +// converts the percentages in the config into actual pixel values +export default (container: Rect, axis: Axis): DistanceThresholds => { + const startScrollingFrom: number = + container[axis.size] * config.startFromPercentage; + const maxScrollValueAt: number = + container[axis.size] * config.maxScrollAtPercentage; + + const thresholds: DistanceThresholds = { + startScrollingFrom, + maxScrollValueAt, + }; + + return thresholds; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/get-value-from-distance.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/get-value-from-distance.js new file mode 100644 index 00000000..1d918ff7 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/get-value-from-distance.js @@ -0,0 +1,61 @@ +// @flow +import { type DistanceThresholds } from './get-distance-thresholds'; +import getPercentage from '../../get-percentage'; +import config from '../../config'; +import minScroll from './min-scroll'; + +export default ( + distanceToEdge: number, + thresholds: DistanceThresholds, +): number => { + /* + // This function only looks at the distance to one edge + // Example: looking at bottom edge + |----------------------------------| + | | + | | + | | + | | + | | => no scroll in this range + | | + | | + | startScrollingFrom (eg 100px) | + | | + | | => increased scroll value the closer to maxScrollValueAt + | maxScrollValueAt (eg 10px) | + | | => max scroll value in this range + |----------------------------------| + */ + + // too far away to auto scroll + if (distanceToEdge > thresholds.startScrollingFrom) { + return 0; + } + + // use max speed when on or over boundary + if (distanceToEdge <= thresholds.maxScrollValueAt) { + return config.maxPixelScroll; + } + + // when just going on the boundary return the minimum integer + if (distanceToEdge === thresholds.startScrollingFrom) { + return minScroll; + } + + // to get the % past startScrollingFrom we will calculate + // the % the value is from maxScrollValueAt and then invert it + const percentageFromMaxScrollValueAt: number = getPercentage({ + startOfRange: thresholds.maxScrollValueAt, + endOfRange: thresholds.startScrollingFrom, + current: distanceToEdge, + }); + + const percentageFromStartScrollingFrom: number = + 1 - percentageFromMaxScrollValueAt; + + const scroll: number = + config.maxPixelScroll * config.ease(percentageFromStartScrollingFrom); + + // scroll will always be a positive integer + return Math.ceil(scroll); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/get-value.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/get-value.js new file mode 100644 index 00000000..92fde7df --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/get-value.js @@ -0,0 +1,39 @@ +// @flow +import { type DistanceThresholds } from './get-distance-thresholds'; +import getValueFromDistance from './get-value-from-distance'; +import dampenValueByTime from './dampen-value-by-time'; +import minScroll from './min-scroll'; + +type Args = {| + distanceToEdge: number, + thresholds: DistanceThresholds, + dragStartTime: number, + shouldUseTimeDampening: boolean, +|}; + +export default ({ + distanceToEdge, + thresholds, + dragStartTime, + shouldUseTimeDampening, +}: Args): number => { + const scroll: number = getValueFromDistance(distanceToEdge, thresholds); + + // not enough distance to trigger a minimum scroll + // we can bail here + if (scroll === 0) { + return 0; + } + + // Dampen an auto scroll speed based on duration of drag + + if (!shouldUseTimeDampening) { + return scroll; + } + + // Once we know an auto scroll should occur based on distance, + // we must let at least 1px through to trigger a scroll event an + // another auto scroll call + + return Math.max(dampenValueByTime(scroll, dragStartTime), minScroll); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/index.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/index.js new file mode 100644 index 00000000..65c7fabd --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/index.js @@ -0,0 +1,46 @@ +// @flow +import type { Rect, Spacing } from 'css-box-model'; +import getDistanceThresholds, { + type DistanceThresholds, +} from './get-distance-thresholds'; +import type { Axis } from '../../../../../types'; +import getValue from './get-value'; + +type GetOnAxisArgs = {| + container: Rect, + distanceToEdges: Spacing, + dragStartTime: number, + axis: Axis, + shouldUseTimeDampening: boolean, +|}; + +export default ({ + container, + distanceToEdges, + dragStartTime, + axis, + shouldUseTimeDampening, +}: GetOnAxisArgs): number => { + const thresholds: DistanceThresholds = getDistanceThresholds(container, axis); + const isCloserToEnd: boolean = + distanceToEdges[axis.end] < distanceToEdges[axis.start]; + + if (isCloserToEnd) { + return getValue({ + distanceToEdge: distanceToEdges[axis.end], + thresholds, + dragStartTime, + shouldUseTimeDampening, + }); + } + + return ( + -1 * + getValue({ + distanceToEdge: distanceToEdges[axis.start], + thresholds, + dragStartTime, + shouldUseTimeDampening, + }) + ); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/min-scroll.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/min-scroll.js new file mode 100644 index 00000000..c5041e7f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/get-scroll-on-axis/min-scroll.js @@ -0,0 +1,4 @@ +// @flow + +// A scroll event will only be triggered when there is a value of at least 1px change +export default 1; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/index.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/index.js new file mode 100644 index 00000000..d890dfab --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-scroll/index.js @@ -0,0 +1,76 @@ +// @flow +import type { Position, Rect, Spacing } from 'css-box-model'; +import { apply, isEqual, origin } from '../../../position'; +import getScrollOnAxis from './get-scroll-on-axis'; +import adjustForSizeLimits from './adjust-for-size-limits'; +import { horizontal, vertical } from '../../../axis'; + +// will replace -0 and replace with +0 +const clean = apply((value: number) => (value === 0 ? 0 : value)); + +type Args = {| + dragStartTime: number, + container: Rect, + subject: Rect, + center: Position, + shouldUseTimeDampening: boolean, +|}; + +export default ({ + dragStartTime, + container, + subject, + center, + shouldUseTimeDampening, +}: Args): ?Position => { + // get distance to each edge + const distanceToEdges: Spacing = { + top: center.y - container.top, + right: container.right - center.x, + bottom: container.bottom - center.y, + left: center.x - container.left, + }; + + // 1. Figure out which x,y values are the best target + // 2. Can the container scroll in that direction at all? + // If no for both directions, then return null + // 3. Is the center close enough to a edge to start a drag? + // 4. Based on the distance, calculate the speed at which a scroll should occur + // The lower distance value the faster the scroll should be. + // Maximum speed value should be hit before the distance is 0 + // Negative values to not continue to increase the speed + const y: number = getScrollOnAxis({ + container, + distanceToEdges, + dragStartTime, + axis: vertical, + shouldUseTimeDampening, + }); + const x: number = getScrollOnAxis({ + container, + distanceToEdges, + dragStartTime, + axis: horizontal, + shouldUseTimeDampening, + }); + + const required: Position = clean({ x, y }); + + // nothing required + if (isEqual(required, origin)) { + return null; + } + + // need to not scroll in a direction that we are too big to scroll in + const limited: ?Position = adjustForSizeLimits({ + container, + subject, + proposedScroll: required, + }); + + if (!limited) { + return null; + } + + return isEqual(limited, origin) ? null : limited; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-window-scroll-change.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-window-scroll-change.js new file mode 100644 index 00000000..0801eff4 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/get-window-scroll-change.js @@ -0,0 +1,31 @@ +// @flow +import type { Position, Rect } from 'css-box-model'; +import type { Viewport } from '../../../types'; +import getScroll from './get-scroll'; +import { canScrollWindow } from '../can-scroll'; + +type Args = {| + viewport: Viewport, + subject: Rect, + center: Position, + dragStartTime: number, + shouldUseTimeDampening: boolean, +|}; + +export default ({ + viewport, + subject, + center, + dragStartTime, + shouldUseTimeDampening, +}: Args): ?Position => { + const scroll: ?Position = getScroll({ + dragStartTime, + container: viewport.frame, + subject, + center, + shouldUseTimeDampening, + }); + + return scroll && canScrollWindow(viewport, scroll) ? scroll : null; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/index.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/index.js new file mode 100644 index 00000000..9d19d6e8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/index.js @@ -0,0 +1,90 @@ +// @flow +import rafSchd from 'raf-schd'; +import { type Position } from 'css-box-model'; +import type { DraggingState, DroppableId } from '../../../types'; +import scroll from './scroll'; +import { invariant } from '../../../invariant'; +import * as timings from '../../../debug/timings'; + +export type PublicArgs = {| + scrollWindow: (change: Position) => void, + scrollDroppable: (id: DroppableId, change: Position) => void, +|}; + +export type FluidScroller = {| + scroll: (state: DraggingState) => void, + start: (state: DraggingState) => void, + stop: () => void, +|}; + +type WhileDragging = {| + dragStartTime: number, + shouldUseTimeDampening: boolean, +|}; + +export default ({ + scrollWindow, + scrollDroppable, +}: PublicArgs): FluidScroller => { + const scheduleWindowScroll = rafSchd(scrollWindow); + const scheduleDroppableScroll = rafSchd(scrollDroppable); + let dragging: ?WhileDragging = null; + + const tryScroll = (state: DraggingState): void => { + invariant(dragging, 'Cannot fluid scroll if not dragging'); + const { shouldUseTimeDampening, dragStartTime } = dragging; + + scroll({ + state, + scrollWindow: scheduleWindowScroll, + scrollDroppable: scheduleDroppableScroll, + dragStartTime, + shouldUseTimeDampening, + }); + }; + + const start = (state: DraggingState) => { + timings.start('starting fluid scroller'); + invariant(!dragging, 'Cannot start auto scrolling when already started'); + const dragStartTime: number = Date.now(); + + let wasScrollNeeded: boolean = false; + const fakeScrollCallback = () => { + wasScrollNeeded = true; + }; + scroll({ + state, + dragStartTime: 0, + shouldUseTimeDampening: false, + scrollWindow: fakeScrollCallback, + scrollDroppable: fakeScrollCallback, + }); + + dragging = { + dragStartTime, + shouldUseTimeDampening: wasScrollNeeded, + }; + timings.finish('starting fluid scroller'); + + // we know an auto scroll is needed - let's do it! + if (wasScrollNeeded) { + tryScroll(state); + } + }; + + const stop = () => { + // can be called defensively + if (!dragging) { + return; + } + scheduleWindowScroll.cancel(); + scheduleDroppableScroll.cancel(); + dragging = null; + }; + + return { + start, + stop, + scroll: tryScroll, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/scroll.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/scroll.js new file mode 100644 index 00000000..52768286 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/fluid-scroller/scroll.js @@ -0,0 +1,72 @@ +// @flow +import { type Position, type Rect } from 'css-box-model'; +import type { + DraggingState, + DroppableId, + DraggableDimension, + DroppableDimension, + Viewport, +} from '../../../types'; +import getBestScrollableDroppable from './get-best-scrollable-droppable'; +import whatIsDraggedOver from '../../droppable/what-is-dragged-over'; +import getWindowScrollChange from './get-window-scroll-change'; +import getDroppableScrollChange from './get-droppable-scroll-change'; + +type Args = {| + state: DraggingState, + dragStartTime: number, + shouldUseTimeDampening: boolean, + scrollWindow: (scroll: Position) => void, + scrollDroppable: (id: DroppableId, scroll: Position) => void, +|}; + +export default ({ + state, + dragStartTime, + shouldUseTimeDampening, + scrollWindow, + scrollDroppable, +}: Args): void => { + const center: Position = state.current.page.borderBoxCenter; + const draggable: DraggableDimension = + state.dimensions.draggables[state.critical.draggable.id]; + const subject: Rect = draggable.page.marginBox; + // 1. Can we scroll the viewport? + if (state.isWindowScrollAllowed) { + const viewport: Viewport = state.viewport; + const change: ?Position = getWindowScrollChange({ + dragStartTime, + viewport, + subject, + center, + shouldUseTimeDampening, + }); + + if (change) { + scrollWindow(change); + return; + } + } + + const droppable: ?DroppableDimension = getBestScrollableDroppable({ + center, + destination: whatIsDraggedOver(state.impact), + droppables: state.dimensions.droppables, + }); + + if (!droppable) { + return; + } + + const change: ?Position = getDroppableScrollChange({ + dragStartTime, + droppable, + subject, + center, + shouldUseTimeDampening, + }); + + if (change) { + scrollDroppable(droppable.descriptor.id, change); + } +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/index.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/index.js new file mode 100644 index 00000000..aa458a0c --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/index.js @@ -0,0 +1,56 @@ +// @flow +import { type Position } from 'css-box-model'; +import createFluidScroller, { type FluidScroller } from './fluid-scroller'; +import createJumpScroller, { type JumpScroller } from './jump-scroller'; +import type { AutoScroller } from './auto-scroller-types'; +import type { DroppableId, State } from '../../types'; +import type { MoveArgs } from '../action-creators'; + +export type Args = {| + scrollWindow: (offset: Position) => void, + scrollDroppable: (id: DroppableId, change: Position) => void, + move: (args: MoveArgs) => mixed, +|}; + +export default ({ + scrollDroppable, + scrollWindow, + move, +}: Args): AutoScroller => { + const fluidScroller: FluidScroller = createFluidScroller({ + scrollWindow, + scrollDroppable, + }); + + const jumpScroll: JumpScroller = createJumpScroller({ + move, + scrollWindow, + scrollDroppable, + }); + + const scroll = (state: State) => { + // Only allowing auto scrolling in the DRAGGING phase + if (state.phase !== 'DRAGGING') { + return; + } + + if (state.movementMode === 'FLUID') { + fluidScroller.scroll(state); + return; + } + + if (!state.scrollJumpRequest) { + return; + } + + jumpScroll(state); + }; + + const scroller: AutoScroller = { + scroll, + start: fluidScroller.start, + stop: fluidScroller.stop, + }; + + return scroller; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/auto-scroller/jump-scroller.js b/node_modules/react-beautiful-dnd/src/state/auto-scroller/jump-scroller.js new file mode 100644 index 00000000..679e5949 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/auto-scroller/jump-scroller.js @@ -0,0 +1,139 @@ +// @flow +import { type Position } from 'css-box-model'; +import { invariant } from '../../invariant'; +import { add, subtract } from '../position'; +import { + canScrollWindow, + canScrollDroppable, + getWindowOverlap, + getDroppableOverlap, +} from './can-scroll'; +import whatIsDraggedOver from '../droppable/what-is-dragged-over'; +import { type MoveArgs } from '../action-creators'; +import type { + DroppableDimension, + Viewport, + DraggingState, + DroppableId, +} from '../../types'; + +type Args = {| + scrollDroppable: (id: DroppableId, change: Position) => void, + scrollWindow: (offset: Position) => void, + move: (args: MoveArgs) => mixed, +|}; + +export type JumpScroller = (state: DraggingState) => void; + +type Remainder = Position; + +export default ({ + move, + scrollDroppable, + scrollWindow, +}: Args): JumpScroller => { + const moveByOffset = (state: DraggingState, offset: Position) => { + const client: Position = add(state.current.client.selection, offset); + move({ client }); + }; + + const scrollDroppableAsMuchAsItCan = ( + droppable: DroppableDimension, + change: Position, + ): ?Remainder => { + // Droppable cannot absorb any of the scroll + if (!canScrollDroppable(droppable, change)) { + return change; + } + + const overlap: ?Position = getDroppableOverlap(droppable, change); + + // Droppable can absorb the entire change + if (!overlap) { + scrollDroppable(droppable.descriptor.id, change); + return null; + } + + // Droppable can only absorb a part of the change + const whatTheDroppableCanScroll: Position = subtract(change, overlap); + scrollDroppable(droppable.descriptor.id, whatTheDroppableCanScroll); + + const remainder: Position = subtract(change, whatTheDroppableCanScroll); + return remainder; + }; + + const scrollWindowAsMuchAsItCan = ( + isWindowScrollAllowed: boolean, + viewport: Viewport, + change: Position, + ): ?Position => { + if (!isWindowScrollAllowed) { + return change; + } + + if (!canScrollWindow(viewport, change)) { + // window cannot absorb any of the scroll + return change; + } + + const overlap: ?Position = getWindowOverlap(viewport, change); + + // window can absorb entire scroll + if (!overlap) { + scrollWindow(change); + return null; + } + + // window can only absorb a part of the scroll + const whatTheWindowCanScroll: Position = subtract(change, overlap); + scrollWindow(whatTheWindowCanScroll); + + const remainder: Position = subtract(change, whatTheWindowCanScroll); + return remainder; + }; + + const jumpScroller: JumpScroller = (state: DraggingState) => { + const request: ?Position = state.scrollJumpRequest; + + if (!request) { + return; + } + + const destination: ?DroppableId = whatIsDraggedOver(state.impact); + invariant( + destination, + 'Cannot perform a jump scroll when there is no destination', + ); + + // 1. We scroll the droppable first if we can to avoid the draggable + // leaving the list + + const droppableRemainder: ?Position = scrollDroppableAsMuchAsItCan( + state.dimensions.droppables[destination], + request, + ); + + // droppable absorbed the entire scroll + if (!droppableRemainder) { + return; + } + + const viewport: Viewport = state.viewport; + const windowRemainder: ?Position = scrollWindowAsMuchAsItCan( + state.isWindowScrollAllowed, + viewport, + droppableRemainder, + ); + + // window could absorb all the droppable remainder + if (!windowRemainder) { + return; + } + + // The entire scroll could not be absorbed by the droppable and window + // so we manually move whatever is left + moveByOffset(state, windowRemainder); + }; + + return jumpScroller; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/axis.js b/node_modules/react-beautiful-dnd/src/state/axis.js new file mode 100644 index 00000000..79e605ef --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/axis.js @@ -0,0 +1,26 @@ +// @flow +import type { HorizontalAxis, VerticalAxis } from '../types'; + +export const vertical: VerticalAxis = { + direction: 'vertical', + line: 'y', + crossAxisLine: 'x', + start: 'top', + end: 'bottom', + size: 'height', + crossAxisStart: 'left', + crossAxisEnd: 'right', + crossAxisSize: 'width', +}; + +export const horizontal: HorizontalAxis = { + direction: 'horizontal', + line: 'x', + crossAxisLine: 'y', + start: 'left', + end: 'right', + size: 'width', + crossAxisStart: 'top', + crossAxisEnd: 'bottom', + crossAxisSize: 'height', +}; diff --git a/node_modules/react-beautiful-dnd/src/state/calculate-drag-impact/calculate-reorder-impact.js b/node_modules/react-beautiful-dnd/src/state/calculate-drag-impact/calculate-reorder-impact.js new file mode 100644 index 00000000..7d726e84 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/calculate-drag-impact/calculate-reorder-impact.js @@ -0,0 +1,136 @@ +// @flow +import type { + DraggableDimension, + DroppableDimension, + DragImpact, + DisplacementGroups, + Viewport, + DisplacedBy, +} from '../../types'; +import removeDraggableFromList from '../remove-draggable-from-list'; +import isHomeOf from '../droppable/is-home-of'; +import { emptyGroups } from '../no-impact'; +import { find } from '../../native-with-fallback'; +import getDisplacementGroups from '../get-displacement-groups'; + +type Args = {| + draggable: DraggableDimension, + insideDestination: DraggableDimension[], + destination: DroppableDimension, + viewport: Viewport, + displacedBy: DisplacedBy, + last: DisplacementGroups, + index: ?number, + forceShouldAnimate?: boolean, +|}; + +function getIndexOfLastItem( + draggables: DraggableDimension[], + options: {| inHomeList: boolean |}, +): number { + if (!draggables.length) { + return 0; + } + + const indexOfLastItem: number = + draggables[draggables.length - 1].descriptor.index; + + // When in a foreign list there will be an additional one item in the list + return options.inHomeList ? indexOfLastItem : indexOfLastItem + 1; +} + +type GoAtEndArgs = {| + insideDestination: DraggableDimension[], + inHomeList: boolean, + displacedBy: DisplacedBy, + destination: DroppableDimension, +|}; + +function goAtEnd({ + insideDestination, + inHomeList, + displacedBy, + destination, +}: GoAtEndArgs): DragImpact { + const newIndex: number = getIndexOfLastItem(insideDestination, { + inHomeList, + }); + + return { + displaced: emptyGroups, + displacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: newIndex, + }, + }, + }; +} + +export default function calculateReorderImpact({ + draggable, + insideDestination, + destination, + viewport, + displacedBy, + last, + index, + forceShouldAnimate, +}: Args): DragImpact { + const inHomeList: boolean = isHomeOf(draggable, destination); + + // Go into last spot of list + if (index == null) { + return goAtEnd({ + insideDestination, + inHomeList, + displacedBy, + destination, + }); + } + + // this might be the dragging item + const match: ?DraggableDimension = find( + insideDestination, + (item: DraggableDimension) => item.descriptor.index === index, + ); + + if (!match) { + return goAtEnd({ + insideDestination, + inHomeList, + displacedBy, + destination, + }); + } + const withoutDragging: DraggableDimension[] = removeDraggableFromList( + draggable, + insideDestination, + ); + + const sliceFrom: number = insideDestination.indexOf(match); + const impacted: DraggableDimension[] = withoutDragging.slice(sliceFrom); + + const displaced: DisplacementGroups = getDisplacementGroups({ + afterDragging: impacted, + destination, + displacedBy, + last, + viewport: viewport.frame, + forceShouldAnimate, + }); + + return { + displaced, + displacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index, + }, + }, + }; +} diff --git a/node_modules/react-beautiful-dnd/src/state/can-start-drag.js b/node_modules/react-beautiful-dnd/src/state/can-start-drag.js new file mode 100644 index 00000000..d03a3196 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/can-start-drag.js @@ -0,0 +1,29 @@ +// @flow +import type { State, DraggableId } from '../types'; + +export default (state: State, id: DraggableId): boolean => { + // Ready to go! + if (state.phase === 'IDLE') { + return true; + } + + // Can lift depending on the type of drop animation + if (state.phase !== 'DROP_ANIMATING') { + return false; + } + + // - For a user drop we allow the user to drag other Draggables + // immediately as items are most likely already in their home + // - For a cancel items will be moving back to their original position + // as such it is a cleaner experience to block them from dragging until + // the drop animation is complete. Otherwise they will be grabbing + // items not in their original position which can lead to bad visuals + // Not allowing dragging of the dropping draggable + if (state.completed.result.draggableId === id) { + return false; + } + + // if dropping - allow lifting + // if cancelling - disallow lifting + return state.completed.result.reason === 'DROP'; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/create-store.js b/node_modules/react-beautiful-dnd/src/state/create-store.js new file mode 100644 index 00000000..b1f0cb85 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/create-store.js @@ -0,0 +1,97 @@ +// @flow +/* eslint-disable no-underscore-dangle */ +import { applyMiddleware, createStore, compose } from 'redux'; +import reducer from './reducer'; +import lift from './middleware/lift'; +import style from './middleware/style'; +import drop from './middleware/drop/drop-middleware'; +import scrollListener from './middleware/scroll-listener'; +import responders from './middleware/responders/responders-middleware'; +import dropAnimationFinish from './middleware/drop/drop-animation-finish-middleware'; +import dropAnimationFlushOnScroll from './middleware/drop/drop-animation-flush-on-scroll-middleware'; +import dimensionMarshalStopper from './middleware/dimension-marshal-stopper'; +import focus from './middleware/focus'; +import autoScroll from './middleware/auto-scroll'; +import pendingDrop from './middleware/pending-drop'; +import type { DimensionMarshal } from './dimension-marshal/dimension-marshal-types'; +import type { FocusMarshal } from '../view/use-focus-marshal/focus-marshal-types'; +import type { StyleMarshal } from '../view/use-style-marshal/style-marshal-types'; +import type { AutoScroller } from './auto-scroller/auto-scroller-types'; +import type { Responders, Announce } from '../types'; +import type { Store } from './store-types'; + +// We are checking if window is available before using it. +// This is needed for universal apps that render the component server side. +// Details: https://github.com/zalmoxisus/redux-devtools-extension#12-advanced-store-setup +const composeEnhancers = + process.env.NODE_ENV !== 'production' && + typeof window !== 'undefined' && + window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ + ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ + name: 'react-beautiful-dnd', + }) + : compose; + +type Args = {| + dimensionMarshal: DimensionMarshal, + focusMarshal: FocusMarshal, + styleMarshal: StyleMarshal, + getResponders: () => Responders, + announce: Announce, + autoScroller: AutoScroller, +|}; + +export default ({ + dimensionMarshal, + focusMarshal, + styleMarshal, + getResponders, + announce, + autoScroller, +}: Args): Store => + createStore( + reducer, + composeEnhancers( + applyMiddleware( + // ## Debug middleware + + // > uncomment to use + // debugging logger + // require('../debug/middleware/log').default('light'), + // // user timing api + // require('../debug/middleware/user-timing').default, + // debugging timer + // require('../debug/middleware/action-timing').default, + // average action timer + // require('../debug/middleware/action-timing-average').default(200), + + // ## Application middleware + + // Style updates do not cause more actions. It is important to update styles + // before responders are called: specifically the onDragEnd responder. We need to clear + // the transition styles off the elements before a reorder to prevent strange + // post drag animations in firefox. Even though we clear the transition off + // a Draggable - if it is done after a reorder firefox will still apply the + // transition. + // Must be called before dimension marshal for lifting to apply collecting styles + style(styleMarshal), + // Stop the dimension marshal collecting anything + // when moving into a phase where collection is no longer needed. + // We need to stop the marshal before responders fire as responders can cause + // dimension registration changes in response to reordering + dimensionMarshalStopper(dimensionMarshal), + // Fire application responders in response to drag changes + lift(dimensionMarshal), + drop, + // When a drop animation finishes - fire a drop complete + dropAnimationFinish, + dropAnimationFlushOnScroll, + pendingDrop, + autoScroll(autoScroller), + scrollListener, + focus(focusMarshal), + // Fire responders for consumers (after update to store) + responders(getResponders, announce), + ), + ), + ); diff --git a/node_modules/react-beautiful-dnd/src/state/did-start-after-critical.js b/node_modules/react-beautiful-dnd/src/state/did-start-after-critical.js new file mode 100644 index 00000000..f8557a3b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/did-start-after-critical.js @@ -0,0 +1,9 @@ +// @flow +import type { DraggableId, LiftEffect } from '../types'; + +export default function didStartAfterCritical( + draggableId: DraggableId, + afterCritical: LiftEffect, +): boolean { + return Boolean(afterCritical.effected[draggableId]); +} diff --git a/node_modules/react-beautiful-dnd/src/state/dimension-marshal/dimension-marshal-types.js b/node_modules/react-beautiful-dnd/src/state/dimension-marshal/dimension-marshal-types.js new file mode 100644 index 00000000..8191a647 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/dimension-marshal/dimension-marshal-types.js @@ -0,0 +1,46 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + UpdateDroppableScrollArgs, + UpdateDroppableIsEnabledArgs, + UpdateDroppableIsCombineEnabledArgs, +} from '../action-creators'; +import type { + DroppableId, + Critical, + DimensionMap, + LiftRequest, + Published, + Viewport, +} from '../../types'; + +export type StartPublishingResult = {| + critical: Critical, + dimensions: DimensionMap, + viewport: Viewport, +|}; + +export type DimensionMarshal = {| + // it is possible for a droppable to change whether it is enabled during a drag + updateDroppableIsEnabled: (id: DroppableId, isEnabled: boolean) => void, + // it is also possible to update whether combining is enabled + updateDroppableIsCombineEnabled: ( + id: DroppableId, + isEnabled: boolean, + ) => void, + updateDroppableScroll: (id: DroppableId, newScroll: Position) => void, + scrollDroppable: (id: DroppableId, change: Position) => void, + // Entry + startPublishing: (request: LiftRequest) => StartPublishingResult, + stopPublishing: () => void, +|}; + +export type Callbacks = {| + collectionStarting: () => mixed, + publishWhileDragging: (args: Published) => mixed, + updateDroppableScroll: (args: UpdateDroppableScrollArgs) => mixed, + updateDroppableIsEnabled: (args: UpdateDroppableIsEnabledArgs) => mixed, + updateDroppableIsCombineEnabled: ( + args: UpdateDroppableIsCombineEnabledArgs, + ) => mixed, +|}; diff --git a/node_modules/react-beautiful-dnd/src/state/dimension-marshal/dimension-marshal.js b/node_modules/react-beautiful-dnd/src/state/dimension-marshal/dimension-marshal.js new file mode 100644 index 00000000..2bbd356c --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/dimension-marshal/dimension-marshal.js @@ -0,0 +1,218 @@ +// @flow +import { type Position } from 'css-box-model'; +import { invariant } from '../../invariant'; +import type { + DimensionMarshal, + Callbacks, + StartPublishingResult, +} from './dimension-marshal-types'; +import createPublisher, { + type WhileDraggingPublisher, +} from './while-dragging-publisher'; +import getInitialPublish from './get-initial-publish'; +import type { + Registry, + DroppableEntry, + DraggableEntry, + Subscriber, + Unsubscribe, + RegistryEvent, +} from '../registry/registry-types'; +import type { + DroppableId, + DroppableDescriptor, + LiftRequest, + Critical, + DraggableDescriptor, +} from '../../types'; +import { warning } from '../../dev-warning'; + +type Collection = {| + critical: Critical, + unsubscribe: Unsubscribe, +|}; + +function shouldPublishUpdate( + registry: Registry, + dragging: DraggableDescriptor, + entry: DraggableEntry, +): boolean { + // do not publish updates for the critical draggable + if (entry.descriptor.id === dragging.id) { + return false; + } + // do not publish updates for draggables that are not of a type that we care about + if (entry.descriptor.type !== dragging.type) { + return false; + } + + const home: DroppableEntry = registry.droppable.getById( + entry.descriptor.droppableId, + ); + + if (home.descriptor.mode !== 'virtual') { + warning(` + You are attempting to add or remove a Draggable [id: ${entry.descriptor.id}] + while a drag is occurring. This is only supported for virtual lists. + + See https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/patterns/virtual-lists.md + `); + return false; + } + + return true; +} + +export default (registry: Registry, callbacks: Callbacks) => { + let collection: ?Collection = null; + + const publisher: WhileDraggingPublisher = createPublisher({ + callbacks: { + publish: callbacks.publishWhileDragging, + collectionStarting: callbacks.collectionStarting, + }, + registry, + }); + + const updateDroppableIsEnabled = (id: DroppableId, isEnabled: boolean) => { + invariant( + registry.droppable.exists(id), + `Cannot update is enabled flag of Droppable ${id} as it is not registered`, + ); + + // no need to update the application state if a collection is not occurring + if (!collection) { + return; + } + + // At this point a non primary droppable dimension might not yet be published + // but may have its enabled state changed. For now we still publish this change + // and let the reducer exit early if it cannot find the dimension in the state. + callbacks.updateDroppableIsEnabled({ id, isEnabled }); + }; + + const updateDroppableIsCombineEnabled = ( + id: DroppableId, + isCombineEnabled: boolean, + ) => { + // no need to update + if (!collection) { + return; + } + + invariant( + registry.droppable.exists(id), + `Cannot update isCombineEnabled flag of Droppable ${id} as it is not registered`, + ); + + callbacks.updateDroppableIsCombineEnabled({ id, isCombineEnabled }); + }; + + const updateDroppableScroll = (id: DroppableId, newScroll: Position) => { + // no need to update the application state if a collection is not occurring + if (!collection) { + return; + } + + invariant( + registry.droppable.exists(id), + `Cannot update the scroll on Droppable ${id} as it is not registered`, + ); + + callbacks.updateDroppableScroll({ id, newScroll }); + }; + + const scrollDroppable = (id: DroppableId, change: Position) => { + if (!collection) { + return; + } + registry.droppable.getById(id).callbacks.scroll(change); + }; + + const stopPublishing = () => { + // This function can be called defensively + if (!collection) { + return; + } + // Stop any pending dom collections or publish + publisher.stop(); + + // Tell all droppables to stop watching scroll + // all good if they where not already listening + const home: DroppableDescriptor = collection.critical.droppable; + registry.droppable + .getAllByType(home.type) + .forEach((entry: DroppableEntry) => entry.callbacks.dragStopped()); + + // Unsubscribe from registry updates + collection.unsubscribe(); + // Finally - clear our collection + collection = null; + }; + + const subscriber: Subscriber = (event: RegistryEvent) => { + invariant( + collection, + 'Should only be subscribed when a collection is occurring', + ); + // The dragging item can be add and removed when using a clone + // We do not publish updates for the critical item + const dragging: DraggableDescriptor = collection.critical.draggable; + + if (event.type === 'ADDITION') { + if (shouldPublishUpdate(registry, dragging, event.value)) { + publisher.add(event.value); + } + } + if (event.type === 'REMOVAL') { + if (shouldPublishUpdate(registry, dragging, event.value)) { + publisher.remove(event.value); + } + } + }; + + const startPublishing = (request: LiftRequest): StartPublishingResult => { + invariant( + !collection, + 'Cannot start capturing critical dimensions as there is already a collection', + ); + const entry: DraggableEntry = registry.draggable.getById( + request.draggableId, + ); + const home: DroppableEntry = registry.droppable.getById( + entry.descriptor.droppableId, + ); + + const critical: Critical = { + draggable: entry.descriptor, + droppable: home.descriptor, + }; + + const unsubscribe = registry.subscribe(subscriber); + + collection = { + critical, + unsubscribe, + }; + + return getInitialPublish({ + critical, + registry, + scrollOptions: request.scrollOptions, + }); + }; + + const marshal: DimensionMarshal = { + // Droppable changes + updateDroppableIsEnabled, + updateDroppableIsCombineEnabled, + scrollDroppable, + updateDroppableScroll, + + // Entry + startPublishing, + stopPublishing, + }; + + return marshal; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/dimension-marshal/get-initial-publish.js b/node_modules/react-beautiful-dnd/src/state/dimension-marshal/get-initial-publish.js new file mode 100644 index 00000000..f149d3d7 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/dimension-marshal/get-initial-publish.js @@ -0,0 +1,66 @@ +// @flow +import type { Position } from 'css-box-model'; +import * as timings from '../../debug/timings'; +import type { StartPublishingResult } from './dimension-marshal-types'; +import type { + Registry, + DraggableEntry, + DroppableEntry, +} from '../registry/registry-types'; +import { toDraggableMap, toDroppableMap } from '../dimension-structures'; +import type { + DroppableDescriptor, + DroppableDimension, + DraggableDimension, + DimensionMap, + ScrollOptions, + Critical, + Viewport, +} from '../../types'; +import getViewport from '../../view/window/get-viewport'; + +type Args = {| + critical: Critical, + scrollOptions: ScrollOptions, + registry: Registry, +|}; + +export default ({ + critical, + scrollOptions, + registry, +}: Args): StartPublishingResult => { + const timingKey: string = 'Initial collection from DOM'; + timings.start(timingKey); + const viewport: Viewport = getViewport(); + const windowScroll: Position = viewport.scroll.current; + + const home: DroppableDescriptor = critical.droppable; + + const droppables: DroppableDimension[] = registry.droppable + .getAllByType(home.type) + .map((entry: DroppableEntry): DroppableDimension => + entry.callbacks.getDimensionAndWatchScroll(windowScroll, scrollOptions), + ); + + const draggables: DraggableDimension[] = registry.draggable + .getAllByType(critical.draggable.type) + .map((entry: DraggableEntry): DraggableDimension => + entry.getDimension(windowScroll), + ); + + const dimensions: DimensionMap = { + draggables: toDraggableMap(draggables), + droppables: toDroppableMap(droppables), + }; + + timings.finish(timingKey); + + const result: StartPublishingResult = { + dimensions, + critical, + viewport, + }; + + return result; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/dimension-marshal/while-dragging-publisher.js b/node_modules/react-beautiful-dnd/src/state/dimension-marshal/while-dragging-publisher.js new file mode 100644 index 00000000..a7aafa03 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/dimension-marshal/while-dragging-publisher.js @@ -0,0 +1,146 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + DraggableId, + DroppableId, + DraggableDescriptor, + Published, + DraggableDimension, + DroppablePublish, + DroppableIdMap, + DraggableIdMap, +} from '../../types'; +import type { + DroppableEntry, + Registry, + DraggableEntry, + DraggableEntryMap, +} from '../registry/registry-types'; +import * as timings from '../../debug/timings'; +import { origin } from '../position'; + +export type WhileDraggingPublisher = {| + add: (entry: DraggableEntry) => void, + remove: (entry: DraggableEntry) => void, + stop: () => void, +|}; + +type Staging = {| + additions: DraggableEntryMap, + removals: DraggableIdMap, + modified: DroppableIdMap, +|}; + +type Callbacks = {| + publish: (args: Published) => mixed, + collectionStarting: () => mixed, +|}; + +type Args = {| + registry: Registry, + callbacks: Callbacks, +|}; + +const clean = (): Staging => ({ + additions: {}, + removals: {}, + modified: {}, +}); + +const timingKey: string = 'Publish collection from DOM'; + +export default function createPublisher({ + registry, + callbacks, +}: Args): WhileDraggingPublisher { + let staging: Staging = clean(); + let frameId: ?AnimationFrameID = null; + + const collect = () => { + if (frameId) { + return; + } + + callbacks.collectionStarting(); + frameId = requestAnimationFrame(() => { + frameId = null; + timings.start(timingKey); + + const { additions, removals, modified } = staging; + + const added: DraggableDimension[] = Object.keys(additions) + .map( + // Using the origin as the window scroll. This will be adjusted when processing the published values + (id: DraggableId): DraggableDimension => + registry.draggable.getById(id).getDimension(origin), + ) + // Dimensions are not guarenteed to be ordered in the same order as keys + // So we need to sort them so they are in the correct order + .sort( + (a: DraggableDimension, b: DraggableDimension): number => + a.descriptor.index - b.descriptor.index, + ); + + const updated: DroppablePublish[] = Object.keys(modified).map( + (id: DroppableId) => { + const entry: DroppableEntry = registry.droppable.getById(id); + + const scroll: Position = entry.callbacks.getScrollWhileDragging(); + return { + droppableId: id, + scroll, + }; + }, + ); + + const result: Published = { + additions: added, + removals: Object.keys(removals), + modified: updated, + }; + + staging = clean(); + + timings.finish(timingKey); + callbacks.publish(result); + }); + }; + + const add = (entry: DraggableEntry) => { + const id: DraggableId = entry.descriptor.id; + staging.additions[id] = entry; + staging.modified[entry.descriptor.droppableId] = true; + + if (staging.removals[id]) { + delete staging.removals[id]; + } + collect(); + }; + + const remove = (entry: DraggableEntry) => { + const descriptor: DraggableDescriptor = entry.descriptor; + staging.removals[descriptor.id] = true; + staging.modified[descriptor.droppableId] = true; + + if (staging.additions[descriptor.id]) { + delete staging.additions[descriptor.id]; + } + collect(); + }; + + const stop = () => { + if (!frameId) { + return; + } + + cancelAnimationFrame(frameId); + frameId = null; + staging = clean(); + }; + + return { + add, + remove, + stop, + }; +} diff --git a/node_modules/react-beautiful-dnd/src/state/dimension-structures.js b/node_modules/react-beautiful-dnd/src/state/dimension-structures.js new file mode 100644 index 00000000..d4dab331 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/dimension-structures.js @@ -0,0 +1,35 @@ +// @flow +import memoizeOne from 'memoize-one'; +import { values } from '../native-with-fallback'; +import type { + DroppableDimension, + DroppableDimensionMap, + DraggableDimension, + DraggableDimensionMap, +} from '../types'; + +export const toDroppableMap = memoizeOne( + (droppables: DroppableDimension[]): DroppableDimensionMap => + droppables.reduce((previous, current) => { + previous[current.descriptor.id] = current; + return previous; + }, {}), +); + +export const toDraggableMap = memoizeOne( + (draggables: DraggableDimension[]): DraggableDimensionMap => + draggables.reduce((previous, current) => { + previous[current.descriptor.id] = current; + return previous; + }, {}), +); + +export const toDroppableList = memoizeOne( + (droppables: DroppableDimensionMap): DroppableDimension[] => + values(droppables), +); + +export const toDraggableList = memoizeOne( + (draggables: DraggableDimensionMap): DraggableDimension[] => + values(draggables), +); diff --git a/node_modules/react-beautiful-dnd/src/state/droppable/get-droppable.js b/node_modules/react-beautiful-dnd/src/state/droppable/get-droppable.js new file mode 100644 index 00000000..cd19491a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/droppable/get-droppable.js @@ -0,0 +1,101 @@ +// @flow +import { type BoxModel, type Position } from 'css-box-model'; +import type { + Axis, + DroppableDimension, + DroppableDescriptor, + Scrollable, + DroppableSubject, + ScrollSize, +} from '../../types'; +import { vertical, horizontal } from '../axis'; +import { origin } from '../position'; +import getMaxScroll from '../get-max-scroll'; +import getSubject from './util/get-subject'; + +export type Closest = {| + client: BoxModel, + page: BoxModel, + scroll: Position, + scrollSize: ScrollSize, + shouldClipSubject: boolean, +|}; + +type Args = {| + descriptor: DroppableDescriptor, + isEnabled: boolean, + isCombineEnabled: boolean, + isFixedOnPage: boolean, + direction: 'vertical' | 'horizontal', + client: BoxModel, + // is null when in a fixed container + page: BoxModel, + closest?: ?Closest, +|}; + +export default ({ + descriptor, + isEnabled, + isCombineEnabled, + isFixedOnPage, + direction, + client, + page, + closest, +}: Args): DroppableDimension => { + const frame: ?Scrollable = (() => { + if (!closest) { + return null; + } + + const { scrollSize, client: frameClient } = closest; + + // scrollHeight and scrollWidth are based on the padding box + // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight + const maxScroll: Position = getMaxScroll({ + scrollHeight: scrollSize.scrollHeight, + scrollWidth: scrollSize.scrollWidth, + height: frameClient.paddingBox.height, + width: frameClient.paddingBox.width, + }); + + return { + pageMarginBox: closest.page.marginBox, + frameClient, + scrollSize, + shouldClipSubject: closest.shouldClipSubject, + scroll: { + initial: closest.scroll, + current: closest.scroll, + max: maxScroll, + diff: { + value: origin, + displacement: origin, + }, + }, + }; + })(); + + const axis: Axis = direction === 'vertical' ? vertical : horizontal; + + const subject: DroppableSubject = getSubject({ + page, + withPlaceholder: null, + axis, + frame, + }); + + const dimension: DroppableDimension = { + descriptor, + isCombineEnabled, + isFixedOnPage, + axis, + isEnabled, + client, + page, + frame, + subject, + }; + + return dimension; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/droppable/is-home-of.js b/node_modules/react-beautiful-dnd/src/state/droppable/is-home-of.js new file mode 100644 index 00000000..e3cc5f4a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/droppable/is-home-of.js @@ -0,0 +1,7 @@ +// @flow +import type { DraggableDimension, DroppableDimension } from '../../types'; + +export default ( + draggable: DraggableDimension, + destination: DroppableDimension, +): boolean => draggable.descriptor.droppableId === destination.descriptor.id; diff --git a/node_modules/react-beautiful-dnd/src/state/droppable/scroll-droppable.js b/node_modules/react-beautiful-dnd/src/state/droppable/scroll-droppable.js new file mode 100644 index 00000000..3416f7d1 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/droppable/scroll-droppable.js @@ -0,0 +1,53 @@ +// @flow +import { type Position } from 'css-box-model'; +import { invariant } from '../../invariant'; +import type { + DroppableDimension, + Scrollable, + DroppableSubject, +} from '../../types'; +import { negate, subtract } from '../position'; +import getSubject from './util/get-subject'; + +export default ( + droppable: DroppableDimension, + newScroll: Position, +): DroppableDimension => { + invariant(droppable.frame); + const scrollable: Scrollable = droppable.frame; + + const scrollDiff: Position = subtract(newScroll, scrollable.scroll.initial); + // a positive scroll difference leads to a negative displacement + // (scrolling down pulls an item upwards) + const scrollDisplacement: Position = negate(scrollDiff); + + // Sometimes it is possible to scroll beyond the max point. + // This can occur when scrolling a foreign list that now has a placeholder. + + const frame: Scrollable = { + ...scrollable, + scroll: { + initial: scrollable.scroll.initial, + current: newScroll, + diff: { + value: scrollDiff, + displacement: scrollDisplacement, + }, + // TODO: rename 'softMax?' + max: scrollable.scroll.max, + }, + }; + + const subject: DroppableSubject = getSubject({ + page: droppable.subject.page, + withPlaceholder: droppable.subject.withPlaceholder, + axis: droppable.axis, + frame, + }); + const result: DroppableDimension = { + ...droppable, + frame, + subject, + }; + return result; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/droppable/should-use-placeholder.js b/node_modules/react-beautiful-dnd/src/state/droppable/should-use-placeholder.js new file mode 100644 index 00000000..d97d7275 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/droppable/should-use-placeholder.js @@ -0,0 +1,7 @@ +// @flow +import type { DraggableDescriptor, DragImpact } from '../../types'; +import whatIsDraggedOver from './what-is-dragged-over'; + +// use placeholder if dragged over +export default (descriptor: DraggableDescriptor, impact: DragImpact): boolean => + whatIsDraggedOver(impact) === descriptor.droppableId; diff --git a/node_modules/react-beautiful-dnd/src/state/droppable/util/clip.js b/node_modules/react-beautiful-dnd/src/state/droppable/util/clip.js new file mode 100644 index 00000000..573b5713 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/droppable/util/clip.js @@ -0,0 +1,17 @@ +// @flow +import { getRect, type Rect, type Spacing } from 'css-box-model'; + +export default (frame: Spacing, subject: Spacing): ?Rect => { + const result: Rect = getRect({ + top: Math.max(subject.top, frame.top), + right: Math.min(subject.right, frame.right), + bottom: Math.min(subject.bottom, frame.bottom), + left: Math.max(subject.left, frame.left), + }); + + if (result.width <= 0 || result.height <= 0) { + return null; + } + + return result; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/droppable/util/get-subject.js b/node_modules/react-beautiful-dnd/src/state/droppable/util/get-subject.js new file mode 100644 index 00000000..35f3a581 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/droppable/util/get-subject.js @@ -0,0 +1,63 @@ +// @flow +import { getRect, type Rect, type Spacing, type BoxModel } from 'css-box-model'; +import type { + Axis, + Scrollable, + DroppableSubject, + PlaceholderInSubject, +} from '../../../types'; +import executeClip from './clip'; +import { offsetByPosition } from '../../spacing'; + +const scroll = (target: Spacing, frame: ?Scrollable): Spacing => { + if (!frame) { + return target; + } + + return offsetByPosition(target, frame.scroll.diff.displacement); +}; + +const increase = ( + target: Spacing, + axis: Axis, + withPlaceholder: ?PlaceholderInSubject, +): Spacing => { + if (withPlaceholder && withPlaceholder.increasedBy) { + return { + ...target, + [axis.end]: target[axis.end] + withPlaceholder.increasedBy[axis.line], + }; + } + return target; +}; + +const clip = (target: Spacing, frame: ?Scrollable): ?Rect => { + if (frame && frame.shouldClipSubject) { + return executeClip(frame.pageMarginBox, target); + } + return getRect(target); +}; + +type Args = {| + page: BoxModel, + withPlaceholder: ?PlaceholderInSubject, + axis: Axis, + frame: ?Scrollable, +|}; + +export default ({ + page, + withPlaceholder, + axis, + frame, +}: Args): DroppableSubject => { + const scrolled: Spacing = scroll(page.marginBox, frame); + const increased: Spacing = increase(scrolled, axis, withPlaceholder); + const clipped: ?Rect = clip(increased, frame); + + return { + page, + withPlaceholder, + active: clipped, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/droppable/what-is-dragged-over-from-result.js b/node_modules/react-beautiful-dnd/src/state/droppable/what-is-dragged-over-from-result.js new file mode 100644 index 00000000..8c94a2a8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/droppable/what-is-dragged-over-from-result.js @@ -0,0 +1,16 @@ +// @flow +import type { DroppableId, DropResult } from '../../types'; + +export default (result: DropResult): ?DroppableId => { + const { combine, destination } = result; + + if (destination) { + return destination.droppableId; + } + + if (combine) { + return combine.droppableId; + } + + return null; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/droppable/what-is-dragged-over.js b/node_modules/react-beautiful-dnd/src/state/droppable/what-is-dragged-over.js new file mode 100644 index 00000000..ca858fa4 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/droppable/what-is-dragged-over.js @@ -0,0 +1,16 @@ +// @flow +import type { ImpactLocation, DroppableId, DragImpact } from '../../types'; + +export default (impact: DragImpact): ?DroppableId => { + const at: ?ImpactLocation = impact.at; + + if (!at) { + return null; + } + + if (at.type === 'REORDER') { + return at.destination.droppableId; + } + + return at.combine.droppableId; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/droppable/with-placeholder.js b/node_modules/react-beautiful-dnd/src/state/droppable/with-placeholder.js new file mode 100644 index 00000000..b1d2d52c --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/droppable/with-placeholder.js @@ -0,0 +1,174 @@ +// @flow +import { type Position } from 'css-box-model'; +import { invariant } from '../../invariant'; +import type { + Axis, + DroppableDimension, + DraggableDimension, + DraggableDimensionMap, + Scrollable, + DroppableSubject, + PlaceholderInSubject, +} from '../../types'; +import getDraggablesInsideDroppable from '../get-draggables-inside-droppable'; +import { add, patch } from '../position'; +import getSubject from './util/get-subject'; +import isHomeOf from './is-home-of'; +import getDisplacedBy from '../get-displaced-by'; + +const getRequiredGrowthForPlaceholder = ( + droppable: DroppableDimension, + placeholderSize: Position, + draggables: DraggableDimensionMap, +): ?Position => { + const axis: Axis = droppable.axis; + + // A virtual list will most likely not contain all of the Draggables + // so counting them does not help. + if (droppable.descriptor.mode === 'virtual') { + return patch(axis.line, placeholderSize[axis.line]); + } + + // TODO: consider margin collapsing? + // Using contentBox as that is where the Draggables will sit + const availableSpace: number = droppable.subject.page.contentBox[axis.size]; + const insideDroppable: DraggableDimension[] = getDraggablesInsideDroppable( + droppable.descriptor.id, + draggables, + ); + const spaceUsed: number = insideDroppable.reduce( + (sum: number, dimension: DraggableDimension): number => + sum + dimension.client.marginBox[axis.size], + 0, + ); + const requiredSpace: number = spaceUsed + placeholderSize[axis.line]; + const needsToGrowBy: number = requiredSpace - availableSpace; + + // nothing to do here + if (needsToGrowBy <= 0) { + return null; + } + + return patch(axis.line, needsToGrowBy); +}; + +const withMaxScroll = (frame: Scrollable, max: Position): Scrollable => ({ + ...frame, + scroll: { + ...frame.scroll, + max, + }, +}); + +export const addPlaceholder = ( + droppable: DroppableDimension, + draggable: DraggableDimension, + draggables: DraggableDimensionMap, +): DroppableDimension => { + const frame: ?Scrollable = droppable.frame; + + invariant( + !isHomeOf(draggable, droppable), + 'Should not add placeholder space to home list', + ); + + invariant( + !droppable.subject.withPlaceholder, + 'Cannot add placeholder size to a subject when it already has one', + ); + + const placeholderSize: Position = getDisplacedBy( + droppable.axis, + draggable.displaceBy, + ).point; + + const requiredGrowth: ?Position = getRequiredGrowthForPlaceholder( + droppable, + placeholderSize, + draggables, + ); + + const added: PlaceholderInSubject = { + placeholderSize, + increasedBy: requiredGrowth, + oldFrameMaxScroll: droppable.frame ? droppable.frame.scroll.max : null, + }; + + if (!frame) { + const subject: DroppableSubject = getSubject({ + page: droppable.subject.page, + withPlaceholder: added, + axis: droppable.axis, + frame: droppable.frame, + }); + return { + ...droppable, + subject, + }; + } + + const maxScroll: Position = requiredGrowth + ? add(frame.scroll.max, requiredGrowth) + : frame.scroll.max; + + const newFrame: Scrollable = withMaxScroll(frame, maxScroll); + + const subject: DroppableSubject = getSubject({ + page: droppable.subject.page, + withPlaceholder: added, + axis: droppable.axis, + frame: newFrame, + }); + return { + ...droppable, + subject, + frame: newFrame, + }; +}; + +export const removePlaceholder = ( + droppable: DroppableDimension, +): DroppableDimension => { + const added: ?PlaceholderInSubject = droppable.subject.withPlaceholder; + invariant( + added, + 'Cannot remove placeholder form subject when there was none', + ); + + const frame: ?Scrollable = droppable.frame; + + if (!frame) { + const subject: DroppableSubject = getSubject({ + page: droppable.subject.page, + axis: droppable.axis, + frame: null, + // cleared + withPlaceholder: null, + }); + return { + ...droppable, + subject, + }; + } + + const oldMaxScroll: ?Position = added.oldFrameMaxScroll; + invariant( + oldMaxScroll, + 'Expected droppable with frame to have old max frame scroll when removing placeholder', + ); + + const newFrame: Scrollable = withMaxScroll(frame, oldMaxScroll); + + const subject: DroppableSubject = getSubject({ + page: droppable.subject.page, + axis: droppable.axis, + frame: newFrame, + // cleared + withPlaceholder: null, + }); + return { + ...droppable, + subject, + frame: newFrame, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-client-border-box-center/get-client-from-page-border-box-center.js b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-client-border-box-center/get-client-from-page-border-box-center.js new file mode 100644 index 00000000..ef5997a2 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-client-border-box-center/get-client-from-page-border-box-center.js @@ -0,0 +1,29 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { Viewport, DraggableDimension } from '../../../types'; +import { add, subtract } from '../../position'; +import withViewportDisplacement from '../../with-scroll-change/with-viewport-displacement'; + +type Args = {| + pageBorderBoxCenter: Position, + draggable: DraggableDimension, + viewport: Viewport, +|}; + +export default ({ + pageBorderBoxCenter, + draggable, + viewport, +}: Args): Position => { + const withoutPageScrollChange: Position = withViewportDisplacement( + viewport, + pageBorderBoxCenter, + ); + + const offset: Position = subtract( + withoutPageScrollChange, + draggable.page.borderBox.center, + ); + + return add(draggable.client.borderBox.center, offset); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-client-border-box-center/index.js b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-client-border-box-center/index.js new file mode 100644 index 00000000..ccb2190e --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-client-border-box-center/index.js @@ -0,0 +1,44 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + DroppableDimension, + Viewport, + DragImpact, + DraggableDimension, + DraggableDimensionMap, + LiftEffect, +} from '../../../types'; +import getPageBorderBoxCenterFromImpact from '../get-page-border-box-center'; +import getClientFromPageBorderBoxCenter from './get-client-from-page-border-box-center'; + +type Args = {| + impact: DragImpact, + draggable: DraggableDimension, + droppable: DroppableDimension, + draggables: DraggableDimensionMap, + viewport: Viewport, + afterCritical: LiftEffect, +|}; + +export default ({ + impact, + draggable, + droppable, + draggables, + viewport, + afterCritical, +}: Args): Position => { + const pageBorderBoxCenter: Position = getPageBorderBoxCenterFromImpact({ + impact, + draggable, + draggables, + droppable, + afterCritical, + }); + + return getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter, + draggable, + viewport, + }); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-page-border-box-center/index.js b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-page-border-box-center/index.js new file mode 100644 index 00000000..260afb01 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-page-border-box-center/index.js @@ -0,0 +1,70 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + DragImpact, + DraggableDimension, + DroppableDimension, + DraggableDimensionMap, + ImpactLocation, + LiftEffect, +} from '../../../types'; +import whenCombining from './when-combining'; +import whenReordering from './when-reordering'; +import withDroppableDisplacement from '../../with-scroll-change/with-droppable-displacement'; + +type Args = {| + impact: DragImpact, + afterCritical: LiftEffect, + draggable: DraggableDimension, + droppable: ?DroppableDimension, + draggables: DraggableDimensionMap, +|}; + +const getResultWithoutDroppableDisplacement = ({ + impact, + draggable, + droppable, + draggables, + afterCritical, +}: Args): Position => { + const original: Position = draggable.page.borderBox.center; + const at: ?ImpactLocation = impact.at; + + if (!droppable) { + return original; + } + + if (!at) { + return original; + } + + if (at.type === 'REORDER') { + return whenReordering({ + impact, + draggable, + draggables, + droppable, + afterCritical, + }); + } + + return whenCombining({ + impact, + draggables, + afterCritical, + }); +}; + +export default (args: Args): Position => { + const withoutDisplacement: Position = getResultWithoutDroppableDisplacement( + args, + ); + + const droppable: ?DroppableDimension = args.droppable; + + const withDisplacement: Position = droppable + ? withDroppableDisplacement(droppable, withoutDisplacement) + : withoutDisplacement; + + return withDisplacement; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-page-border-box-center/when-combining.js b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-page-border-box-center/when-combining.js new file mode 100644 index 00000000..9183927b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-page-border-box-center/when-combining.js @@ -0,0 +1,39 @@ +// @flow +import { type Position } from 'css-box-model'; +import { invariant } from '../../../invariant'; +import type { + DraggableDimensionMap, + DraggableId, + Combine, + LiftEffect, + DragImpact, +} from '../../../types'; +import { add } from '../../position'; +import getCombinedItemDisplacement from '../../get-combined-item-displacement'; +import { tryGetCombine } from '../../get-impact-location'; + +type Args = {| + impact: DragImpact, + // all draggables in the system + draggables: DraggableDimensionMap, + afterCritical: LiftEffect, +|}; + +// Returns the client offset required to move an item from its +// original client position to its final resting position +export default ({ afterCritical, impact, draggables }: Args): Position => { + const combine: ?Combine = tryGetCombine(impact); + invariant(combine); + + const combineWith: DraggableId = combine.draggableId; + const center: Position = draggables[combineWith].page.borderBox.center; + + const displaceBy: Position = getCombinedItemDisplacement({ + displaced: impact.displaced, + afterCritical, + combineWith, + displacedBy: impact.displacedBy, + }); + + return add(center, displaceBy); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-page-border-box-center/when-reordering.js b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-page-border-box-center/when-reordering.js new file mode 100644 index 00000000..3370e35d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/get-page-border-box-center/when-reordering.js @@ -0,0 +1,112 @@ +// @flow +import { offset, type Position, type BoxModel } from 'css-box-model'; +import type { + Axis, + DragImpact, + DraggableId, + DraggableDimension, + DraggableDimensionMap, + DroppableDimension, + LiftEffect, +} from '../../../types'; +import { goBefore, goAfter, goIntoStart } from '../move-relative-to'; +import getDraggablesInsideDroppable from '../../get-draggables-inside-droppable'; +import { negate } from '../../position'; +import didStartAfterCritical from '../../did-start-after-critical'; + +type NewHomeArgs = {| + impact: DragImpact, + draggable: DraggableDimension, + draggables: DraggableDimensionMap, + droppable: DroppableDimension, + afterCritical: LiftEffect, +|}; + +// Returns the client offset required to move an item from its +// original client position to its final resting position +export default ({ + impact, + draggable, + draggables, + droppable, + afterCritical, +}: NewHomeArgs): Position => { + const insideDestination: DraggableDimension[] = getDraggablesInsideDroppable( + droppable.descriptor.id, + draggables, + ); + + const draggablePage: BoxModel = draggable.page; + const axis: Axis = droppable.axis; + + // this will only happen in a foreign list + if (!insideDestination.length) { + return goIntoStart({ + axis, + moveInto: droppable.page, + isMoving: draggablePage, + }); + } + + const { displaced, displacedBy } = impact; + const closestAfter: ?DraggableId = displaced.all[0]; + + // go before the first displaced item + // items can only be displaced forwards + if (closestAfter) { + const closest: DraggableDimension = draggables[closestAfter]; + // want to go before where it would be with the displacement + + // target is displaced and is already in it's starting position + if (didStartAfterCritical(closestAfter, afterCritical)) { + return goBefore({ + axis, + moveRelativeTo: closest.page, + isMoving: draggablePage, + }); + } + + // target has been displaced during the drag and it is not in its starting position + // we need to account for the displacement + const withDisplacement: BoxModel = offset(closest.page, displacedBy.point); + + return goBefore({ + axis, + moveRelativeTo: withDisplacement, + isMoving: draggablePage, + }); + } + + // Nothing in list is displaced, we should go after the last item + + const last: DraggableDimension = + insideDestination[insideDestination.length - 1]; + + // we can just go into our original position if the last item + // is the dragging item + if (last.descriptor.id === draggable.descriptor.id) { + return draggablePage.borderBox.center; + } + + if (didStartAfterCritical(last.descriptor.id, afterCritical)) { + // if the item started displaced and it is no longer displaced then + // we need to go after it it's non-displaced position + + const page: BoxModel = offset( + last.page, + negate(afterCritical.displacedBy.point), + ); + return goAfter({ + axis, + moveRelativeTo: page, + isMoving: draggablePage, + }); + } + + // item is in its resting spot. we can go straight after it + return goAfter({ + axis, + moveRelativeTo: last.page, + isMoving: draggablePage, + }); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/move-relative-to.js b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/move-relative-to.js new file mode 100644 index 00000000..6ac7d891 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-center-from-impact/move-relative-to.js @@ -0,0 +1,66 @@ +// @flow +import type { Position, BoxModel, Rect } from 'css-box-model'; +import { patch } from '../position'; +import type { Axis } from '../../types'; + +type Args = {| + axis: Axis, + moveRelativeTo: BoxModel, + isMoving: BoxModel, +|}; + +const distanceFromStartToBorderBoxCenter = ( + axis: Axis, + box: BoxModel, +): number => box.margin[axis.start] + box.borderBox[axis.size] / 2; + +const distanceFromEndToBorderBoxCenter = (axis: Axis, box: BoxModel): number => + box.margin[axis.end] + box.borderBox[axis.size] / 2; + +// We align the moving item against the cross axis start of the target +// We used to align the moving item cross axis center with the cross axis center of the target. +// However, this leads to a bad experience when reordering columns +const getCrossAxisBorderBoxCenter = ( + axis: Axis, + target: Rect, + isMoving: BoxModel, +): number => + target[axis.crossAxisStart] + + isMoving.margin[axis.crossAxisStart] + + isMoving.borderBox[axis.crossAxisSize] / 2; + +export const goAfter = ({ axis, moveRelativeTo, isMoving }: Args): Position => + patch( + axis.line, + // start measuring from the end of the target + moveRelativeTo.marginBox[axis.end] + + distanceFromStartToBorderBoxCenter(axis, isMoving), + getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving), + ); + +export const goBefore = ({ axis, moveRelativeTo, isMoving }: Args): Position => + patch( + axis.line, + // start measuring from the start of the target + moveRelativeTo.marginBox[axis.start] - + distanceFromEndToBorderBoxCenter(axis, isMoving), + getCrossAxisBorderBoxCenter(axis, moveRelativeTo.marginBox, isMoving), + ); +type GoIntoArgs = {| + axis: Axis, + moveInto: BoxModel, + isMoving: BoxModel, +|}; + +// moves into the content box +export const goIntoStart = ({ + axis, + moveInto, + isMoving, +}: GoIntoArgs): Position => + patch( + axis.line, + moveInto.contentBox[axis.start] + + distanceFromStartToBorderBoxCenter(axis, isMoving), + getCrossAxisBorderBoxCenter(axis, moveInto.contentBox, isMoving), + ); diff --git a/node_modules/react-beautiful-dnd/src/state/get-combined-item-displacement.js b/node_modules/react-beautiful-dnd/src/state/get-combined-item-displacement.js new file mode 100644 index 00000000..3b84e69f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-combined-item-displacement.js @@ -0,0 +1,34 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + DisplacementGroups, + LiftEffect, + DraggableId, + DisplacedBy, +} from '../types'; +import { origin, negate } from './position'; +import didStartAfterCritical from './did-start-after-critical'; + +type Args = {| + displaced: DisplacementGroups, + afterCritical: LiftEffect, + combineWith: DraggableId, + displacedBy: DisplacedBy, +|}; + +export default ({ + displaced, + afterCritical, + combineWith, + displacedBy, +}: Args): Position => { + const isDisplaced: boolean = Boolean( + displaced.visible[combineWith] || displaced.invisible[combineWith], + ); + + if (didStartAfterCritical(combineWith, afterCritical)) { + return isDisplaced ? origin : negate(displacedBy.point); + } + + return isDisplaced ? displacedBy.point : origin; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-displaced-by.js b/node_modules/react-beautiful-dnd/src/state/get-displaced-by.js new file mode 100644 index 00000000..d83b7571 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-displaced-by.js @@ -0,0 +1,17 @@ +// @flow +import memoizeOne from 'memoize-one'; +import { type Position } from 'css-box-model'; +import type { Axis, DisplacedBy } from '../types'; +import { patch } from './position'; + +// TODO: memoization needed? +export default memoizeOne(function getDisplacedBy( + axis: Axis, + displaceBy: Position, +): DisplacedBy { + const displacement: number = displaceBy[axis.line]; + return { + value: displacement, + point: patch(axis.line, displacement), + }; +}); diff --git a/node_modules/react-beautiful-dnd/src/state/get-displacement-groups.js b/node_modules/react-beautiful-dnd/src/state/get-displacement-groups.js new file mode 100644 index 00000000..b977f16b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-displacement-groups.js @@ -0,0 +1,130 @@ +// @flow +import { type Rect, type Spacing, expand, getRect } from 'css-box-model'; +import type { + DraggableId, + Displacement, + DraggableDimension, + DroppableDimension, + DisplacementGroups, + DisplacedBy, +} from '../types'; +import { isPartiallyVisible } from './visibility/is-visible'; + +type Args = {| + afterDragging: DraggableDimension[], + destination: DroppableDimension, + displacedBy: DisplacedBy, + last: ?DisplacementGroups, + viewport: Rect, + forceShouldAnimate?: boolean, +|}; + +const getShouldAnimate = ( + id, + last: ?DisplacementGroups, + forceShouldAnimate: ?boolean, +) => { + // Use a forced value if provided + if (typeof forceShouldAnimate === 'boolean') { + return forceShouldAnimate; + } + + // nothing to gauge animation from + if (!last) { + return true; + } + + const { invisible, visible } = last; + + // it was previously invisible - no animation + if (invisible[id]) { + return false; + } + + const previous: ?Displacement = visible[id]; + + return previous ? previous.shouldAnimate : true; +}; + +// Note: it is also an optimisation to not render the displacement on +// items when they are not longer visible. +// This prevents a lot of .render() calls when leaving / entering a list + +function getTarget( + draggable: DraggableDimension, + displacedBy: DisplacedBy, +): Rect { + const marginBox: Rect = draggable.page.marginBox; + + // ## Visibility overscanning + // We are expanding rather than offsetting the marginBox. + // In some cases we want + // - the target based on the starting position (such as when dropping outside of any list) + // - the target based on the items position without starting displacement (such as when moving inside a list) + // To keep things simple we just expand the whole area for this check + // The worst case is some minor redundant offscreen movements + const expandBy: Spacing = { + // pull backwards into viewport + top: displacedBy.point.y, + right: 0, + bottom: 0, + // pull backwards into viewport + left: displacedBy.point.x, + }; + + return getRect(expand(marginBox, expandBy)); +} + +export default function getDisplacementGroups({ + afterDragging, + destination, + displacedBy, + viewport, + forceShouldAnimate, + last, +}: Args): DisplacementGroups { + return afterDragging.reduce( + function process( + groups: DisplacementGroups, + draggable: DraggableDimension, + ): DisplacementGroups { + const target: Rect = getTarget(draggable, displacedBy); + const id: DraggableId = draggable.descriptor.id; + + groups.all.push(id); + + const isVisible: boolean = isPartiallyVisible({ + target, + destination, + viewport, + withDroppableDisplacement: true, + }); + + if (!isVisible) { + groups.invisible[draggable.descriptor.id] = true; + return groups; + } + + // item is visible + + const shouldAnimate: boolean = getShouldAnimate( + id, + last, + forceShouldAnimate, + ); + + const displacement: Displacement = { + draggableId: id, + shouldAnimate, + }; + + groups.visible[id] = displacement; + return groups; + }, + { + all: [], + visible: {}, + invisible: {}, + }, + ); +} diff --git a/node_modules/react-beautiful-dnd/src/state/get-drag-impact/get-combine-impact.js b/node_modules/react-beautiful-dnd/src/state/get-drag-impact/get-combine-impact.js new file mode 100644 index 00000000..42adaf6b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-drag-impact/get-combine-impact.js @@ -0,0 +1,130 @@ +// @flow +import type { Rect } from 'css-box-model'; +import type { + DraggableId, + Axis, + DraggableDimension, + DroppableDimension, + DragImpact, + LiftEffect, + DisplacedBy, +} from '../../types'; +import { find } from '../../native-with-fallback'; +import getDidStartAfterCritical from '../did-start-after-critical'; +import getDisplacedBy from '../get-displaced-by'; +import getIsDisplaced from '../get-is-displaced'; +import removeDraggableFromList from '../remove-draggable-from-list'; + +type Args = {| + draggable: DraggableDimension, + pageBorderBoxWithDroppableScroll: Rect, + previousImpact: DragImpact, + destination: DroppableDimension, + insideDestination: DraggableDimension[], + afterCritical: LiftEffect, +|}; + +// exported for testing +export const combineThresholdDivisor: number = 4; + +export default ({ + draggable, + pageBorderBoxWithDroppableScroll: targetRect, + previousImpact, + destination, + insideDestination, + afterCritical, +}: Args): ?DragImpact => { + if (!destination.isCombineEnabled) { + return null; + } + const axis: Axis = destination.axis; + const displacedBy: DisplacedBy = getDisplacedBy( + destination.axis, + draggable.displaceBy, + ); + const displacement: number = displacedBy.value; + + const targetStart: number = targetRect[axis.start]; + const targetEnd: number = targetRect[axis.end]; + + const withoutDragging: DraggableDimension[] = removeDraggableFromList( + draggable, + insideDestination, + ); + + const combineWith: ?DraggableDimension = find( + withoutDragging, + (child: DraggableDimension): boolean => { + const id: DraggableId = child.descriptor.id; + const childRect: Rect = child.page.borderBox; + const childSize: number = childRect[axis.size]; + const threshold: number = childSize / combineThresholdDivisor; + + const didStartAfterCritical: boolean = getDidStartAfterCritical( + id, + afterCritical, + ); + + const isDisplaced: boolean = getIsDisplaced({ + displaced: previousImpact.displaced, + id, + }); + + /* + Only combining when in the combine region + As soon as a boundary is hit then no longer combining + */ + + if (didStartAfterCritical) { + // In original position + // Will combine with item when inside a band + if (isDisplaced) { + return ( + targetEnd > childRect[axis.start] + threshold && + targetEnd < childRect[axis.end] - threshold + ); + } + + // child is now 'displaced' backwards from where it started + // want to combine when we move backwards onto it + return ( + targetStart > childRect[axis.start] - displacement + threshold && + targetStart < childRect[axis.end] - displacement - threshold + ); + } + + // item has moved forwards + if (isDisplaced) { + return ( + targetEnd > childRect[axis.start] + displacement + threshold && + targetEnd < childRect[axis.end] + displacement - threshold + ); + } + + // is in resting position - being moved backwards on to + return ( + targetStart > childRect[axis.start] + threshold && + targetStart < childRect[axis.end] - threshold + ); + }, + ); + + if (!combineWith) { + return null; + } + + const impact: DragImpact = { + // no change to displacement when combining + displacedBy, + displaced: previousImpact.displaced, + at: { + type: 'COMBINE', + combine: { + draggableId: combineWith.descriptor.id, + droppableId: destination.descriptor.id, + }, + }, + }; + return impact; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-drag-impact/get-reorder-impact.js b/node_modules/react-beautiful-dnd/src/state/get-drag-impact/get-reorder-impact.js new file mode 100644 index 00000000..26e2e2c8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-drag-impact/get-reorder-impact.js @@ -0,0 +1,143 @@ +// @flow +import { type Rect } from 'css-box-model'; +import type { + DraggableId, + DraggableDimension, + DroppableDimension, + DragImpact, + Axis, + DisplacementGroups, + Viewport, + DisplacedBy, + LiftEffect, +} from '../../types'; +import getDisplacedBy from '../get-displaced-by'; +import removeDraggableFromList from '../remove-draggable-from-list'; +import isHomeOf from '../droppable/is-home-of'; +import { find } from '../../native-with-fallback'; +import getDidStartAfterCritical from '../did-start-after-critical'; +import calculateReorderImpact from '../calculate-drag-impact/calculate-reorder-impact'; +import getIsDisplaced from '../get-is-displaced'; + +type Args = {| + pageBorderBoxWithDroppableScroll: Rect, + draggable: DraggableDimension, + destination: DroppableDimension, + insideDestination: DraggableDimension[], + last: DisplacementGroups, + viewport: Viewport, + afterCritical: LiftEffect, +|}; + +type AtIndexArgs = {| + draggable: DraggableDimension, + closest: ?DraggableDimension, + inHomeList: boolean, +|}; + +function atIndex({ draggable, closest, inHomeList }: AtIndexArgs): ?number { + if (!closest) { + return null; + } + + if (!inHomeList) { + return closest.descriptor.index; + } + + if (closest.descriptor.index > draggable.descriptor.index) { + return closest.descriptor.index - 1; + } + + return closest.descriptor.index; +} + +export default ({ + pageBorderBoxWithDroppableScroll: targetRect, + draggable, + destination, + insideDestination, + last, + viewport, + afterCritical, +}: Args): DragImpact => { + const axis: Axis = destination.axis; + const displacedBy: DisplacedBy = getDisplacedBy( + destination.axis, + draggable.displaceBy, + ); + const displacement: number = displacedBy.value; + + const targetStart: number = targetRect[axis.start]; + const targetEnd: number = targetRect[axis.end]; + + const withoutDragging: DraggableDimension[] = removeDraggableFromList( + draggable, + insideDestination, + ); + + const closest: ?DraggableDimension = find( + withoutDragging, + (child: DraggableDimension): boolean => { + const id: DraggableId = child.descriptor.id; + const childCenter: number = child.page.borderBox.center[axis.line]; + + const didStartAfterCritical: boolean = getDidStartAfterCritical( + id, + afterCritical, + ); + + const isDisplaced: boolean = getIsDisplaced({ displaced: last, id }); + + /* + Note: we change things when moving *past* the child center - not when it hits the center + If we make it when we *hit* the child center then there can be + a hit on the next update causing a flicker. + + - Update 1: targetBottom hits center => displace backwards + - Update 2: targetStart is now hitting the displaced center => displace forwards + - Update 3: goto 1 (boom) + */ + + if (didStartAfterCritical) { + // Continue to displace while targetEnd before the childCenter + // Move once we *move forward past* the childCenter + if (isDisplaced) { + return targetEnd <= childCenter; + } + + // Has been moved backwards from where it started + // Displace forwards when targetStart *moves backwards past* the displaced childCenter + return targetStart < childCenter - displacement; + } + + // Item has been shifted forward. + // Remove displacement when targetEnd moves forward past the displaced center + if (isDisplaced) { + return targetEnd <= childCenter + displacement; + } + + // Item is behind the dragging item + // We want to displace it if the targetStart goes *backwards past* the childCenter + return targetStart < childCenter; + }, + ); + + const newIndex: ?number = atIndex({ + draggable, + closest, + inHomeList: isHomeOf(draggable, destination), + }); + + // TODO: index cannot be null? + // otherwise return null from there and return empty impact + // that was calculate reorder impact does not need to account for a null index + return calculateReorderImpact({ + draggable, + insideDestination, + destination, + viewport, + last, + displacedBy, + index: newIndex, + }); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-drag-impact/index.js b/node_modules/react-beautiful-dnd/src/state/get-drag-impact/index.js new file mode 100644 index 00000000..bc2e82af --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-drag-impact/index.js @@ -0,0 +1,93 @@ +// @flow +import { type Position, type Rect } from 'css-box-model'; +import type { + DroppableId, + DraggableDimension, + DroppableDimension, + DraggableDimensionMap, + DroppableDimensionMap, + DragImpact, + Viewport, + LiftEffect, +} from '../../types'; +import getDroppableOver from '../get-droppable-over'; +import getDraggablesInsideDroppable from '../get-draggables-inside-droppable'; +import withDroppableScroll from '../with-scroll-change/with-droppable-scroll'; +import getReorderImpact from './get-reorder-impact'; +import getCombineImpact from './get-combine-impact'; +import noImpact from '../no-impact'; +import { offsetRectByPosition } from '../rect'; + +type Args = {| + pageOffset: Position, + draggable: DraggableDimension, + // all dimensions in system + draggables: DraggableDimensionMap, + droppables: DroppableDimensionMap, + previousImpact: DragImpact, + viewport: Viewport, + afterCritical: LiftEffect, +|}; + +export default ({ + pageOffset, + draggable, + draggables, + droppables, + previousImpact, + viewport, + afterCritical, +}: Args): DragImpact => { + const pageBorderBox: Rect = offsetRectByPosition( + draggable.page.borderBox, + pageOffset, + ); + + const destinationId: ?DroppableId = getDroppableOver({ + pageBorderBox, + draggable, + droppables, + }); + + // not dragging over anything + + if (!destinationId) { + // A big design decision was made here to collapse the home list + // when not over any list. This yielded the most consistently beautiful experience. + return noImpact; + } + + const destination: DroppableDimension = droppables[destinationId]; + const insideDestination: DraggableDimension[] = getDraggablesInsideDroppable( + destination.descriptor.id, + draggables, + ); + + // Where the element actually is now. + // Need to take into account the change of scroll in the droppable + const pageBorderBoxWithDroppableScroll: Rect = withDroppableScroll( + destination, + pageBorderBox, + ); + + // checking combine first so we combine before any reordering + return ( + getCombineImpact({ + pageBorderBoxWithDroppableScroll, + draggable, + previousImpact, + destination, + insideDestination, + afterCritical, + }) || + getReorderImpact({ + pageBorderBoxWithDroppableScroll, + draggable, + destination, + insideDestination, + last: previousImpact.displaced, + viewport, + afterCritical, + }) + ); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-draggables-inside-droppable.js b/node_modules/react-beautiful-dnd/src/state/get-draggables-inside-droppable.js new file mode 100644 index 00000000..ab44a2f3 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-draggables-inside-droppable.js @@ -0,0 +1,31 @@ +// @flow +import memoizeOne from 'memoize-one'; +import { toDraggableList } from './dimension-structures'; +import type { + DraggableDimension, + DroppableId, + DraggableDimensionMap, +} from '../types'; + +export default memoizeOne( + ( + // using droppableId to avoid cache busted when we + // update the droppable (such as when it scrolls) + droppableId: DroppableId, + draggables: DraggableDimensionMap, + ): DraggableDimension[] => { + const result = toDraggableList(draggables) + .filter( + (draggable: DraggableDimension): boolean => + droppableId === draggable.descriptor.droppableId, + ) + // Dimensions are not guarenteed to be ordered in the same order as keys + // So we need to sort them so they are in the correct order + .sort( + (a: DraggableDimension, b: DraggableDimension): number => + a.descriptor.index - b.descriptor.index, + ); + + return result; + }, +); diff --git a/node_modules/react-beautiful-dnd/src/state/get-droppable-over.js b/node_modules/react-beautiful-dnd/src/state/get-droppable-over.js new file mode 100644 index 00000000..8c7b9c9d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-droppable-over.js @@ -0,0 +1,158 @@ +// @flow +import { type Position, type Rect } from 'css-box-model'; +import type { + DroppableDimension, + DroppableDimensionMap, + DroppableId, + DraggableDimension, + Axis, +} from '../types'; +import { toDroppableList } from './dimension-structures'; +import isPositionInFrame from './visibility/is-position-in-frame'; +import { distance, patch } from './position'; +import isWithin from './is-within'; + +// https://stackoverflow.com/questions/306316/determine-if-two-rectangles-overlap-each-other +// https://silentmatt.com/rectangle-intersection/ +function getHasOverlap(first: Rect, second: Rect): boolean { + return ( + first.left < second.right && + first.right > second.left && + first.top < second.bottom && + first.bottom > second.top + ); +} + +type Args = {| + pageBorderBox: Rect, + draggable: DraggableDimension, + droppables: DroppableDimensionMap, +|}; + +type WithDistance = {| + distance: number, + id: DroppableId, +|}; + +type GetFurthestArgs = {| + pageBorderBox: Rect, + draggable: DraggableDimension, + candidates: DroppableDimension[], +|}; + +function getFurthestAway({ + pageBorderBox, + draggable, + candidates, +}: GetFurthestArgs): ?DroppableId { + // We are not comparing the center of the home list with the target list as it would + // give preference to giant lists + + // We are measuring the distance from where the draggable started + // to where it is *hitting* the candidate + // Note: The hit point might technically not be in the bounds of the candidate + + const startCenter: Position = draggable.page.borderBox.center; + const sorted: WithDistance[] = candidates + .map((candidate: DroppableDimension): WithDistance => { + const axis: Axis = candidate.axis; + const target: Position = patch( + candidate.axis.line, + // use the current center of the dragging item on the main axis + pageBorderBox.center[axis.line], + // use the center of the list on the cross axis + candidate.page.borderBox.center[axis.crossAxisLine], + ); + + return { + id: candidate.descriptor.id, + distance: distance(startCenter, target), + }; + }) + // largest value will be first + .sort((a: WithDistance, b: WithDistance) => b.distance - a.distance); + + // just being safe + return sorted[0] ? sorted[0].id : null; +} + +export default function getDroppableOver({ + pageBorderBox, + draggable, + droppables, +}: Args): ?DroppableId { + // We know at this point that some overlap has to exist + const candidates: DroppableDimension[] = toDroppableList(droppables).filter( + (item: DroppableDimension): boolean => { + // Cannot be a candidate when disabled + if (!item.isEnabled) { + return false; + } + + // Cannot be a candidate when there is no visible area + const active: ?Rect = item.subject.active; + if (!active) { + return false; + } + + // Cannot be a candidate when dragging item is not over the droppable at all + if (!getHasOverlap(pageBorderBox, active)) { + return false; + } + + // 1. Candidate if the center position is over a droppable + if (isPositionInFrame(active)(pageBorderBox.center)) { + return true; + } + + // 2. Candidate if an edge is over the cross axis half way point + // 3. Candidate if dragging item is totally over droppable on cross axis + + const axis: Axis = item.axis; + const childCenter: number = active.center[axis.crossAxisLine]; + const crossAxisStart: number = pageBorderBox[axis.crossAxisStart]; + const crossAxisEnd: number = pageBorderBox[axis.crossAxisEnd]; + + const isContained = isWithin( + active[axis.crossAxisStart], + active[axis.crossAxisEnd], + ); + + const isStartContained: boolean = isContained(crossAxisStart); + const isEndContained: boolean = isContained(crossAxisEnd); + + // Dragging item is totally covering the active area + if (!isStartContained && !isEndContained) { + return true; + } + + /** + * edges must go beyond the center line in order to avoid + * cases were both conditions are satisfied. + */ + if (isStartContained) { + return crossAxisStart < childCenter; + } + + return crossAxisEnd > childCenter; + }, + ); + + if (!candidates.length) { + return null; + } + + // Only one candidate - use that! + if (candidates.length === 1) { + return candidates[0].descriptor.id; + } + + // Multiple options returned + // Should only occur with really large items + // Going to use fallback: distance from home + return getFurthestAway({ + pageBorderBox, + draggable, + candidates, + }); +} diff --git a/node_modules/react-beautiful-dnd/src/state/get-frame.js b/node_modules/react-beautiful-dnd/src/state/get-frame.js new file mode 100644 index 00000000..55032e82 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-frame.js @@ -0,0 +1,10 @@ +// @flow +import { invariant } from '../invariant'; + +import type { DroppableDimension, Scrollable } from '../types'; + +export default (droppable: DroppableDimension): Scrollable => { + const frame: ?Scrollable = droppable.frame; + invariant(frame, 'Expected Droppable to have a frame'); + return frame; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-home-location.js b/node_modules/react-beautiful-dnd/src/state/get-home-location.js new file mode 100644 index 00000000..d64993b9 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-home-location.js @@ -0,0 +1,7 @@ +// @flow +import type { DraggableDescriptor, DraggableLocation } from '../types'; + +export default (descriptor: DraggableDescriptor): DraggableLocation => ({ + index: descriptor.index, + droppableId: descriptor.droppableId, +}); diff --git a/node_modules/react-beautiful-dnd/src/state/get-impact-location.js b/node_modules/react-beautiful-dnd/src/state/get-impact-location.js new file mode 100644 index 00000000..c1c338aa --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-impact-location.js @@ -0,0 +1,16 @@ +// @flow +import type { DragImpact, DraggableLocation, Combine } from '../types'; + +export function tryGetDestination(impact: DragImpact): ?DraggableLocation { + if (impact.at && impact.at.type === 'REORDER') { + return impact.at.destination; + } + return null; +} + +export function tryGetCombine(impact: DragImpact): ?Combine { + if (impact.at && impact.at.type === 'COMBINE') { + return impact.at.combine; + } + return null; +} diff --git a/node_modules/react-beautiful-dnd/src/state/get-is-displaced.js b/node_modules/react-beautiful-dnd/src/state/get-is-displaced.js new file mode 100644 index 00000000..50b477e5 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-is-displaced.js @@ -0,0 +1,11 @@ +// @flow +import type { DisplacementGroups, DraggableId } from '../types'; + +type Args = {| + displaced: DisplacementGroups, + id: DraggableId, +|}; + +export default function getIsDisplaced({ displaced, id }: Args): boolean { + return Boolean(displaced.visible[id] || displaced.invisible[id]); +} diff --git a/node_modules/react-beautiful-dnd/src/state/get-lift-effect.js b/node_modules/react-beautiful-dnd/src/state/get-lift-effect.js new file mode 100644 index 00000000..fd6e7864 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-lift-effect.js @@ -0,0 +1,82 @@ +// @flow +import { invariant } from '../invariant'; +import getHomeLocation from './get-home-location'; +import type { + DraggableDimension, + DroppableDimension, + DraggableDimensionMap, + DragImpact, + DisplacedBy, + Viewport, + DraggableIdMap, + DisplacementGroups, + LiftEffect, +} from '../types'; +import getDraggablesInsideDroppable from './get-draggables-inside-droppable'; +import getDisplacedBy from './get-displaced-by'; +import getDisplacementGroups from './get-displacement-groups'; + +type Args = {| + draggable: DraggableDimension, + home: DroppableDimension, + draggables: DraggableDimensionMap, + viewport: Viewport, +|}; + +type Result = {| + afterCritical: LiftEffect, + impact: DragImpact, +|}; + +export default ({ draggable, home, draggables, viewport }: Args): Result => { + const displacedBy: DisplacedBy = getDisplacedBy( + home.axis, + draggable.displaceBy, + ); + + const insideHome: DraggableDimension[] = getDraggablesInsideDroppable( + home.descriptor.id, + draggables, + ); + + // in a list that does not start at 0 the descriptor.index might be different from the index in the list + // eg a list could be: [2,3,4]. A descriptor.index of '2' would actually be in index '0' of the list + const rawIndex: number = insideHome.indexOf(draggable); + invariant(rawIndex !== -1, 'Expected draggable to be inside home list'); + + const afterDragging: DraggableDimension[] = insideHome.slice(rawIndex + 1); + const effected: DraggableIdMap = afterDragging.reduce( + (previous: DraggableIdMap, item: DraggableDimension): DraggableIdMap => { + previous[item.descriptor.id] = true; + return previous; + }, + {}, + ); + const afterCritical: LiftEffect = { + inVirtualList: home.descriptor.mode === 'virtual', + displacedBy, + effected, + }; + + const displaced: DisplacementGroups = getDisplacementGroups({ + afterDragging, + destination: home, + displacedBy, + last: null, + viewport: viewport.frame, + // originally we do not want any animation as we want + // everything to be fixed in the same position that + // it started in + forceShouldAnimate: false, + }); + + const impact: DragImpact = { + displaced, + displacedBy, + at: { + type: 'REORDER', + destination: getHomeLocation(draggable.descriptor), + }, + }; + return { impact, afterCritical }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/get-max-scroll.js b/node_modules/react-beautiful-dnd/src/state/get-max-scroll.js new file mode 100644 index 00000000..53cb0382 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/get-max-scroll.js @@ -0,0 +1,30 @@ +// @flow +import { type Position } from 'css-box-model'; +import { subtract } from './position'; + +type Args = {| + scrollHeight: number, + scrollWidth: number, + height: number, + width: number, +|}; +export default ({ + scrollHeight, + scrollWidth, + height, + width, +}: Args): Position => { + const maxScroll: Position = subtract( + // full size + { x: scrollWidth, y: scrollHeight }, + // viewport size + { x: width, y: height }, + ); + + const adjustedMaxScroll: Position = { + x: Math.max(0, maxScroll.x), + y: Math.max(0, maxScroll.y), + }; + + return adjustedMaxScroll; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/is-movement-allowed.js b/node_modules/react-beautiful-dnd/src/state/is-movement-allowed.js new file mode 100644 index 00000000..f6060191 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/is-movement-allowed.js @@ -0,0 +1,6 @@ +// @flow +import type { State } from '../types'; +// Using function declaration as arrow function does not play well with the %checks syntax +export default function isMovementAllowed(state: State): boolean %checks { + return state.phase === 'DRAGGING' || state.phase === 'COLLECTING'; +} diff --git a/node_modules/react-beautiful-dnd/src/state/is-within.js b/node_modules/react-beautiful-dnd/src/state/is-within.js new file mode 100644 index 00000000..b2256dbf --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/is-within.js @@ -0,0 +1,9 @@ +// @flow + +// is a value between two other values + +export default ( + lowerBound: number, + upperBound: number, +): ((number) => boolean) => (value: number): boolean => + lowerBound <= value && value <= upperBound; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/auto-scroll.js b/node_modules/react-beautiful-dnd/src/state/middleware/auto-scroll.js new file mode 100644 index 00000000..b52b573d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/auto-scroll.js @@ -0,0 +1,38 @@ +// @flow +import { invariant } from '../../invariant'; +import type { AutoScroller } from '../auto-scroller/auto-scroller-types'; +import type { Action, Dispatch, MiddlewareStore } from '../store-types'; +import type { State } from '../../types'; + +const shouldStop = (action: Action): boolean => + action.type === 'DROP_COMPLETE' || + action.type === 'DROP_ANIMATE' || + action.type === 'FLUSH'; + +export default (autoScroller: AutoScroller) => (store: MiddlewareStore) => ( + next: Dispatch, +) => (action: Action): any => { + if (shouldStop(action)) { + autoScroller.stop(); + next(action); + return; + } + + if (action.type === 'INITIAL_PUBLISH') { + // letting the action go first to hydrate the state + next(action); + const state: State = store.getState(); + invariant( + state.phase === 'DRAGGING', + 'Expected phase to be DRAGGING after INITIAL_PUBLISH', + ); + autoScroller.start(state); + return; + } + + // auto scroll happens in response to state changes + // releasing all actions to the reducer first + next(action); + + autoScroller.scroll(store.getState()); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/dimension-marshal-stopper.js b/node_modules/react-beautiful-dnd/src/state/middleware/dimension-marshal-stopper.js new file mode 100644 index 00000000..fa59bc4b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/dimension-marshal-stopper.js @@ -0,0 +1,20 @@ +// @flow +import type { Action, Dispatch } from '../store-types'; +import type { DimensionMarshal } from '../dimension-marshal/dimension-marshal-types'; + +export default (marshal: DimensionMarshal) => () => (next: Dispatch) => ( + action: Action, +): any => { + // Not stopping a collection on a 'DROP' as we want a collection to continue + if ( + // drag is finished + action.type === 'DROP_COMPLETE' || + action.type === 'FLUSH' || + // no longer accepting changes once the drop has started + action.type === 'DROP_ANIMATE' + ) { + marshal.stopPublishing(); + } + + next(action); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/drop/drop-animation-finish-middleware.js b/node_modules/react-beautiful-dnd/src/state/middleware/drop/drop-animation-finish-middleware.js new file mode 100644 index 00000000..ef7699e9 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/drop/drop-animation-finish-middleware.js @@ -0,0 +1,21 @@ +// @flow +import { invariant } from '../../../invariant'; +import { completeDrop } from '../../action-creators'; +import type { State } from '../../../types'; +import type { MiddlewareStore, Action, Dispatch } from '../../store-types'; + +export default (store: MiddlewareStore) => (next: Dispatch) => ( + action: Action, +): any => { + if (action.type !== 'DROP_ANIMATION_FINISHED') { + next(action); + return; + } + + const state: State = store.getState(); + invariant( + state.phase === 'DROP_ANIMATING', + 'Cannot finish a drop animating when no drop is occurring', + ); + store.dispatch(completeDrop({ completed: state.completed })); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/drop/drop-animation-flush-on-scroll-middleware.js b/node_modules/react-beautiful-dnd/src/state/middleware/drop/drop-animation-flush-on-scroll-middleware.js new file mode 100644 index 00000000..a12d27e9 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/drop/drop-animation-flush-on-scroll-middleware.js @@ -0,0 +1,63 @@ +// @flow +import { dropAnimationFinished } from '../../action-creators'; +import type { State } from '../../../types'; +import type { MiddlewareStore, Action, Dispatch } from '../../store-types'; +import type { EventBinding } from '../../../view/event-bindings/event-types'; +import bindEvents from '../../../view/event-bindings/bind-events'; + +export default (store: MiddlewareStore) => { + let unbind: ?() => void = null; + let frameId: ?AnimationFrameID = null; + + function clear() { + if (frameId) { + cancelAnimationFrame(frameId); + frameId = null; + } + + if (unbind) { + unbind(); + unbind = null; + } + } + + return (next: Dispatch) => (action: Action): any => { + if ( + action.type === 'FLUSH' || + action.type === 'DROP_COMPLETE' || + action.type === 'DROP_ANIMATION_FINISHED' + ) { + clear(); + } + + next(action); + + if (action.type !== 'DROP_ANIMATE') { + return; + } + + const binding: EventBinding = { + eventName: 'scroll', + // capture: true will catch all scroll events, event from scroll containers + // once: just in case, we only want to ever fire one + options: { capture: true, passive: false, once: true }, + fn: function flushDropAnimation() { + const state: State = store.getState(); + if (state.phase === 'DROP_ANIMATING') { + store.dispatch(dropAnimationFinished()); + } + }, + }; + + // The browser can batch a few scroll events in a single frame + // including the one that ended the drag. + // Binding after a requestAnimationFrame ensures that any scrolls caused + // by the auto scroller are finished + // TODO: why is a second window scroll being fired? + // It leads to funny drop positions :( + frameId = requestAnimationFrame(() => { + frameId = null; + unbind = bindEvents(window, [binding]); + }); + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/drop/drop-middleware.js b/node_modules/react-beautiful-dnd/src/state/middleware/drop/drop-middleware.js new file mode 100644 index 00000000..e8c14ce6 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/drop/drop-middleware.js @@ -0,0 +1,146 @@ +// @flow +import type { Position } from 'css-box-model'; +import { invariant } from '../../../invariant'; +import type { + State, + DropReason, + Critical, + DraggableLocation, + DropResult, + CompletedDrag, + Combine, + DimensionMap, + DraggableDimension, +} from '../../../types'; +import type { MiddlewareStore, Dispatch, Action } from '../../store-types'; +import { + animateDrop, + completeDrop, + dropPending, + type AnimateDropArgs, +} from '../../action-creators'; +import { isEqual } from '../../position'; +import getDropDuration from './get-drop-duration'; +import getNewHomeClientOffset from './get-new-home-client-offset'; +import getDropImpact, { type Result } from './get-drop-impact'; +import { tryGetCombine, tryGetDestination } from '../../get-impact-location'; + +export default ({ getState, dispatch }: MiddlewareStore) => ( + next: Dispatch, +) => (action: Action): any => { + if (action.type !== 'DROP') { + next(action); + return; + } + + const state: State = getState(); + const reason: DropReason = action.payload.reason; + + // Still waiting for a bulk collection to publish + // We are now shifting the application into the 'DROP_PENDING' phase + if (state.phase === 'COLLECTING') { + dispatch(dropPending({ reason })); + return; + } + + // Could have occurred in response to an error + if (state.phase === 'IDLE') { + return; + } + + // Still waiting for our drop pending to end + // TODO: should this throw? + const isWaitingForDrop: boolean = + state.phase === 'DROP_PENDING' && state.isWaiting; + invariant( + !isWaitingForDrop, + 'A DROP action occurred while DROP_PENDING and still waiting', + ); + + invariant( + state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING', + `Cannot drop in phase: ${state.phase}`, + ); + // We are now in the DRAGGING or DROP_PENDING phase + + const critical: Critical = state.critical; + const dimensions: DimensionMap = state.dimensions; + const draggable: DraggableDimension = + dimensions.draggables[state.critical.draggable.id]; + // Only keeping impact when doing a user drop - otherwise we are cancelling + + const { impact, didDropInsideDroppable }: Result = getDropImpact({ + reason, + lastImpact: state.impact, + afterCritical: state.afterCritical, + onLiftImpact: state.onLiftImpact, + home: state.dimensions.droppables[state.critical.droppable.id], + viewport: state.viewport, + draggables: state.dimensions.draggables, + }); + + // only populating destination / combine if 'didDropInsideDroppable' is true + const destination: ?DraggableLocation = didDropInsideDroppable + ? tryGetDestination(impact) + : null; + const combine: ?Combine = didDropInsideDroppable + ? tryGetCombine(impact) + : null; + + const source: DraggableLocation = { + index: critical.draggable.index, + droppableId: critical.droppable.id, + }; + + const result: DropResult = { + draggableId: draggable.descriptor.id, + type: draggable.descriptor.type, + source, + reason, + mode: state.movementMode, + // destination / combine will be null if didDropInsideDroppable is true + destination, + combine, + }; + + const newHomeClientOffset: Position = getNewHomeClientOffset({ + impact, + draggable, + dimensions, + viewport: state.viewport, + afterCritical: state.afterCritical, + }); + + const completed: CompletedDrag = { + critical: state.critical, + afterCritical: state.afterCritical, + result, + impact, + }; + + const isAnimationRequired: boolean = + // 1. not already in the right spot + !isEqual(state.current.client.offset, newHomeClientOffset) || + // 2. doing a combine (we still want to animate the scale and opacity fade) + // looking at the result and not the impact as the combine impact is cleared + Boolean(result.combine); + + if (!isAnimationRequired) { + dispatch(completeDrop({ completed })); + return; + } + + const dropDuration: number = getDropDuration({ + current: state.current.client.offset, + destination: newHomeClientOffset, + reason, + }); + + const args: AnimateDropArgs = { + newHomeClientOffset, + dropDuration, + completed, + }; + + dispatch(animateDrop(args)); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/drop/get-drop-duration.js b/node_modules/react-beautiful-dnd/src/state/middleware/drop/get-drop-duration.js new file mode 100644 index 00000000..ab193ffd --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/drop/get-drop-duration.js @@ -0,0 +1,47 @@ +// @flow +import type { Position } from 'css-box-model'; +import { distance as getDistance } from '../../position'; +import { timings } from '../../../animation'; +import type { DropReason } from '../../../types'; + +type GetDropDurationArgs = {| + current: Position, + destination: Position, + reason: DropReason, +|}; + +const { minDropTime, maxDropTime } = timings; +const dropTimeRange: number = maxDropTime - minDropTime; +const maxDropTimeAtDistance: number = 1500; +// will bring a time lower - which makes it faster +const cancelDropModifier: number = 0.6; + +export default ({ + current, + destination, + reason, +}: GetDropDurationArgs): number => { + const distance: number = getDistance(current, destination); + // even if there is no distance to travel, we might still need to animate opacity + if (distance <= 0) { + return minDropTime; + } + + if (distance >= maxDropTimeAtDistance) { + return maxDropTime; + } + + // * range from: + // 0px = 0.33s + // 1500px and over = 0.55s + // * If reason === 'CANCEL' then speeding up the animation + // * round to 2 decimal points + + const percentage: number = distance / maxDropTimeAtDistance; + const duration: number = minDropTime + dropTimeRange * percentage; + + const withDuration: number = + reason === 'CANCEL' ? duration * cancelDropModifier : duration; + // To two decimal points by converting to string and back + return Number(withDuration.toFixed(2)); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/drop/get-drop-impact.js b/node_modules/react-beautiful-dnd/src/state/middleware/drop/get-drop-impact.js new file mode 100644 index 00000000..30d2b812 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/drop/get-drop-impact.js @@ -0,0 +1,77 @@ +// @flow +import type { + DropReason, + DragImpact, + Viewport, + DroppableDimension, + DraggableDimensionMap, + LiftEffect, +} from '../../../types'; +import recompute from '../../update-displacement-visibility/recompute'; +import { emptyGroups } from '../../no-impact'; + +type Args = {| + draggables: DraggableDimensionMap, + home: DroppableDimension, + reason: DropReason, + lastImpact: DragImpact, + onLiftImpact: DragImpact, + viewport: Viewport, + afterCritical: LiftEffect, +|}; + +export type Result = {| + impact: DragImpact, + didDropInsideDroppable: boolean, +|}; + +export default ({ + draggables, + reason, + lastImpact, + home, + viewport, + onLiftImpact, +}: Args): Result => { + if (!lastImpact.at || reason !== 'DROP') { + // Dropping outside of a list or the drag was cancelled + + // Going to use the on lift impact + // Need to recompute the visibility of the original impact + // What is visible can be different to when the drag started + + const recomputedHomeImpact: DragImpact = recompute({ + draggables, + impact: onLiftImpact, + destination: home, + viewport, + // We need the draggables to animate back to their positions + forceShouldAnimate: true, + }); + + return { + impact: recomputedHomeImpact, + didDropInsideDroppable: false, + }; + } + + // use the existing impact + if (lastImpact.at.type === 'REORDER') { + return { + impact: lastImpact, + didDropInsideDroppable: true, + }; + } + + // When merging we remove the movement so that everything + // will animate closed + const withoutMovement: DragImpact = { + ...lastImpact, + displaced: emptyGroups, + }; + + return { + impact: withoutMovement, + didDropInsideDroppable: true, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/drop/get-new-home-client-offset.js b/node_modules/react-beautiful-dnd/src/state/middleware/drop/get-new-home-client-offset.js new file mode 100644 index 00000000..274be2cf --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/drop/get-new-home-client-offset.js @@ -0,0 +1,54 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + DroppableDimension, + Viewport, + DragImpact, + DimensionMap, + DraggableDimension, + DroppableId, + LiftEffect, +} from '../../../types'; +import whatIsDraggedOver from '../../droppable/what-is-dragged-over'; +import { subtract } from '../../position'; +import getClientBorderBoxCenter from '../../get-center-from-impact/get-client-border-box-center'; + +type Args = {| + impact: DragImpact, + draggable: DraggableDimension, + dimensions: DimensionMap, + viewport: Viewport, + afterCritical: LiftEffect, +|}; + +export default ({ + impact, + draggable, + dimensions, + viewport, + afterCritical, +}: Args): Position => { + const { draggables, droppables } = dimensions; + const droppableId: ?DroppableId = whatIsDraggedOver(impact); + const destination: ?DroppableDimension = droppableId + ? droppables[droppableId] + : null; + const home: DroppableDimension = droppables[draggable.descriptor.droppableId]; + + const newClientCenter: Position = getClientBorderBoxCenter({ + impact, + draggable, + draggables, + // if there is no destination, then we will be dropping back into the home + afterCritical, + droppable: destination || home, + viewport, + }); + + const offset: Position = subtract( + newClientCenter, + draggable.client.borderBox.center, + ); + + return offset; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/drop/index.js b/node_modules/react-beautiful-dnd/src/state/middleware/drop/index.js new file mode 100644 index 00000000..66390e77 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/drop/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './drop-middleware'; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/focus.js b/node_modules/react-beautiful-dnd/src/state/middleware/focus.js new file mode 100644 index 00000000..0dae9d1e --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/focus.js @@ -0,0 +1,42 @@ +// @flow +import type { DropResult } from '../../types'; +import type { Action, Dispatch } from '../store-types'; +import type { FocusMarshal } from '../../view/use-focus-marshal/focus-marshal-types'; + +export default (marshal: FocusMarshal) => { + let isWatching: boolean = false; + + return () => (next: Dispatch) => (action: Action): any => { + if (action.type === 'INITIAL_PUBLISH') { + isWatching = true; + + marshal.tryRecordFocus(action.payload.critical.draggable.id); + next(action); + marshal.tryRestoreFocusRecorded(); + return; + } + + next(action); + + if (!isWatching) { + return; + } + + if (action.type === 'FLUSH') { + isWatching = false; + marshal.tryRestoreFocusRecorded(); + return; + } + + if (action.type === 'DROP_COMPLETE') { + isWatching = false; + const result: DropResult = action.payload.completed.result; + + // give focus to the combine target when combining + if (result.combine) { + marshal.tryShiftRecord(result.draggableId, result.combine.draggableId); + } + marshal.tryRestoreFocusRecorded(); + } + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/lift.js b/node_modules/react-beautiful-dnd/src/state/middleware/lift.js new file mode 100644 index 00000000..b3950c99 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/lift.js @@ -0,0 +1,66 @@ +// @flow +import { invariant } from '../../invariant'; +import type { DimensionMarshal } from '../dimension-marshal/dimension-marshal-types'; +import type { State, ScrollOptions, LiftRequest } from '../../types'; +import type { MiddlewareStore, Action, Dispatch } from '../store-types'; +import { + completeDrop, + initialPublish, + flush, + beforeInitialCapture, +} from '../action-creators'; +import validateDimensions from './util/validate-dimensions'; + +export default (marshal: DimensionMarshal) => ({ + getState, + dispatch, +}: MiddlewareStore) => (next: Dispatch) => (action: Action): any => { + if (action.type !== 'LIFT') { + next(action); + return; + } + const { id, clientSelection, movementMode } = action.payload; + const initial: State = getState(); + + // flush dropping animation if needed + // this can change the descriptor of the dragging item + // Will call the onDragEnd responders + + if (initial.phase === 'DROP_ANIMATING') { + dispatch(completeDrop({ completed: initial.completed })); + } + + invariant(getState().phase === 'IDLE', 'Unexpected phase to start a drag'); + + // Removing any placeholders before we capture any starting dimensions + dispatch(flush()); + + // Let consumers know we are just about to publish + // We are only publishing a small amount of information as + // things might change as a result of the onBeforeCapture callback + dispatch(beforeInitialCapture({ draggableId: id, movementMode })); + + // will communicate with the marshal to start requesting dimensions + const scrollOptions: ScrollOptions = { + shouldPublishImmediately: movementMode === 'SNAP', + }; + const request: LiftRequest = { + draggableId: id, + scrollOptions, + }; + // Let's get the marshal started! + const { critical, dimensions, viewport } = marshal.startPublishing(request); + + validateDimensions(critical, dimensions); + + // Okay, we are good to start dragging now + dispatch( + initialPublish({ + critical, + dimensions, + clientSelection, + movementMode, + viewport, + }), + ); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/pending-drop.js b/node_modules/react-beautiful-dnd/src/state/middleware/pending-drop.js new file mode 100644 index 00000000..2667e051 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/pending-drop.js @@ -0,0 +1,37 @@ +// @flow +import { drop } from '../action-creators'; +import type { State } from '../../types'; +import type { MiddlewareStore, Dispatch, Action } from '../store-types'; + +export default (store: MiddlewareStore) => (next: Dispatch) => ( + action: Action, +): any => { + // Always let the action go through first + next(action); + + if (action.type !== 'PUBLISH_WHILE_DRAGGING') { + return; + } + + // A bulk replace occurred - check if + // 1. there is a pending drop + // 2. that the pending drop is no longer waiting + + const postActionState: State = store.getState(); + + // no pending drop after the publish + if (postActionState.phase !== 'DROP_PENDING') { + return; + } + + // the pending drop is still waiting for completion + if (postActionState.isWaiting) { + return; + } + + store.dispatch( + drop({ + reason: postActionState.reason, + }), + ); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/responders/async-marshal.js b/node_modules/react-beautiful-dnd/src/state/middleware/responders/async-marshal.js new file mode 100644 index 00000000..e6158b10 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/responders/async-marshal.js @@ -0,0 +1,55 @@ +// @flow +import { invariant } from '../../../invariant'; +import { findIndex } from '../../../native-with-fallback'; + +type Entry = {| + timerId: TimeoutID, + callback: Function, +|}; + +export type AsyncMarshal = {| + add: (fn: Function) => void, + flush: () => void, +|}; + +export default () => { + const entries: Entry[] = []; + + const execute = (timerId: TimeoutID) => { + const index: number = findIndex( + entries, + (item: Entry): boolean => item.timerId === timerId, + ); + invariant(index !== -1, 'Could not find timer'); + // delete in place + const [entry] = entries.splice(index, 1); + entry.callback(); + }; + + const add = (fn: Function) => { + const timerId: TimeoutID = setTimeout(() => execute(timerId)); + const entry: Entry = { + timerId, + callback: fn, + }; + entries.push(entry); + }; + + const flush = () => { + // nothing to flush + if (!entries.length) { + return; + } + + const shallow: Entry[] = [...entries]; + // clearing entries in case a callback adds some more callbacks + entries.length = 0; + + shallow.forEach((entry: Entry) => { + clearTimeout(entry.timerId); + entry.callback(); + }); + }; + + return { add, flush }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/responders/expiring-announce.js b/node_modules/react-beautiful-dnd/src/state/middleware/responders/expiring-announce.js new file mode 100644 index 00000000..3259dd74 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/responders/expiring-announce.js @@ -0,0 +1,44 @@ +// @flow +import type { Announce } from '../../../types'; +import { warning } from '../../../dev-warning'; + +export type ExpiringAnnounce = Announce & { + wasCalled: () => boolean, +}; + +export default (announce: Announce): ExpiringAnnounce => { + let wasCalled: boolean = false; + let isExpired: boolean = false; + + // not allowing async announcements + const timeoutId: TimeoutID = setTimeout(() => { + isExpired = true; + }); + + const result = (message: string): void => { + if (wasCalled) { + warning('Announcement already made. Not making a second announcement'); + + return; + } + + if (isExpired) { + warning(` + Announcements cannot be made asynchronously. + Default message has already been announced. + `); + return; + } + + wasCalled = true; + announce(message); + clearTimeout(timeoutId); + }; + + // getter for isExpired + // using this technique so that a consumer cannot + // set the isExpired or wasCalled flags + result.wasCalled = (): boolean => wasCalled; + + return result; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/responders/index.js b/node_modules/react-beautiful-dnd/src/state/middleware/responders/index.js new file mode 100644 index 00000000..6b1cb72a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/responders/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './responders-middleware'; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/responders/is-equal.js b/node_modules/react-beautiful-dnd/src/state/middleware/responders/is-equal.js new file mode 100644 index 00000000..db4e7c9c --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/responders/is-equal.js @@ -0,0 +1,57 @@ +// @flow +import type { Critical, DraggableLocation, Combine } from '../../../types'; + +export const areLocationsEqual = ( + first: ?DraggableLocation, + second: ?DraggableLocation, +): boolean => { + // if both are null - we are equal + if (first == null && second == null) { + return true; + } + + // if one is null - then they are not equal + if (first == null || second == null) { + return false; + } + + // compare their actual values + return ( + first.droppableId === second.droppableId && first.index === second.index + ); +}; + +export const isCombineEqual = (first: ?Combine, second: ?Combine): boolean => { + // if both are null - we are equal + if (first == null && second == null) { + return true; + } + + // only one is null + if (first == null || second == null) { + return false; + } + + return ( + first.draggableId === second.draggableId && + first.droppableId === second.droppableId + ); +}; + +export const isCriticalEqual = (first: Critical, second: Critical): boolean => { + if (first === second) { + return true; + } + + const isDraggableEqual: boolean = + first.draggable.id === second.draggable.id && + first.draggable.droppableId === second.draggable.droppableId && + first.draggable.type === second.draggable.type && + first.draggable.index === second.draggable.index; + + const isDroppableEqual: boolean = + first.droppable.id === second.droppable.id && + first.droppable.type === second.droppable.type; + + return isDraggableEqual && isDroppableEqual; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/responders/publisher.js b/node_modules/react-beautiful-dnd/src/state/middleware/responders/publisher.js new file mode 100644 index 00000000..6f333ee0 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/responders/publisher.js @@ -0,0 +1,253 @@ +// @flow +import { invariant } from '../../../invariant'; +import messagePreset from '../../../screen-reader-message-preset'; +import * as timings from '../../../debug/timings'; +import getExpiringAnnounce, { + type ExpiringAnnounce, +} from './expiring-announce'; +import getAsyncMarshal, { type AsyncMarshal } from './async-marshal'; +import type { + DropResult, + Responders, + ResponderProvided, + Critical, + BeforeCapture, + DragImpact, + DraggableLocation, + Combine, + DragStart, + Announce, + DragUpdate, + MovementMode, + DraggableId, + OnBeforeCaptureResponder, + OnBeforeDragStartResponder, + OnDragStartResponder, + OnDragUpdateResponder, + OnDragEndResponder, +} from '../../../types'; +import { isCombineEqual, isCriticalEqual, areLocationsEqual } from './is-equal'; +import { tryGetDestination, tryGetCombine } from '../../get-impact-location'; + +const withTimings = (key: string, fn: Function) => { + timings.start(key); + fn(); + timings.finish(key); +}; + +const getDragStart = (critical: Critical, mode: MovementMode): DragStart => ({ + draggableId: critical.draggable.id, + type: critical.droppable.type, + source: { + droppableId: critical.droppable.id, + index: critical.draggable.index, + }, + mode, +}); + +type AnyPrimaryResponderFn = + | OnDragStartResponder + | OnDragUpdateResponder + | OnDragEndResponder; +type AnyResponderData = DragStart | DragUpdate | DropResult; + +const execute = ( + responder: ?AnyPrimaryResponderFn, + data: AnyResponderData, + announce: Announce, + getDefaultMessage: (data: any) => string, +) => { + if (!responder) { + announce(getDefaultMessage(data)); + return; + } + + const willExpire: ExpiringAnnounce = getExpiringAnnounce(announce); + const provided: ResponderProvided = { + announce: willExpire, + }; + + // Casting because we are not validating which data type is going into which responder + responder((data: any), provided); + + if (!willExpire.wasCalled()) { + announce(getDefaultMessage(data)); + } +}; + +type WhileDragging = {| + mode: MovementMode, + lastCritical: Critical, + lastCombine: ?Combine, + lastLocation: ?DraggableLocation, +|}; + +export default (getResponders: () => Responders, announce: Announce) => { + const asyncMarshal: AsyncMarshal = getAsyncMarshal(); + let dragging: ?WhileDragging = null; + + const beforeCapture = (draggableId: DraggableId, mode: MovementMode) => { + invariant( + !dragging, + 'Cannot fire onBeforeCapture as a drag start has already been published', + ); + withTimings('onBeforeCapture', () => { + // No use of screen reader for this responder + const fn: ?OnBeforeCaptureResponder = getResponders().onBeforeCapture; + if (fn) { + const before: BeforeCapture = { + draggableId, + mode, + }; + fn(before); + } + }); + }; + + const beforeStart = (critical: Critical, mode: MovementMode) => { + invariant( + !dragging, + 'Cannot fire onBeforeDragStart as a drag start has already been published', + ); + withTimings('onBeforeDragStart', () => { + // No use of screen reader for this responder + const fn: ?OnBeforeDragStartResponder = getResponders().onBeforeDragStart; + if (fn) { + fn(getDragStart(critical, mode)); + } + }); + }; + + const start = (critical: Critical, mode: MovementMode) => { + invariant( + !dragging, + 'Cannot fire onBeforeDragStart as a drag start has already been published', + ); + const data: DragStart = getDragStart(critical, mode); + dragging = { + mode, + lastCritical: critical, + lastLocation: data.source, + lastCombine: null, + }; + + // we will flush this frame if we receive any responder updates + asyncMarshal.add(() => { + withTimings('onDragStart', () => + execute( + getResponders().onDragStart, + data, + announce, + messagePreset.onDragStart, + ), + ); + }); + }; + + // Passing in the critical location again as it can change during a drag + const update = (critical: Critical, impact: DragImpact) => { + const location: ?DraggableLocation = tryGetDestination(impact); + const combine: ?Combine = tryGetCombine(impact); + + invariant( + dragging, + 'Cannot fire onDragMove when onDragStart has not been called', + ); + + // Has the critical changed? Will result in a source change + const hasCriticalChanged: boolean = !isCriticalEqual( + critical, + dragging.lastCritical, + ); + if (hasCriticalChanged) { + dragging.lastCritical = critical; + } + + // Has the location changed? Will result in a destination change + const hasLocationChanged: boolean = !areLocationsEqual( + dragging.lastLocation, + location, + ); + if (hasLocationChanged) { + dragging.lastLocation = location; + } + const hasGroupingChanged: boolean = !isCombineEqual( + dragging.lastCombine, + combine, + ); + if (hasGroupingChanged) { + dragging.lastCombine = combine; + } + + // Nothing has changed - no update needed + if (!hasCriticalChanged && !hasLocationChanged && !hasGroupingChanged) { + return; + } + + const data: DragUpdate = { + ...getDragStart(critical, dragging.mode), + combine, + destination: location, + }; + + asyncMarshal.add(() => { + withTimings('onDragUpdate', () => + execute( + getResponders().onDragUpdate, + data, + announce, + messagePreset.onDragUpdate, + ), + ); + }); + }; + + const flush = () => { + invariant(dragging, 'Can only flush responders while dragging'); + asyncMarshal.flush(); + }; + + const drop = (result: DropResult) => { + invariant( + dragging, + 'Cannot fire onDragEnd when there is no matching onDragStart', + ); + dragging = null; + // not adding to frame marshal - we want this to be done in the same render pass + // we also want the consumers reorder logic to be in the same render pass + withTimings('onDragEnd', () => + execute( + getResponders().onDragEnd, + result, + announce, + messagePreset.onDragEnd, + ), + ); + }; + + // A non user initiated cancel + const abort = () => { + // aborting can happen defensively + if (!dragging) { + return; + } + + const result: DropResult = { + ...getDragStart(dragging.lastCritical, dragging.mode), + combine: null, + destination: null, + reason: 'CANCEL', + }; + drop(result); + }; + + return { + beforeCapture, + beforeStart, + start, + update, + flush, + drop, + abort, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/responders/responders-middleware.js b/node_modules/react-beautiful-dnd/src/state/middleware/responders/responders-middleware.js new file mode 100644 index 00000000..147d95d7 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/responders/responders-middleware.js @@ -0,0 +1,75 @@ +// @flow +import getPublisher from './publisher'; +import type { + State, + DropResult, + Responders, + Critical, + Announce, +} from '../../../types'; +import type { + Action, + Middleware, + MiddlewareStore, + Dispatch, +} from '../../store-types'; + +export default ( + getResponders: () => Responders, + announce: Announce, +): Middleware => { + const publisher = getPublisher( + (getResponders: () => Responders), + (announce: Announce), + ); + + return (store: MiddlewareStore) => (next: Dispatch) => ( + action: Action, + ): any => { + if (action.type === 'BEFORE_INITIAL_CAPTURE') { + publisher.beforeCapture( + action.payload.draggableId, + action.payload.movementMode, + ); + return; + } + + if (action.type === 'INITIAL_PUBLISH') { + const critical: Critical = action.payload.critical; + publisher.beforeStart(critical, action.payload.movementMode); + next(action); + publisher.start(critical, action.payload.movementMode); + return; + } + + // Drag end + if (action.type === 'DROP_COMPLETE') { + // it is important that we use the result and not the last impact + // the last impact might be different to the result for visual reasons + const result: DropResult = action.payload.completed.result; + // flushing all pending responders before snapshots are updated + publisher.flush(); + next(action); + publisher.drop(result); + return; + } + + // All other responders can fire after we have updated our connected components + next(action); + + // Drag state resetting - need to check if + // we should fire a onDragEnd responder + if (action.type === 'FLUSH') { + publisher.abort(); + return; + } + + // ## Perform drag updates + // impact of action has already been reduced + + const state: State = store.getState(); + if (state.phase === 'DRAGGING') { + publisher.update(state.critical, state.impact); + } + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/scroll-listener.js b/node_modules/react-beautiful-dnd/src/state/middleware/scroll-listener.js new file mode 100644 index 00000000..aeae91f4 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/scroll-listener.js @@ -0,0 +1,31 @@ +// @flow +import type { Position } from 'css-box-model'; +import { moveByWindowScroll } from '../action-creators'; +import type { MiddlewareStore, Action, Dispatch } from '../store-types'; +import getScrollListener from '../../view/scroll-listener'; + +// TODO: this is taken from auto-scroll. Let's make it a util +const shouldEnd = (action: Action): boolean => + action.type === 'DROP_COMPLETE' || + action.type === 'DROP_ANIMATE' || + action.type === 'FLUSH'; + +export default (store: MiddlewareStore) => { + const listener = getScrollListener({ + onWindowScroll: (newScroll: Position) => { + store.dispatch(moveByWindowScroll({ newScroll })); + }, + }); + + return (next: Dispatch) => (action: Action): any => { + if (!listener.isActive() && action.type === 'INITIAL_PUBLISH') { + listener.start(); + } + + if (listener.isActive() && shouldEnd(action)) { + listener.stop(); + } + + next(action); + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/style.js b/node_modules/react-beautiful-dnd/src/state/middleware/style.js new file mode 100644 index 00000000..1f1b5376 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/style.js @@ -0,0 +1,22 @@ +// @flow +import type { Action, Dispatch } from '../store-types'; +import type { StyleMarshal } from '../../view/use-style-marshal/style-marshal-types'; + +export default (marshal: StyleMarshal) => () => (next: Dispatch) => ( + action: Action, +): any => { + if (action.type === 'INITIAL_PUBLISH') { + marshal.dragging(); + } + + if (action.type === 'DROP_ANIMATE') { + marshal.dropping(action.payload.completed.result.reason); + } + + // this will clear any styles immediately before a reorder + if (action.type === 'FLUSH' || action.type === 'DROP_COMPLETE') { + marshal.resting(); + } + + next(action); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/middleware/util/validate-dimensions.js b/node_modules/react-beautiful-dnd/src/state/middleware/util/validate-dimensions.js new file mode 100644 index 00000000..98e6f7da --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/middleware/util/validate-dimensions.js @@ -0,0 +1,71 @@ +// @flow +import type { + Critical, + DimensionMap, + DraggableDimension, +} from '../../../types'; +import getDraggablesInsideDroppable from '../../get-draggables-inside-droppable'; +import { warning } from '../../../dev-warning'; + +type ErrorMap = { + [index: number]: true, +}; + +function checkIndexes(insideDestination: DraggableDimension[]) { + // no point running if there are 1 or less items + if (insideDestination.length <= 1) { + return; + } + + const indexes: number[] = insideDestination.map( + (d: DraggableDimension): number => d.descriptor.index, + ); + + const errors: ErrorMap = {}; + + for (let i = 1; i < indexes.length; i++) { + const current: number = indexes[i]; + const previous: number = indexes[i - 1]; + + // this will be an error if: + // 1. index is not consecutive + // 2. index is duplicated (which is true if #1 is not passed) + if (current !== previous + 1) { + errors[current] = true; + } + } + + if (!Object.keys(errors).length) { + return; + } + + const formatted: string = indexes + .map((index: number): string => { + const hasError: boolean = Boolean(errors[index]); + + return hasError ? `[🔥${index}]` : `${index}`; + }) + .join(', '); + + warning(` + Detected non-consecutive indexes. + + (This can cause unexpected bugs) + + ${formatted} + `); +} + +export default function validateDimensions( + critical: Critical, + dimensions: DimensionMap, +): void { + // wrapping entire block for better minification + if (process.env.NODE_ENV !== 'production') { + const insideDestination: DraggableDimension[] = getDraggablesInsideDroppable( + critical.droppable.id, + dimensions.draggables, + ); + checkIndexes(insideDestination); + } +} diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/index.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/index.js new file mode 100644 index 00000000..7080aa19 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/index.js @@ -0,0 +1,84 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { PublicResult } from './move-in-direction-types'; +import type { + DroppableId, + DraggingState, + Direction, + DroppableDimension, + DraggableDimension, + DroppableDimensionMap, + DragImpact, +} from '../../types'; +import moveToNextPlace from './move-to-next-place'; +import moveCrossAxis from './move-cross-axis'; +import whatIsDraggedOver from '../droppable/what-is-dragged-over'; + +type Args = {| + state: DraggingState, + type: 'MOVE_UP' | 'MOVE_RIGHT' | 'MOVE_DOWN' | 'MOVE_LEFT', +|}; + +const getDroppableOver = ( + impact: DragImpact, + droppables: DroppableDimensionMap, +): ?DroppableDimension => { + const id: ?DroppableId = whatIsDraggedOver(impact); + return id ? droppables[id] : null; +}; + +export default ({ state, type }: Args): ?PublicResult => { + const isActuallyOver: ?DroppableDimension = getDroppableOver( + state.impact, + state.dimensions.droppables, + ); + const isMainAxisMovementAllowed: boolean = Boolean(isActuallyOver); + const home: DroppableDimension = + state.dimensions.droppables[state.critical.droppable.id]; + // use home when not actually over a droppable (can happen when move is disabled) + const isOver: DroppableDimension = isActuallyOver || home; + + const direction: Direction = isOver.axis.direction; + const isMovingOnMainAxis: boolean = + (direction === 'vertical' && + (type === 'MOVE_UP' || type === 'MOVE_DOWN')) || + (direction === 'horizontal' && + (type === 'MOVE_LEFT' || type === 'MOVE_RIGHT')); + + // This movement is not permitted right now + if (isMovingOnMainAxis && !isMainAxisMovementAllowed) { + return null; + } + + const isMovingForward: boolean = + type === 'MOVE_DOWN' || type === 'MOVE_RIGHT'; + + const draggable: DraggableDimension = + state.dimensions.draggables[state.critical.draggable.id]; + const previousPageBorderBoxCenter: Position = + state.current.page.borderBoxCenter; + const { draggables, droppables } = state.dimensions; + + return isMovingOnMainAxis + ? moveToNextPlace({ + isMovingForward, + previousPageBorderBoxCenter, + draggable, + destination: isOver, + draggables, + viewport: state.viewport, + previousClientSelection: state.current.client.selection, + previousImpact: state.impact, + afterCritical: state.afterCritical, + }) + : moveCrossAxis({ + isMovingForward, + previousPageBorderBoxCenter, + draggable, + isOver, + draggables, + droppables, + viewport: state.viewport, + afterCritical: state.afterCritical, + }); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/get-best-cross-axis-droppable.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/get-best-cross-axis-droppable.js new file mode 100644 index 00000000..6f732bb5 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/get-best-cross-axis-droppable.js @@ -0,0 +1,168 @@ +// @flow +import { type Position, type Rect } from 'css-box-model'; +import { invariant } from '../../../invariant'; +import { closest } from '../../position'; +import isWithin from '../../is-within'; +import { getCorners } from '../../spacing'; +import isPartiallyVisibleThroughFrame from '../../visibility/is-partially-visible-through-frame'; +import { toDroppableList } from '../../dimension-structures'; +import type { + Axis, + DroppableDimension, + DroppableDimensionMap, + Viewport, +} from '../../../types'; + +type GetBestDroppableArgs = {| + isMovingForward: boolean, + // the current position of the dragging item + pageBorderBoxCenter: Position, + // the home of the draggable + source: DroppableDimension, + // all the droppables in the system + droppables: DroppableDimensionMap, + viewport: Viewport, +|}; + +const getKnownActive = (droppable: DroppableDimension): Rect => { + const rect: ?Rect = droppable.subject.active; + + invariant(rect, 'Cannot get clipped area from droppable'); + + return rect; +}; + +export default ({ + isMovingForward, + pageBorderBoxCenter, + source, + droppables, + viewport, +}: GetBestDroppableArgs): ?DroppableDimension => { + const active: ?Rect = source.subject.active; + + if (!active) { + return null; + } + + const axis: Axis = source.axis; + const isBetweenSourceClipped = isWithin(active[axis.start], active[axis.end]); + const candidates: DroppableDimension[] = toDroppableList(droppables) + // Remove the source droppable from the list + .filter((droppable: DroppableDimension): boolean => droppable !== source) + // Remove any options that are not enabled + .filter((droppable: DroppableDimension): boolean => droppable.isEnabled) + // Remove any droppables that do not have a visible subject + .filter((droppable: DroppableDimension): boolean => + Boolean(droppable.subject.active), + ) + // Remove any that are not visible in the window + .filter((droppable: DroppableDimension): boolean => + isPartiallyVisibleThroughFrame(viewport.frame)(getKnownActive(droppable)), + ) + .filter((droppable: DroppableDimension): boolean => { + const activeOfTarget: Rect = getKnownActive(droppable); + + // is the target in front of the source on the cross axis? + if (isMovingForward) { + return active[axis.crossAxisEnd] < activeOfTarget[axis.crossAxisEnd]; + } + // is the target behind the source on the cross axis? + return activeOfTarget[axis.crossAxisStart] < active[axis.crossAxisStart]; + }) + // Must have some overlap on the main axis + .filter((droppable: DroppableDimension): boolean => { + const activeOfTarget: Rect = getKnownActive(droppable); + + const isBetweenDestinationClipped = isWithin( + activeOfTarget[axis.start], + activeOfTarget[axis.end], + ); + + return ( + isBetweenSourceClipped(activeOfTarget[axis.start]) || + isBetweenSourceClipped(activeOfTarget[axis.end]) || + isBetweenDestinationClipped(active[axis.start]) || + isBetweenDestinationClipped(active[axis.end]) + ); + }) + // Sort on the cross axis + .sort((a: DroppableDimension, b: DroppableDimension) => { + const first: number = getKnownActive(a)[axis.crossAxisStart]; + const second: number = getKnownActive(b)[axis.crossAxisStart]; + + if (isMovingForward) { + return first - second; + } + return second - first; + }) + // Find the droppables that have the same cross axis value as the first item + .filter( + ( + droppable: DroppableDimension, + index: number, + array: DroppableDimension[], + ): boolean => + getKnownActive(droppable)[axis.crossAxisStart] === + getKnownActive(array[0])[axis.crossAxisStart], + ); + + // no possible candidates + if (!candidates.length) { + return null; + } + + // only one result - all done! + if (candidates.length === 1) { + return candidates[0]; + } + + // At this point we have a number of candidates that + // all have the same axis.crossAxisStart value. + + // Check to see if the center position is within the size of a Droppable on the main axis + const contains: DroppableDimension[] = candidates.filter( + (droppable: DroppableDimension) => { + const isWithinDroppable = isWithin( + getKnownActive(droppable)[axis.start], + getKnownActive(droppable)[axis.end], + ); + return isWithinDroppable(pageBorderBoxCenter[axis.line]); + }, + ); + + if (contains.length === 1) { + return contains[0]; + } + + // The center point of the draggable falls on the boundary between two droppables + if (contains.length > 1) { + // sort on the main axis and choose the first + return contains.sort( + (a: DroppableDimension, b: DroppableDimension): number => + getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start], + )[0]; + } + + // The center is not contained within any droppable + // 1. Find the candidate that has the closest corner + // 2. If there is a tie - choose the one that is first on the main axis + return candidates.sort( + (a: DroppableDimension, b: DroppableDimension): number => { + const first = closest(pageBorderBoxCenter, getCorners(getKnownActive(a))); + const second = closest( + pageBorderBoxCenter, + getCorners(getKnownActive(b)), + ); + + // if the distances are not equal - choose the shortest + if (first !== second) { + return first - second; + } + + // They both have the same distance - + // choose the one that is first on the main axis + return getKnownActive(a)[axis.start] - getKnownActive(b)[axis.start]; + }, + )[0]; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/get-closest-draggable.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/get-closest-draggable.js new file mode 100644 index 00000000..2518bf11 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/get-closest-draggable.js @@ -0,0 +1,79 @@ +// @flow +import { type Position } from 'css-box-model'; +import type { + Viewport, + DraggableDimension, + DroppableDimension, + LiftEffect, +} from '../../../types'; +import { distance } from '../../position'; +import { isTotallyVisible } from '../../visibility/is-visible'; +import withDroppableDisplacement from '../../with-scroll-change/with-droppable-displacement'; +import { + getCurrentPageBorderBox, + getCurrentPageBorderBoxCenter, +} from './without-starting-displacement'; + +type Args = {| + pageBorderBoxCenter: Position, + viewport: Viewport, + // the droppable that is being moved to + destination: DroppableDimension, + // the droppables inside the destination + insideDestination: DraggableDimension[], + afterCritical: LiftEffect, +|}; + +export default ({ + pageBorderBoxCenter, + viewport, + destination, + insideDestination, + afterCritical, +}: Args): ?DraggableDimension => { + const sorted: DraggableDimension[] = insideDestination + .filter((draggable: DraggableDimension): boolean => + // Allowing movement to draggables that are not visible in the viewport + // but must be visible in the droppable + // We can improve this, but this limitation is easier for now + isTotallyVisible({ + target: getCurrentPageBorderBox(draggable, afterCritical), + destination, + viewport: viewport.frame, + withDroppableDisplacement: true, + }), + ) + .sort((a: DraggableDimension, b: DraggableDimension): number => { + // Need to consider the change in scroll in the destination + const distanceToA = distance( + pageBorderBoxCenter, + withDroppableDisplacement( + destination, + getCurrentPageBorderBoxCenter(a, afterCritical), + ), + ); + const distanceToB = distance( + pageBorderBoxCenter, + withDroppableDisplacement( + destination, + getCurrentPageBorderBoxCenter(b, afterCritical), + ), + ); + + // if a is closer - return a + if (distanceToA < distanceToB) { + return -1; + } + + // if b is closer - return b + if (distanceToB < distanceToA) { + return 1; + } + + // if the distance to a and b are the same: + // return the one with the lower index (it will be higher on the main axis) + return a.descriptor.index - b.descriptor.index; + }); + + return sorted[0] || null; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/index.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/index.js new file mode 100644 index 00000000..e87ede0f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/index.js @@ -0,0 +1,109 @@ +// @flow +import { type Position } from 'css-box-model'; +import type { PublicResult } from '../move-in-direction-types'; +import type { + DroppableDimension, + DraggableDimension, + DraggableDimensionMap, + DroppableDimensionMap, + DragImpact, + Viewport, + LiftEffect, +} from '../../../types'; +import getBestCrossAxisDroppable from './get-best-cross-axis-droppable'; +import getClosestDraggable from './get-closest-draggable'; +// import moveToNewDroppable from './move-to-new-droppable'; +import getDraggablesInsideDroppable from '../../get-draggables-inside-droppable'; +import getClientFromPageBorderBoxCenter from '../../get-center-from-impact/get-client-border-box-center/get-client-from-page-border-box-center'; +import getPageBorderBoxCenter from '../../get-center-from-impact/get-page-border-box-center'; +import moveToNewDroppable from './move-to-new-droppable'; + +type Args = {| + isMovingForward: boolean, + // the current page center of the dragging item + previousPageBorderBoxCenter: Position, + // the dragging item + draggable: DraggableDimension, + // the droppable the dragging item is in + isOver: DroppableDimension, + // all the dimensions in the system + draggables: DraggableDimensionMap, + droppables: DroppableDimensionMap, + // the current viewport + viewport: Viewport, + afterCritical: LiftEffect, +|}; + +export default ({ + isMovingForward, + previousPageBorderBoxCenter, + draggable, + isOver, + draggables, + droppables, + viewport, + afterCritical, +}: Args): ?PublicResult => { + // not considering the container scroll changes as container scrolling cancels a keyboard drag + + const destination: ?DroppableDimension = getBestCrossAxisDroppable({ + isMovingForward, + pageBorderBoxCenter: previousPageBorderBoxCenter, + source: isOver, + droppables, + viewport, + }); + + // nothing available to move to + if (!destination) { + return null; + } + + const insideDestination: DraggableDimension[] = getDraggablesInsideDroppable( + destination.descriptor.id, + draggables, + ); + + const moveRelativeTo: ?DraggableDimension = getClosestDraggable({ + pageBorderBoxCenter: previousPageBorderBoxCenter, + viewport, + destination, + insideDestination, + afterCritical, + }); + + const impact: ?DragImpact = moveToNewDroppable({ + previousPageBorderBoxCenter, + destination, + draggable, + draggables, + moveRelativeTo, + insideDestination, + viewport, + afterCritical, + }); + + if (!impact) { + return null; + } + + const pageBorderBoxCenter: Position = getPageBorderBoxCenter({ + impact, + draggable, + droppable: destination, + draggables, + afterCritical, + }); + + const clientSelection: Position = getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter, + draggable, + viewport, + }); + + return { + clientSelection, + impact, + scrollJumpRequest: null, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/move-to-new-droppable.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/move-to-new-droppable.js new file mode 100644 index 00000000..1b706cfa --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/move-to-new-droppable.js @@ -0,0 +1,121 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + DragImpact, + DraggableDimension, + DraggableDimensionMap, + DroppableDimension, + Viewport, + DisplacedBy, + LiftEffect, +} from '../../../types'; +import getDisplacedBy from '../../get-displaced-by'; +import { emptyGroups, noDisplacedBy } from '../../no-impact'; +import getPageBorderBoxCenter from '../../get-center-from-impact/get-page-border-box-center'; +import isTotallyVisibleInNewLocation from '../move-to-next-place/is-totally-visible-in-new-location'; +import { addPlaceholder } from '../../droppable/with-placeholder'; +import isHomeOf from '../../droppable/is-home-of'; +import calculateReorderImpact from '../../calculate-drag-impact/calculate-reorder-impact'; + +type Args = {| + previousPageBorderBoxCenter: Position, + moveRelativeTo: ?DraggableDimension, + insideDestination: DraggableDimension[], + draggable: DraggableDimension, + draggables: DraggableDimensionMap, + destination: DroppableDimension, + viewport: Viewport, + afterCritical: LiftEffect, +|}; + +export default ({ + previousPageBorderBoxCenter, + moveRelativeTo, + insideDestination, + draggable, + draggables, + destination, + viewport, + afterCritical, +}: Args): ?DragImpact => { + if (!moveRelativeTo) { + // Draggables available, but none are candidates for movement + if (insideDestination.length) { + return null; + } + + // Try move to top of empty list if it is visible + const proposed: DragImpact = { + displaced: emptyGroups, + displacedBy: noDisplacedBy, + at: { + type: 'REORDER', + destination: { + droppableId: destination.descriptor.id, + index: 0, + }, + }, + }; + const proposedPageBorderBoxCenter: Position = getPageBorderBoxCenter({ + impact: proposed, + draggable, + droppable: destination, + draggables, + afterCritical, + }); + + // need to add room for a placeholder in a foreign list + const withPlaceholder: DroppableDimension = isHomeOf(draggable, destination) + ? destination + : addPlaceholder(destination, draggable, draggables); + + const isVisibleInNewLocation: boolean = isTotallyVisibleInNewLocation({ + draggable, + destination: withPlaceholder, + newPageBorderBoxCenter: proposedPageBorderBoxCenter, + viewport: viewport.frame, + // already taken into account by getPageBorderBoxCenter + withDroppableDisplacement: false, + onlyOnMainAxis: true, + }); + + return isVisibleInNewLocation ? proposed : null; + } + + const isGoingBeforeTarget: boolean = Boolean( + // Using <= as we optimise slightly for moving before items in a new list + // This is nicer in lists with fixed height items + previousPageBorderBoxCenter[destination.axis.line] <= + moveRelativeTo.page.borderBox.center[destination.axis.line], + ); + + const proposedIndex: number = (() => { + const relativeTo: number = moveRelativeTo.descriptor.index; + + if (moveRelativeTo.descriptor.id === draggable.descriptor.id) { + return relativeTo; + } + + if (isGoingBeforeTarget) { + return relativeTo; + } + + return relativeTo + 1; + })(); + + const displacedBy: DisplacedBy = getDisplacedBy( + destination.axis, + draggable.displaceBy, + ); + + return calculateReorderImpact({ + draggable, + insideDestination, + destination, + viewport, + displacedBy, + // last groups won't be relevant + last: emptyGroups, + index: proposedIndex, + }); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/without-starting-displacement.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/without-starting-displacement.js new file mode 100644 index 00000000..fdcff6f0 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-cross-axis/without-starting-displacement.js @@ -0,0 +1,31 @@ +// @flow +import type { Position, Rect, Spacing } from 'css-box-model'; +import type { DraggableDimension, LiftEffect } from '../../../types'; +import { negate, subtract } from '../../position'; +import { offsetByPosition } from '../../spacing'; +import didStartAfterCritical from '../../did-start-after-critical'; + +export const getCurrentPageBorderBoxCenter = ( + draggable: DraggableDimension, + afterCritical: LiftEffect, +): Position => { + // If an item started displaced it is now resting + // in a non-displaced location + const original: Position = draggable.page.borderBox.center; + return didStartAfterCritical(draggable.descriptor.id, afterCritical) + ? subtract(original, afterCritical.displacedBy.point) + : original; +}; + +export const getCurrentPageBorderBox = ( + draggable: DraggableDimension, + afterCritical: LiftEffect, +): Spacing => { + // If an item started displaced it is now resting + // in a non-displaced location + const original: Rect = draggable.page.borderBox; + + return didStartAfterCritical(draggable.descriptor.id, afterCritical) + ? offsetByPosition(original, negate(afterCritical.displacedBy.point)) + : original; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-in-direction-types.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-in-direction-types.js new file mode 100644 index 00000000..e0a9a44f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-in-direction-types.js @@ -0,0 +1,9 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { DragImpact } from '../../types'; + +export type PublicResult = {| + clientSelection: Position, + impact: DragImpact, + scrollJumpRequest: ?Position, +|}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/index.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/index.js new file mode 100644 index 00000000..a06be6f8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/index.js @@ -0,0 +1,132 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + DroppableDimension, + DraggableDimension, + DraggableDimensionMap, + DragImpact, + Viewport, + LiftEffect, +} from '../../../types'; +import type { PublicResult } from '../move-in-direction-types'; +import getDraggablesInsideDroppable from '../../get-draggables-inside-droppable'; +import moveToNextCombine from './move-to-next-combine'; +import moveToNextIndex from './move-to-next-index'; +import isHomeOf from '../../droppable/is-home-of'; +import getPageBorderBoxCenter from '../../get-center-from-impact/get-page-border-box-center'; +import speculativelyIncrease from '../../update-displacement-visibility/speculatively-increase'; +import getClientFromPageBorderBoxCenter from '../../get-center-from-impact/get-client-border-box-center/get-client-from-page-border-box-center'; +import { subtract } from '../../position'; +import isTotallyVisibleInNewLocation from './is-totally-visible-in-new-location'; + +type Args = {| + isMovingForward: boolean, + draggable: DraggableDimension, + destination: DroppableDimension, + draggables: DraggableDimensionMap, + previousImpact: DragImpact, + viewport: Viewport, + previousClientSelection: Position, + previousPageBorderBoxCenter: Position, + afterCritical: LiftEffect, +|}; + +export default ({ + isMovingForward, + draggable, + destination, + draggables, + previousImpact, + viewport, + previousPageBorderBoxCenter, + previousClientSelection, + afterCritical, +}: Args): ?PublicResult => { + if (!destination.isEnabled) { + return null; + } + + const insideDestination: DraggableDimension[] = getDraggablesInsideDroppable( + destination.descriptor.id, + draggables, + ); + const isInHomeList: boolean = isHomeOf(draggable, destination); + + const impact: ?DragImpact = + moveToNextCombine({ + isMovingForward, + draggable, + destination, + insideDestination, + previousImpact, + }) || + moveToNextIndex({ + isMovingForward, + isInHomeList, + draggable, + draggables, + destination, + insideDestination, + previousImpact, + viewport, + afterCritical, + }); + + if (!impact) { + return null; + } + + const pageBorderBoxCenter: Position = getPageBorderBoxCenter({ + impact, + draggable, + droppable: destination, + draggables, + afterCritical, + }); + + const isVisibleInNewLocation: boolean = isTotallyVisibleInNewLocation({ + draggable, + destination, + newPageBorderBoxCenter: pageBorderBoxCenter, + viewport: viewport.frame, + // already taken into account by getPageBorderBoxCenter + withDroppableDisplacement: false, + // we only care about it being visible relative to the main axis + // this is important with dynamic changes as scroll bar and toggle + // on the cross axis during a drag + onlyOnMainAxis: true, + }); + + if (isVisibleInNewLocation) { + // using the client center as the selection point + const clientSelection: Position = getClientFromPageBorderBoxCenter({ + pageBorderBoxCenter, + draggable, + viewport, + }); + return { + clientSelection, + impact, + scrollJumpRequest: null, + }; + } + + const distance: Position = subtract( + pageBorderBoxCenter, + previousPageBorderBoxCenter, + ); + + const cautious: DragImpact = speculativelyIncrease({ + impact, + viewport, + destination, + draggables, + maxScrollChange: distance, + }); + + return { + clientSelection: previousClientSelection, + impact: cautious, + scrollJumpRequest: distance, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/is-totally-visible-in-new-location.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/is-totally-visible-in-new-location.js new file mode 100644 index 00000000..0e401b0d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/is-totally-visible-in-new-location.js @@ -0,0 +1,52 @@ +// @flow +import { type Position, type Rect, type Spacing } from 'css-box-model'; +import { subtract } from '../../position'; +import { offsetByPosition } from '../../spacing'; +import { + isTotallyVisible, + isTotallyVisibleOnAxis, + type Args as IsVisibleArgs, +} from '../../visibility/is-visible'; +import type { DraggableDimension, DroppableDimension } from '../../../types'; + +type Args = {| + draggable: DraggableDimension, + destination: DroppableDimension, + newPageBorderBoxCenter: Position, + viewport: Rect, + // only allowing a 'false' value. Being super clear + withDroppableDisplacement: false, + onlyOnMainAxis?: boolean, +|}; + +export default ({ + draggable, + destination, + newPageBorderBoxCenter, + viewport, + withDroppableDisplacement, + onlyOnMainAxis = false, +}: Args): boolean => { + // What would the location of the Draggable be once the move is completed? + // We are not considering margins for this calculation. + // This is because a move might move a Draggable slightly outside of the bounds + // of a Droppable (which is okay) + const changeNeeded: Position = subtract( + newPageBorderBoxCenter, + draggable.page.borderBox.center, + ); + const shifted: Spacing = offsetByPosition( + draggable.page.borderBox, + changeNeeded, + ); + + // Must be totally visible, not just partially visible. + const args: IsVisibleArgs = { + target: shifted, + destination, + withDroppableDisplacement, + viewport, + }; + + return onlyOnMainAxis ? isTotallyVisibleOnAxis(args) : isTotallyVisible(args); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-combine/index.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-combine/index.js new file mode 100644 index 00000000..c2ebf2f4 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-combine/index.js @@ -0,0 +1,97 @@ +// @flow +import { invariant } from '../../../../invariant'; +import type { + DraggableDimension, + DroppableDimension, + DragImpact, + CombineImpact, + DraggableLocation, + DraggableId, +} from '../../../../types'; +import { tryGetDestination } from '../../../get-impact-location'; +import { findIndex } from '../../../../native-with-fallback'; +import removeDraggableFromList from '../../../remove-draggable-from-list'; + +export type Args = {| + isMovingForward: boolean, + draggable: DraggableDimension, + destination: DroppableDimension, + insideDestination: DraggableDimension[], + previousImpact: DragImpact, +|}; + +export default ({ + isMovingForward, + draggable, + destination, + insideDestination, + previousImpact, +}: Args): ?DragImpact => { + if (!destination.isCombineEnabled) { + return null; + } + + const location: ?DraggableLocation = tryGetDestination(previousImpact); + + if (!location) { + return null; + } + + function getImpact(target: DraggableId) { + const at: CombineImpact = { + type: 'COMBINE', + combine: { + draggableId: target, + droppableId: destination.descriptor.id, + }, + }; + return { + ...previousImpact, + at, + }; + } + + const all: DraggableId[] = previousImpact.displaced.all; + const closestId: ?DraggableId = all.length ? all[0] : null; + + if (isMovingForward) { + return closestId ? getImpact(closestId) : null; + } + + const withoutDraggable = removeDraggableFromList( + draggable, + insideDestination, + ); + + // Moving backwards + + // if nothing is displaced - move backwards onto the last item + if (!closestId) { + if (!withoutDraggable.length) { + return null; + } + const last: DraggableDimension = + withoutDraggable[withoutDraggable.length - 1]; + return getImpact(last.descriptor.id); + } + + // We are moving from being between two displaced items + // backwards onto the first one + + // need to find the first item before the closest + const indexOfClosest: number = findIndex( + withoutDraggable, + (d) => d.descriptor.id === closestId, + ); + invariant(indexOfClosest !== -1, 'Could not find displaced item in set'); + + const proposedIndex: number = indexOfClosest - 1; + + // There is no displaced item before + if (proposedIndex < 0) { + return null; + } + + const before: DraggableDimension = withoutDraggable[proposedIndex]; + return getImpact(before.descriptor.id); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-index/from-combine.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-index/from-combine.js new file mode 100644 index 00000000..d28b29c3 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-index/from-combine.js @@ -0,0 +1,52 @@ +// @flow +import type { + DroppableDimension, + Combine, + DraggableDimension, + DraggableDimensionMap, + DisplacementGroups, + DraggableId, + LiftEffect, +} from '../../../../types'; +import didStartAfterCritical from '../../../did-start-after-critical'; + +type Args = {| + isMovingForward: boolean, + destination: DroppableDimension, + displaced: DisplacementGroups, + draggables: DraggableDimensionMap, + combine: Combine, + afterCritical: LiftEffect, +|}; + +export default ({ + isMovingForward, + destination, + draggables, + combine, + afterCritical, +}: Args): ?number => { + if (!destination.isCombineEnabled) { + return null; + } + const combineId: DraggableId = combine.draggableId; + const combineWith: DraggableDimension = draggables[combineId]; + const combineWithIndex: number = combineWith.descriptor.index; + const didCombineWithStartAfterCritical: boolean = didStartAfterCritical( + combineId, + afterCritical, + ); + + if (didCombineWithStartAfterCritical) { + if (isMovingForward) { + return combineWithIndex; + } + return combineWithIndex - 1; + } + + if (isMovingForward) { + return combineWithIndex + 1; + } + + return combineWithIndex; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder.js new file mode 100644 index 00000000..571f3f98 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-index/from-reorder.js @@ -0,0 +1,43 @@ +// @flow +import type { DraggableDimension, DraggableLocation } from '../../../../types'; + +type Args = {| + isMovingForward: boolean, + isInHomeList: boolean, + location: DraggableLocation, + insideDestination: DraggableDimension[], +|}; + +export default ({ + isMovingForward, + isInHomeList, + insideDestination, + location, +}: Args): ?number => { + // cannot move in the list + if (!insideDestination.length) { + return null; + } + + const currentIndex: number = location.index; + const proposedIndex: number = isMovingForward + ? currentIndex + 1 + : currentIndex - 1; + + // Accounting for lists that might not start with an index of 0 + const firstIndex: number = insideDestination[0].descriptor.index; + const lastIndex: number = + insideDestination[insideDestination.length - 1].descriptor.index; + + // When in foreign list we allow movement after the last item + const upperBound: number = isInHomeList ? lastIndex : lastIndex + 1; + + if (proposedIndex < firstIndex) { + return null; + } + if (proposedIndex > upperBound) { + return null; + } + + return proposedIndex; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-index/index.js b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-index/index.js new file mode 100644 index 00000000..947d1370 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/move-in-direction/move-to-next-place/move-to-next-index/index.js @@ -0,0 +1,86 @@ +// @flow +import { invariant } from '../../../../invariant'; +import type { + DraggableDimension, + DroppableDimension, + DraggableDimensionMap, + DragImpact, + LiftEffect, + Viewport, + ImpactLocation, +} from '../../../../types'; +import calculateReorderImpact from '../../../calculate-drag-impact/calculate-reorder-impact'; +import fromCombine from './from-combine'; +import fromReorder from './from-reorder'; + +export type Args = {| + isMovingForward: boolean, + isInHomeList: boolean, + draggable: DraggableDimension, + draggables: DraggableDimensionMap, + destination: DroppableDimension, + insideDestination: DraggableDimension[], + previousImpact: DragImpact, + viewport: Viewport, + afterCritical: LiftEffect, +|}; + +export default ({ + isMovingForward, + isInHomeList, + draggable, + draggables, + destination, + insideDestination, + previousImpact, + viewport, + afterCritical, +}: Args): ?DragImpact => { + const wasAt: ?ImpactLocation = previousImpact.at; + invariant(wasAt, 'Cannot move in direction without previous impact location'); + + if (wasAt.type === 'REORDER') { + const newIndex: ?number = fromReorder({ + isMovingForward, + isInHomeList, + location: wasAt.destination, + insideDestination, + }); + // TODO: can we just pass new index on? + if (newIndex == null) { + return null; + } + return calculateReorderImpact({ + draggable, + insideDestination, + destination, + viewport, + last: previousImpact.displaced, + displacedBy: previousImpact.displacedBy, + index: newIndex, + }); + } + + // COMBINE + const newIndex: ?number = fromCombine({ + isMovingForward, + destination, + displaced: previousImpact.displaced, + draggables, + combine: wasAt.combine, + afterCritical, + }); + if (newIndex == null) { + return null; + } + + return calculateReorderImpact({ + draggable, + insideDestination, + destination, + viewport, + last: previousImpact.displaced, + displacedBy: previousImpact.displacedBy, + index: newIndex, + }); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/no-impact.js b/node_modules/react-beautiful-dnd/src/state/no-impact.js new file mode 100644 index 00000000..b62a3b16 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/no-impact.js @@ -0,0 +1,33 @@ +// @flow +import type { + DisplacementGroups, + DragImpact, + DisplacedBy, + LiftEffect, +} from '../types'; +import { origin } from './position'; + +export const noDisplacedBy: DisplacedBy = { + point: origin, + value: 0, +}; + +export const emptyGroups: DisplacementGroups = { + invisible: {}, + visible: {}, + all: [], +}; + +const noImpact: DragImpact = { + displaced: emptyGroups, + displacedBy: noDisplacedBy, + at: null, +}; + +export default noImpact; + +export const noAfterCritical: LiftEffect = { + inVirtualList: false, + effected: {}, + displacedBy: noDisplacedBy, +}; diff --git a/node_modules/react-beautiful-dnd/src/state/patch-dimension-map.js b/node_modules/react-beautiful-dnd/src/state/patch-dimension-map.js new file mode 100644 index 00000000..400be1b6 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/patch-dimension-map.js @@ -0,0 +1,11 @@ +// @flow +import type { DimensionMap, DroppableDimension } from '../types'; +import patchDroppableMap from './patch-droppable-map'; + +export default ( + dimensions: DimensionMap, + updated: DroppableDimension, +): DimensionMap => ({ + draggables: dimensions.draggables, + droppables: patchDroppableMap(dimensions.droppables, updated), +}); diff --git a/node_modules/react-beautiful-dnd/src/state/patch-droppable-map.js b/node_modules/react-beautiful-dnd/src/state/patch-droppable-map.js new file mode 100644 index 00000000..2b8412a3 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/patch-droppable-map.js @@ -0,0 +1,10 @@ +// @flow +import type { DroppableDimension, DroppableDimensionMap } from '../types'; + +export default ( + droppables: DroppableDimensionMap, + updated: DroppableDimension, +): DroppableDimensionMap => ({ + ...droppables, + [updated.descriptor.id]: updated, +}); diff --git a/node_modules/react-beautiful-dnd/src/state/position.js b/node_modules/react-beautiful-dnd/src/state/position.js new file mode 100644 index 00000000..c995037c --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/position.js @@ -0,0 +1,58 @@ +// @flow +import { type Position } from 'css-box-model'; + +export const origin: Position = { x: 0, y: 0 }; + +export const add = (point1: Position, point2: Position): Position => ({ + x: point1.x + point2.x, + y: point1.y + point2.y, +}); + +export const subtract = (point1: Position, point2: Position): Position => ({ + x: point1.x - point2.x, + y: point1.y - point2.y, +}); + +export const isEqual = (point1: Position, point2: Position): boolean => + point1.x === point2.x && point1.y === point2.y; + +export const negate = (point: Position): Position => ({ + // if the value is already 0, do not return -0 + x: point.x !== 0 ? -point.x : 0, + y: point.y !== 0 ? -point.y : 0, +}); + +// Allows you to build a position from values. +// Really useful when working with the Axis type +// patch('x', 5) = { x: 5, y: 0 } +// patch('y', 5, 1) = { x: 1, y: 5 } +export const patch = ( + line: 'x' | 'y', + value: number, + otherValue?: number = 0, +): Position => ({ + // set the value of 'x', or 'y' + [line]: value, + // set the value of the other line + [line === 'x' ? 'y' : 'x']: otherValue, +}); + +// Returns the distance between two points +// https://www.mathsisfun.com/algebra/distance-2-points.html +export const distance = (point1: Position, point2: Position): number => + Math.sqrt( + Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2), + ); + +// When given a list of points, it finds the smallest distance to any point +export const closest = (target: Position, points: Position[]): number => + Math.min(...points.map((point: Position) => distance(target, point))); + +// used to apply any function to both values of a point +// eg: const floor = apply(Math.floor)(point); +export const apply = (fn: (value: number) => number) => ( + point: Position, +): Position => ({ + x: fn(point.x), + y: fn(point.y), +}); diff --git a/node_modules/react-beautiful-dnd/src/state/post-reducer/when-moving/refresh-snap.js b/node_modules/react-beautiful-dnd/src/state/post-reducer/when-moving/refresh-snap.js new file mode 100644 index 00000000..8f7e6578 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/post-reducer/when-moving/refresh-snap.js @@ -0,0 +1,67 @@ +// @flow +import type { Position } from 'css-box-model'; +import { invariant } from '../../../invariant'; +import type { + DroppableDimension, + DraggableDimension, + StateWhenUpdatesAllowed, + DroppableId, + DimensionMap, + DragImpact, + Viewport, +} from '../../../types'; +import whatIsDraggedOver from '../../droppable/what-is-dragged-over'; +import recomputeDisplacementVisibility from '../../update-displacement-visibility/recompute'; +import getClientBorderBoxCenter from '../../get-center-from-impact/get-client-border-box-center'; +import update from './update'; + +type Args = {| + state: StateWhenUpdatesAllowed, + dimensions?: DimensionMap, + viewport?: Viewport, +|}; + +export default ({ + state, + dimensions: forcedDimensions, + viewport: forcedViewport, +}: // when a draggable is changing enabled state, sometimes it needs to force refresh an impact +Args): StateWhenUpdatesAllowed => { + invariant(state.movementMode === 'SNAP'); + + const needsVisibilityCheck: DragImpact = state.impact; + const viewport: Viewport = forcedViewport || state.viewport; + const dimensions: DimensionMap = forcedDimensions || state.dimensions; + const { draggables, droppables } = dimensions; + + const draggable: DraggableDimension = draggables[state.critical.draggable.id]; + const isOver: ?DroppableId = whatIsDraggedOver(needsVisibilityCheck); + invariant(isOver, 'Must be over a destination in SNAP movement mode'); + const destination: DroppableDimension = droppables[isOver]; + + const impact: DragImpact = recomputeDisplacementVisibility({ + impact: needsVisibilityCheck, + viewport, + destination, + draggables, + }); + + const clientSelection: Position = getClientBorderBoxCenter({ + impact, + draggable, + droppable: destination, + draggables, + viewport, + afterCritical: state.afterCritical, + }); + + return update({ + // new + impact, + clientSelection, + // pass through + state, + dimensions, + viewport, + }); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/post-reducer/when-moving/update.js b/node_modules/react-beautiful-dnd/src/state/post-reducer/when-moving/update.js new file mode 100644 index 00000000..e74e615f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/post-reducer/when-moving/update.js @@ -0,0 +1,120 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + DraggableDimension, + DraggingState, + ClientPositions, + PagePositions, + DragPositions, + DragImpact, + Viewport, + DimensionMap, + StateWhenUpdatesAllowed, + DroppableDimensionMap, +} from '../../../types'; +import getDragImpact from '../../get-drag-impact'; +import { add, subtract } from '../../position'; +import recomputePlaceholders from '../../recompute-placeholders'; + +type Args = {| + state: StateWhenUpdatesAllowed, + clientSelection?: Position, + dimensions?: DimensionMap, + viewport?: Viewport, + // force a custom drag impact + impact?: ?DragImpact, + // provide a scroll jump request (optionally provided - and can be null) + scrollJumpRequest?: ?Position, +|}; + +export default ({ + state, + clientSelection: forcedClientSelection, + dimensions: forcedDimensions, + viewport: forcedViewport, + impact: forcedImpact, + scrollJumpRequest, +}: Args): StateWhenUpdatesAllowed => { + // DRAGGING: can update position and impact + // COLLECTING: can update position but cannot update impact + + const viewport: Viewport = forcedViewport || state.viewport; + const dimensions: DimensionMap = forcedDimensions || state.dimensions; + const clientSelection: Position = + forcedClientSelection || state.current.client.selection; + + const offset: Position = subtract( + clientSelection, + state.initial.client.selection, + ); + + const client: ClientPositions = { + offset, + selection: clientSelection, + borderBoxCenter: add(state.initial.client.borderBoxCenter, offset), + }; + + const page: PagePositions = { + selection: add(client.selection, viewport.scroll.current), + borderBoxCenter: add(client.borderBoxCenter, viewport.scroll.current), + offset: add(client.offset, viewport.scroll.diff.value), + }; + + const current: DragPositions = { + client, + page, + }; + + // Not updating impact while bulk collecting + if (state.phase === 'COLLECTING') { + return { + // adding phase to appease flow (even though it will be overwritten by spread) + phase: 'COLLECTING', + ...state, + dimensions, + viewport, + current, + }; + } + + const draggable: DraggableDimension = + dimensions.draggables[state.critical.draggable.id]; + + const newImpact: DragImpact = + forcedImpact || + getDragImpact({ + pageOffset: page.offset, + draggable, + draggables: dimensions.draggables, + droppables: dimensions.droppables, + previousImpact: state.impact, + viewport, + afterCritical: state.afterCritical, + }); + + const withUpdatedPlaceholders: DroppableDimensionMap = recomputePlaceholders({ + draggable, + impact: newImpact, + previousImpact: state.impact, + draggables: dimensions.draggables, + droppables: dimensions.droppables, + }); + // dragging! + const result: DraggingState = { + ...state, + current, + dimensions: { + draggables: dimensions.draggables, + droppables: withUpdatedPlaceholders, + }, + impact: newImpact, + viewport, + scrollJumpRequest: scrollJumpRequest || null, + // client updates can be applied as a part of a jump scroll + // this can be to immediately reverse movement to allow for a nice animation + // into the final position + forceShouldAnimate: scrollJumpRequest ? false : null, + }; + + return result; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/publish-while-dragging-in-virtual/adjust-additions-for-scroll-changes.js b/node_modules/react-beautiful-dnd/src/state/publish-while-dragging-in-virtual/adjust-additions-for-scroll-changes.js new file mode 100644 index 00000000..dc2a34a9 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/publish-while-dragging-in-virtual/adjust-additions-for-scroll-changes.js @@ -0,0 +1,58 @@ +// @flow +import { type Position } from 'css-box-model'; +import type { + Viewport, + DraggableDimension, + DroppableDimension, + Scrollable, + DroppableDimensionMap, + DroppableId, +} from '../../types'; +import { add } from '../position'; +import offsetDraggable from './offset-draggable'; +import getFrame from '../get-frame'; + +type Args = {| + additions: DraggableDimension[], + updatedDroppables: DroppableDimensionMap, + viewport: Viewport, +|}; + +export default ({ + additions, + updatedDroppables, + viewport, +}: Args): DraggableDimension[] => { + // We need to adjust collected draggables so that they + // match the model we had when the drag started. + // When a draggable is dynamically collected it does not have + // the same relative client position. We need to unwind + // any changes in window scroll and droppable scroll so that + // the newly collected draggables fit in with our other draggables + // and give the same dimensions that would have had if they were + // collected at the start of the drag. + + // Need to undo the displacement caused by window scroll changes + const windowScrollChange: Position = viewport.scroll.diff.value; + // These modified droppables have already had their scroll changes correctly updated + + return additions.map((draggable: DraggableDimension): DraggableDimension => { + const droppableId: DroppableId = draggable.descriptor.droppableId; + const modified: DroppableDimension = updatedDroppables[droppableId]; + const frame: Scrollable = getFrame(modified); + const droppableScrollChange: Position = frame.scroll.diff.value; + + const totalChange: Position = add( + windowScrollChange, + droppableScrollChange, + ); + + const moved: DraggableDimension = offsetDraggable({ + draggable, + offset: totalChange, + initialWindowScroll: viewport.scroll.initial, + }); + + return moved; + }); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/publish-while-dragging-in-virtual/index.js b/node_modules/react-beautiful-dnd/src/state/publish-while-dragging-in-virtual/index.js new file mode 100644 index 00000000..75a43001 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/publish-while-dragging-in-virtual/index.js @@ -0,0 +1,158 @@ +// @flow +import type { + DimensionMap, + DraggingState, + CollectingState, + DropPendingState, + Published, + DraggableId, + DraggableDimension, + DroppableDimensionMap, + DraggableDimensionMap, + DroppableDimension, + DragImpact, + DroppablePublish, + DroppableId, +} from '../../types'; +import * as timings from '../../debug/timings'; +import getDragImpact from '../get-drag-impact'; +import adjustAdditionsForScrollChanges from './adjust-additions-for-scroll-changes'; +import { toDraggableMap, toDroppableMap } from '../dimension-structures'; +import getLiftEffect from '../get-lift-effect'; +import scrollDroppable from '../droppable/scroll-droppable'; +import whatIsDraggedOver from '../droppable/what-is-dragged-over'; + +type Args = {| + state: CollectingState | DropPendingState, + published: Published, +|}; + +const timingsKey: string = 'Processing dynamic changes'; + +export default ({ + state, + published, +}: Args): DraggingState | DropPendingState => { + timings.start(timingsKey); + + // TODO: update window scroll (needs to be a part of the published object) + // TODO: validate. + // - Check that all additions / removals have a droppable + // - Check that all droppables are virtual + + // The scroll might be different to what is currently in the state + // We want to ensure the new draggables are in step with the state + const withScrollChange: DroppableDimension[] = published.modified.map( + (update: DroppablePublish): DroppableDimension => { + const existing: DroppableDimension = + state.dimensions.droppables[update.droppableId]; + + const scrolled: DroppableDimension = scrollDroppable( + existing, + update.scroll, + ); + return scrolled; + }, + ); + + const droppables: DroppableDimensionMap = { + ...state.dimensions.droppables, + ...toDroppableMap(withScrollChange), + }; + + const updatedAdditions: DraggableDimensionMap = toDraggableMap( + adjustAdditionsForScrollChanges({ + additions: published.additions, + updatedDroppables: droppables, + viewport: state.viewport, + }), + ); + + const draggables: DraggableDimensionMap = { + ...state.dimensions.draggables, + ...updatedAdditions, + }; + + // remove all the old ones (except for the critical) + // we do this so that list operations remain fast + // TODO: need to test the impact of this like crazy + published.removals.forEach((id: DraggableId) => { + delete draggables[id]; + }); + + const dimensions: DimensionMap = { + droppables, + draggables, + }; + + const wasOverId: ?DroppableId = whatIsDraggedOver(state.impact); + const wasOver: ?DroppableDimension = wasOverId + ? dimensions.droppables[wasOverId] + : null; + + const draggable: DraggableDimension = + dimensions.draggables[state.critical.draggable.id]; + const home: DroppableDimension = + dimensions.droppables[state.critical.droppable.id]; + + const { impact: onLiftImpact, afterCritical } = getLiftEffect({ + draggable, + home, + draggables, + viewport: state.viewport, + }); + + const previousImpact: DragImpact = + wasOver && wasOver.isCombineEnabled + ? // Cheating here + // TODO: pursue a more robust approach + state.impact + : onLiftImpact; + + const impact: DragImpact = getDragImpact({ + pageOffset: state.current.page.offset, + draggable: dimensions.draggables[state.critical.draggable.id], + draggables: dimensions.draggables, + droppables: dimensions.droppables, + previousImpact, + viewport: state.viewport, + afterCritical, + }); + + timings.finish(timingsKey); + + const draggingState: DraggingState = { + // appeasing flow + phase: 'DRAGGING', + ...state, + // eslint-disable-next-line + phase: 'DRAGGING', + impact, + onLiftImpact, + dimensions, + afterCritical, + // not animating this movement + forceShouldAnimate: false, + }; + + if (state.phase === 'COLLECTING') { + return draggingState; + } + + // There was a DROP_PENDING + // Staying in the DROP_PENDING phase + // setting isWaiting for false + + const dropPending: DropPendingState = { + // appeasing flow + phase: 'DROP_PENDING', + ...draggingState, + // eslint-disable-next-line + phase: 'DROP_PENDING', + // No longer waiting + reason: state.reason, + isWaiting: false, + }; + + return dropPending; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/publish-while-dragging-in-virtual/offset-draggable.js b/node_modules/react-beautiful-dnd/src/state/publish-while-dragging-in-virtual/offset-draggable.js new file mode 100644 index 00000000..9f44d646 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/publish-while-dragging-in-virtual/offset-draggable.js @@ -0,0 +1,35 @@ +// @flow +import { + withScroll, + offset as offsetBox, + type Position, + type BoxModel, +} from 'css-box-model'; +import type { DraggableDimension } from '../../types'; + +type Args = {| + draggable: DraggableDimension, + offset: Position, + initialWindowScroll: Position, +|}; + +export default ({ + draggable, + offset, + initialWindowScroll, +}: Args): DraggableDimension => { + const client: BoxModel = offsetBox(draggable.client, offset); + const page: BoxModel = withScroll(client, initialWindowScroll); + + const moved: DraggableDimension = { + ...draggable, + placeholder: { + ...draggable.placeholder, + client, + }, + client, + page, + }; + + return moved; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/recompute-placeholders.js b/node_modules/react-beautiful-dnd/src/state/recompute-placeholders.js new file mode 100644 index 00000000..2a597291 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/recompute-placeholders.js @@ -0,0 +1,99 @@ +// @flow +import { + addPlaceholder, + removePlaceholder, +} from './droppable/with-placeholder'; +import whatIsDraggedOver from './droppable/what-is-dragged-over'; +import type { + DroppableDimension, + DraggableDimensionMap, + DroppableDimensionMap, + DraggableDimension, + DragImpact, + DroppableId, +} from '../types'; +import patchDroppableMap from './patch-droppable-map'; +import isHomeOf from './droppable/is-home-of'; + +type ClearArgs = {| + previousImpact: DragImpact, + impact: DragImpact, + droppables: DroppableDimensionMap, +|}; + +const clearUnusedPlaceholder = ({ + previousImpact, + impact, + droppables, +}: ClearArgs): DroppableDimensionMap => { + const last: ?DroppableId = whatIsDraggedOver(previousImpact); + const now: ?DroppableId = whatIsDraggedOver(impact); + + if (!last) { + return droppables; + } + + // no change - can keep the last state + if (last === now) { + return droppables; + } + + const lastDroppable: DroppableDimension = droppables[last]; + + // nothing to clear + if (!lastDroppable.subject.withPlaceholder) { + return droppables; + } + + const updated: DroppableDimension = removePlaceholder(lastDroppable); + return patchDroppableMap(droppables, updated); +}; + +type Args = {| + draggable: DraggableDimension, + draggables: DraggableDimensionMap, + droppables: DroppableDimensionMap, + impact: DragImpact, + previousImpact: DragImpact, +|}; + +export default ({ + draggable, + draggables, + droppables, + previousImpact, + impact, +}: Args): DroppableDimensionMap => { + const cleaned: DroppableDimensionMap = clearUnusedPlaceholder({ + previousImpact, + impact, + droppables, + }); + + const isOver: ?DroppableId = whatIsDraggedOver(impact); + + if (!isOver) { + return cleaned; + } + + const droppable: DroppableDimension = droppables[isOver]; + + // no need to add additional space to home droppable + if (isHomeOf(draggable, droppable)) { + return cleaned; + } + + // already have a placeholder - nothing to do here! + if (droppable.subject.withPlaceholder) { + return cleaned; + } + + // Need to patch the existing droppable + const patched: DroppableDimension = addPlaceholder( + droppable, + draggable, + draggables, + ); + + return patchDroppableMap(cleaned, patched); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/rect.js b/node_modules/react-beautiful-dnd/src/state/rect.js new file mode 100644 index 00000000..63bf1faf --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/rect.js @@ -0,0 +1,7 @@ +// @flow +import { getRect } from 'css-box-model'; +import type { Rect, Position } from 'css-box-model'; +import { offsetByPosition } from './spacing'; + +export const offsetRectByPosition = (rect: Rect, point: Position): Rect => + getRect(offsetByPosition(rect, point)); diff --git a/node_modules/react-beautiful-dnd/src/state/reducer.js b/node_modules/react-beautiful-dnd/src/state/reducer.js new file mode 100644 index 00000000..8484af15 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/reducer.js @@ -0,0 +1,457 @@ +// @flow +import type { Position } from 'css-box-model'; +import { invariant } from '../invariant'; +import type { + DimensionMap, + State, + StateWhenUpdatesAllowed, + DraggableDimension, + DroppableDimension, + IdleState, + DraggingState, + DragPositions, + ClientPositions, + CollectingState, + DropAnimatingState, + DropPendingState, + Viewport, + DropReason, +} from '../types'; +import type { Action } from './store-types'; +import type { PublicResult as MoveInDirectionResult } from './move-in-direction/move-in-direction-types'; +import scrollDroppable from './droppable/scroll-droppable'; +import moveInDirection from './move-in-direction'; +import { add, isEqual, origin } from './position'; +import scrollViewport from './scroll-viewport'; +import isMovementAllowed from './is-movement-allowed'; +import { toDroppableList } from './dimension-structures'; +import update from './post-reducer/when-moving/update'; +import refreshSnap from './post-reducer/when-moving/refresh-snap'; +import getLiftEffect from './get-lift-effect'; +import patchDimensionMap from './patch-dimension-map'; +import publishWhileDraggingInVirtual from './publish-while-dragging-in-virtual'; + +const isSnapping = (state: StateWhenUpdatesAllowed): boolean => + state.movementMode === 'SNAP'; + +const postDroppableChange = ( + state: StateWhenUpdatesAllowed, + updated: DroppableDimension, + isEnabledChanging: boolean, +): StateWhenUpdatesAllowed => { + const dimensions: DimensionMap = patchDimensionMap(state.dimensions, updated); + + // if the enabled state is changing, we need to force a update + if (!isSnapping(state) || isEnabledChanging) { + return update({ + state, + dimensions, + }); + } + + return refreshSnap({ + state, + dimensions, + }); +}; + +function removeScrollJumpRequest(state: State): State { + if (state.isDragging && state.movementMode === 'SNAP') { + return { + // will be overwritten by spread + // needed for flow + phase: 'DRAGGING', + ...state, + scrollJumpRequest: null, + }; + } + return state; +} + +const idle: IdleState = { phase: 'IDLE', completed: null, shouldFlush: false }; + +export default (state: State = idle, action: Action): State => { + if (action.type === 'FLUSH') { + return { + ...idle, + shouldFlush: true, + }; + } + + if (action.type === 'INITIAL_PUBLISH') { + invariant( + state.phase === 'IDLE', + 'INITIAL_PUBLISH must come after a IDLE phase', + ); + const { + critical, + clientSelection, + viewport, + dimensions, + movementMode, + } = action.payload; + + const draggable: DraggableDimension = + dimensions.draggables[critical.draggable.id]; + const home: DroppableDimension = + dimensions.droppables[critical.droppable.id]; + + const client: ClientPositions = { + selection: clientSelection, + borderBoxCenter: draggable.client.borderBox.center, + offset: origin, + }; + + const initial: DragPositions = { + client, + page: { + selection: add(client.selection, viewport.scroll.initial), + borderBoxCenter: add(client.selection, viewport.scroll.initial), + offset: add(client.selection, viewport.scroll.diff.value), + }, + }; + + // Can only auto scroll the window if every list is not fixed on the page + const isWindowScrollAllowed: boolean = toDroppableList( + dimensions.droppables, + ).every((item: DroppableDimension) => !item.isFixedOnPage); + + const { impact, afterCritical } = getLiftEffect({ + draggable, + home, + draggables: dimensions.draggables, + viewport, + }); + + const result: DraggingState = { + phase: 'DRAGGING', + isDragging: true, + critical, + movementMode, + dimensions, + initial, + current: initial, + isWindowScrollAllowed, + impact, + afterCritical, + onLiftImpact: impact, + viewport, + scrollJumpRequest: null, + forceShouldAnimate: null, + }; + + return result; + } + + if (action.type === 'COLLECTION_STARTING') { + // A collection might have restarted. We do not care as we are already in the right phase + // TODO: remove? + if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') { + return state; + } + + invariant( + state.phase === 'DRAGGING', + `Collection cannot start from phase ${state.phase}`, + ); + + const result: CollectingState = { + // putting phase first to appease flow + phase: 'COLLECTING', + ...state, + // eslint-disable-next-line + phase: 'COLLECTING', + }; + + return result; + } + + if (action.type === 'PUBLISH_WHILE_DRAGGING') { + // Unexpected bulk publish + invariant( + state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING', + `Unexpected ${action.type} received in phase ${state.phase}`, + ); + + return publishWhileDraggingInVirtual({ + state, + published: action.payload, + }); + } + + if (action.type === 'MOVE') { + // Not allowing any more movements + if (state.phase === 'DROP_PENDING') { + return state; + } + + invariant( + isMovementAllowed(state), + `${action.type} not permitted in phase ${state.phase}`, + ); + + const { client: clientSelection } = action.payload; + + // nothing needs to be done + if (isEqual(clientSelection, state.current.client.selection)) { + return state; + } + + return update({ + state, + clientSelection, + // If we are snap moving - manual movements should not update the impact + impact: isSnapping(state) ? state.impact : null, + }); + } + + if (action.type === 'UPDATE_DROPPABLE_SCROLL') { + // Not allowing changes while a drop is pending + // Cannot get this during a DROP_ANIMATING as the dimension + // marshal will cancel any pending scroll updates + if (state.phase === 'DROP_PENDING') { + return removeScrollJumpRequest(state); + } + + // We will be updating the scroll in response to dynamic changes + // manually on the droppable so we can ignore this change + if (state.phase === 'COLLECTING') { + return removeScrollJumpRequest(state); + } + + invariant( + isMovementAllowed(state), + `${action.type} not permitted in phase ${state.phase}`, + ); + + const { id, newScroll } = action.payload; + const target: ?DroppableDimension = state.dimensions.droppables[id]; + + // This is possible if a droppable has been asked to watch scroll but + // the dimension has not been published yet + if (!target) { + return state; + } + + const scrolled: DroppableDimension = scrollDroppable(target, newScroll); + return postDroppableChange(state, scrolled, false); + } + + if (action.type === 'UPDATE_DROPPABLE_IS_ENABLED') { + // Things are locked at this point + if (state.phase === 'DROP_PENDING') { + return state; + } + + invariant( + isMovementAllowed(state), + `Attempting to move in an unsupported phase ${state.phase}`, + ); + + const { id, isEnabled } = action.payload; + const target: ?DroppableDimension = state.dimensions.droppables[id]; + + invariant( + target, + `Cannot find Droppable[id: ${id}] to toggle its enabled state`, + ); + + invariant( + target.isEnabled !== isEnabled, + `Trying to set droppable isEnabled to ${String(isEnabled)} + but it is already ${String(target.isEnabled)}`, + ); + + const updated: DroppableDimension = { + ...target, + isEnabled, + }; + + return postDroppableChange(state, updated, true); + } + + if (action.type === 'UPDATE_DROPPABLE_IS_COMBINE_ENABLED') { + // Things are locked at this point + if (state.phase === 'DROP_PENDING') { + return state; + } + + invariant( + isMovementAllowed(state), + `Attempting to move in an unsupported phase ${state.phase}`, + ); + + const { id, isCombineEnabled } = action.payload; + const target: ?DroppableDimension = state.dimensions.droppables[id]; + + invariant( + target, + `Cannot find Droppable[id: ${id}] to toggle its isCombineEnabled state`, + ); + + invariant( + target.isCombineEnabled !== isCombineEnabled, + `Trying to set droppable isCombineEnabled to ${String(isCombineEnabled)} + but it is already ${String(target.isCombineEnabled)}`, + ); + + const updated: DroppableDimension = { + ...target, + isCombineEnabled, + }; + + return postDroppableChange(state, updated, true); + } + + if (action.type === 'MOVE_BY_WINDOW_SCROLL') { + // No longer accepting changes + if (state.phase === 'DROP_PENDING' || state.phase === 'DROP_ANIMATING') { + return state; + } + + invariant( + isMovementAllowed(state), + `Cannot move by window in phase ${state.phase}`, + ); + + invariant( + state.isWindowScrollAllowed, + 'Window scrolling is currently not supported for fixed lists', + ); + + const newScroll: Position = action.payload.newScroll; + + // nothing needs to be done + if (isEqual(state.viewport.scroll.current, newScroll)) { + return removeScrollJumpRequest(state); + } + + const viewport: Viewport = scrollViewport(state.viewport, newScroll); + + if (isSnapping(state)) { + return refreshSnap({ + state, + viewport, + }); + } + + return update({ + state, + viewport, + }); + } + + if (action.type === 'UPDATE_VIEWPORT_MAX_SCROLL') { + // Could occur if a transitionEnd occurs after a drag ends + if (!isMovementAllowed(state)) { + return state; + } + + const maxScroll: Position = action.payload.maxScroll; + + if (isEqual(maxScroll, state.viewport.scroll.max)) { + return state; + } + + const withMaxScroll: Viewport = { + ...state.viewport, + scroll: { + ...state.viewport.scroll, + max: maxScroll, + }, + }; + + // don't need to recalc any updates + return { + // phase will be overridden - appeasing flow + phase: 'DRAGGING', + ...state, + viewport: withMaxScroll, + }; + } + if ( + action.type === 'MOVE_UP' || + action.type === 'MOVE_DOWN' || + action.type === 'MOVE_LEFT' || + action.type === 'MOVE_RIGHT' + ) { + // Not doing keyboard movements during these phases + if (state.phase === 'COLLECTING' || state.phase === 'DROP_PENDING') { + return state; + } + + invariant( + state.phase === 'DRAGGING', + `${action.type} received while not in DRAGGING phase`, + ); + + const result: ?MoveInDirectionResult = moveInDirection({ + state, + type: action.type, + }); + + // cannot move in that direction + if (!result) { + return state; + } + + return update({ + state, + impact: result.impact, + clientSelection: result.clientSelection, + scrollJumpRequest: result.scrollJumpRequest, + }); + } + + if (action.type === 'DROP_PENDING') { + const reason: DropReason = action.payload.reason; + invariant( + state.phase === 'COLLECTING', + 'Can only move into the DROP_PENDING phase from the COLLECTING phase', + ); + + const newState: DropPendingState = { + // appeasing flow + phase: 'DROP_PENDING', + ...state, + // eslint-disable-next-line + phase: 'DROP_PENDING', + isWaiting: true, + reason, + }; + return newState; + } + + if (action.type === 'DROP_ANIMATE') { + const { completed, dropDuration, newHomeClientOffset } = action.payload; + invariant( + state.phase === 'DRAGGING' || state.phase === 'DROP_PENDING', + `Cannot animate drop from phase ${state.phase}`, + ); + + // Moving into a new phase + const result: DropAnimatingState = { + phase: 'DROP_ANIMATING', + completed, + dropDuration, + newHomeClientOffset, + dimensions: state.dimensions, + }; + + return result; + } + + // Action will be used by responders to call consumers + // We can simply return to the idle state + if (action.type === 'DROP_COMPLETE') { + const { completed } = action.payload; + + return { + phase: 'IDLE', + completed, + shouldFlush: false, + }; + } + + return state; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/registry/create-registry.js b/node_modules/react-beautiful-dnd/src/state/registry/create-registry.js new file mode 100644 index 00000000..8d5b484d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/registry/create-registry.js @@ -0,0 +1,162 @@ +// @flow +import { invariant } from '../../invariant'; +import type { TypeId, DraggableId, DroppableId } from '../../types'; +import type { + Registry, + DraggableAPI, + DroppableAPI, + DraggableEntry, + DroppableEntry, + RegistryEvent, + Subscriber, + Unsubscribe, + DraggableEntryMap, + DroppableEntryMap, +} from './registry-types'; +import { values } from '../../native-with-fallback'; + +type EntryMap = { + draggables: DraggableEntryMap, + droppables: DroppableEntryMap, +}; + +export default function createRegistry(): Registry { + const entries: EntryMap = { + draggables: {}, + droppables: {}, + }; + + const subscribers: Subscriber[] = []; + + function subscribe(cb: Subscriber): Unsubscribe { + subscribers.push(cb); + + return function unsubscribe(): void { + const index: number = subscribers.indexOf(cb); + + // might have been removed by a clean + if (index === -1) { + return; + } + + subscribers.splice(index, 1); + }; + } + + function notify(event: RegistryEvent) { + if (subscribers.length) { + subscribers.forEach((cb) => cb(event)); + } + } + + function findDraggableById(id: DraggableId): ?DraggableEntry { + return entries.draggables[id] || null; + } + + function getDraggableById(id: DraggableId): DraggableEntry { + const entry: ?DraggableEntry = findDraggableById(id); + invariant(entry, `Cannot find draggable entry with id [${id}]`); + return entry; + } + + const draggableAPI: DraggableAPI = { + register: (entry: DraggableEntry) => { + entries.draggables[entry.descriptor.id] = entry; + notify({ type: 'ADDITION', value: entry }); + }, + update: (entry: DraggableEntry, last: DraggableEntry) => { + const current: ?DraggableEntry = entries.draggables[last.descriptor.id]; + + // item already removed + if (!current) { + return; + } + + // id already used for another mount + if (current.uniqueId !== entry.uniqueId) { + return; + } + + // We are safe to delete the old entry and add a new one + delete entries.draggables[last.descriptor.id]; + entries.draggables[entry.descriptor.id] = entry; + }, + unregister: (entry: DraggableEntry) => { + const draggableId: DraggableId = entry.descriptor.id; + const current: ?DraggableEntry = findDraggableById(draggableId); + + // can occur if cleaned before unregistration + if (!current) { + return; + } + + // outdated uniqueId + if (entry.uniqueId !== current.uniqueId) { + return; + } + + delete entries.draggables[draggableId]; + notify({ type: 'REMOVAL', value: entry }); + }, + getById: getDraggableById, + findById: findDraggableById, + exists: (id: DraggableId): boolean => Boolean(findDraggableById(id)), + getAllByType: (type: TypeId): DraggableEntry[] => + values(entries.draggables).filter( + (entry: DraggableEntry): boolean => entry.descriptor.type === type, + ), + }; + + function findDroppableById(id: DroppableId): ?DroppableEntry { + return entries.droppables[id] || null; + } + + function getDroppableById(id: DroppableId): DroppableEntry { + const entry: ?DroppableEntry = findDroppableById(id); + invariant(entry, `Cannot find droppable entry with id [${id}]`); + return entry; + } + + const droppableAPI: DroppableAPI = { + register: (entry: DroppableEntry) => { + entries.droppables[entry.descriptor.id] = entry; + }, + unregister: (entry: DroppableEntry) => { + const current: ?DroppableEntry = findDroppableById(entry.descriptor.id); + + // can occur if cleaned before an unregistry + if (!current) { + return; + } + + // already changed + if (entry.uniqueId !== current.uniqueId) { + return; + } + + delete entries.droppables[entry.descriptor.id]; + }, + getById: getDroppableById, + findById: findDroppableById, + exists: (id: DroppableId): boolean => Boolean(findDroppableById(id)), + getAllByType: (type: TypeId): DroppableEntry[] => + values(entries.droppables).filter( + (entry: DroppableEntry): boolean => entry.descriptor.type === type, + ), + }; + + function clean(): void { + // kill entries + entries.draggables = {}; + entries.droppables = {}; + // remove all subscribers + subscribers.length = 0; + } + + return { + draggable: draggableAPI, + droppable: droppableAPI, + subscribe, + clean, + }; +} diff --git a/node_modules/react-beautiful-dnd/src/state/registry/registry-types.js b/node_modules/react-beautiful-dnd/src/state/registry/registry-types.js new file mode 100644 index 00000000..393e10e5 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/registry/registry-types.js @@ -0,0 +1,98 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + Id, + DraggableId, + DraggableDescriptor, + DraggableOptions, + DraggableDimension, + DroppableId, + ScrollOptions, + DroppableDescriptor, + DroppableDimension, + TypeId, +} from '../../types'; + +export type GetDraggableDimensionFn = ( + windowScroll: Position, +) => DraggableDimension; + +export type DraggableEntry = {| + uniqueId: Id, + descriptor: DraggableDescriptor, + options: DraggableOptions, + getDimension: GetDraggableDimensionFn, +|}; + +export type DraggableAPI = {| + register: (entry: DraggableEntry) => void, + update: (entry: DraggableEntry, last: DraggableEntry) => void, + unregister: (entry: DraggableEntry) => void, + exists: (id: DraggableId) => boolean, + getById: (id: DraggableId) => DraggableEntry, + findById: (id: DraggableId) => ?DraggableEntry, + getAllByType: (type: TypeId) => DraggableEntry[], +|}; + +export type GetDroppableDimensionFn = ( + windowScroll: Position, + options: ScrollOptions, +) => DroppableDimension; + +export type RecollectDroppableOptions = {| + withoutPlaceholder: boolean, +|}; + +export type DroppableCallbacks = {| + // a drag is starting + getDimensionAndWatchScroll: GetDroppableDimensionFn, + getScrollWhileDragging: () => Position, + // scroll a droppable + scroll: (change: Position) => void, + // If the Droppable is listening for scroll events - it needs to stop! + // Can be called on droppables that have not been asked to watch scroll + dragStopped: () => void, +|}; + +export type DroppableEntry = {| + uniqueId: Id, + descriptor: DroppableDescriptor, + callbacks: DroppableCallbacks, +|}; + +export type DraggableEntryMap = { + [id: DraggableId]: DraggableEntry, +}; + +export type DroppableEntryMap = { + [id: DroppableId]: DroppableEntry, +}; + +export type DroppableAPI = {| + register: (entry: DroppableEntry) => void, + unregister: (entry: DroppableEntry) => void, + exists: (id: DraggableId) => boolean, + getById: (id: DroppableId) => DroppableEntry, + findById: (id: DroppableId) => ?DroppableEntry, + getAllByType: (type: TypeId) => DroppableEntry[], +|}; + +export type RegistryEvent = + | {| + type: 'ADDITION', + value: DraggableEntry, + |} + | {| + type: 'REMOVAL', + value: DraggableEntry, + |}; + +export type Subscriber = (event: RegistryEvent) => void; +export type Unsubscribe = () => void; + +export type Registry = {| + draggable: DraggableAPI, + droppable: DroppableAPI, + subscribe: (cb: Subscriber) => Unsubscribe, + clean: () => void, +|}; diff --git a/node_modules/react-beautiful-dnd/src/state/registry/use-registry.js b/node_modules/react-beautiful-dnd/src/state/registry/use-registry.js new file mode 100644 index 00000000..19a5864a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/registry/use-registry.js @@ -0,0 +1,20 @@ +// @flow +import { useEffect } from 'react'; +import { useMemo } from 'use-memo-one'; +import type { Registry } from './registry-types'; +import createRegistry from './create-registry'; + +export default function useRegistry(): Registry { + const registry: Registry = useMemo(createRegistry, []); + + useEffect(() => { + return function unmount() { + // clean up the registry to avoid any leaks + // doing it after an animation frame so that other things unmounting + // can continue to interact with the registry + requestAnimationFrame(registry.clean); + }; + }, [registry]); + + return registry; +} diff --git a/node_modules/react-beautiful-dnd/src/state/remove-draggable-from-list.js b/node_modules/react-beautiful-dnd/src/state/remove-draggable-from-list.js new file mode 100644 index 00000000..48ec0cda --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/remove-draggable-from-list.js @@ -0,0 +1,13 @@ +// @flow +import memoizeOne from 'memoize-one'; +import type { DraggableDimension } from '../types'; + +export default memoizeOne( + ( + remove: DraggableDimension, + list: DraggableDimension[], + ): DraggableDimension[] => + list.filter( + (item: DraggableDimension) => item.descriptor.id !== remove.descriptor.id, + ), +); diff --git a/node_modules/react-beautiful-dnd/src/state/scroll-viewport.js b/node_modules/react-beautiful-dnd/src/state/scroll-viewport.js new file mode 100644 index 00000000..988c2524 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/scroll-viewport.js @@ -0,0 +1,34 @@ +// @flow +import { getRect, type Rect } from 'css-box-model'; +import type { Position } from 'css-box-model'; +import { subtract, negate } from './position'; +import type { Viewport } from '../types'; + +export default (viewport: Viewport, newScroll: Position): Viewport => { + const diff: Position = subtract(newScroll, viewport.scroll.initial); + const displacement: Position = negate(diff); + + // We need to update the frame so that it is always a live value + // The top / left of the frame should always match the newScroll position + const frame: Rect = getRect({ + top: newScroll.y, + bottom: newScroll.y + viewport.frame.height, + left: newScroll.x, + right: newScroll.x + viewport.frame.width, + }); + + const updated: Viewport = { + frame, + scroll: { + initial: viewport.scroll.initial, + max: viewport.scroll.max, + current: newScroll, + diff: { + value: diff, + displacement, + }, + }, + }; + + return updated; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/spacing.js b/node_modules/react-beautiful-dnd/src/state/spacing.js new file mode 100644 index 00000000..818b9d4d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/spacing.js @@ -0,0 +1,45 @@ +// @flow +import type { Spacing, Position } from 'css-box-model'; + +// TODO add test +export const isEqual = (first: Spacing, second: Spacing): boolean => + first.top === second.top && + first.right === second.right && + first.bottom === second.bottom && + first.left === second.left; + +export const offsetByPosition = ( + spacing: Spacing, + point: Position, +): Spacing => ({ + top: spacing.top + point.y, + left: spacing.left + point.x, + bottom: spacing.bottom + point.y, + right: spacing.right + point.x, +}); + +export const expandByPosition = ( + spacing: Spacing, + position: Position, +): Spacing => ({ + // pulling back to increase size + top: spacing.top - position.y, + left: spacing.left - position.x, + // pushing forward to increase size + right: spacing.right + position.x, + bottom: spacing.bottom + position.y, +}); + +export const getCorners = (spacing: Spacing): Position[] => [ + { x: spacing.left, y: spacing.top }, + { x: spacing.right, y: spacing.top }, + { x: spacing.left, y: spacing.bottom }, + { x: spacing.right, y: spacing.bottom }, +]; + +export const noSpacing: Spacing = { + top: 0, + right: 0, + bottom: 0, + left: 0, +}; diff --git a/node_modules/react-beautiful-dnd/src/state/store-types.js b/node_modules/react-beautiful-dnd/src/state/store-types.js new file mode 100644 index 00000000..67682273 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/store-types.js @@ -0,0 +1,16 @@ +// @flow +// This file exists to avoid a circular dependency between types.js and action-creators.js +import type { + Store as ReduxStore, + Dispatch as ReduxDispatch, + Middleware as ReduxMiddleware, + MiddlewareAPI as ReduxMiddlewareAPI, +} from 'redux'; +import type { Action as ActionCreators } from './action-creators'; +import type { State } from '../types'; + +export type Action = ActionCreators; +export type Dispatch = ReduxDispatch; +export type Store = ReduxStore; +export type Middleware = ReduxMiddleware; +export type MiddlewareStore = ReduxMiddlewareAPI; diff --git a/node_modules/react-beautiful-dnd/src/state/update-displacement-visibility/recompute.js b/node_modules/react-beautiful-dnd/src/state/update-displacement-visibility/recompute.js new file mode 100644 index 00000000..d3a5d598 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/update-displacement-visibility/recompute.js @@ -0,0 +1,54 @@ +// @flow +import type { + DraggableDimension, + DroppableDimension, + DraggableDimensionMap, + DragImpact, + Viewport, + DraggableId, + DisplacementGroups, +} from '../../types'; +import getDisplacementGroups from '../get-displacement-groups'; + +type RecomputeArgs = {| + impact: DragImpact, + draggables: DraggableDimensionMap, + destination: DroppableDimension, + viewport: Viewport, + forceShouldAnimate?: boolean, +|}; + +function getDraggables( + ids: DraggableId[], + draggables: DraggableDimensionMap, +): DraggableDimension[] { + return ids.map((id: DraggableId): DraggableDimension => draggables[id]); +} + +export default ({ + impact, + viewport, + draggables, + destination, + forceShouldAnimate, +}: RecomputeArgs): DragImpact => { + const last: DisplacementGroups = impact.displaced; + const afterDragging: DraggableDimension[] = getDraggables( + last.all, + draggables, + ); + + const displaced: DisplacementGroups = getDisplacementGroups({ + afterDragging, + destination, + displacedBy: impact.displacedBy, + viewport: viewport.frame, + forceShouldAnimate, + last, + }); + + return { + ...impact, + displaced, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/update-displacement-visibility/speculatively-increase.js b/node_modules/react-beautiful-dnd/src/state/update-displacement-visibility/speculatively-increase.js new file mode 100644 index 00000000..47a4bb4a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/update-displacement-visibility/speculatively-increase.js @@ -0,0 +1,111 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { + DraggableId, + DroppableDimension, + DraggableDimension, + DraggableDimensionMap, + DragImpact, + Displacement, + DisplacementGroups, + DraggableIdMap, + DisplacementMap, + Viewport, +} from '../../types'; +import scrollViewport from '../scroll-viewport'; +import scrollDroppable from '../droppable/scroll-droppable'; +import { add } from '../position'; +import getDisplacementGroups from '../get-displacement-groups'; + +type SpeculativeArgs = {| + impact: DragImpact, + destination: DroppableDimension, + viewport: Viewport, + draggables: DraggableDimensionMap, + maxScrollChange: Position, +|}; + +function getDraggables( + ids: DraggableId[], + draggables: DraggableDimensionMap, +): DraggableDimension[] { + return ids.map((id: DraggableId): DraggableDimension => draggables[id]); +} + +function tryGetVisible( + id: DraggableId, + groups: DisplacementGroups[], +): ?Displacement { + for (let i = 0; i < groups.length; i++) { + const displacement: ?Displacement = groups[i].visible[id]; + if (displacement) { + return displacement; + } + } + return null; +} + +export default ({ + impact, + viewport, + destination, + draggables, + maxScrollChange, +}: SpeculativeArgs): DragImpact => { + const scrolledViewport: Viewport = scrollViewport( + viewport, + add(viewport.scroll.current, maxScrollChange), + ); + const scrolledDroppable: DroppableDimension = destination.frame + ? scrollDroppable( + destination, + add(destination.frame.scroll.current, maxScrollChange), + ) + : destination; + + const last: DisplacementGroups = impact.displaced; + const withViewportScroll: DisplacementGroups = getDisplacementGroups({ + afterDragging: getDraggables(last.all, draggables), + destination, + displacedBy: impact.displacedBy, + viewport: scrolledViewport.frame, + last, + // we want the addition to be animated + forceShouldAnimate: false, + }); + const withDroppableScroll: DisplacementGroups = getDisplacementGroups({ + afterDragging: getDraggables(last.all, draggables), + destination: scrolledDroppable, + displacedBy: impact.displacedBy, + viewport: viewport.frame, + last, + // we want the addition to be animated + forceShouldAnimate: false, + }); + + const invisible: DraggableIdMap = {}; + const visible: DisplacementMap = {}; + const groups: DisplacementGroups[] = [ + // this will populate the previous entries with the correct animation values + last, + withViewportScroll, + withDroppableScroll, + ]; + + last.all.forEach((id: DraggableId) => { + const displacement: ?Displacement = tryGetVisible(id, groups); + + if (displacement) { + visible[id] = displacement; + return; + } + invisible[id] = true; + }); + + const newImpact: DragImpact = { + ...impact, + displaced: { all: last.all, invisible, visible }, + }; + + return newImpact; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/visibility/is-partially-visible-through-frame.js b/node_modules/react-beautiful-dnd/src/state/visibility/is-partially-visible-through-frame.js new file mode 100644 index 00000000..80e8f155 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/visibility/is-partially-visible-through-frame.js @@ -0,0 +1,60 @@ +// @flow +import { type Spacing } from 'css-box-model'; +import isWithin from '../is-within'; + +export default (frame: Spacing) => { + const isWithinVertical = isWithin(frame.top, frame.bottom); + const isWithinHorizontal = isWithin(frame.left, frame.right); + + return (subject: Spacing) => { + // situations where target is visible: + // 1. is completely contained within frame + // 2. is partially visible on both axis within frame + // 3. is bigger than frame on both axis + // 4. is bigger than frame on one axis and is partially visible on the other + + // completely contained + const isContained: boolean = + isWithinVertical(subject.top) && + isWithinVertical(subject.bottom) && + isWithinHorizontal(subject.left) && + isWithinHorizontal(subject.right); + + if (isContained) { + return true; + } + + const isPartiallyVisibleVertically: boolean = + isWithinVertical(subject.top) || isWithinVertical(subject.bottom); + const isPartiallyVisibleHorizontally: boolean = + isWithinHorizontal(subject.left) || isWithinHorizontal(subject.right); + + // partially visible on both axis + const isPartiallyContained: boolean = + isPartiallyVisibleVertically && isPartiallyVisibleHorizontally; + + if (isPartiallyContained) { + return true; + } + + const isBiggerVertically: boolean = + subject.top < frame.top && subject.bottom > frame.bottom; + const isBiggerHorizontally: boolean = + subject.left < frame.left && subject.right > frame.right; + + // is bigger than frame on both axis + const isTargetBiggerThanFrame: boolean = + isBiggerVertically && isBiggerHorizontally; + + if (isTargetBiggerThanFrame) { + return true; + } + + // is bigger on one axis, and partially visible on another + const isTargetBiggerOnOneAxis: boolean = + (isBiggerVertically && isPartiallyVisibleHorizontally) || + (isBiggerHorizontally && isPartiallyVisibleVertically); + + return isTargetBiggerOnOneAxis; + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/visibility/is-position-in-frame.js b/node_modules/react-beautiful-dnd/src/state/visibility/is-position-in-frame.js new file mode 100644 index 00000000..95d560e3 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/visibility/is-position-in-frame.js @@ -0,0 +1,12 @@ +// @flow +import { type Position, type Spacing } from 'css-box-model'; +import isWithin from '../is-within'; + +export default function isPositionInFrame(frame: Spacing) { + const isWithinVertical = isWithin(frame.top, frame.bottom); + const isWithinHorizontal = isWithin(frame.left, frame.right); + + return function run(point: Position) { + return isWithinVertical(point.y) && isWithinHorizontal(point.x); + }; +} diff --git a/node_modules/react-beautiful-dnd/src/state/visibility/is-totally-visible-through-frame-on-axis.js b/node_modules/react-beautiful-dnd/src/state/visibility/is-totally-visible-through-frame-on-axis.js new file mode 100644 index 00000000..7af20316 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/visibility/is-totally-visible-through-frame-on-axis.js @@ -0,0 +1,19 @@ +// @flow +import { type Spacing } from 'css-box-model'; +import type { Axis } from '../../types'; +import isWithin from '../is-within'; +import { vertical } from '../axis'; + +export default (axis: Axis) => (frame: Spacing) => { + const isWithinVertical = isWithin(frame.top, frame.bottom); + const isWithinHorizontal = isWithin(frame.left, frame.right); + + return (subject: Spacing) => { + if (axis === vertical) { + return isWithinVertical(subject.top) && isWithinVertical(subject.bottom); + } + return ( + isWithinHorizontal(subject.left) && isWithinHorizontal(subject.right) + ); + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/visibility/is-totally-visible-through-frame.js b/node_modules/react-beautiful-dnd/src/state/visibility/is-totally-visible-through-frame.js new file mode 100644 index 00000000..bc1d6978 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/visibility/is-totally-visible-through-frame.js @@ -0,0 +1,18 @@ +// @flow +import { type Spacing } from 'css-box-model'; +import isWithin from '../is-within'; + +export default (frame: Spacing) => { + const isWithinVertical = isWithin(frame.top, frame.bottom); + const isWithinHorizontal = isWithin(frame.left, frame.right); + + return (subject: Spacing) => { + const isContained: boolean = + isWithinVertical(subject.top) && + isWithinVertical(subject.bottom) && + isWithinHorizontal(subject.left) && + isWithinHorizontal(subject.right); + + return isContained; + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/state/visibility/is-visible.js b/node_modules/react-beautiful-dnd/src/state/visibility/is-visible.js new file mode 100644 index 00000000..fce0c7b1 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/visibility/is-visible.js @@ -0,0 +1,102 @@ +// @flow +import { type Position, type Spacing, type Rect } from 'css-box-model'; +import type { DroppableDimension } from '../../types'; +import isPartiallyVisibleThroughFrame from './is-partially-visible-through-frame'; +import isTotallyVisibleThroughFrame from './is-totally-visible-through-frame'; +import isTotallyVisibleThroughFrameOnAxis from './is-totally-visible-through-frame-on-axis'; +import { offsetByPosition } from '../spacing'; +import { origin } from '../position'; + +export type Args = {| + target: Spacing, + destination: DroppableDimension, + viewport: Rect, + withDroppableDisplacement: boolean, + shouldCheckDroppable?: boolean, + shouldCheckViewport?: boolean, +|}; + +type IsVisibleThroughFrameFn = ( + frame: Spacing, +) => (subject: Spacing) => boolean; + +type InternalArgs = {| + ...Args, + isVisibleThroughFrameFn: IsVisibleThroughFrameFn, +|}; + +const getDroppableDisplaced = ( + target: Spacing, + destination: DroppableDimension, +): Spacing => { + const displacement: Position = destination.frame + ? destination.frame.scroll.diff.displacement + : origin; + + return offsetByPosition(target, displacement); +}; + +const isVisibleInDroppable = ( + target: Spacing, + destination: DroppableDimension, + isVisibleThroughFrameFn: IsVisibleThroughFrameFn, +): boolean => { + // destination subject is totally hidden by frame + // this should never happen - but just guarding against it + if (!destination.subject.active) { + return false; + } + + // When considering if the target is visible in the droppable we need + // to consider the change in scroll of the droppable. We need to + // adjust for the scroll as the clipped viewport takes into account + // the scroll of the droppable. + + return isVisibleThroughFrameFn(destination.subject.active)(target); +}; + +const isVisibleInViewport = ( + target: Spacing, + viewport: Rect, + isVisibleThroughFrameFn: IsVisibleThroughFrameFn, +): boolean => isVisibleThroughFrameFn(viewport)(target); + +const isVisible = ({ + target: toBeDisplaced, + destination, + viewport, + withDroppableDisplacement, + isVisibleThroughFrameFn, +}: InternalArgs): boolean => { + const displacedTarget: Spacing = withDroppableDisplacement + ? getDroppableDisplaced(toBeDisplaced, destination) + : toBeDisplaced; + + return ( + isVisibleInDroppable( + displacedTarget, + destination, + isVisibleThroughFrameFn, + ) && isVisibleInViewport(displacedTarget, viewport, isVisibleThroughFrameFn) + ); +}; + +export const isPartiallyVisible = (args: Args): boolean => + isVisible({ + ...args, + isVisibleThroughFrameFn: isPartiallyVisibleThroughFrame, + }); + +export const isTotallyVisible = (args: Args): boolean => + isVisible({ + ...args, + isVisibleThroughFrameFn: isTotallyVisibleThroughFrame, + }); + +export const isTotallyVisibleOnAxis = (args: Args): boolean => + isVisible({ + ...args, + isVisibleThroughFrameFn: isTotallyVisibleThroughFrameOnAxis( + args.destination.axis, + ), + }); diff --git a/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-all-displacement.js b/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-all-displacement.js new file mode 100644 index 00000000..5cb9c7e6 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-all-displacement.js @@ -0,0 +1,15 @@ +// @flow +import type { Position } from 'css-box-model'; +import type { DroppableDimension, Viewport } from '../../types'; +import withDroppableDisplacement from './with-droppable-displacement'; +import withViewportDisplacement from './with-viewport-displacement'; + +export default ( + page: Position, + droppable: DroppableDimension, + viewport: Viewport, +): Position => + withDroppableDisplacement( + droppable, + withViewportDisplacement(viewport, page), + ); diff --git a/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-droppable-displacement.js b/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-droppable-displacement.js new file mode 100644 index 00000000..ea4ec7d4 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-droppable-displacement.js @@ -0,0 +1,13 @@ +// @flow +import { type Position } from 'css-box-model'; +import { add } from '../position'; +import type { Scrollable, DroppableDimension } from '../../types'; + +export default (droppable: DroppableDimension, point: Position): Position => { + const frame: ?Scrollable = droppable.frame; + if (!frame) { + return point; + } + + return add(point, frame.scroll.diff.displacement); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-droppable-scroll.js b/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-droppable-scroll.js new file mode 100644 index 00000000..31f74724 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-droppable-scroll.js @@ -0,0 +1,13 @@ +// @flow +import { type Rect } from 'css-box-model'; +import type { Scrollable, DroppableDimension } from '../../types'; +import { offsetRectByPosition } from '../rect'; + +export default (droppable: DroppableDimension, area: Rect): Rect => { + const frame: ?Scrollable = droppable.frame; + if (!frame) { + return area; + } + + return offsetRectByPosition(area, frame.scroll.diff.value); +}; diff --git a/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-viewport-displacement.js b/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-viewport-displacement.js new file mode 100644 index 00000000..5a7a5390 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/state/with-scroll-change/with-viewport-displacement.js @@ -0,0 +1,7 @@ +// @flow +import { type Position } from 'css-box-model'; +import type { Viewport } from '../../types'; +import { add } from '../position'; + +export default (viewport: Viewport, point: Position): Position => + add(viewport.scroll.diff.displacement, point); diff --git a/node_modules/react-beautiful-dnd/src/types.js b/node_modules/react-beautiful-dnd/src/types.js new file mode 100644 index 00000000..a4a1358d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/types.js @@ -0,0 +1,485 @@ +// @flow +import type { BoxModel, Rect, Position } from 'css-box-model'; + +export type Id = string; +export type DraggableId = Id; +export type DroppableId = Id; +export type TypeId = Id; +export type ContextId = Id; +export type ElementId = Id; + +export type DroppableMode = 'standard' | 'virtual'; +export type DroppableDescriptor = {| + id: DroppableId, + type: TypeId, + mode: DroppableMode, +|}; + +export type DraggableDescriptor = {| + id: DraggableId, + index: number, + // Inherited from Droppable + droppableId: DroppableId, + // This is technically redundant but it avoids + // needing to look up a parent droppable just to get its type + type: TypeId, +|}; + +export type DraggableOptions = {| + canDragInteractiveElements: boolean, + shouldRespectForcePress: boolean, + isEnabled: boolean, +|}; + +export type Direction = 'horizontal' | 'vertical'; + +export type VerticalAxis = {| + direction: 'vertical', + line: 'y', + start: 'top', + end: 'bottom', + size: 'height', + crossAxisLine: 'x', + crossAxisStart: 'left', + crossAxisEnd: 'right', + crossAxisSize: 'width', +|}; + +export type HorizontalAxis = {| + direction: 'horizontal', + line: 'x', + start: 'left', + end: 'right', + size: 'width', + crossAxisLine: 'y', + crossAxisStart: 'top', + crossAxisEnd: 'bottom', + crossAxisSize: 'height', +|}; + +export type Axis = VerticalAxis | HorizontalAxis; + +export type ScrollSize = {| + scrollHeight: number, + scrollWidth: number, +|}; + +export type ScrollDetails = {| + initial: Position, + current: Position, + // the maximum allowable scroll for the frame + max: Position, + diff: {| + value: Position, + // The actual displacement as a result of a scroll is in the opposite + // direction to the scroll itself. When scrolling down items are displaced + // upwards. This value is the negated version of the 'value' + displacement: Position, + |}, +|}; + +export type Placeholder = {| + client: BoxModel, + tagName: string, + display: string, +|}; + +export type DraggableDimension = {| + descriptor: DraggableDescriptor, + // the placeholder for the draggable + placeholder: Placeholder, + // relative to the viewport when the drag started + client: BoxModel, + // relative to the whole page + page: BoxModel, + // how much displacement the draggable causes + // this is the size of the marginBox + displaceBy: Position, +|}; + +export type Scrollable = {| + // This is the window through which the droppable is observed + // It does not change during a drag + pageMarginBox: Rect, + // Used for comparision with dynamic recollecting + frameClient: BoxModel, + scrollSize: ScrollSize, + // Whether or not we should clip the subject by the frame + // Is controlled by the ignoreContainerClipping prop + shouldClipSubject: boolean, + scroll: ScrollDetails, +|}; + +export type PlaceholderInSubject = {| + // might not actually be increased by + // placeholder if there is no required space + increasedBy: ?Position, + placeholderSize: Position, + // max scroll before placeholder added + // will be null if there was no frame + oldFrameMaxScroll: ?Position, +|}; + +export type DroppableSubject = {| + // raw, unchanging + page: BoxModel, + withPlaceholder: ?PlaceholderInSubject, + // The hitbox for a droppable + // - page margin box + // - with scroll changes + // - with any additional droppable placeholder + // - clipped by frame + // The subject will be null if the hit area is completely empty + active: ?Rect, +|}; + +export type DroppableDimension = {| + descriptor: DroppableDescriptor, + axis: Axis, + isEnabled: boolean, + isCombineEnabled: boolean, + // relative to the current viewport + client: BoxModel, + // relative to the whole page + isFixedOnPage: boolean, + // relative to the page + page: BoxModel, + // The container of the droppable + frame: ?Scrollable, + // what is visible through the frame + subject: DroppableSubject, +|}; +export type DraggableLocation = {| + droppableId: DroppableId, + index: number, +|}; + +export type DraggableIdMap = { + [id: DraggableId]: true, +}; + +export type DroppableIdMap = { + [id: DroppableId]: true, +}; + +export type DraggableDimensionMap = { [key: DraggableId]: DraggableDimension }; +export type DroppableDimensionMap = { [key: DroppableId]: DroppableDimension }; + +export type Displacement = {| + draggableId: DraggableId, + shouldAnimate: boolean, +|}; + +export type DisplacementMap = { [key: DraggableId]: Displacement }; + +export type DisplacedBy = {| + value: number, + point: Position, +|}; + +export type Combine = {| + draggableId: DraggableId, + droppableId: DroppableId, +|}; +export type DisplacementGroups = {| + all: DraggableId[], + visible: DisplacementMap, + invisible: DraggableIdMap, +|}; + +export type ReorderImpact = {| + type: 'REORDER', + destination: DraggableLocation, +|}; + +export type CombineImpact = {| + type: 'COMBINE', + combine: Combine, +|}; + +export type ImpactLocation = ReorderImpact | CombineImpact; + +export type Displaced = {| + forwards: DisplacementGroups, + backwards: DisplacementGroups, +|}; + +export type DragImpact = {| + displaced: DisplacementGroups, + displacedBy: DisplacedBy, + at: ?ImpactLocation, +|}; + +export type ClientPositions = {| + // where the user initially selected + // This point is not used to calculate the impact of a dragging item + // It is used to calculate the offset from the initial selection point + selection: Position, + // the current center of the item + borderBoxCenter: Position, + // how far the item has moved from its original position + offset: Position, +|}; + +export type PagePositions = {| + selection: Position, + borderBoxCenter: Position, + // how much the page position has changed from the initial + offset: Position, +|}; + +// There are two seperate modes that a drag can be in +// FLUID: everything is done in response to highly granular input (eg mouse) +// SNAP: items move in response to commands (eg keyboard); +export type MovementMode = 'FLUID' | 'SNAP'; + +export type DragPositions = {| + client: ClientPositions, + page: PagePositions, +|}; + +export type DraggableRubric = {| + draggableId: DraggableId, + type: TypeId, + source: DraggableLocation, +|}; + +// Published in onBeforeCapture +// We cannot give more information as things might change in the +// onBeforeCapture responder! +export type BeforeCapture = {| + draggableId: DraggableId, + mode: MovementMode, +|}; + +// published when a drag starts +export type DragStart = {| + ...DraggableRubric, + mode: MovementMode, +|}; + +export type DragUpdate = {| + ...DragStart, + // may not have any destination (drag to nowhere) + destination: ?DraggableLocation, + // populated when a draggable is dragging over another in combine mode + combine: ?Combine, +|}; + +export type DropReason = 'DROP' | 'CANCEL'; + +// published when a drag finishes +export type DropResult = {| + ...DragUpdate, + reason: DropReason, +|}; + +export type ScrollOptions = {| + shouldPublishImmediately: boolean, +|}; + +// using the draggable id rather than the descriptor as the descriptor +// may change as a result of the initial flush. This means that the lift +// descriptor may not be the same as the actual descriptor. To avoid +// confusion the request is just an id which is looked up +// in the dimension-marshal post-flush +// Not including droppableId as it might change in a drop flush +export type LiftRequest = {| + draggableId: DraggableId, + scrollOptions: ScrollOptions, +|}; + +export type Critical = {| + draggable: DraggableDescriptor, + droppable: DroppableDescriptor, +|}; + +export type Viewport = {| + // live updates with the latest values + frame: Rect, + scroll: ScrollDetails, +|}; + +export type LiftEffect = {| + inVirtualList: boolean, + effected: DraggableIdMap, + displacedBy: DisplacedBy, +|}; + +export type DimensionMap = {| + draggables: DraggableDimensionMap, + droppables: DroppableDimensionMap, +|}; + +export type DroppablePublish = {| + droppableId: DroppableId, + scroll: Position, +|}; +export type Published = {| + additions: DraggableDimension[], + removals: DraggableId[], + modified: DroppablePublish[], +|}; + +export type CompletedDrag = {| + critical: Critical, + result: DropResult, + impact: DragImpact, + afterCritical: LiftEffect, +|}; + +export type IdleState = {| + phase: 'IDLE', + completed: ?CompletedDrag, + shouldFlush: boolean, +|}; + +export type DraggingState = {| + phase: 'DRAGGING', + isDragging: true, + critical: Critical, + movementMode: MovementMode, + dimensions: DimensionMap, + initial: DragPositions, + current: DragPositions, + impact: DragImpact, + viewport: Viewport, + afterCritical: LiftEffect, + onLiftImpact: DragImpact, + // when there is a fixed list we want to opt out of this behaviour + isWindowScrollAllowed: boolean, + // if we need to jump the scroll (keyboard dragging) + scrollJumpRequest: ?Position, + // whether or not draggable movements should be animated + forceShouldAnimate: ?boolean, +|}; + +// While dragging we can enter into a bulk collection phase +// During this phase no drag updates are permitted. +// If a drop occurs during this phase, it must wait until it is +// completed before continuing with the drop +// TODO: rename to BulkCollectingState +export type CollectingState = {| + ...DraggingState, + phase: 'COLLECTING', +|}; + +// If a drop action occurs during a bulk collection we need to +// wait for the collection to finish before performing the drop. +// This is to ensure that everything has the correct index after +// a drop +export type DropPendingState = {| + ...DraggingState, + phase: 'DROP_PENDING', + isWaiting: boolean, + reason: DropReason, +|}; + +// An optional phase for animating the drop / cancel if it is needed +export type DropAnimatingState = {| + phase: 'DROP_ANIMATING', + completed: CompletedDrag, + newHomeClientOffset: Position, + dropDuration: number, + // We still need to render placeholders and fix the dimensions of the dragging item + dimensions: DimensionMap, +|}; + +export type State = + | IdleState + | DraggingState + | CollectingState + | DropPendingState + | DropAnimatingState; + +export type StateWhenUpdatesAllowed = DraggingState | CollectingState; + +export type Announce = (message: string) => void; + +export type InOutAnimationMode = 'none' | 'open' | 'close'; + +export type ResponderProvided = {| + announce: Announce, +|}; + +export type OnBeforeCaptureResponder = (before: BeforeCapture) => mixed; +export type OnBeforeDragStartResponder = (start: DragStart) => mixed; +export type OnDragStartResponder = ( + start: DragStart, + provided: ResponderProvided, +) => mixed; +export type OnDragUpdateResponder = ( + update: DragUpdate, + provided: ResponderProvided, +) => mixed; +export type OnDragEndResponder = ( + result: DropResult, + provided: ResponderProvided, +) => mixed; + +export type Responders = {| + onBeforeCapture?: OnBeforeCaptureResponder, + onBeforeDragStart?: OnBeforeDragStartResponder, + onDragStart?: OnDragStartResponder, + onDragUpdate?: OnDragUpdateResponder, + // always required + onDragEnd: OnDragEndResponder, +|}; + +// ## Sensors +export type StopDragOptions = {| + shouldBlockNextClick: boolean, +|}; + +type DragActions = {| + drop: (args?: StopDragOptions) => void, + cancel: (args?: StopDragOptions) => void, + isActive: () => boolean, + shouldRespectForcePress: () => boolean, +|}; + +export type FluidDragActions = {| + ...DragActions, + move: (clientSelection: Position) => void, +|}; + +export type SnapDragActions = {| + ...DragActions, + moveUp: () => void, + moveDown: () => void, + moveRight: () => void, + moveLeft: () => void, +|}; + +export type PreDragActions = {| + // discover if the lock is still active + isActive: () => boolean, + // whether it has been indicated if force press should be respected + shouldRespectForcePress: () => boolean, + // lift the current item + fluidLift: (clientSelection: Position) => FluidDragActions, + snapLift: () => SnapDragActions, + // cancel the pre drag without starting a drag. Releases the lock + abort: () => void, +|}; + +export type TryGetLockOptions = { + sourceEvent?: Event, +}; + +export type TryGetLock = ( + draggableId: DraggableId, + forceStop?: () => void, + options?: TryGetLockOptions, +) => ?PreDragActions; + +export type SensorAPI = {| + tryGetLock: TryGetLock, + canGetLock: (id: DraggableId) => boolean, + isLockClaimed: () => boolean, + tryReleaseLock: () => void, + findClosestDraggableId: (event: Event) => ?DraggableId, + findOptionsForDraggable: (id: DraggableId) => ?DraggableOptions, +|}; + +export type Sensor = (api: SensorAPI) => void; diff --git a/node_modules/react-beautiful-dnd/src/view/animate-in-out/animate-in-out.jsx b/node_modules/react-beautiful-dnd/src/view/animate-in-out/animate-in-out.jsx new file mode 100644 index 00000000..cb05e2ea --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/animate-in-out/animate-in-out.jsx @@ -0,0 +1,95 @@ +// @flow +import React, { type Node } from 'react'; +import type { InOutAnimationMode } from '../../types'; + +export type AnimateProvided = {| + onClose: () => void, + animate: InOutAnimationMode, + data: mixed, +|}; + +type Props = {| + on: mixed, + shouldAnimate: boolean, + children: (provided: AnimateProvided) => Node, +|}; + +type State = {| + data: mixed, + isVisible: boolean, + animate: InOutAnimationMode, +|}; + +// Using a class here rather than hooks because +// getDerivedStateFromProps results in far less renders. +// Using hooks to implement this was quite messy and resulted in lots of additional renders + +export default class AnimateInOut extends React.PureComponent { + state: State = { + isVisible: Boolean(this.props.on), + data: this.props.on, + // not allowing to animate close on mount + animate: this.props.shouldAnimate && this.props.on ? 'open' : 'none', + }; + + static getDerivedStateFromProps(props: Props, state: State): State { + if (!props.shouldAnimate) { + return { + isVisible: Boolean(props.on), + data: props.on, + animate: 'none', + }; + } + + // need to animate in + if (props.on) { + return { + isVisible: true, + // have new data to animate in with + data: props.on, + animate: 'open', + }; + } + + // need to animate out if there was data + + if (state.isVisible) { + return { + isVisible: true, + // use old data for animating out + data: state.data, + animate: 'close', + }; + } + + // close animation no longer visible + return { + isVisible: false, + animate: 'close', + data: null, + }; + } + + onClose = () => { + if (this.state.animate !== 'close') { + return; + } + + this.setState({ + isVisible: false, + }); + }; + + render() { + if (!this.state.isVisible) { + return null; + } + + const provided: AnimateProvided = { + onClose: this.onClose, + data: this.state.data, + animate: this.state.animate, + }; + return this.props.children(provided); + } +} diff --git a/node_modules/react-beautiful-dnd/src/view/animate-in-out/index.js b/node_modules/react-beautiful-dnd/src/view/animate-in-out/index.js new file mode 100644 index 00000000..5869168b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/animate-in-out/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './animate-in-out'; diff --git a/node_modules/react-beautiful-dnd/src/view/check-is-valid-inner-ref.js b/node_modules/react-beautiful-dnd/src/view/check-is-valid-inner-ref.js new file mode 100644 index 00000000..a6fc1a18 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/check-is-valid-inner-ref.js @@ -0,0 +1,15 @@ +// @flow +import { invariant } from '../invariant'; +import isHtmlElement from './is-type-of-element/is-html-element'; + +export default function checkIsValidInnerRef(el: ?HTMLElement) { + invariant( + el && isHtmlElement(el), + ` + provided.innerRef has not been provided with a HTMLElement. + + You can find a guide on using the innerRef callback functions at: + https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md + `, + ); +} diff --git a/node_modules/react-beautiful-dnd/src/view/context/app-context.js b/node_modules/react-beautiful-dnd/src/view/context/app-context.js new file mode 100644 index 00000000..e2486b02 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/context/app-context.js @@ -0,0 +1,18 @@ +// @flow +import React from 'react'; +import type { DraggableId, ContextId, ElementId } from '../../types'; +import type { DimensionMarshal } from '../../state/dimension-marshal/dimension-marshal-types'; +import type { FocusMarshal } from '../use-focus-marshal/focus-marshal-types'; +import type { Registry } from '../../state/registry/registry-types'; + +export type AppContextValue = {| + focus: FocusMarshal, + contextId: ContextId, + canLift: (id: DraggableId) => boolean, + isMovementAllowed: () => boolean, + dragHandleUsageInstructionsId: ElementId, + marshal: DimensionMarshal, + registry: Registry, +|}; + +export default React.createContext(null); diff --git a/node_modules/react-beautiful-dnd/src/view/context/droppable-context.js b/node_modules/react-beautiful-dnd/src/view/context/droppable-context.js new file mode 100644 index 00000000..4e11d8e6 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/context/droppable-context.js @@ -0,0 +1,11 @@ +// @flow +import React from 'react'; +import type { DraggableId, DroppableId, TypeId } from '../../types'; + +export type DroppableContextValue = {| + isUsingCloneFor: ?DraggableId, + droppableId: DroppableId, + type: TypeId, +|}; + +export default React.createContext(null); diff --git a/node_modules/react-beautiful-dnd/src/view/context/store-context.js b/node_modules/react-beautiful-dnd/src/view/context/store-context.js new file mode 100644 index 00000000..fc63ab13 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/context/store-context.js @@ -0,0 +1,5 @@ +// @flow +import React from 'react'; +import type { Store } from '../../state/store-types'; + +export default React.createContext(null); diff --git a/node_modules/react-beautiful-dnd/src/view/data-attributes.js b/node_modules/react-beautiful-dnd/src/view/data-attributes.js new file mode 100644 index 00000000..8402fcf1 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/data-attributes.js @@ -0,0 +1,37 @@ +// @flow +export const prefix: string = 'data-rbd'; +export const dragHandle = (() => { + const base = `${prefix}-drag-handle`; + + return { + base, + draggableId: `${base}-draggable-id`, + contextId: `${base}-context-id`, + }; +})(); + +export const draggable = (() => { + const base: string = `${prefix}-draggable`; + return { + base, + contextId: `${base}-context-id`, + id: `${base}-id`, + }; +})(); + +export const droppable = (() => { + const base: string = `${prefix}-droppable`; + return { + base, + contextId: `${base}-context-id`, + id: `${base}-id`, + }; +})(); + +export const placeholder = { + contextId: `${prefix}-placeholder-context-id`, +}; + +export const scrollContainer = { + contextId: `${prefix}-scroll-container-context-id`, +}; diff --git a/node_modules/react-beautiful-dnd/src/view/drag-drop-context/app.jsx b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/app.jsx new file mode 100644 index 00000000..3097064d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/app.jsx @@ -0,0 +1,263 @@ +// @flow +import React, { useEffect, useRef, type Node } from 'react'; +import { bindActionCreators } from 'redux'; +import { Provider } from 'react-redux'; +import { useMemo, useCallback } from 'use-memo-one'; +import { invariant } from '../../invariant'; +import createStore from '../../state/create-store'; +import createDimensionMarshal from '../../state/dimension-marshal/dimension-marshal'; +import canStartDrag from '../../state/can-start-drag'; +import scrollWindow from '../window/scroll-window'; +import createAutoScroller from '../../state/auto-scroller'; +import useStyleMarshal from '../use-style-marshal/use-style-marshal'; +import useFocusMarshal from '../use-focus-marshal'; +import useRegistry from '../../state/registry/use-registry'; +import type { Registry } from '../../state/registry/registry-types'; +import type { FocusMarshal } from '../use-focus-marshal/focus-marshal-types'; +import type { AutoScroller } from '../../state/auto-scroller/auto-scroller-types'; +import type { StyleMarshal } from '../use-style-marshal/style-marshal-types'; +import type { + DimensionMarshal, + Callbacks as DimensionMarshalCallbacks, +} from '../../state/dimension-marshal/dimension-marshal-types'; +import type { + DraggableId, + State, + Responders, + Announce, + Sensor, + ElementId, +} from '../../types'; +import type { Store, Action } from '../../state/store-types'; +import type { SetAppCallbacks, AppCallbacks } from './drag-drop-context-types'; +import StoreContext from '../context/store-context'; +import { + move, + publishWhileDragging, + updateDroppableScroll, + updateDroppableIsEnabled, + updateDroppableIsCombineEnabled, + collectionStarting, + flush, +} from '../../state/action-creators'; +import isMovementAllowed from '../../state/is-movement-allowed'; +import useAnnouncer from '../use-announcer'; +import useHiddenTextElement from '../use-hidden-text-element'; +import AppContext, { type AppContextValue } from '../context/app-context'; +import useStartupValidation from './use-startup-validation'; +import usePrevious from '../use-previous-ref'; +import { warning } from '../../dev-warning'; +import useSensorMarshal from '../use-sensor-marshal/use-sensor-marshal'; + +export type Props = {| + ...Responders, + contextId: string, + setCallbacks: SetAppCallbacks, + nonce?: string, + // we do not technically need any children for this component + children: Node | null, + + // sensors + sensors?: Sensor[], + enableDefaultSensors?: ?boolean, + + // screen reader + dragHandleUsageInstructions: string, +|}; + +const createResponders = (props: Props): Responders => ({ + onBeforeCapture: props.onBeforeCapture, + onBeforeDragStart: props.onBeforeDragStart, + onDragStart: props.onDragStart, + onDragEnd: props.onDragEnd, + onDragUpdate: props.onDragUpdate, +}); + +// flow does not support MutableRefObject +// type LazyStoreRef = MutableRefObject; +type LazyStoreRef = {| current: ?Store |}; + +function getStore(lazyRef: LazyStoreRef): Store { + invariant(lazyRef.current, 'Could not find store from lazy ref'); + return lazyRef.current; +} + +export default function App(props: Props) { + const { + contextId, + setCallbacks, + sensors, + nonce, + dragHandleUsageInstructions, + } = props; + const lazyStoreRef: LazyStoreRef = useRef(null); + + useStartupValidation(); + + // lazy collection of responders using a ref - update on ever render + const lastPropsRef = usePrevious(props); + + const getResponders: () => Responders = useCallback(() => { + return createResponders(lastPropsRef.current); + }, [lastPropsRef]); + + const announce: Announce = useAnnouncer(contextId); + + const dragHandleUsageInstructionsId: ElementId = useHiddenTextElement({ + contextId, + text: dragHandleUsageInstructions, + }); + const styleMarshal: StyleMarshal = useStyleMarshal(contextId, nonce); + + const lazyDispatch: (Action) => void = useCallback((action: Action): void => { + getStore(lazyStoreRef).dispatch(action); + }, []); + + const marshalCallbacks: DimensionMarshalCallbacks = useMemo( + () => + bindActionCreators( + { + publishWhileDragging, + updateDroppableScroll, + updateDroppableIsEnabled, + updateDroppableIsCombineEnabled, + collectionStarting, + }, + // $FlowFixMe - not sure why this is wrong + lazyDispatch, + ), + [lazyDispatch], + ); + + const registry: Registry = useRegistry(); + + const dimensionMarshal: DimensionMarshal = useMemo(() => { + return createDimensionMarshal(registry, marshalCallbacks); + }, [registry, marshalCallbacks]); + + const autoScroller: AutoScroller = useMemo( + () => + createAutoScroller({ + scrollWindow, + scrollDroppable: dimensionMarshal.scrollDroppable, + ...bindActionCreators( + { + move, + }, + // $FlowFixMe - not sure why this is wrong + lazyDispatch, + ), + }), + [dimensionMarshal.scrollDroppable, lazyDispatch], + ); + + const focusMarshal: FocusMarshal = useFocusMarshal(contextId); + + const store: Store = useMemo( + () => + createStore({ + announce, + autoScroller, + dimensionMarshal, + focusMarshal, + getResponders, + styleMarshal, + }), + [ + announce, + autoScroller, + dimensionMarshal, + focusMarshal, + getResponders, + styleMarshal, + ], + ); + + // Checking for unexpected store changes + if (process.env.NODE_ENV !== 'production') { + if (lazyStoreRef.current && lazyStoreRef.current !== store) { + warning('unexpected store change'); + } + } + + // assigning lazy store ref + lazyStoreRef.current = store; + + const tryResetStore = useCallback(() => { + const current: Store = getStore(lazyStoreRef); + const state: State = current.getState(); + if (state.phase !== 'IDLE') { + current.dispatch(flush()); + } + }, []); + + const isDragging = useCallback((): boolean => { + const state: State = getStore(lazyStoreRef).getState(); + return state.isDragging || state.phase === 'DROP_ANIMATING'; + }, []); + + const appCallbacks: AppCallbacks = useMemo( + () => ({ + isDragging, + tryAbort: tryResetStore, + }), + [isDragging, tryResetStore], + ); + + // doing this in render rather than a side effect so any errors on the + // initial mount are caught + setCallbacks(appCallbacks); + + const getCanLift = useCallback( + (id: DraggableId) => canStartDrag(getStore(lazyStoreRef).getState(), id), + [], + ); + + const getIsMovementAllowed = useCallback( + () => isMovementAllowed(getStore(lazyStoreRef).getState()), + [], + ); + + const appContext: AppContextValue = useMemo( + () => ({ + marshal: dimensionMarshal, + focus: focusMarshal, + contextId, + canLift: getCanLift, + isMovementAllowed: getIsMovementAllowed, + dragHandleUsageInstructionsId, + registry, + }), + [ + contextId, + dimensionMarshal, + dragHandleUsageInstructionsId, + focusMarshal, + getCanLift, + getIsMovementAllowed, + registry, + ], + ); + + useSensorMarshal({ + contextId, + store, + registry, + customSensors: sensors, + // default to 'true' unless 'false' is explicitly passed + enableDefaultSensors: props.enableDefaultSensors !== false, + }); + + // Clean store when unmounting + useEffect(() => { + return tryResetStore; + }, [tryResetStore]); + + return ( + + + {props.children} + + + ); +} diff --git a/node_modules/react-beautiful-dnd/src/view/drag-drop-context/check-doctype.js b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/check-doctype.js new file mode 100644 index 00000000..a3f1e0a2 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/check-doctype.js @@ -0,0 +1,39 @@ +// @flow +import { warning } from '../../dev-warning'; + +const suffix: string = ` + We expect a html5 doctype: + This is to ensure consistent browser layout and measurement + + More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/doctype.md +`; + +export default (doc: Document) => { + const doctype: ?DocumentType = doc.doctype; + + if (!doctype) { + warning(` + No found. + + ${suffix} + `); + return; + } + + if (doctype.name.toLowerCase() !== 'html') { + warning(` + Unexpected found: (${doctype.name}) + + ${suffix} + `); + } + + if (doctype.publicId !== '') { + warning(` + Unexpected publicId found: (${doctype.publicId}) + A html5 doctype does not have a publicId + + ${suffix} + `); + } +}; diff --git a/node_modules/react-beautiful-dnd/src/view/drag-drop-context/check-react-version.js b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/check-react-version.js new file mode 100644 index 00000000..7af1c8cb --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/check-react-version.js @@ -0,0 +1,71 @@ +// @flow +import { invariant } from '../../invariant'; +import { warning } from '../../dev-warning'; + +type Version = {| + major: number, + minor: number, + patch: number, + raw: string, +|}; + +// We can use a simple regex here given that: +// - the version that react supplies is always full: eg 16.5.2 +// - our peer dependency version is to a full version (eg ^16.3.1) +const semver: RegExp = /(\d+)\.(\d+)\.(\d+)/; +const getVersion = (value: string): Version => { + const result: ?(string[]) = semver.exec(value); + + invariant(result != null, `Unable to parse React version ${value}`); + + const major: number = Number(result[1]); + const minor: number = Number(result[2]); + const patch: number = Number(result[3]); + + return { + major, + minor, + patch, + raw: value, + }; +}; + +const isSatisfied = (expected: Version, actual: Version): boolean => { + if (actual.major > expected.major) { + return true; + } + + if (actual.major < expected.major) { + return false; + } + + // major is equal, continue on + + if (actual.minor > expected.minor) { + return true; + } + + if (actual.minor < expected.minor) { + return false; + } + + // minor is equal, continue on + + return actual.patch >= expected.patch; +}; + +export default (peerDepValue: string, actualValue: string) => { + const peerDep: Version = getVersion(peerDepValue); + const actual: Version = getVersion(actualValue); + + if (isSatisfied(peerDep, actual)) { + return; + } + + warning(` + React version: [${actual.raw}] + does not satisfy expected peer dependency version: [${peerDep.raw}] + + This can result in run time bugs, and even fatal crashes + `); +}; diff --git a/node_modules/react-beautiful-dnd/src/view/drag-drop-context/drag-drop-context-types.js b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/drag-drop-context-types.js new file mode 100644 index 00000000..6adcbe82 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/drag-drop-context-types.js @@ -0,0 +1,7 @@ +// @flow +export type AppCallbacks = {| + isDragging: () => boolean, + tryAbort: () => void, +|}; + +export type SetAppCallbacks = (callbacks: AppCallbacks) => void; diff --git a/node_modules/react-beautiful-dnd/src/view/drag-drop-context/drag-drop-context.jsx b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/drag-drop-context.jsx new file mode 100644 index 00000000..e1bc18ad --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/drag-drop-context.jsx @@ -0,0 +1,60 @@ +// @flow +import React, { type Node } from 'react'; +import type { Responders, ContextId, Sensor } from '../../types'; +import ErrorBoundary from './error-boundary'; +import preset from '../../screen-reader-message-preset'; +import App from './app'; +import useUniqueContextId, { + reset as resetContextId, +} from './use-unique-context-id'; +import { reset as resetUniqueIds } from '../use-unique-id'; + +type Props = {| + ...Responders, + // We do not technically need any children for this component + children: Node | null, + // Read out by screen readers when focusing on a drag handle + dragHandleUsageInstructions?: string, + // Used for strict content security policies + // See our [content security policy guide](/docs/guides/content-security-policy.md) + nonce?: string, + // See our [sensor api](/docs/sensors/sensor-api.md) + sensors?: Sensor[], + enableDefaultSensors?: ?boolean, +|}; + +// Reset any context that gets persisted across server side renders +export function resetServerContext() { + resetContextId(); + resetUniqueIds(); +} + +export default function DragDropContext(props: Props) { + const contextId: ContextId = useUniqueContextId(); + const dragHandleUsageInstructions: string = + props.dragHandleUsageInstructions || preset.dragHandleUsageInstructions; + + // We need the error boundary to be on the outside of App + // so that it can catch any errors caused by App + return ( + + {(setCallbacks) => ( + + {props.children} + + )} + + ); +} diff --git a/node_modules/react-beautiful-dnd/src/view/drag-drop-context/error-boundary.jsx b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/error-boundary.jsx new file mode 100644 index 00000000..0022d7ce --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/error-boundary.jsx @@ -0,0 +1,88 @@ +// @flow +import React, { type Node } from 'react'; +import { warning, error } from '../../dev-warning'; +import { noop } from '../../empty'; +import bindEvents from '../event-bindings/bind-events'; +import { RbdInvariant } from '../../invariant'; +import type { AppCallbacks } from './drag-drop-context-types'; + +type Props = {| + children: (setCallbacks: (callbacks: AppCallbacks) => void) => Node, +|}; + +// Lame that this is not in flow +type ErrorEvent = Event & { + error: ?Error, +}; + +export default class ErrorBoundary extends React.Component { + callbacks: ?AppCallbacks = null; + unbind: () => void = noop; + + componentDidMount() { + this.unbind = bindEvents(window, [ + { + eventName: 'error', + fn: this.onWindowError, + }, + ]); + } + + componentDidCatch(err: Error) { + if (err instanceof RbdInvariant) { + if (process.env.NODE_ENV !== 'production') { + error(err.message); + } + + this.setState({}); + return; + } + + // throwing error for other error boundaries + // eslint-disable-next-line no-restricted-syntax + throw err; + } + + componentWillUnmount() { + this.unbind(); + } + + onWindowError = (event: ErrorEvent) => { + const callbacks: AppCallbacks = this.getCallbacks(); + + if (callbacks.isDragging()) { + callbacks.tryAbort(); + warning(` + An error was caught by our window 'error' event listener while a drag was occurring. + The active drag has been aborted. + `); + } + + const err: ?Error = event.error; + + if (err instanceof RbdInvariant) { + // Marking the event as dealt with. + // This will prevent any 'uncaught' error warnings in the console + event.preventDefault(); + if (process.env.NODE_ENV !== 'production') { + error(err.message); + } + } + }; + + getCallbacks = (): AppCallbacks => { + if (!this.callbacks) { + // eslint-disable-next-line no-restricted-syntax + throw new Error('Unable to find AppCallbacks in '); + } + return this.callbacks; + }; + + setCallbacks = (callbacks: AppCallbacks) => { + this.callbacks = callbacks; + }; + + render() { + return this.props.children(this.setCallbacks); + } +} diff --git a/node_modules/react-beautiful-dnd/src/view/drag-drop-context/index.js b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/index.js new file mode 100644 index 00000000..d8e562e9 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/index.js @@ -0,0 +1,2 @@ +// @flow +export { default, resetServerContext } from './drag-drop-context'; diff --git a/node_modules/react-beautiful-dnd/src/view/drag-drop-context/use-startup-validation.js b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/use-startup-validation.js new file mode 100644 index 00000000..a591011d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/use-startup-validation.js @@ -0,0 +1,13 @@ +// @flow +import React from 'react'; +import { peerDependencies } from '../../../package.json'; +import checkReactVersion from './check-react-version'; +import checkDoctype from './check-doctype'; +import useDevSetupWarning from '../use-dev-setup-warning'; + +export default function useStartupValidation() { + useDevSetupWarning(() => { + checkReactVersion(peerDependencies.react, React.version); + checkDoctype(document); + }, []); +} diff --git a/node_modules/react-beautiful-dnd/src/view/drag-drop-context/use-unique-context-id.js b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/use-unique-context-id.js new file mode 100644 index 00000000..39194ad1 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/drag-drop-context/use-unique-context-id.js @@ -0,0 +1,13 @@ +// @flow +import { useMemo } from 'use-memo-one'; +import type { ContextId } from '../../types'; + +let count = 0; + +export function reset() { + count = 0; +} + +export default function useInstanceCount(): ContextId { + return useMemo(() => `${count++}`, []); +} diff --git a/node_modules/react-beautiful-dnd/src/view/draggable/connected-draggable.js b/node_modules/react-beautiful-dnd/src/view/draggable/connected-draggable.js new file mode 100644 index 00000000..89d6f58f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/draggable/connected-draggable.js @@ -0,0 +1,372 @@ +// @flow +import { type Position } from 'css-box-model'; +// eslint-disable-next-line +import { Component } from 'react'; +import memoizeOne from 'memoize-one'; +import { connect } from 'react-redux'; +import Draggable from './draggable'; +import { origin, negate } from '../../state/position'; +import isStrictEqual from '../is-strict-equal'; +import * as animation from '../../animation'; +import { dropAnimationFinished as dropAnimationFinishedAction } from '../../state/action-creators'; +import type { + State, + DraggableId, + DroppableId, + DraggableDimension, + Displacement, + CompletedDrag, + DragImpact, + MovementMode, + DropResult, + LiftEffect, + Combine, +} from '../../types'; +import type { + MapProps, + OwnProps, + DispatchProps, + Selector, + StateSnapshot, + DropAnimation, +} from './draggable-types'; +import whatIsDraggedOver from '../../state/droppable/what-is-dragged-over'; +import StoreContext from '../context/store-context'; +import whatIsDraggedOverFromResult from '../../state/droppable/what-is-dragged-over-from-result'; +import { tryGetCombine } from '../../state/get-impact-location'; + +const getCombineWithFromResult = (result: DropResult): ?DraggableId => { + return result.combine ? result.combine.draggableId : null; +}; + +const getCombineWithFromImpact = (impact: DragImpact): ?DraggableId => { + return impact.at && impact.at.type === 'COMBINE' + ? impact.at.combine.draggableId + : null; +}; + +type TrySelect = (state: State, ownProps: OwnProps) => ?MapProps; + +function getDraggableSelector(): TrySelect { + const memoizedOffset = memoizeOne((x: number, y: number): Position => ({ + x, + y, + })); + + const getMemoizedSnapshot = memoizeOne( + ( + mode: MovementMode, + isClone: boolean, + draggingOver: ?DroppableId, + combineWith: ?DraggableId, + dropping: ?DropAnimation, + ): StateSnapshot => ({ + isDragging: true, + isClone, + isDropAnimating: Boolean(dropping), + dropAnimation: dropping, + mode, + draggingOver, + combineWith, + combineTargetFor: null, + }), + ); + + const getMemoizedProps = memoizeOne(( + offset: Position, + mode: MovementMode, + dimension: DraggableDimension, + isClone: boolean, + // the id of the droppable you are over + draggingOver: ?DroppableId, + // the id of a draggable you are grouping with + combineWith: ?DraggableId, + forceShouldAnimate: ?boolean, + ): MapProps => ({ + mapped: { + type: 'DRAGGING', + dropping: null, + draggingOver, + combineWith, + mode, + offset, + dimension, + forceShouldAnimate, + snapshot: getMemoizedSnapshot( + mode, + isClone, + draggingOver, + combineWith, + null, + ), + }, + })); + + const selector: TrySelect = (state: State, ownProps: OwnProps): ?MapProps => { + // Dragging + if (state.isDragging) { + // not the dragging item + if (state.critical.draggable.id !== ownProps.draggableId) { + return null; + } + + const offset: Position = state.current.client.offset; + const dimension: DraggableDimension = + state.dimensions.draggables[ownProps.draggableId]; + // const shouldAnimateDragMovement: boolean = state.shouldAnimate; + const draggingOver: ?DroppableId = whatIsDraggedOver(state.impact); + const combineWith: ?DraggableId = getCombineWithFromImpact(state.impact); + const forceShouldAnimate: ?boolean = state.forceShouldAnimate; + + return getMemoizedProps( + memoizedOffset(offset.x, offset.y), + state.movementMode, + dimension, + ownProps.isClone, + draggingOver, + combineWith, + forceShouldAnimate, + ); + } + + // Dropping + if (state.phase === 'DROP_ANIMATING') { + const completed: CompletedDrag = state.completed; + if (completed.result.draggableId !== ownProps.draggableId) { + return null; + } + + const isClone: boolean = ownProps.isClone; + const dimension: DraggableDimension = + state.dimensions.draggables[ownProps.draggableId]; + const result: DropResult = completed.result; + const mode: MovementMode = result.mode; + // these need to be pulled from the result as they can be different to the final impact + const draggingOver: ?DroppableId = whatIsDraggedOverFromResult(result); + const combineWith: ?DraggableId = getCombineWithFromResult(result); + const duration: number = state.dropDuration; + + // not memoized as it is the only execution + const dropping: DropAnimation = { + duration, + curve: animation.curves.drop, + moveTo: state.newHomeClientOffset, + opacity: combineWith ? animation.combine.opacity.drop : null, + scale: combineWith ? animation.combine.scale.drop : null, + }; + + return { + mapped: { + type: 'DRAGGING', + offset: state.newHomeClientOffset, + dimension, + dropping, + draggingOver, + combineWith, + mode, + forceShouldAnimate: null, + snapshot: getMemoizedSnapshot( + mode, + isClone, + draggingOver, + combineWith, + dropping, + ), + }, + }; + } + + return null; + }; + + return selector; +} + +function getSecondarySnapshot(combineTargetFor: ?DraggableId): StateSnapshot { + return { + isDragging: false, + isDropAnimating: false, + isClone: false, + dropAnimation: null, + mode: null, + draggingOver: null, + combineTargetFor, + combineWith: null, + }; +} + +const atRest: MapProps = { + mapped: { + type: 'SECONDARY', + offset: origin, + combineTargetFor: null, + shouldAnimateDisplacement: true, + snapshot: getSecondarySnapshot(null), + }, +}; + +function getSecondarySelector(): TrySelect { + const memoizedOffset = memoizeOne((x: number, y: number): Position => ({ + x, + y, + })); + + const getMemoizedSnapshot = memoizeOne(getSecondarySnapshot); + + const getMemoizedProps = memoizeOne( + ( + offset: Position, + combineTargetFor: ?DraggableId = null, + shouldAnimateDisplacement: boolean, + ): MapProps => ({ + mapped: { + type: 'SECONDARY', + offset, + combineTargetFor, + shouldAnimateDisplacement, + snapshot: getMemoizedSnapshot(combineTargetFor), + }, + }), + ); + + // Is we are the combine target for something then we need to publish that + // otherwise we will return null to get the default props + const getFallback = (combineTargetFor: ?DraggableId): ?MapProps => { + return combineTargetFor + ? getMemoizedProps(origin, combineTargetFor, true) + : null; + }; + + const getProps = ( + ownId: DraggableId, + draggingId: DraggableId, + impact: DragImpact, + afterCritical: LiftEffect, + ): ?MapProps => { + const visualDisplacement: ?Displacement = impact.displaced.visible[ownId]; + const isAfterCriticalInVirtualList: boolean = Boolean( + afterCritical.inVirtualList && afterCritical.effected[ownId], + ); + + const combine: ?Combine = tryGetCombine(impact); + const combineTargetFor: ?DraggableId = + combine && combine.draggableId === ownId ? draggingId : null; + + if (!visualDisplacement) { + if (!isAfterCriticalInVirtualList) { + return getFallback(combineTargetFor); + } + + // After critical but not visibly displaced in a virtual list + // This can occur if: + // 1. the item is not visible (displaced.invisible) + // 2. We have moved out of the home list. + + // Don't need to do anything - item is invisible + if (impact.displaced.invisible[ownId]) { + return null; + } + + // We are no longer over the home list. + // We need to move backwards to close the gap that the dragging item has left + const change: Position = negate(afterCritical.displacedBy.point); + const offset: Position = memoizedOffset(change.x, change.y); + return getMemoizedProps(offset, combineTargetFor, true); + } + + if (isAfterCriticalInVirtualList) { + // In a virtual list the removal of a dragging item does + // not cause the list to collapse. So when something is 'displaced' + // we can just leave it in the original spot. + return getFallback(combineTargetFor); + } + const displaceBy: Position = impact.displacedBy.point; + const offset: Position = memoizedOffset(displaceBy.x, displaceBy.y); + + return getMemoizedProps( + offset, + combineTargetFor, + visualDisplacement.shouldAnimate, + ); + }; + + const selector: TrySelect = (state: State, ownProps: OwnProps): ?MapProps => { + // Dragging + if (state.isDragging) { + // we do not care about the dragging item + if (state.critical.draggable.id === ownProps.draggableId) { + return null; + } + + return getProps( + ownProps.draggableId, + state.critical.draggable.id, + state.impact, + state.afterCritical, + ); + } + + // Dropping + if (state.phase === 'DROP_ANIMATING') { + const completed: CompletedDrag = state.completed; + // do nothing if this was the dragging item + if (completed.result.draggableId === ownProps.draggableId) { + return null; + } + return getProps( + ownProps.draggableId, + completed.result.draggableId, + completed.impact, + completed.afterCritical, + ); + } + + // Otherwise + return null; + }; + + return selector; +} + +// Returning a function to ensure each +// Draggable gets its own selector +export const makeMapStateToProps = (): Selector => { + const draggingSelector: TrySelect = getDraggableSelector(); + const secondarySelector: TrySelect = getSecondarySelector(); + + const selector = (state: State, ownProps: OwnProps): MapProps => + draggingSelector(state, ownProps) || + secondarySelector(state, ownProps) || + atRest; + + return selector; +}; + +const mapDispatchToProps: DispatchProps = { + dropAnimationFinished: dropAnimationFinishedAction, +}; + +// Leaning heavily on the default shallow equality checking +// that `connect` provides. +// It avoids needing to do it own within `` +const ConnectedDraggable = connect( + // returning a function so each component can do its own memoization + makeMapStateToProps, + mapDispatchToProps, + // mergeProps: use default + null, + // options + // $FlowFixMe: current react-redux type does not know about context property + { + // Using our own context for the store to avoid clashing with consumers + context: StoreContext, + // Default value, but being really clear + pure: true, + // When pure, compares the result of mapStateToProps to its previous value. + // Default value: shallowEqual + // Switching to a strictEqual as we return a memoized object on changes + areStatePropsEqual: isStrictEqual, + }, +)(Draggable); + +export default ConnectedDraggable; diff --git a/node_modules/react-beautiful-dnd/src/view/draggable/draggable-api.jsx b/node_modules/react-beautiful-dnd/src/view/draggable/draggable-api.jsx new file mode 100644 index 00000000..aa520e18 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/draggable/draggable-api.jsx @@ -0,0 +1,48 @@ +// @flow +import React from 'react'; +import type { DraggableId } from '../../types'; +import type { PublicOwnProps, PrivateOwnProps } from './draggable-types'; +import ConnectedDraggable from './connected-draggable'; +import useRequiredContext from '../use-required-context'; +import DroppableContext, { + type DroppableContextValue, +} from '../context/droppable-context'; + +// We can use this to render a draggable with more control +// It is used by a Droppable to render a clone +export function PrivateDraggable(props: PrivateOwnProps) { + const droppableContext: DroppableContextValue = useRequiredContext( + DroppableContext, + ); + // The droppable can render a clone of the draggable item. + // In that case we unmount the existing dragging item + const isUsingCloneFor: ?DraggableId = droppableContext.isUsingCloneFor; + if (isUsingCloneFor === props.draggableId && !props.isClone) { + return null; + } + + return ; +} + +// What we give to consumers +export function PublicDraggable(props: PublicOwnProps) { + // default values for props + const isEnabled: boolean = + typeof props.isDragDisabled === 'boolean' ? !props.isDragDisabled : true; + const canDragInteractiveElements: boolean = Boolean( + props.disableInteractiveElementBlocking, + ); + const shouldRespectForcePress: boolean = Boolean( + props.shouldRespectForcePress, + ); + + return ( + + ); +} diff --git a/node_modules/react-beautiful-dnd/src/view/draggable/draggable-types.js b/node_modules/react-beautiful-dnd/src/view/draggable/draggable-types.js new file mode 100644 index 00000000..e5ebe9a9 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/draggable/draggable-types.js @@ -0,0 +1,191 @@ +// @flow +import { type Position } from 'css-box-model'; +import { type Node } from 'react'; +import type { + DraggableId, + DroppableId, + DraggableDimension, + State, + MovementMode, + ContextId, + ElementId, + DraggableRubric, +} from '../../types'; +import { dropAnimationFinished } from '../../state/action-creators'; + +export type DraggingStyle = {| + position: 'fixed', + top: number, + left: number, + boxSizing: 'border-box', + width: number, + height: number, + transition: string, + transform: ?string, + zIndex: number, + + // for combining + opacity: ?number, + + // Avoiding any processing of mouse events. + // This is already applied by the shared styles during a drag. + // During a drop it prevents a draggable from being dragged. + // canStartDrag() will prevent drags in some cases for non primary draggable. + // It is also a minor performance optimisation + pointerEvents: 'none', +|}; + +export type NotDraggingStyle = {| + transform: ?string, + // null: use the global animation style + // none: skip animation (used in certain displacement situations) + transition: null | 'none', +|}; + +export type DraggableStyle = DraggingStyle | NotDraggingStyle; + +export type ZIndexOptions = {| + dragging: number, + dropAnimating: number, +|}; + +// Props that can be spread onto the element directly +export type DraggableProps = {| + // inline style + style: ?DraggableStyle, + // used for shared global styles + 'data-rbd-draggable-context-id': ContextId, + // used for lookups + 'data-rbd-draggable-id': DraggableId, + // used to know when a transition ends + onTransitionEnd: ?(event: TransitionEvent) => void, +|}; + +export type DragHandleProps = {| + // what draggable the handle belongs to + 'data-rbd-drag-handle-draggable-id': DraggableId, + + // What DragDropContext the drag handle is in + 'data-rbd-drag-handle-context-id': ContextId, + + // We need a drag handle to be a widget in order to correctly set accessibility properties + // Note: JAWS and VoiceOver don't need the element to be a 'widget' to read the accessibility properties, but NVDA does + // Using `role="button"` but leaving the public API as a string to allow for changing without a major + role: string, + + // Overriding default role to have a more descriptive text ("Draggable item") + // Sadly we cannot use this right now due an issue with lighthouse + // https://github.com/atlassian/react-beautiful-dnd/issues/1742 + // 'aria-roledescription': string, + + // Using the description property of the drag handle to provide usage instructions + 'aria-describedby': ElementId, + + // Allow tabbing to this element + // Adding a tab index marks the element as interactive content: https://www.w3.org/TR/html51/dom.html#kinds-of-content-interactive-content + tabIndex: number, + + // Opting out of html5 drag and drop + draggable: boolean, + onDragStart: (event: DragEvent) => void, +|}; + +export type Provided = {| + draggableProps: DraggableProps, + // will be null if the draggable is disabled + dragHandleProps: ?DragHandleProps, + // The following props will be removed once we move to react 16 + innerRef: (?HTMLElement) => void, +|}; + +// to easily enable patching of styles +export type DropAnimation = {| + duration: number, + curve: string, + moveTo: Position, + opacity: ?number, + scale: ?number, +|}; + +export type StateSnapshot = {| + isDragging: boolean, + isDropAnimating: boolean, + isClone: boolean, + dropAnimation: ?DropAnimation, + draggingOver: ?DroppableId, + combineWith: ?DraggableId, + combineTargetFor: ?DraggableId, + mode: ?MovementMode, +|}; + +export type DispatchProps = {| + dropAnimationFinished: typeof dropAnimationFinished, +|}; + +export type DraggingMapProps = {| + type: 'DRAGGING', + offset: Position, + mode: MovementMode, + dropping: ?DropAnimation, + draggingOver: ?DraggableId, + combineWith: ?DraggableId, + dimension: DraggableDimension, + forceShouldAnimate: ?boolean, + snapshot: StateSnapshot, +|}; + +export type SecondaryMapProps = {| + type: 'SECONDARY', + offset: Position, + combineTargetFor: ?DraggableId, + shouldAnimateDisplacement: boolean, + snapshot: StateSnapshot, +|}; + +export type MappedProps = DraggingMapProps | SecondaryMapProps; + +export type MapProps = {| + // when an item is being displaced by a dragging item, + // we need to know if that movement should be animated + mapped: MappedProps, + // dragging: ?DraggingMapProps, + // secondary: ?SecondaryMapProps, +|}; + +export type ChildrenFn = ( + Provided, + StateSnapshot, + DraggableRubric, +) => Node | null; + +export type PublicOwnProps = {| + draggableId: DraggableId, + index: number, + children: ChildrenFn, + + // optional own props + isDragDisabled?: boolean, + disableInteractiveElementBlocking?: boolean, + shouldRespectForcePress?: boolean, +|}; + +export type PrivateOwnProps = {| + ...PublicOwnProps, + isClone: boolean, + // no longer optional + isEnabled: boolean, + canDragInteractiveElements: boolean, + shouldRespectForcePress: boolean, +|}; + +export type OwnProps = {| + ...PrivateOwnProps, +|}; + +export type Props = {| + ...MapProps, + ...DispatchProps, + ...OwnProps, +|}; + +export type Selector = (state: State, ownProps: OwnProps) => MapProps; diff --git a/node_modules/react-beautiful-dnd/src/view/draggable/draggable.jsx b/node_modules/react-beautiful-dnd/src/view/draggable/draggable.jsx new file mode 100644 index 00000000..4a6f1523 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/draggable/draggable.jsx @@ -0,0 +1,171 @@ +// @flow +import { useRef } from 'react'; +import { useMemo, useCallback } from 'use-memo-one'; +import type { DraggableRubric, DraggableDescriptor } from '../../types'; +import getStyle from './get-style'; +import useDraggablePublisher, { + type Args as PublisherArgs, +} from '../use-draggable-publisher/use-draggable-publisher'; +import AppContext from '../context/app-context'; +import DroppableContext from '../context/droppable-context'; +import type { + Props, + Provided, + DraggableStyle, + DragHandleProps, +} from './draggable-types'; +import { useValidation, useClonePropValidation } from './use-validation'; +import useRequiredContext from '../use-required-context'; + +function preventHtml5Dnd(event: DragEvent) { + event.preventDefault(); +} + +export default function Draggable(props: Props) { + // reference to DOM node + const ref = useRef(null); + const setRef = useCallback((el: ?HTMLElement) => { + ref.current = el; + }, []); + const getRef = useCallback((): ?HTMLElement => ref.current, []); + + // context + const { + contextId, + dragHandleUsageInstructionsId, + registry, + } = useRequiredContext(AppContext); + const { type, droppableId } = useRequiredContext(DroppableContext); + + const descriptor: DraggableDescriptor = useMemo( + () => ({ + id: props.draggableId, + index: props.index, + type, + droppableId, + }), + [props.draggableId, props.index, type, droppableId], + ); + + // props + const { + // ownProps + children, + draggableId, + isEnabled, + shouldRespectForcePress, + canDragInteractiveElements, + isClone, + + // mapProps + mapped, + + // dispatchProps + dropAnimationFinished: dropAnimationFinishedAction, + } = props; + + // Validating props and innerRef + useValidation(props, contextId, getRef); + + // Clones do not speak to the dimension marshal + // We are violating the rules of hooks here: conditional hooks. + // In this specific use case it is okay as an item will always either be a + // clone or not for it's whole lifecycle + /* eslint-disable react-hooks/rules-of-hooks */ + + // Being super sure that isClone is not changing during a draggable lifecycle + useClonePropValidation(isClone); + if (!isClone) { + const forPublisher: PublisherArgs = useMemo( + () => ({ + descriptor, + registry, + getDraggableRef: getRef, + canDragInteractiveElements, + shouldRespectForcePress, + isEnabled, + }), + [ + descriptor, + registry, + getRef, + canDragInteractiveElements, + shouldRespectForcePress, + isEnabled, + ], + ); + useDraggablePublisher(forPublisher); + } + /* eslint-enable react-hooks/rules-of-hooks */ + + const dragHandleProps: ?DragHandleProps = useMemo( + () => + isEnabled + ? { + // See `draggable-types` for an explanation of why these are used + tabIndex: 0, + role: 'button', + 'aria-describedby': dragHandleUsageInstructionsId, + 'data-rbd-drag-handle-draggable-id': draggableId, + 'data-rbd-drag-handle-context-id': contextId, + draggable: false, + onDragStart: preventHtml5Dnd, + } + : null, + [contextId, dragHandleUsageInstructionsId, draggableId, isEnabled], + ); + + const onMoveEnd = useCallback( + (event: TransitionEvent) => { + if (mapped.type !== 'DRAGGING') { + return; + } + + if (!mapped.dropping) { + return; + } + + // There might be other properties on the element that are + // being transitioned. We do not want those to end a drop animation! + if (event.propertyName !== 'transform') { + return; + } + + dropAnimationFinishedAction(); + }, + [dropAnimationFinishedAction, mapped], + ); + + const provided: Provided = useMemo(() => { + const style: DraggableStyle = getStyle(mapped); + const onTransitionEnd = + mapped.type === 'DRAGGING' && mapped.dropping ? onMoveEnd : null; + + const result: Provided = { + innerRef: setRef, + draggableProps: { + 'data-rbd-draggable-context-id': contextId, + 'data-rbd-draggable-id': draggableId, + style, + onTransitionEnd, + }, + dragHandleProps, + }; + + return result; + }, [contextId, dragHandleProps, draggableId, mapped, onMoveEnd, setRef]); + + const rubric: DraggableRubric = useMemo( + () => ({ + draggableId: descriptor.id, + type: descriptor.type, + source: { + index: descriptor.index, + droppableId: descriptor.droppableId, + }, + }), + [descriptor.droppableId, descriptor.id, descriptor.index, descriptor.type], + ); + + return children(provided, mapped.snapshot, rubric); +} diff --git a/node_modules/react-beautiful-dnd/src/view/draggable/get-style.js b/node_modules/react-beautiful-dnd/src/view/draggable/get-style.js new file mode 100644 index 00000000..f85380d6 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/draggable/get-style.js @@ -0,0 +1,109 @@ +// @flow +import type { BoxModel } from 'css-box-model'; +import { combine, transforms, transitions } from '../../animation'; +import type { DraggableDimension } from '../../types'; +import type { + DraggingStyle, + NotDraggingStyle, + ZIndexOptions, + DropAnimation, + SecondaryMapProps, + DraggingMapProps, + DraggableStyle, + MappedProps, +} from './draggable-types'; + +export const zIndexOptions: ZIndexOptions = { + dragging: 5000, + dropAnimating: 4500, +}; + +const getDraggingTransition = ( + shouldAnimateDragMovement: boolean, + dropping: ?DropAnimation, +): string => { + if (dropping) { + return transitions.drop(dropping.duration); + } + if (shouldAnimateDragMovement) { + return transitions.snap; + } + return transitions.fluid; +}; + +const getDraggingOpacity = ( + isCombining: boolean, + isDropAnimating: boolean, +): ?number => { + // if not combining: no not impact opacity + if (!isCombining) { + return null; + } + + return isDropAnimating ? combine.opacity.drop : combine.opacity.combining; +}; + +const getShouldDraggingAnimate = (dragging: DraggingMapProps): boolean => { + if (dragging.forceShouldAnimate != null) { + return dragging.forceShouldAnimate; + } + return dragging.mode === 'SNAP'; +}; + +function getDraggingStyle(dragging: DraggingMapProps): DraggingStyle { + const dimension: DraggableDimension = dragging.dimension; + const box: BoxModel = dimension.client; + const { offset, combineWith, dropping } = dragging; + + const isCombining: boolean = Boolean(combineWith); + + const shouldAnimate: boolean = getShouldDraggingAnimate(dragging); + const isDropAnimating: boolean = Boolean(dropping); + + const transform: ?string = isDropAnimating + ? transforms.drop(offset, isCombining) + : transforms.moveTo(offset); + + const style: DraggingStyle = { + // ## Placement + position: 'fixed', + // As we are applying the margins we need to align to the start of the marginBox + top: box.marginBox.top, + left: box.marginBox.left, + + // ## Sizing + // Locking these down as pulling the node out of the DOM could cause it to change size + boxSizing: 'border-box', + width: box.borderBox.width, + height: box.borderBox.height, + + // ## Movement + // Opting out of the standard css transition for the dragging item + transition: getDraggingTransition(shouldAnimate, dropping), + transform, + opacity: getDraggingOpacity(isCombining, isDropAnimating), + // ## Layering + zIndex: isDropAnimating + ? zIndexOptions.dropAnimating + : zIndexOptions.dragging, + + // ## Blocking any pointer events on the dragging or dropping item + // global styles on cover while dragging + pointerEvents: 'none', + }; + return style; +} + +function getSecondaryStyle(secondary: SecondaryMapProps): NotDraggingStyle { + return { + transform: transforms.moveTo(secondary.offset), + // transition style is applied in the head + transition: secondary.shouldAnimateDisplacement ? null : 'none', + }; +} + +export default function getStyle(mapped: MappedProps): DraggableStyle { + return mapped.type === 'DRAGGING' + ? getDraggingStyle(mapped) + : getSecondaryStyle(mapped); +} diff --git a/node_modules/react-beautiful-dnd/src/view/draggable/index.js b/node_modules/react-beautiful-dnd/src/view/draggable/index.js new file mode 100644 index 00000000..0375d796 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/draggable/index.js @@ -0,0 +1,2 @@ +// @flow +export { PublicDraggable as default } from './draggable-api'; diff --git a/node_modules/react-beautiful-dnd/src/view/draggable/use-validation.js b/node_modules/react-beautiful-dnd/src/view/draggable/use-validation.js new file mode 100644 index 00000000..8ca1d789 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/draggable/use-validation.js @@ -0,0 +1,70 @@ +// @flow +import { useRef } from 'react'; +import { invariant } from '../../invariant'; +import { isInteger } from '../../native-with-fallback'; +import type { DraggableId, ContextId } from '../../types'; +import type { Props } from './draggable-types'; +import checkIsValidInnerRef from '../check-is-valid-inner-ref'; +import findDragHandle from '../get-elements/find-drag-handle'; +import useDevSetupWarning from '../use-dev-setup-warning'; +import useDev from '../use-dev'; + +export function useValidation( + props: Props, + contextId: ContextId, + getRef: () => ?HTMLElement, +) { + // running after every update in development + useDevSetupWarning(() => { + function prefix(id: DraggableId): string { + return `Draggable[id: ${id}]: `; + } + + // wrapping entire block for better minification + const id: ?DraggableId = props.draggableId; + invariant(id, 'Draggable requires a draggableId'); + invariant( + typeof id === 'string', + `Draggable requires a [string] draggableId. + Provided: [type: ${typeof id}] (value: ${id})`, + ); + + invariant( + isInteger(props.index), + `${prefix(id)} requires an integer index prop`, + ); + + if (props.mapped.type === 'DRAGGING') { + return; + } + + // Checking provided ref (only when not dragging as it might be removed) + checkIsValidInnerRef(getRef()); + + // Checking that drag handle is provided + // Only running check when enabled. + // When not enabled there is no drag handle props + if (props.isEnabled) { + invariant( + findDragHandle(contextId, id), + `${prefix(id)} Unable to find drag handle`, + ); + } + }); +} + +// we expect isClone not to change for entire component's life +export function useClonePropValidation(isClone: boolean) { + useDev(() => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const initialRef = useRef(isClone); + + // eslint-disable-next-line react-hooks/rules-of-hooks + useDevSetupWarning(() => { + invariant( + isClone === initialRef.current, + 'Draggable isClone prop value changed during component life', + ); + }, [isClone]); + }); +} diff --git a/node_modules/react-beautiful-dnd/src/view/droppable/connected-droppable.js b/node_modules/react-beautiful-dnd/src/view/droppable/connected-droppable.js new file mode 100644 index 00000000..bc53a7d8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/droppable/connected-droppable.js @@ -0,0 +1,280 @@ +// @flow +// eslint-disable-next-line no-unused-vars +import { Component } from 'react'; +import { connect } from 'react-redux'; +import memoizeOne from 'memoize-one'; +import { invariant } from '../../invariant'; +import type { + State, + DroppableId, + DraggableId, + CompletedDrag, + DraggableDimension, + DimensionMap, + TypeId, + Critical, + DraggableRubric, + DraggableDescriptor, +} from '../../types'; +import type { + MapProps, + OwnProps, + DefaultProps, + Selector, + DispatchProps, + StateSnapshot, + UseClone, + DraggableChildrenFn, +} from './droppable-types'; +import Droppable from './droppable'; +import isStrictEqual from '../is-strict-equal'; +import whatIsDraggedOver from '../../state/droppable/what-is-dragged-over'; +import { updateViewportMaxScroll as updateViewportMaxScrollAction } from '../../state/action-creators'; +import StoreContext from '../context/store-context'; +import whatIsDraggedOverFromResult from '../../state/droppable/what-is-dragged-over-from-result'; + +const isMatchingType = (type: TypeId, critical: Critical): boolean => + type === critical.droppable.type; + +const getDraggable = ( + critical: Critical, + dimensions: DimensionMap, +): DraggableDimension => dimensions.draggables[critical.draggable.id]; + +// Returning a function to ensure each +// Droppable gets its own selector +export const makeMapStateToProps = (): Selector => { + const idleWithAnimation: MapProps = { + placeholder: null, + shouldAnimatePlaceholder: true, + snapshot: { + isDraggingOver: false, + draggingOverWith: null, + draggingFromThisWith: null, + isUsingPlaceholder: false, + }, + useClone: null, + }; + + const idleWithoutAnimation = { + ...idleWithAnimation, + shouldAnimatePlaceholder: false, + }; + + const getDraggableRubric = memoizeOne( + (descriptor: DraggableDescriptor): DraggableRubric => ({ + draggableId: descriptor.id, + type: descriptor.type, + source: { + index: descriptor.index, + droppableId: descriptor.droppableId, + }, + }), + ); + + const getMapProps = memoizeOne( + ( + id: DroppableId, + isEnabled: boolean, + isDraggingOverForConsumer: boolean, + isDraggingOverForImpact: boolean, + dragging: DraggableDimension, + // snapshot: StateSnapshot, + renderClone: ?DraggableChildrenFn, + ): MapProps => { + const draggableId: DraggableId = dragging.descriptor.id; + const isHome: boolean = dragging.descriptor.droppableId === id; + + if (isHome) { + const useClone: ?UseClone = renderClone + ? { + render: renderClone, + dragging: getDraggableRubric(dragging.descriptor), + } + : null; + + const snapshot: StateSnapshot = { + isDraggingOver: isDraggingOverForConsumer, + draggingOverWith: isDraggingOverForConsumer ? draggableId : null, + draggingFromThisWith: draggableId, + isUsingPlaceholder: true, + }; + + return { + placeholder: dragging.placeholder, + shouldAnimatePlaceholder: false, + snapshot, + useClone, + }; + } + + if (!isEnabled) { + return idleWithoutAnimation; + } + + // not over foreign list - return idle + if (!isDraggingOverForImpact) { + return idleWithAnimation; + } + + const snapshot: StateSnapshot = { + isDraggingOver: isDraggingOverForConsumer, + draggingOverWith: draggableId, + draggingFromThisWith: null, + isUsingPlaceholder: true, + }; + + return { + placeholder: dragging.placeholder, + // Animating placeholder in foreign list + shouldAnimatePlaceholder: true, + snapshot, + useClone: null, + }; + }, + ); + + const selector = (state: State, ownProps: OwnProps): MapProps => { + // not checking if item is disabled as we need the home list to display a placeholder + + const id: DroppableId = ownProps.droppableId; + const type: TypeId = ownProps.type; + const isEnabled: boolean = !ownProps.isDropDisabled; + const renderClone: ?DraggableChildrenFn = ownProps.renderClone; + + if (state.isDragging) { + const critical: Critical = state.critical; + if (!isMatchingType(type, critical)) { + return idleWithoutAnimation; + } + + const dragging: DraggableDimension = getDraggable( + critical, + state.dimensions, + ); + const isDraggingOver: boolean = whatIsDraggedOver(state.impact) === id; + + return getMapProps( + id, + isEnabled, + isDraggingOver, + isDraggingOver, + dragging, + renderClone, + ); + } + + if (state.phase === 'DROP_ANIMATING') { + const completed: CompletedDrag = state.completed; + if (!isMatchingType(type, completed.critical)) { + return idleWithoutAnimation; + } + + const dragging: DraggableDimension = getDraggable( + completed.critical, + state.dimensions, + ); + + // Snapshot based on result and not impact + // The result might be null (cancel) but the impact is populated + // to move everything back + return getMapProps( + id, + isEnabled, + whatIsDraggedOverFromResult(completed.result) === id, + whatIsDraggedOver(completed.impact) === id, + dragging, + renderClone, + ); + } + + if (state.phase === 'IDLE' && state.completed && !state.shouldFlush) { + const completed: CompletedDrag = state.completed; + if (!isMatchingType(type, completed.critical)) { + return idleWithoutAnimation; + } + + // Looking at impact as this controls the placeholder + const wasOver: boolean = whatIsDraggedOver(completed.impact) === id; + const wasCombining: boolean = Boolean( + completed.impact.at && completed.impact.at.type === 'COMBINE', + ); + const isHome: boolean = completed.critical.droppable.id === id; + + if (wasOver) { + // if reordering we need to cut an animation immediately + // if merging: animate placeholder closed after drop + return wasCombining ? idleWithAnimation : idleWithoutAnimation; + } + + // we need to animate the home placeholder closed if it is not + // being dropped into + if (isHome) { + return idleWithAnimation; + } + + return idleWithoutAnimation; + } + + // default: including when flushed + return idleWithoutAnimation; + }; + + return selector; +}; + +const mapDispatchToProps: DispatchProps = { + updateViewportMaxScroll: updateViewportMaxScrollAction, +}; + +function getBody(): HTMLElement { + invariant(document.body, 'document.body is not ready'); + return document.body; +} + +const defaultProps = ({ + mode: 'standard', + type: 'DEFAULT', + direction: 'vertical', + isDropDisabled: false, + isCombineEnabled: false, + ignoreContainerClipping: false, + renderClone: null, + getContainerForClone: getBody, +}: DefaultProps); + +// Abstract class allows to specify props and defaults to component. +// All other ways give any or do not let add default props. +// eslint-disable-next-line +/*:: +class DroppableType extends Component { + static defaultProps = defaultProps; +} +*/ + +// Leaning heavily on the default shallow equality checking +// that `connect` provides. +// It avoids needing to do it own within `Droppable` +const ConnectedDroppable: typeof DroppableType = connect( + // returning a function so each component can do its own memoization + makeMapStateToProps, + // no dispatch props for droppable + mapDispatchToProps, + // mergeProps - using default + null, + // $FlowFixMe: current react-redux type does not know about context property + { + // Ensuring our context does not clash with consumers + context: StoreContext, + // pure: true is default value, but being really clear + pure: true, + // When pure, compares the result of mapStateToProps to its previous value. + // Default value: shallowEqual + // Switching to a strictEqual as we return a memoized object on changes + areStatePropsEqual: isStrictEqual, + }, +)(Droppable); + +ConnectedDroppable.defaultProps = defaultProps; + +export default ConnectedDroppable; diff --git a/node_modules/react-beautiful-dnd/src/view/droppable/droppable-types.js b/node_modules/react-beautiful-dnd/src/view/droppable/droppable-types.js new file mode 100644 index 00000000..64ecb52d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/droppable/droppable-types.js @@ -0,0 +1,91 @@ +// @flow +import { type Node } from 'react'; +import type { + DraggableId, + DroppableId, + TypeId, + Direction, + Placeholder, + State, + ContextId, + DraggableRubric, + DroppableMode, +} from '../../types'; +import type { ChildrenFn } from '../draggable/draggable-types'; +import { updateViewportMaxScroll } from '../../state/action-creators'; + +export type DraggableChildrenFn = ChildrenFn; + +export type DroppableProps = {| + // used for shared global styles + 'data-rbd-droppable-context-id': ContextId, + // Used to lookup. Currently not used for drag and drop lifecycle + 'data-rbd-droppable-id': DroppableId, +|}; + +export type Provided = {| + innerRef: (?HTMLElement) => void, + placeholder: ?Node, + droppableProps: DroppableProps, +|}; + +export type UseClone = {| + dragging: DraggableRubric, + render: DraggableChildrenFn, +|}; + +export type StateSnapshot = {| + // Is the Droppable being dragged over? + isDraggingOver: boolean, + // What is the id of the draggable that is dragging over the Droppable? + draggingOverWith: ?DraggableId, + // What is the id of the draggable that is dragging from this list? + // Useful for styling the home list when not being dragged over + draggingFromThisWith: ?DraggableId, + // Whether or not the placeholder is actively being used. + // This is useful information when working with virtual lists + isUsingPlaceholder: boolean, +|}; + +export type MapProps = {| + // placeholder: + // - used to keep space in the home list during the whole drag and drop + // - used to make space in foreign lists during a drag + placeholder: ?Placeholder, + shouldAnimatePlaceholder: boolean, + // snapshot based on redux state to be provided to consumers + snapshot: StateSnapshot, + useClone: ?UseClone, +|}; + +export type DefaultProps = {| + mode: DroppableMode, + type: TypeId, + isDropDisabled: boolean, + isCombineEnabled: boolean, + direction: Direction, + renderClone: ?DraggableChildrenFn, + ignoreContainerClipping: boolean, + getContainerForClone: () => HTMLElement, +|}; + +export type DispatchProps = {| + updateViewportMaxScroll: typeof updateViewportMaxScroll, +|}; + +export type OwnProps = {| + ...DefaultProps, + children: (Provided, StateSnapshot) => Node, + droppableId: DroppableId, + renderClone: ?DraggableChildrenFn, +|}; + +export type Props = {| + ...MapProps, + ...DispatchProps, + ...OwnProps, +|}; + +// Having issues getting the correct type +// export type Selector = OutputSelector; +export type Selector = (state: State, ownProps: OwnProps) => MapProps; diff --git a/node_modules/react-beautiful-dnd/src/view/droppable/droppable.jsx b/node_modules/react-beautiful-dnd/src/view/droppable/droppable.jsx new file mode 100644 index 00000000..27fd5ecd --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/droppable/droppable.jsx @@ -0,0 +1,167 @@ +// @flow +import ReactDOM from 'react-dom'; +import { useMemo, useCallback } from 'use-memo-one'; +import React, { useRef, useContext, type Node } from 'react'; +import { invariant } from '../../invariant'; +import type { DraggableId } from '../../types'; +import type { Props, Provided } from './droppable-types'; +import useDroppablePublisher from '../use-droppable-publisher'; +import Placeholder from '../placeholder'; +import AppContext, { type AppContextValue } from '../context/app-context'; +import DroppableContext, { + type DroppableContextValue, +} from '../context/droppable-context'; +// import useAnimateInOut from '../use-animate-in-out/use-animate-in-out'; +import getMaxWindowScroll from '../window/get-max-window-scroll'; +import useValidation from './use-validation'; +import type { + StateSnapshot as DraggableStateSnapshot, + Provided as DraggableProvided, +} from '../draggable/draggable-types'; +import AnimateInOut, { + type AnimateProvided, +} from '../animate-in-out/animate-in-out'; +import { PrivateDraggable } from '../draggable/draggable-api'; + +export default function Droppable(props: Props) { + const appContext: ?AppContextValue = useContext(AppContext); + invariant(appContext, 'Could not find app context'); + const { contextId, isMovementAllowed } = appContext; + const droppableRef = useRef(null); + const placeholderRef = useRef(null); + + const { + // own props + children, + droppableId, + type, + mode, + direction, + ignoreContainerClipping, + isDropDisabled, + isCombineEnabled, + // map props + snapshot, + useClone, + // dispatch props + updateViewportMaxScroll, + + // clone (ownProps) + getContainerForClone, + } = props; + + const getDroppableRef = useCallback( + (): ?HTMLElement => droppableRef.current, + [], + ); + const setDroppableRef = useCallback((value: ?HTMLElement) => { + droppableRef.current = value; + }, []); + const getPlaceholderRef = useCallback( + (): ?HTMLElement => placeholderRef.current, + [], + ); + const setPlaceholderRef = useCallback((value: ?HTMLElement) => { + placeholderRef.current = value; + }, []); + + useValidation({ + props, + getDroppableRef, + getPlaceholderRef, + }); + + const onPlaceholderTransitionEnd = useCallback(() => { + // A placeholder change can impact the window's max scroll + if (isMovementAllowed()) { + updateViewportMaxScroll({ maxScroll: getMaxWindowScroll() }); + } + }, [isMovementAllowed, updateViewportMaxScroll]); + + useDroppablePublisher({ + droppableId, + type, + mode, + direction, + isDropDisabled, + isCombineEnabled, + ignoreContainerClipping, + getDroppableRef, + }); + + const placeholder: Node = ( + + {({ onClose, data, animate }: AnimateProvided) => ( + + )} + + ); + + const provided: Provided = useMemo( + (): Provided => ({ + innerRef: setDroppableRef, + placeholder, + droppableProps: { + 'data-rbd-droppable-id': droppableId, + 'data-rbd-droppable-context-id': contextId, + }, + }), + [contextId, droppableId, placeholder, setDroppableRef], + ); + + const isUsingCloneFor: ?DraggableId = useClone + ? useClone.dragging.draggableId + : null; + + const droppableContext: ?DroppableContextValue = useMemo( + () => ({ + droppableId, + type, + isUsingCloneFor, + }), + [droppableId, isUsingCloneFor, type], + ); + + function getClone(): ?Node { + if (!useClone) { + return null; + } + const { dragging, render } = useClone; + + const node: Node = ( + + {( + draggableProvided: DraggableProvided, + draggableSnapshot: DraggableStateSnapshot, + ) => render(draggableProvided, draggableSnapshot, dragging)} + + ); + + return ReactDOM.createPortal(node, getContainerForClone()); + } + + return ( + + {children(provided, snapshot)} + {getClone()} + + ); +} diff --git a/node_modules/react-beautiful-dnd/src/view/droppable/index.js b/node_modules/react-beautiful-dnd/src/view/droppable/index.js new file mode 100644 index 00000000..24ebf792 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/droppable/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './connected-droppable'; diff --git a/node_modules/react-beautiful-dnd/src/view/droppable/use-validation.js b/node_modules/react-beautiful-dnd/src/view/droppable/use-validation.js new file mode 100644 index 00000000..f4127f1e --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/droppable/use-validation.js @@ -0,0 +1,101 @@ +// @flow +import { invariant } from '../../invariant'; +import type { Props } from './droppable-types'; +import { warning } from '../../dev-warning'; +import checkIsValidInnerRef from '../check-is-valid-inner-ref'; +import useDevSetupWarning from '../use-dev-setup-warning'; + +type Args = {| + props: Props, + getDroppableRef: () => ?HTMLElement, + getPlaceholderRef: () => ?HTMLElement, +|}; + +type CheckFn = (args: Args) => void; + +function isBoolean(value: mixed): boolean { + return typeof value === 'boolean'; +} + +function runChecks(args: Args, checks: CheckFn[]) { + checks.forEach((check: CheckFn) => check(args)); +} + +const shared: CheckFn[] = [ + function required({ props }: Args) { + invariant(props.droppableId, 'A Droppable requires a droppableId prop'); + invariant( + typeof props.droppableId === 'string', + `A Droppable requires a [string] droppableId. Provided: [${typeof props.droppableId}]`, + ); + }, + function boolean({ props }: Args) { + invariant( + isBoolean(props.isDropDisabled), + 'isDropDisabled must be a boolean', + ); + invariant( + isBoolean(props.isCombineEnabled), + 'isCombineEnabled must be a boolean', + ); + invariant( + isBoolean(props.ignoreContainerClipping), + 'ignoreContainerClipping must be a boolean', + ); + }, + function ref({ getDroppableRef }: Args) { + checkIsValidInnerRef(getDroppableRef()); + }, +]; + +const standard: CheckFn[] = [ + function placeholder({ props, getPlaceholderRef }: Args) { + if (!props.placeholder) { + return; + } + + const ref: ?HTMLElement = getPlaceholderRef(); + + if (ref) { + return; + } + + warning(` + Droppable setup issue [droppableId: "${props.droppableId}"]: + DroppableProvided > placeholder could not be found. + + Please be sure to add the {provided.placeholder} React Node as a child of your Droppable. + More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/api/droppable.md + `); + }, +]; + +const virtual: CheckFn[] = [ + function hasClone({ props }: Args) { + invariant( + props.renderClone, + 'Must provide a clone render function (renderClone) for virtual lists', + ); + }, + function hasNoPlaceholder({ getPlaceholderRef }: Args) { + invariant( + !getPlaceholderRef(), + 'Expected virtual list to not have a placeholder', + ); + }, +]; + +export default function useValidation(args: Args) { + useDevSetupWarning(() => { + // wrapping entire block for better minification + runChecks(args, shared); + + if (args.props.mode === 'standard') { + runChecks(args, standard); + } + + if (args.props.mode === 'virtual') { + runChecks(args, virtual); + } + }); +} diff --git a/node_modules/react-beautiful-dnd/src/view/event-bindings/bind-events.js b/node_modules/react-beautiful-dnd/src/view/event-bindings/bind-events.js new file mode 100644 index 00000000..11094e55 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/event-bindings/bind-events.js @@ -0,0 +1,39 @@ +// @flow +import type { EventBinding, EventOptions } from './event-types'; + +type UnbindFn = () => void; + +function getOptions( + shared?: EventOptions, + fromBinding: ?EventOptions, +): EventOptions { + return { + ...shared, + ...fromBinding, + }; +} + +export default function bindEvents( + el: HTMLElement, + bindings: EventBinding[], + sharedOptions?: EventOptions, +): Function { + const unbindings: UnbindFn[] = bindings.map( + (binding: EventBinding): UnbindFn => { + const options: Object = getOptions(sharedOptions, binding.options); + + el.addEventListener(binding.eventName, binding.fn, options); + + return function unbind() { + el.removeEventListener(binding.eventName, binding.fn, options); + }; + }, + ); + + // Return a function to unbind events + return function unbindAll() { + unbindings.forEach((unbind: UnbindFn) => { + unbind(); + }); + }; +} diff --git a/node_modules/react-beautiful-dnd/src/view/event-bindings/event-types.js b/node_modules/react-beautiful-dnd/src/view/event-bindings/event-types.js new file mode 100644 index 00000000..55bb533a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/event-bindings/event-types.js @@ -0,0 +1,14 @@ +// @flow + +export type EventOptions = {| + passive?: boolean, + capture?: boolean, + // sometimes an event might only event want to be bound once + once?: boolean, +|}; + +export type EventBinding = {| + eventName: string, + fn: Function, + options?: EventOptions, +|}; diff --git a/node_modules/react-beautiful-dnd/src/view/get-body-element.js b/node_modules/react-beautiful-dnd/src/view/get-body-element.js new file mode 100644 index 00000000..97c2bb09 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/get-body-element.js @@ -0,0 +1,8 @@ +// @flow +import { invariant } from '../invariant'; + +export default (): HTMLBodyElement => { + const body: ?HTMLBodyElement = document.body; + invariant(body, 'Cannot find document.body'); + return body; +}; diff --git a/node_modules/react-beautiful-dnd/src/view/get-border-box-center-position.js b/node_modules/react-beautiful-dnd/src/view/get-border-box-center-position.js new file mode 100644 index 00000000..f8cea431 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/get-border-box-center-position.js @@ -0,0 +1,5 @@ +// @flow +import { getRect, type Position } from 'css-box-model'; + +export default (el: HTMLElement): Position => + getRect(el.getBoundingClientRect()).center; diff --git a/node_modules/react-beautiful-dnd/src/view/get-document-element.js b/node_modules/react-beautiful-dnd/src/view/get-document-element.js new file mode 100644 index 00000000..e28f8c76 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/get-document-element.js @@ -0,0 +1,8 @@ +// @flow +import { invariant } from '../invariant'; + +export default (): HTMLElement => { + const doc: ?HTMLElement = document.documentElement; + invariant(doc, 'Cannot find document.documentElement'); + return doc; +}; diff --git a/node_modules/react-beautiful-dnd/src/view/get-elements/find-drag-handle.js b/node_modules/react-beautiful-dnd/src/view/get-elements/find-drag-handle.js new file mode 100644 index 00000000..32388f51 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/get-elements/find-drag-handle.js @@ -0,0 +1,38 @@ +// @flow +import type { DraggableId, ContextId } from '../../types'; +import { dragHandle as dragHandleAttr } from '../data-attributes'; +import { warning } from '../../dev-warning'; +import { find, toArray } from '../../native-with-fallback'; +import isHtmlElement from '../is-type-of-element/is-html-element'; + +export default function findDragHandle( + contextId: ContextId, + draggableId: DraggableId, +): ?HTMLElement { + // cannot create a selector with the draggable id as it might not be a valid attribute selector + const selector: string = `[${dragHandleAttr.contextId}="${contextId}"]`; + const possible: Element[] = toArray(document.querySelectorAll(selector)); + + if (!possible.length) { + warning(`Unable to find any drag handles in the context "${contextId}"`); + return null; + } + + const handle: ?Element = find(possible, (el: Element): boolean => { + return el.getAttribute(dragHandleAttr.draggableId) === draggableId; + }); + + if (!handle) { + warning( + `Unable to find drag handle with id "${draggableId}" as no handle with a matching id was found`, + ); + return null; + } + + if (!isHtmlElement(handle)) { + warning('drag handle needs to be a HTMLElement'); + return null; + } + + return handle; +} diff --git a/node_modules/react-beautiful-dnd/src/view/get-elements/find-draggable.js b/node_modules/react-beautiful-dnd/src/view/get-elements/find-draggable.js new file mode 100644 index 00000000..91483126 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/get-elements/find-draggable.js @@ -0,0 +1,30 @@ +// @flow +import type { DraggableId, ContextId } from '../../types'; +import * as attributes from '../data-attributes'; +import { find, toArray } from '../../native-with-fallback'; +import { warning } from '../../dev-warning'; +import isHtmlElement from '../is-type-of-element/is-html-element'; + +export default function findDraggable( + contextId: ContextId, + draggableId: DraggableId, +): ?HTMLElement { + // cannot create a selector with the draggable id as it might not be a valid attribute selector + const selector: string = `[${attributes.draggable.contextId}="${contextId}"]`; + const possible: Element[] = toArray(document.querySelectorAll(selector)); + + const draggable: ?Element = find(possible, (el: Element): boolean => { + return el.getAttribute(attributes.draggable.id) === draggableId; + }); + + if (!draggable) { + return null; + } + + if (!isHtmlElement(draggable)) { + warning('Draggable element is not a HTMLElement'); + return null; + } + + return draggable; +} diff --git a/node_modules/react-beautiful-dnd/src/view/is-strict-equal.js b/node_modules/react-beautiful-dnd/src/view/is-strict-equal.js new file mode 100644 index 00000000..1dc85a47 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/is-strict-equal.js @@ -0,0 +1,2 @@ +// @flow +export default (a: mixed, b: mixed): boolean => a === b; diff --git a/node_modules/react-beautiful-dnd/src/view/is-type-of-element/is-element.js b/node_modules/react-beautiful-dnd/src/view/is-type-of-element/is-element.js new file mode 100644 index 00000000..d0509c4e --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/is-type-of-element/is-element.js @@ -0,0 +1,6 @@ +// @flow +import getWindowFromEl from '../window/get-window-from-el'; + +export default function isElement(el: Object): boolean %checks { + return el instanceof getWindowFromEl(el).Element; +} diff --git a/node_modules/react-beautiful-dnd/src/view/is-type-of-element/is-html-element.js b/node_modules/react-beautiful-dnd/src/view/is-type-of-element/is-html-element.js new file mode 100644 index 00000000..be54cf61 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/is-type-of-element/is-html-element.js @@ -0,0 +1,6 @@ +// @flow +import getWindowFromEl from '../window/get-window-from-el'; + +export default function isHtmlElement(el: Object): boolean %checks { + return el instanceof getWindowFromEl(el).HTMLElement; +} diff --git a/node_modules/react-beautiful-dnd/src/view/is-type-of-element/is-svg-element.js b/node_modules/react-beautiful-dnd/src/view/is-type-of-element/is-svg-element.js new file mode 100644 index 00000000..c159b225 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/is-type-of-element/is-svg-element.js @@ -0,0 +1,12 @@ +// @flow +import getWindowFromEl from '../window/get-window-from-el'; + +export default function isSvgElement(el: Object): boolean %checks { + // Some environments do not support SVGElement + // Doing a double lookup rather than storing the window + // as a %checks function can only be a 'simple predicate' + return ( + Boolean(getWindowFromEl(el).SVGElement) && + el instanceof getWindowFromEl(el).SVGElement + ); +} diff --git a/node_modules/react-beautiful-dnd/src/view/key-codes.js b/node_modules/react-beautiful-dnd/src/view/key-codes.js new file mode 100644 index 00000000..f8d43309 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/key-codes.js @@ -0,0 +1,13 @@ +// @flow +export const tab: number = 9; +export const enter: number = 13; +export const escape: number = 27; +export const space: number = 32; +export const pageUp: number = 33; +export const pageDown: number = 34; +export const end: number = 35; +export const home: number = 36; +export const arrowLeft: number = 37; +export const arrowUp: number = 38; +export const arrowRight: number = 39; +export const arrowDown: number = 40; diff --git a/node_modules/react-beautiful-dnd/src/view/placeholder/index.js b/node_modules/react-beautiful-dnd/src/view/placeholder/index.js new file mode 100644 index 00000000..eab54fa1 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/placeholder/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './placeholder'; diff --git a/node_modules/react-beautiful-dnd/src/view/placeholder/placeholder-types.js b/node_modules/react-beautiful-dnd/src/view/placeholder/placeholder-types.js new file mode 100644 index 00000000..28d05af6 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/placeholder/placeholder-types.js @@ -0,0 +1,16 @@ +// @flow + +export type PlaceholderStyle = {| + display: string, + boxSizing: 'border-box', + width: number, + height: number, + marginTop: number, + marginRight: number, + marginBottom: number, + marginLeft: number, + flexShrink: '0', + flexGrow: '0', + pointerEvents: 'none', + transition: string, +|}; diff --git a/node_modules/react-beautiful-dnd/src/view/placeholder/placeholder.jsx b/node_modules/react-beautiful-dnd/src/view/placeholder/placeholder.jsx new file mode 100644 index 00000000..0a95b9fa --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/placeholder/placeholder.jsx @@ -0,0 +1,198 @@ +// @flow +import React, { useState, useRef, useEffect, type Node } from 'react'; +import { useCallback } from 'use-memo-one'; +import type { Spacing } from 'css-box-model'; +import type { + Placeholder as PlaceholderType, + InOutAnimationMode, + ContextId, +} from '../../types'; +import { transitions } from '../../animation'; +import { noSpacing } from '../../state/spacing'; + +function noop() {} + +export type PlaceholderStyle = {| + display: string, + boxSizing: 'border-box', + width: number, + height: number, + marginTop: number, + marginRight: number, + marginBottom: number, + marginLeft: number, + flexShrink: '0', + flexGrow: '0', + pointerEvents: 'none', + transition: ?string, +|}; +export type Props = {| + placeholder: PlaceholderType, + animate: InOutAnimationMode, + onClose: () => void, + innerRef?: () => ?HTMLElement, + onTransitionEnd: () => void, + contextId: ContextId, +|}; + +type Size = {| + width: number, + height: number, + // Need to animate in/out animation as well as size + margin: Spacing, +|}; + +type HelperArgs = {| + isAnimatingOpenOnMount: boolean, + placeholder: PlaceholderType, + animate: InOutAnimationMode, +|}; + +const empty: Size = { + width: 0, + height: 0, + margin: noSpacing, +}; + +const getSize = ({ + isAnimatingOpenOnMount, + placeholder, + animate, +}: HelperArgs): Size => { + if (isAnimatingOpenOnMount) { + return empty; + } + + if (animate === 'close') { + return empty; + } + + return { + height: placeholder.client.borderBox.height, + width: placeholder.client.borderBox.width, + margin: placeholder.client.margin, + }; +}; + +const getStyle = ({ + isAnimatingOpenOnMount, + placeholder, + animate, +}: HelperArgs): PlaceholderStyle => { + const size: Size = getSize({ isAnimatingOpenOnMount, placeholder, animate }); + + return { + display: placeholder.display, + // ## Recreating the box model + // We created the borderBox and then apply the margins directly + // this is to maintain any margin collapsing behaviour + + // creating borderBox + // background: 'green', + boxSizing: 'border-box', + width: size.width, + height: size.height, + // creating marginBox + marginTop: size.margin.top, + marginRight: size.margin.right, + marginBottom: size.margin.bottom, + marginLeft: size.margin.left, + + // ## Avoiding collapsing + // Avoiding the collapsing or growing of this element when pushed by flex child siblings. + // We have already taken a snapshot the current dimensions we do not want this element + // to recalculate its dimensions + // It is okay for these properties to be applied on elements that are not flex children + flexShrink: '0', + flexGrow: '0', + // Just a little performance optimisation: avoiding the browser needing + // to worry about pointer events for this element + pointerEvents: 'none', + + // Animate the placeholder size and margin + transition: animate !== 'none' ? transitions.placeholder : null, + }; +}; + +function Placeholder(props: Props): Node { + const animateOpenTimerRef = useRef(null); + + const tryClearAnimateOpenTimer = useCallback(() => { + if (!animateOpenTimerRef.current) { + return; + } + clearTimeout(animateOpenTimerRef.current); + animateOpenTimerRef.current = null; + }, []); + + const { animate, onTransitionEnd, onClose, contextId } = props; + const [isAnimatingOpenOnMount, setIsAnimatingOpenOnMount] = useState( + props.animate === 'open', + ); + + // Will run after a render is flushed + // Still need to wait a timeout to ensure that the + // update is completely applied to the DOM + useEffect(() => { + // No need to do anything + if (!isAnimatingOpenOnMount) { + return noop; + } + + // might need to clear the timer + if (animate !== 'open') { + tryClearAnimateOpenTimer(); + setIsAnimatingOpenOnMount(false); + return noop; + } + + // timer already pending + if (animateOpenTimerRef.current) { + return noop; + } + + animateOpenTimerRef.current = setTimeout(() => { + animateOpenTimerRef.current = null; + setIsAnimatingOpenOnMount(false); + }); + + // clear the timer if needed + return tryClearAnimateOpenTimer; + }, [animate, isAnimatingOpenOnMount, tryClearAnimateOpenTimer]); + + const onSizeChangeEnd = useCallback( + (event: TransitionEvent) => { + // We transition height, width and margin + // each of those transitions will independently call this callback + // Because they all have the same duration we can just respond to one of them + // 'height' was chosen for no particular reason :D + if (event.propertyName !== 'height') { + return; + } + + onTransitionEnd(); + + if (animate === 'close') { + onClose(); + } + }, + [animate, onClose, onTransitionEnd], + ); + + const style: PlaceholderStyle = getStyle({ + isAnimatingOpenOnMount, + animate: props.animate, + placeholder: props.placeholder, + }); + + return React.createElement(props.placeholder.tagName, { + style, + 'data-rbd-placeholder-context-id': contextId, + onTransitionEnd: onSizeChangeEnd, + ref: props.innerRef, + }); +} + +export default React.memo(Placeholder); +// enzyme does not work well with memo, so exporting the non-memo version +export const WithoutMemo = Placeholder; diff --git a/node_modules/react-beautiful-dnd/src/view/scroll-listener.js b/node_modules/react-beautiful-dnd/src/view/scroll-listener.js new file mode 100644 index 00000000..7a988031 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/scroll-listener.js @@ -0,0 +1,72 @@ +// @flow +import type { Position } from 'css-box-model'; +import rafSchd from 'raf-schd'; +import { invariant } from '../invariant'; +import bindEvents from './event-bindings/bind-events'; +import type { EventBinding } from './event-bindings/event-types'; +import getWindowScroll from './window/get-window-scroll'; +import { noop } from '../empty'; + +type OnWindowScroll = (newScroll: Position) => void; + +type Args = {| + onWindowScroll: OnWindowScroll, +|}; + +type Result = {| + start: () => void, + stop: () => void, + isActive: () => boolean, +|}; + +function getWindowScrollBinding(update: () => void): EventBinding { + return { + eventName: 'scroll', + // ## Passive: true + // Eventual consistency is fine because we use position: fixed on the item + // ## Capture: false + // Scroll events on elements do not bubble, but they go through the capture phase + // https://twitter.com/alexandereardon/status/985994224867819520 + // Using capture: false here as we want to avoid intercepting droppable scroll requests + options: { passive: true, capture: false }, + fn: (event: UIEvent) => { + // IE11 fix + // All scrollable events still bubble up and are caught by this handler in ie11. + // On a window scroll the event.target should be the window or the document. + // If this is not the case then it is not a 'window' scroll event and can be ignored + if (event.target !== window && event.target !== window.document) { + return; + } + + update(); + }, + }; +} + +export default function getScrollListener({ onWindowScroll }: Args): Result { + function updateScroll() { + // letting the update function read the latest scroll when called + onWindowScroll(getWindowScroll()); + } + + const scheduled = rafSchd(updateScroll); + const binding: EventBinding = getWindowScrollBinding(scheduled); + let unbind: () => void = noop; + + function isActive(): boolean { + return unbind !== noop; + } + + function start() { + invariant(!isActive(), 'Cannot start scroll listener when already active'); + unbind = bindEvents(window, [binding]); + } + function stop() { + invariant(isActive(), 'Cannot stop scroll listener when not active'); + scheduled.cancel(); + unbind(); + unbind = noop; + } + + return { start, stop, isActive }; +} diff --git a/node_modules/react-beautiful-dnd/src/view/throw-if-invalid-inner-ref.js b/node_modules/react-beautiful-dnd/src/view/throw-if-invalid-inner-ref.js new file mode 100644 index 00000000..7c32461e --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/throw-if-invalid-inner-ref.js @@ -0,0 +1,15 @@ +// @flow +import { invariant } from '../invariant'; +import isHtmlElement from './is-type-of-element/is-html-element'; + +export default (ref: ?mixed) => { + invariant( + ref && isHtmlElement(ref), + ` + provided.innerRef has not been provided with a HTMLElement. + + You can find a guide on using the innerRef callback functions at: + https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/using-inner-ref.md + `, + ); +}; diff --git a/node_modules/react-beautiful-dnd/src/view/use-announcer/index.js b/node_modules/react-beautiful-dnd/src/view/use-announcer/index.js new file mode 100644 index 00000000..ecb54f8a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-announcer/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './use-announcer'; diff --git a/node_modules/react-beautiful-dnd/src/view/use-announcer/use-announcer.js b/node_modules/react-beautiful-dnd/src/view/use-announcer/use-announcer.js new file mode 100644 index 00000000..d7cf66fc --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-announcer/use-announcer.js @@ -0,0 +1,80 @@ +// @flow +import { useRef, useEffect } from 'react'; +import { useMemo, useCallback } from 'use-memo-one'; +import type { Announce, ContextId } from '../../types'; +import { warning } from '../../dev-warning'; +import getBodyElement from '../get-body-element'; +import visuallyHidden from '../visually-hidden-style'; + +export const getId = (contextId: ContextId): string => + `rbd-announcement-${contextId}`; + +export default function useAnnouncer(contextId: ContextId): Announce { + const id: string = useMemo(() => getId(contextId), [contextId]); + const ref = useRef(null); + + useEffect( + function setup() { + const el: HTMLElement = document.createElement('div'); + // storing reference for usage in announce + ref.current = el; + + // identifier + el.id = id; + + // Aria live region + + // will force itself to be read + el.setAttribute('aria-live', 'assertive'); + // must read the whole thing every time + el.setAttribute('aria-atomic', 'true'); + + // hide the element visually + Object.assign(el.style, visuallyHidden); + + // Add to body + getBodyElement().appendChild(el); + + return function cleanup() { + // Not clearing the ref as it might be used by announce before the timeout expires + + // unmounting after a timeout to let any announcements + // during a mount be published + setTimeout(function remove() { + // checking if element exists as the body might have been changed by things like 'turbolinks' + const body: HTMLBodyElement = getBodyElement(); + if (body.contains(el)) { + body.removeChild(el); + } + // if el was the current ref - clear it so that + // we can get a warning if announce is called + if (el === ref.current) { + ref.current = null; + } + }); + }; + }, + [id], + ); + + const announce: Announce = useCallback((message: string): void => { + const el: ?HTMLElement = ref.current; + if (el) { + el.textContent = message; + return; + } + + warning(` + A screen reader message was trying to be announced but it was unable to do so. + This can occur if you unmount your in your onDragEnd. + Consider calling provided.announce() before the unmount so that the instruction will + not be lost for users relying on a screen reader. + + Message not passed to screen reader: + + "${message}" + `); + }, []); + + return announce; +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-dev-setup-warning.js b/node_modules/react-beautiful-dnd/src/view/use-dev-setup-warning.js new file mode 100644 index 00000000..9ddff47b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-dev-setup-warning.js @@ -0,0 +1,22 @@ +// @flow +import { useEffect } from 'react'; +import { error } from '../dev-warning'; +import useDev from './use-dev'; + +export default function useDevSetupWarning(fn: () => void, inputs?: mixed[]) { + useDev(() => { + // eslint-disable-next-line react-hooks/rules-of-hooks + useEffect(() => { + try { + fn(); + } catch (e) { + error(` + A setup problem was encountered. + + > ${e.message} + `); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, inputs); + }); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-dev.js b/node_modules/react-beautiful-dnd/src/view/use-dev.js new file mode 100644 index 00000000..f7ae4708 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-dev.js @@ -0,0 +1,9 @@ +// @flow + +export default function useDev(useHook: () => void) { + // Don't run any validation in production + if (process.env.NODE_ENV !== 'production') { + // eslint-disable-next-line react-hooks/rules-of-hooks + useHook(); + } +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-draggable-publisher/get-dimension.js b/node_modules/react-beautiful-dnd/src/view/use-draggable-publisher/get-dimension.js new file mode 100644 index 00000000..b589b950 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-draggable-publisher/get-dimension.js @@ -0,0 +1,44 @@ +// @flow +import { + type BoxModel, + type Position, + calculateBox, + withScroll, +} from 'css-box-model'; +import type { + DraggableDescriptor, + DraggableDimension, + Placeholder, +} from '../../types'; +import { origin } from '../../state/position'; + +export default function getDimension( + descriptor: DraggableDescriptor, + el: HTMLElement, + windowScroll?: Position = origin, +): DraggableDimension { + const computedStyles: CSSStyleDeclaration = window.getComputedStyle(el); + const borderBox: ClientRect = el.getBoundingClientRect(); + const client: BoxModel = calculateBox(borderBox, computedStyles); + const page: BoxModel = withScroll(client, windowScroll); + + const placeholder: Placeholder = { + client, + tagName: el.tagName.toLowerCase(), + display: computedStyles.display, + }; + const displaceBy: Position = { + x: client.marginBox.width, + y: client.marginBox.height, + }; + + const dimension: DraggableDimension = { + descriptor, + placeholder, + displaceBy, + client, + page, + }; + + return dimension; +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-draggable-publisher/index.js b/node_modules/react-beautiful-dnd/src/view/use-draggable-publisher/index.js new file mode 100644 index 00000000..70c3a146 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-draggable-publisher/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './use-draggable-publisher'; diff --git a/node_modules/react-beautiful-dnd/src/view/use-draggable-publisher/use-draggable-publisher.js b/node_modules/react-beautiful-dnd/src/view/use-draggable-publisher/use-draggable-publisher.js new file mode 100644 index 00000000..0a2710b8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-draggable-publisher/use-draggable-publisher.js @@ -0,0 +1,87 @@ +// @flow +import { type Position } from 'css-box-model'; +import { useMemo, useCallback } from 'use-memo-one'; +import { useRef } from 'react'; +import { invariant } from '../../invariant'; +import type { + DraggableDescriptor, + DraggableDimension, + Id, + DraggableOptions, +} from '../../types'; +import type { + Registry, + DraggableEntry, +} from '../../state/registry/registry-types'; +import makeDimension from './get-dimension'; +import useLayoutEffect from '../use-isomorphic-layout-effect'; +import useUniqueId from '../use-unique-id'; + +export type Args = {| + descriptor: DraggableDescriptor, + getDraggableRef: () => ?HTMLElement, + registry: Registry, + ...DraggableOptions, +|}; + +export default function useDraggablePublisher(args: Args) { + const uniqueId: Id = useUniqueId('draggable'); + + const { + descriptor, + registry, + getDraggableRef, + canDragInteractiveElements, + shouldRespectForcePress, + isEnabled, + } = args; + + const options: DraggableOptions = useMemo( + () => ({ + canDragInteractiveElements, + shouldRespectForcePress, + isEnabled, + }), + [canDragInteractiveElements, isEnabled, shouldRespectForcePress], + ); + + const getDimension = useCallback( + (windowScroll?: Position): DraggableDimension => { + const el: ?HTMLElement = getDraggableRef(); + invariant(el, 'Cannot get dimension when no ref is set'); + return makeDimension(descriptor, el, windowScroll); + }, + [descriptor, getDraggableRef], + ); + + const entry: DraggableEntry = useMemo( + () => ({ + uniqueId, + descriptor, + options, + getDimension, + }), + [descriptor, getDimension, options, uniqueId], + ); + + const publishedRef = useRef(entry); + const isFirstPublishRef = useRef(true); + + // mounting and unmounting + useLayoutEffect(() => { + registry.draggable.register(publishedRef.current); + return () => registry.draggable.unregister(publishedRef.current); + }, [registry.draggable]); + + // updates while mounted + useLayoutEffect(() => { + if (isFirstPublishRef.current) { + isFirstPublishRef.current = false; + return; + } + + const last: DraggableEntry = publishedRef.current; + publishedRef.current = entry; + registry.draggable.update(entry, last); + }, [entry, registry.draggable]); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/check-for-nested-scroll-container.js b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/check-for-nested-scroll-container.js new file mode 100644 index 00000000..968d759a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/check-for-nested-scroll-container.js @@ -0,0 +1,27 @@ +// @flow +import getClosestScrollable from './get-closest-scrollable'; +import { warning } from '../../dev-warning'; + +// We currently do not support nested scroll containers +// But will hopefully support this soon! +export default (scrollable: ?Element) => { + if (!scrollable) { + return; + } + + const anotherScrollParent: ?Element = getClosestScrollable( + scrollable.parentElement, + ); + + if (!anotherScrollParent) { + return; + } + + warning(` + Droppable: unsupported nested scroll container detected. + A Droppable can only have one scroll parent (which can be itself) + Nested scroll containers are currently not supported. + + We hope to support nested scroll containers soon: https://github.com/atlassian/react-beautiful-dnd/issues/131 + `); +}; diff --git a/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-closest-scrollable.js b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-closest-scrollable.js new file mode 100644 index 00000000..4b13d0f5 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-closest-scrollable.js @@ -0,0 +1,95 @@ +// @flow +import { invariant } from '../../invariant'; +import { warning } from '../../dev-warning'; +import getBodyElement from '../get-body-element'; + +type Overflow = {| + overflowX: string, + overflowY: string, +|}; + +const isEqual = (base: string) => (value: string): boolean => base === value; +const isScroll = isEqual('scroll'); +const isAuto = isEqual('auto'); +const isVisible = isEqual('visible'); +const isEither = (overflow: Overflow, fn: (value: string) => boolean) => + fn(overflow.overflowX) || fn(overflow.overflowY); +const isBoth = (overflow: Overflow, fn: (value: string) => boolean) => + fn(overflow.overflowX) && fn(overflow.overflowY); + +const isElementScrollable = (el: Element): boolean => { + const style: CSSStyleDeclaration = window.getComputedStyle(el); + const overflow: Overflow = { + overflowX: style.overflowX, + overflowY: style.overflowY, + }; + + return isEither(overflow, isScroll) || isEither(overflow, isAuto); +}; + +// Special case for a body element +// Playground: https://codepen.io/alexreardon/pen/ZmyLgX?editors=1111 +const isBodyScrollable = (): boolean => { + // Because we always return false for now, we can skip any actual processing in production + if (process.env.NODE_ENV === 'production') { + return false; + } + + const body: HTMLBodyElement = getBodyElement(); + const html: ?HTMLElement = document.documentElement; + invariant(html); + + // 1. The `body` has `overflow-[x|y]: auto | scroll` + if (!isElementScrollable(body)) { + return false; + } + + const htmlStyle: CSSStyleDeclaration = window.getComputedStyle(html); + const htmlOverflow: Overflow = { + overflowX: htmlStyle.overflowX, + overflowY: htmlStyle.overflowY, + }; + + if (isBoth(htmlOverflow, isVisible)) { + return false; + } + + warning(` + We have detected that your element might be a scroll container. + We have found no reliable way of detecting whether the element is a scroll container. + Under most circumstances a scroll bar will be on the element (document.documentElement) + + Because we cannot determine if the is a scroll container, and generally it is not one, + we will be treating the as *not* a scroll container + + More information: https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/how-we-detect-scroll-containers.md + `); + return false; +}; + +const getClosestScrollable = (el: ?Element): ?Element => { + // cannot do anything else! + if (el == null) { + return null; + } + + // not allowing us to go higher then body + if (el === document.body) { + return isBodyScrollable() ? el : null; + } + + // Should never get here, but just being safe + if (el === document.documentElement) { + return null; + } + + if (!isElementScrollable(el)) { + // keep recursing + return getClosestScrollable(el.parentElement); + } + + // success! + return el; +}; + +export default getClosestScrollable; diff --git a/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-dimension.js b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-dimension.js new file mode 100644 index 00000000..695a1166 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-dimension.js @@ -0,0 +1,139 @@ +// @flow +import { + getBox, + withScroll, + createBox, + expand, + type BoxModel, + type Position, + type Spacing, +} from 'css-box-model'; +import getDroppableDimension, { + type Closest, +} from '../../state/droppable/get-droppable'; +import type { Env } from './get-env'; +import type { + DroppableDimension, + DroppableDescriptor, + Direction, + ScrollSize, +} from '../../types'; +import getScroll from './get-scroll'; + +const getClient = ( + targetRef: HTMLElement, + closestScrollable: ?Element, +): BoxModel => { + const base: BoxModel = getBox(targetRef); + + // Droppable has no scroll parent + if (!closestScrollable) { + return base; + } + + // Droppable is not the same as the closest scrollable + if (targetRef !== closestScrollable) { + return base; + } + + // Droppable is scrollable + + // Element.getBoundingClient() returns a clipped padding box: + // When not scrollable: the full size of the element + // When scrollable: the visible size of the element + // (which is not the full width of its scrollable content) + // So we recalculate the borderBox of a scrollable droppable to give + // it its full dimensions. This will be cut to the correct size by the frame + + // Creating the paddingBox based on scrollWidth / scrollTop + // scrollWidth / scrollHeight are based on the paddingBox of an element + // https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight + const top: number = base.paddingBox.top - closestScrollable.scrollTop; + const left: number = base.paddingBox.left - closestScrollable.scrollLeft; + const bottom: number = top + closestScrollable.scrollHeight; + const right: number = left + closestScrollable.scrollWidth; + + // unclipped padding box + const paddingBox: Spacing = { + top, + right, + bottom, + left, + }; + + // Creating the borderBox by adding the borders to the paddingBox + const borderBox: Spacing = expand(paddingBox, base.border); + + // We are not accounting for scrollbars + // Adjusting for scrollbars is hard because: + // - they are different between browsers + // - scrollbars can be activated and removed during a drag + // We instead account for this slightly in our auto scroller + + const client: BoxModel = createBox({ + borderBox, + margin: base.margin, + border: base.border, + padding: base.padding, + }); + return client; +}; + +type Args = {| + ref: HTMLElement, + descriptor: DroppableDescriptor, + env: Env, + windowScroll: Position, + direction: Direction, + isDropDisabled: boolean, + isCombineEnabled: boolean, + shouldClipSubject: boolean, +|}; + +export default ({ + ref, + descriptor, + env, + windowScroll, + direction, + isDropDisabled, + isCombineEnabled, + shouldClipSubject, +}: Args): DroppableDimension => { + const closestScrollable: ?Element = env.closestScrollable; + const client: BoxModel = getClient(ref, closestScrollable); + const page: BoxModel = withScroll(client, windowScroll); + + const closest: ?Closest = (() => { + if (!closestScrollable) { + return null; + } + + const frameClient: BoxModel = getBox(closestScrollable); + const scrollSize: ScrollSize = { + scrollHeight: closestScrollable.scrollHeight, + scrollWidth: closestScrollable.scrollWidth, + }; + + return { + client: frameClient, + page: withScroll(frameClient, windowScroll), + scroll: getScroll(closestScrollable), + scrollSize, + shouldClipSubject, + }; + })(); + + const dimension: DroppableDimension = getDroppableDimension({ + descriptor, + isEnabled: !isDropDisabled, + isCombineEnabled, + isFixedOnPage: env.isFixedOnPage, + direction, + client, + page, + closest, + }); + + return dimension; +}; diff --git a/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-env.js b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-env.js new file mode 100644 index 00000000..798d47b9 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-env.js @@ -0,0 +1,31 @@ +// @flow +import getClosestScrollable from './get-closest-scrollable'; + +export type Env = {| + closestScrollable: ?Element, + isFixedOnPage: boolean, +|}; + +// TODO: do this check at the same time as the closest scrollable +// in order to avoid double calling getComputedStyle +// Do this when we move to multiple scroll containers +const getIsFixed = (el: ?Element): boolean => { + if (!el) { + return false; + } + const style: CSSStyleDeclaration = window.getComputedStyle(el); + if (style.position === 'fixed') { + return true; + } + return getIsFixed(el.parentElement); +}; + +export default (start: Element): Env => { + const closestScrollable: ?Element = getClosestScrollable(start); + const isFixedOnPage: boolean = getIsFixed(start); + + return { + closestScrollable, + isFixedOnPage, + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-listener-options.js b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-listener-options.js new file mode 100644 index 00000000..dcaadf66 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-listener-options.js @@ -0,0 +1,12 @@ +// @flow +import type { ScrollOptions } from '../../types'; + +const immediate = { + passive: false, +}; +const delayed = { + passive: true, +}; + +export default (options: ScrollOptions) => + options.shouldPublishImmediately ? immediate : delayed; diff --git a/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-scroll.js b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-scroll.js new file mode 100644 index 00000000..cd7c893b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/get-scroll.js @@ -0,0 +1,7 @@ +// @flow +import type { Position } from 'css-box-model'; + +export default (el: Element): Position => ({ + x: el.scrollLeft, + y: el.scrollTop, +}); diff --git a/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/index.js b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/index.js new file mode 100644 index 00000000..c57336d8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './use-droppable-publisher'; diff --git a/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/is-in-fixed-container.js b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/is-in-fixed-container.js new file mode 100644 index 00000000..bacd5046 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/is-in-fixed-container.js @@ -0,0 +1,21 @@ +// @flow + +const isElementFixed = (el: Element): boolean => + window.getComputedStyle(el).position === 'fixed'; + +const find = (el: ?Element): boolean => { + // cannot do anything else! + if (el == null) { + return false; + } + + // keep looking + if (!isElementFixed(el)) { + return find(el.parentElement); + } + + // success! + return true; +}; + +export default find; diff --git a/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/use-droppable-publisher.js b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/use-droppable-publisher.js new file mode 100644 index 00000000..def39e27 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-droppable-publisher/use-droppable-publisher.js @@ -0,0 +1,283 @@ +// @flow +import { useRef } from 'react'; +import { type Position } from 'css-box-model'; +import rafSchedule from 'raf-schd'; +import { useMemo, useCallback } from 'use-memo-one'; +import memoizeOne from 'memoize-one'; +import { invariant } from '../../invariant'; +import checkForNestedScrollContainers from './check-for-nested-scroll-container'; +import * as dataAttr from '../data-attributes'; +import { origin } from '../../state/position'; +import getScroll from './get-scroll'; +import type { + DroppableEntry, + DroppableCallbacks, +} from '../../state/registry/registry-types'; +import getEnv, { type Env } from './get-env'; +import type { + Id, + DroppableId, + TypeId, + DroppableDimension, + DroppableDescriptor, + Direction, + ScrollOptions, + DroppableMode, +} from '../../types'; +import getDimension from './get-dimension'; +import AppContext, { type AppContextValue } from '../context/app-context'; +import { warning } from '../../dev-warning'; +import getListenerOptions from './get-listener-options'; +import useRequiredContext from '../use-required-context'; +import usePreviousRef from '../use-previous-ref'; +import useLayoutEffect from '../use-isomorphic-layout-effect'; +import useUniqueId from '../use-unique-id'; + +type Props = {| + droppableId: DroppableId, + type: TypeId, + mode: DroppableMode, + direction: Direction, + isDropDisabled: boolean, + isCombineEnabled: boolean, + ignoreContainerClipping: boolean, + getDroppableRef: () => ?HTMLElement, +|}; + +type WhileDragging = {| + ref: HTMLElement, + descriptor: DroppableDescriptor, + env: Env, + scrollOptions: ScrollOptions, +|}; + +const getClosestScrollableFromDrag = (dragging: ?WhileDragging): ?Element => + (dragging && dragging.env.closestScrollable) || null; + +export default function useDroppablePublisher(args: Props) { + const whileDraggingRef = useRef(null); + const appContext: AppContextValue = useRequiredContext(AppContext); + const uniqueId: Id = useUniqueId('droppable'); + const { registry, marshal } = appContext; + const previousRef = usePreviousRef(args); + + const descriptor = useMemo( + () => ({ + id: args.droppableId, + type: args.type, + mode: args.mode, + }), + [args.droppableId, args.mode, args.type], + ); + const publishedDescriptorRef = useRef(descriptor); + + const memoizedUpdateScroll = useMemo( + () => + memoizeOne((x: number, y: number) => { + invariant( + whileDraggingRef.current, + 'Can only update scroll when dragging', + ); + const scroll: Position = { x, y }; + marshal.updateDroppableScroll(descriptor.id, scroll); + }), + [descriptor.id, marshal], + ); + + const getClosestScroll = useCallback((): Position => { + const dragging: ?WhileDragging = whileDraggingRef.current; + if (!dragging || !dragging.env.closestScrollable) { + return origin; + } + + return getScroll(dragging.env.closestScrollable); + }, []); + + const updateScroll = useCallback(() => { + // reading scroll value when called so value will be the latest + const scroll: Position = getClosestScroll(); + memoizedUpdateScroll(scroll.x, scroll.y); + }, [getClosestScroll, memoizedUpdateScroll]); + + const scheduleScrollUpdate = useMemo(() => rafSchedule(updateScroll), [ + updateScroll, + ]); + + const onClosestScroll = useCallback(() => { + const dragging: ?WhileDragging = whileDraggingRef.current; + const closest: ?Element = getClosestScrollableFromDrag(dragging); + + invariant( + dragging && closest, + 'Could not find scroll options while scrolling', + ); + const options: ScrollOptions = dragging.scrollOptions; + if (options.shouldPublishImmediately) { + updateScroll(); + return; + } + scheduleScrollUpdate(); + }, [scheduleScrollUpdate, updateScroll]); + + const getDimensionAndWatchScroll = useCallback( + (windowScroll: Position, options: ScrollOptions) => { + invariant( + !whileDraggingRef.current, + 'Cannot collect a droppable while a drag is occurring', + ); + const previous: Props = previousRef.current; + const ref: ?HTMLElement = previous.getDroppableRef(); + invariant(ref, 'Cannot collect without a droppable ref'); + const env: Env = getEnv(ref); + + const dragging: WhileDragging = { + ref, + descriptor, + env, + scrollOptions: options, + }; + // side effect + whileDraggingRef.current = dragging; + + const dimension: DroppableDimension = getDimension({ + ref, + descriptor, + env, + windowScroll, + direction: previous.direction, + isDropDisabled: previous.isDropDisabled, + isCombineEnabled: previous.isCombineEnabled, + shouldClipSubject: !previous.ignoreContainerClipping, + }); + + const scrollable: ?Element = env.closestScrollable; + + if (scrollable) { + scrollable.setAttribute( + dataAttr.scrollContainer.contextId, + appContext.contextId, + ); + + // bind scroll listener + scrollable.addEventListener( + 'scroll', + onClosestScroll, + getListenerOptions(dragging.scrollOptions), + ); + // print a debug warning if using an unsupported nested scroll container setup + if (process.env.NODE_ENV !== 'production') { + checkForNestedScrollContainers(scrollable); + } + } + + return dimension; + }, + [appContext.contextId, descriptor, onClosestScroll, previousRef], + ); + + const getScrollWhileDragging = useCallback((): Position => { + const dragging: ?WhileDragging = whileDraggingRef.current; + const closest: ?Element = getClosestScrollableFromDrag(dragging); + invariant( + dragging && closest, + 'Can only recollect Droppable client for Droppables that have a scroll container', + ); + + return getScroll(closest); + }, []); + + const dragStopped = useCallback(() => { + const dragging: ?WhileDragging = whileDraggingRef.current; + invariant(dragging, 'Cannot stop drag when no active drag'); + const closest: ?Element = getClosestScrollableFromDrag(dragging); + + // goodbye old friend + whileDraggingRef.current = null; + + if (!closest) { + return; + } + + // unwatch scroll + scheduleScrollUpdate.cancel(); + closest.removeAttribute(dataAttr.scrollContainer.contextId); + closest.removeEventListener( + 'scroll', + onClosestScroll, + getListenerOptions(dragging.scrollOptions), + ); + }, [onClosestScroll, scheduleScrollUpdate]); + + const scroll = useCallback((change: Position) => { + // arrange + const dragging: ?WhileDragging = whileDraggingRef.current; + invariant(dragging, 'Cannot scroll when there is no drag'); + const closest: ?Element = getClosestScrollableFromDrag(dragging); + invariant(closest, 'Cannot scroll a droppable with no closest scrollable'); + + // act + closest.scrollTop += change.y; + closest.scrollLeft += change.x; + }, []); + + const callbacks: DroppableCallbacks = useMemo(() => { + return { + getDimensionAndWatchScroll, + getScrollWhileDragging, + dragStopped, + scroll, + }; + }, [dragStopped, getDimensionAndWatchScroll, getScrollWhileDragging, scroll]); + + const entry: DroppableEntry = useMemo( + () => ({ + uniqueId, + descriptor, + callbacks, + }), + [callbacks, descriptor, uniqueId], + ); + + // Register with the marshal and let it know of: + // - any descriptor changes + // - when it unmounts + useLayoutEffect(() => { + publishedDescriptorRef.current = entry.descriptor; + registry.droppable.register(entry); + + return () => { + if (whileDraggingRef.current) { + warning( + 'Unsupported: changing the droppableId or type of a Droppable during a drag', + ); + dragStopped(); + } + + registry.droppable.unregister(entry); + }; + }, [callbacks, descriptor, dragStopped, entry, marshal, registry.droppable]); + + // update is enabled with the marshal + // only need to update when there is a drag + useLayoutEffect(() => { + if (!whileDraggingRef.current) { + return; + } + marshal.updateDroppableIsEnabled( + publishedDescriptorRef.current.id, + !args.isDropDisabled, + ); + }, [args.isDropDisabled, marshal]); + + // update is combine enabled with the marshal + // only need to update when there is a drag + useLayoutEffect(() => { + if (!whileDraggingRef.current) { + return; + } + marshal.updateDroppableIsCombineEnabled( + publishedDescriptorRef.current.id, + args.isCombineEnabled, + ); + }, [args.isCombineEnabled, marshal]); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-focus-marshal/focus-marshal-types.js b/node_modules/react-beautiful-dnd/src/view/use-focus-marshal/focus-marshal-types.js new file mode 100644 index 00000000..de176878 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-focus-marshal/focus-marshal-types.js @@ -0,0 +1,13 @@ +// @flow +import type { DraggableId } from '../../types'; + +export type Unregister = () => void; + +export type Register = (id: DraggableId, focus: () => void) => Unregister; + +export type FocusMarshal = {| + register: Register, + tryRecordFocus: (tryRecordFor: DraggableId) => void, + tryRestoreFocusRecorded: () => void, + tryShiftRecord: (previous: DraggableId, redirectTo: DraggableId) => void, +|}; diff --git a/node_modules/react-beautiful-dnd/src/view/use-focus-marshal/index.js b/node_modules/react-beautiful-dnd/src/view/use-focus-marshal/index.js new file mode 100644 index 00000000..cb96ff71 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-focus-marshal/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './use-focus-marshal'; diff --git a/node_modules/react-beautiful-dnd/src/view/use-focus-marshal/use-focus-marshal.js b/node_modules/react-beautiful-dnd/src/view/use-focus-marshal/use-focus-marshal.js new file mode 100644 index 00000000..f7d2fcfd --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-focus-marshal/use-focus-marshal.js @@ -0,0 +1,129 @@ +// @flow +import { useRef } from 'react'; +import { useMemo, useCallback } from 'use-memo-one'; +import type { DraggableId, ContextId } from '../../types'; +import type { FocusMarshal, Unregister } from './focus-marshal-types'; +import { dragHandle as dragHandleAttr } from '../data-attributes'; +import useLayoutEffect from '../use-isomorphic-layout-effect'; +import findDragHandle from '../get-elements/find-drag-handle'; + +type Entry = {| + id: DraggableId, + focus: () => void, +|}; + +type EntryMap = { + [id: DraggableId]: Entry, +}; + +export default function useFocusMarshal(contextId: ContextId): FocusMarshal { + const entriesRef = useRef({}); + const recordRef = useRef(null); + const restoreFocusFrameRef = useRef(null); + const isMountedRef = useRef(false); + + const register = useCallback(function register( + id: DraggableId, + focus: () => void, + ): Unregister { + const entry: Entry = { id, focus }; + entriesRef.current[id] = entry; + + return function unregister() { + const entries: EntryMap = entriesRef.current; + const current: Entry = entries[id]; + // entry might have been overrided by another registration + if (current !== entry) { + delete entries[id]; + } + }; + }, + []); + + const tryGiveFocus = useCallback( + function tryGiveFocus(tryGiveFocusTo: DraggableId) { + const handle: ?HTMLElement = findDragHandle(contextId, tryGiveFocusTo); + + if (handle && handle !== document.activeElement) { + handle.focus(); + } + }, + [contextId], + ); + + const tryShiftRecord = useCallback(function tryShiftRecord( + previous: DraggableId, + redirectTo: DraggableId, + ) { + if (recordRef.current === previous) { + recordRef.current = redirectTo; + } + }, + []); + + const tryRestoreFocusRecorded = useCallback( + function tryRestoreFocusRecorded() { + // frame already queued + if (restoreFocusFrameRef.current) { + return; + } + + // cannot give focus if unmounted + // this code path is generally not hit expect for some hot-reloading flows + if (!isMountedRef.current) { + return; + } + + restoreFocusFrameRef.current = requestAnimationFrame(() => { + restoreFocusFrameRef.current = null; + const record: ?DraggableId = recordRef.current; + if (record) { + tryGiveFocus(record); + } + }); + }, + [tryGiveFocus], + ); + + const tryRecordFocus = useCallback(function tryRecordFocus(id: DraggableId) { + // clear any existing record + recordRef.current = null; + + const focused: ?Element = document.activeElement; + + // no item focused so it cannot be our item + if (!focused) { + return; + } + + // focused element is not a drag handle or does not have the right id + if (focused.getAttribute(dragHandleAttr.draggableId) !== id) { + return; + } + + recordRef.current = id; + }, []); + + useLayoutEffect(() => { + isMountedRef.current = true; + return function clearFrameOnUnmount() { + isMountedRef.current = false; + const frameId: ?AnimationFrameID = restoreFocusFrameRef.current; + if (frameId) { + cancelAnimationFrame(frameId); + } + }; + }, []); + + const marshal: FocusMarshal = useMemo( + () => ({ + register, + tryRecordFocus, + tryRestoreFocusRecorded, + tryShiftRecord, + }), + [register, tryRecordFocus, tryRestoreFocusRecorded, tryShiftRecord], + ); + + return marshal; +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-hidden-text-element/index.js b/node_modules/react-beautiful-dnd/src/view/use-hidden-text-element/index.js new file mode 100644 index 00000000..ce7d49fd --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-hidden-text-element/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './use-hidden-text-element'; diff --git a/node_modules/react-beautiful-dnd/src/view/use-hidden-text-element/use-hidden-text-element.js b/node_modules/react-beautiful-dnd/src/view/use-hidden-text-element/use-hidden-text-element.js new file mode 100644 index 00000000..70aa4941 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-hidden-text-element/use-hidden-text-element.js @@ -0,0 +1,60 @@ +// @flow +import { useEffect } from 'react'; +import { useMemo } from 'use-memo-one'; +import type { ContextId, ElementId } from '../../types'; +import getBodyElement from '../get-body-element'; +import useUniqueId from '../use-unique-id'; + +type GetIdArgs = {| + contextId: ContextId, + uniqueId: string, +|}; + +export function getElementId({ contextId, uniqueId }: GetIdArgs): ElementId { + return `rbd-hidden-text-${contextId}-${uniqueId}`; +} + +type Args = {| + contextId: ContextId, + text: string, +|}; + +export default function useHiddenTextElement({ + contextId, + text, +}: Args): ElementId { + const uniqueId: string = useUniqueId('hidden-text', { separator: '-' }); + const id: ElementId = useMemo(() => getElementId({ contextId, uniqueId }), [ + uniqueId, + contextId, + ]); + + useEffect( + function mount() { + const el: HTMLElement = document.createElement('div'); + + // identifier + el.id = id; + + // add the description text + el.textContent = text; + + // Using `display: none` prevent screen readers from reading this element in the document flow + el.style.display = 'none'; + + // Add to body + getBodyElement().appendChild(el); + + return function unmount() { + // checking if element exists as the body might have been changed by things like 'turbolinks' + const body: HTMLBodyElement = getBodyElement(); + if (body.contains(el)) { + body.removeChild(el); + } + }; + }, + [id, text], + ); + + return id; +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-isomorphic-layout-effect.js b/node_modules/react-beautiful-dnd/src/view/use-isomorphic-layout-effect.js new file mode 100644 index 00000000..62881715 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-isomorphic-layout-effect.js @@ -0,0 +1,18 @@ +// @flow +// eslint-disable-next-line no-restricted-imports +import { useLayoutEffect, useEffect } from 'react'; + +// https://github.com/reduxjs/react-redux/blob/v7-beta/src/components/connectAdvanced.js#L35 +// React currently throws a warning when using useLayoutEffect on the server. +// To get around it, we can conditionally useEffect on the server (no-op) and +// useLayoutEffect in the browser. We need useLayoutEffect because we want +// `connect` to perform sync updates to a ref to save the latest props after +// a render is actually committed to the DOM. +const useIsomorphicLayoutEffect = + typeof window !== 'undefined' && + typeof window.document !== 'undefined' && + typeof window.document.createElement !== 'undefined' + ? useLayoutEffect + : useEffect; + +export default useIsomorphicLayoutEffect; diff --git a/node_modules/react-beautiful-dnd/src/view/use-previous-ref.js b/node_modules/react-beautiful-dnd/src/view/use-previous-ref.js new file mode 100644 index 00000000..5a7c09d6 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-previous-ref.js @@ -0,0 +1,14 @@ +// @flow +import { useRef, useEffect } from 'react'; + +export default function usePrevious(current: T): {| current: T |} { + const ref = useRef(current); + + // will be updated on the next render + useEffect(() => { + ref.current = current; + }); + + // return the existing current (pre render) + return ref; +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-required-context.js b/node_modules/react-beautiful-dnd/src/view/use-required-context.js new file mode 100644 index 00000000..95ea92b7 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-required-context.js @@ -0,0 +1,9 @@ +// @flow +import { useContext, type Context as ContextType } from 'react'; +import { invariant } from '../invariant'; + +export default function useRequiredContext(Context: ContextType): T { + const result: ?T = useContext(Context); + invariant(result, 'Could not find required context'); + return result; +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/closest.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/closest.js new file mode 100644 index 00000000..276d7ee8 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/closest.js @@ -0,0 +1,50 @@ +// @flow +import { find } from '../../native-with-fallback'; + +const supportedMatchesName: string = ((): string => { + const base: string = 'matches'; + + // Server side rendering + if (typeof document === 'undefined') { + return base; + } + + // See https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API + const candidates: string[] = [ + base, + 'msMatchesSelector', + 'webkitMatchesSelector', + ]; + + const value: ?string = find( + candidates, + (name: string): boolean => name in Element.prototype, + ); + + return value || base; +})(); + +function closestPonyfill(el: ?Element, selector: string) { + if (el == null) { + return null; + } + + // Element.prototype.matches is supported in ie11 with a different name + // https://caniuse.com/#feat=matchesselector + // $FlowFixMe - dynamic property + if (el[supportedMatchesName](selector)) { + return el; + } + + // recursively look up the tree + return closestPonyfill(el.parentElement, selector); +} + +export default function closest(el: Element, selector: string): ?Element { + // Using native closest for maximum speed where we can + if (el.closest) { + return el.closest(selector); + } + // ie11: damn you! + return closestPonyfill(el, selector); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/find-closest-draggable-id-from-event.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/find-closest-draggable-id-from-event.js new file mode 100644 index 00000000..2c7187f1 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/find-closest-draggable-id-from-event.js @@ -0,0 +1,50 @@ +// @flow +import type { ContextId, DraggableId } from '../../types'; +import * as attributes from '../data-attributes'; +import isElement from '../is-type-of-element/is-element'; +import isHtmlElement from '../is-type-of-element/is-html-element'; +import closest from './closest'; +import { warning } from '../../dev-warning'; + +function getSelector(contextId: ContextId): string { + return `[${attributes.dragHandle.contextId}="${contextId}"]`; +} + +function findClosestDragHandleFromEvent( + contextId: ContextId, + event: Event, +): ?HTMLElement { + const target: ?EventTarget = event.target; + + if (!isElement(target)) { + warning('event.target must be a Element'); + return null; + } + + const selector: string = getSelector(contextId); + const handle: ?Element = closest(target, selector); + + if (!handle) { + return null; + } + + if (!isHtmlElement(handle)) { + warning('drag handle must be a HTMLElement'); + return null; + } + + return handle; +} + +export default function tryGetClosestDraggableIdFromEvent( + contextId: ContextId, + event: Event, +): ?DraggableId { + const handle: ?HTMLElement = findClosestDragHandleFromEvent(contextId, event); + + if (!handle) { + return null; + } + + return handle.getAttribute(attributes.dragHandle.draggableId); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/index.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/index.js new file mode 100644 index 00000000..c40ab19f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/index.js @@ -0,0 +1,5 @@ +// @flow +export { default } from './use-sensor-marshal'; +export { default as useMouseSensor } from './sensors/use-mouse-sensor'; +export { default as useTouchSensor } from './sensors/use-touch-sensor'; +export { default as useKeyboardSensor } from './sensors/use-keyboard-sensor'; diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/is-event-in-interactive-element.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/is-event-in-interactive-element.js new file mode 100644 index 00000000..39288cca --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/is-event-in-interactive-element.js @@ -0,0 +1,66 @@ +// @flow +import isHtmlElement from '../is-type-of-element/is-html-element'; + +export type TagNameMap = { + [tagName: string]: true, +}; + +export const interactiveTagNames: TagNameMap = { + input: true, + button: true, + textarea: true, + select: true, + option: true, + optgroup: true, + video: true, + audio: true, +}; + +function isAnInteractiveElement(parent: Element, current: ?Element) { + if (current == null) { + return false; + } + + // Most interactive elements cannot have children. However, some can such as 'button'. + // See 'Permitted content' on https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button + // Rather than having two different functions we can consolidate our checks into this single + // function to keep things simple. + // There is no harm checking if the parent has an interactive tag name even if it cannot have + // any children. We need to perform this loop anyway to check for the contenteditable attribute + const hasAnInteractiveTag: boolean = Boolean( + interactiveTagNames[current.tagName.toLowerCase()], + ); + + if (hasAnInteractiveTag) { + return true; + } + + // contenteditable="true" or contenteditable="" are valid ways + // of creating a contenteditable container + // https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/contenteditable + const attribute: ?string = current.getAttribute('contenteditable'); + if (attribute === 'true' || attribute === '') { + return true; + } + + // nothing more can be done and no results found + if (current === parent) { + return false; + } + + // recursion to check parent + return isAnInteractiveElement(parent, current.parentElement); +} + +export default function isEventInInteractiveElement( + draggable: Element, + event: Event, +): boolean { + const target: EventTarget = event.target; + + if (!isHtmlElement(target)) { + return false; + } + + return isAnInteractiveElement(draggable, target); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/lock.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/lock.js new file mode 100644 index 00000000..28d2d547 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/lock.js @@ -0,0 +1,48 @@ +// @flow +import { invariant } from '../../invariant'; + +export type Lock = {| + abandon: () => void, +|}; + +export type LockAPI = {| + isClaimed: () => boolean, + isActive: (lock: Lock) => boolean, + claim: (abandon: () => void) => Lock, + release: () => void, + tryAbandon: () => void, +|}; + +export default function create(): LockAPI { + let lock: ?Lock = null; + + function isClaimed(): boolean { + return Boolean(lock); + } + + function isActive(value: Lock): boolean { + return value === lock; + } + + function claim(abandon: () => void): Lock { + invariant(!lock, 'Cannot claim lock as it is already claimed'); + const newLock: Lock = { abandon }; + // update singleton + lock = newLock; + // return lock + return newLock; + } + function release() { + invariant(lock, 'Cannot release lock when there is no lock'); + lock = null; + } + + function tryAbandon() { + if (lock) { + lock.abandon(); + release(); + } + } + + return { isClaimed, isActive, claim, release, tryAbandon }; +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/use-keyboard-sensor.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/use-keyboard-sensor.js new file mode 100644 index 00000000..c3876ac1 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/use-keyboard-sensor.js @@ -0,0 +1,243 @@ +// @flow +import { useRef } from 'react'; +import { useMemo, useCallback } from 'use-memo-one'; +import { invariant } from '../../../invariant'; +import type { + SensorAPI, + PreDragActions, + SnapDragActions, + DraggableId, +} from '../../../types'; +import type { + EventBinding, + EventOptions, +} from '../../event-bindings/event-types'; +import * as keyCodes from '../../key-codes'; +import bindEvents from '../../event-bindings/bind-events'; +import preventStandardKeyEvents from './util/prevent-standard-key-events'; +import supportedPageVisibilityEventName from './util/supported-page-visibility-event-name'; +import useLayoutEffect from '../../use-isomorphic-layout-effect'; + +function noop() {} + +type KeyMap = { + [key: number]: true, +}; + +const scrollJumpKeys: KeyMap = { + [keyCodes.pageDown]: true, + [keyCodes.pageUp]: true, + [keyCodes.home]: true, + [keyCodes.end]: true, +}; + +function getDraggingBindings( + actions: SnapDragActions, + stop: () => void, +): EventBinding[] { + function cancel() { + stop(); + actions.cancel(); + } + + function drop() { + stop(); + actions.drop(); + } + + return [ + { + eventName: 'keydown', + fn: (event: KeyboardEvent) => { + if (event.keyCode === keyCodes.escape) { + event.preventDefault(); + cancel(); + return; + } + + // Dropping + if (event.keyCode === keyCodes.space) { + // need to stop parent Draggable's thinking this is a lift + event.preventDefault(); + drop(); + return; + } + + // Movement + + if (event.keyCode === keyCodes.arrowDown) { + event.preventDefault(); + actions.moveDown(); + return; + } + + if (event.keyCode === keyCodes.arrowUp) { + event.preventDefault(); + actions.moveUp(); + return; + } + + if (event.keyCode === keyCodes.arrowRight) { + event.preventDefault(); + actions.moveRight(); + return; + } + + if (event.keyCode === keyCodes.arrowLeft) { + event.preventDefault(); + actions.moveLeft(); + return; + } + + // preventing scroll jumping at this time + if (scrollJumpKeys[event.keyCode]) { + event.preventDefault(); + return; + } + + preventStandardKeyEvents(event); + }, + }, + // any mouse actions kills a drag + { + eventName: 'mousedown', + fn: cancel, + }, + { + eventName: 'mouseup', + fn: cancel, + }, + { + eventName: 'click', + fn: cancel, + }, + { + eventName: 'touchstart', + fn: cancel, + }, + // resizing the browser kills a drag + { + eventName: 'resize', + fn: cancel, + }, + // kill if the user is using the mouse wheel + // We are not supporting wheel / trackpad scrolling with keyboard dragging + { + eventName: 'wheel', + fn: cancel, + // chrome says it is a violation for this to not be passive + // it is fine for it to be passive as we just cancel as soon as we get + // any event + options: { passive: true }, + }, + // Cancel on page visibility change + { + eventName: supportedPageVisibilityEventName, + fn: cancel, + }, + ]; +} + +export default function useKeyboardSensor(api: SensorAPI) { + const unbindEventsRef = useRef<() => void>(noop); + + const startCaptureBinding: EventBinding = useMemo( + () => ({ + eventName: 'keydown', + fn: function onKeyDown(event: KeyboardEvent) { + // Event already used + if (event.defaultPrevented) { + return; + } + + // Need to start drag with a spacebar press + if (event.keyCode !== keyCodes.space) { + return; + } + + const draggableId: ?DraggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + const preDrag: ?PreDragActions = api.tryGetLock( + draggableId, + // abort function not defined yet + // eslint-disable-next-line no-use-before-define + stop, + { sourceEvent: event }, + ); + + // Cannot start capturing at this time + if (!preDrag) { + return; + } + + // we are consuming the event + event.preventDefault(); + let isCapturing: boolean = true; + + // There is no pending period for a keyboard drag + // We can lift immediately + const actions: SnapDragActions = preDrag.snapLift(); + + // unbind this listener + unbindEventsRef.current(); + + // setup our function to end everything + function stop() { + invariant( + isCapturing, + 'Cannot stop capturing a keyboard drag when not capturing', + ); + isCapturing = false; + + // unbind dragging bindings + unbindEventsRef.current(); + // start listening for capture again + // eslint-disable-next-line no-use-before-define + listenForCapture(); + } + + // bind dragging listeners + unbindEventsRef.current = bindEvents( + window, + getDraggingBindings(actions, stop), + { capture: true, passive: false }, + ); + }, + }), + // not including startPendingDrag as it is not defined initially + // eslint-disable-next-line react-hooks/exhaustive-deps + [api], + ); + + const listenForCapture = useCallback( + function tryStartCapture() { + const options: EventOptions = { + passive: false, + capture: true, + }; + + unbindEventsRef.current = bindEvents( + window, + [startCaptureBinding], + options, + ); + }, + [startCaptureBinding], + ); + + useLayoutEffect( + function mount() { + listenForCapture(); + + // kill any pending window events when unmounting + return function unmount() { + unbindEventsRef.current(); + }; + }, + [listenForCapture], + ); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/use-mouse-sensor.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/use-mouse-sensor.js new file mode 100644 index 00000000..cf49cf2a --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/use-mouse-sensor.js @@ -0,0 +1,386 @@ +// @flow +import { useRef } from 'react'; +import { useCallback, useMemo } from 'use-memo-one'; +import type { Position } from 'css-box-model'; +import { invariant } from '../../../invariant'; +import type { + PreDragActions, + FluidDragActions, + DraggableId, + SensorAPI, + DraggableOptions, +} from '../../../types'; +import type { + EventBinding, + EventOptions, +} from '../../event-bindings/event-types'; +import bindEvents from '../../event-bindings/bind-events'; +import * as keyCodes from '../../key-codes'; +import preventStandardKeyEvents from './util/prevent-standard-key-events'; +import supportedPageVisibilityEventName from './util/supported-page-visibility-event-name'; +import useLayoutEffect from '../../use-isomorphic-layout-effect'; +import { noop } from '../../../empty'; + +// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button +export const primaryButton: number = 0; +export const sloppyClickThreshold: number = 5; + +function isSloppyClickThresholdExceeded( + original: Position, + current: Position, +): boolean { + return ( + Math.abs(current.x - original.x) >= sloppyClickThreshold || + Math.abs(current.y - original.y) >= sloppyClickThreshold + ); +} +type Idle = {| + type: 'IDLE', +|}; + +type Pending = {| + type: 'PENDING', + point: Position, + actions: PreDragActions, +|}; + +type Dragging = {| + type: 'DRAGGING', + actions: FluidDragActions, +|}; + +type Phase = Idle | Pending | Dragging; + +const idle: Idle = { type: 'IDLE' }; + +type GetCaptureArgs = {| + cancel: () => void, + completed: () => void, + getPhase: () => Phase, + setPhase: (phase: Phase) => void, +|}; + +function getCaptureBindings({ + cancel, + completed, + getPhase, + setPhase, +}: GetCaptureArgs): EventBinding[] { + return [ + { + eventName: 'mousemove', + fn: (event: MouseEvent) => { + const { button, clientX, clientY } = event; + if (button !== primaryButton) { + return; + } + + const point: Position = { + x: clientX, + y: clientY, + }; + + const phase: Phase = getPhase(); + + // Already dragging + if (phase.type === 'DRAGGING') { + // preventing default as we are using this event + event.preventDefault(); + phase.actions.move(point); + return; + } + + // There should be a pending drag at this point + invariant(phase.type === 'PENDING', 'Cannot be IDLE'); + const pending: Position = phase.point; + + // threshold not yet exceeded + if (!isSloppyClickThresholdExceeded(pending, point)) { + return; + } + + // preventing default as we are using this event + event.preventDefault(); + + // Lifting at the current point to prevent the draggable item from + // jumping by the sloppyClickThreshold + const actions: FluidDragActions = phase.actions.fluidLift(point); + + setPhase({ + type: 'DRAGGING', + actions, + }); + }, + }, + { + eventName: 'mouseup', + fn: (event: MouseEvent) => { + const phase: Phase = getPhase(); + + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + // preventing default as we are using this event + event.preventDefault(); + phase.actions.drop({ shouldBlockNextClick: true }); + completed(); + }, + }, + { + eventName: 'mousedown', + fn: (event: MouseEvent) => { + // this can happen during a drag when the user clicks a button + // other than the primary mouse button + if (getPhase().type === 'DRAGGING') { + event.preventDefault(); + } + + cancel(); + }, + }, + { + eventName: 'keydown', + fn: (event: KeyboardEvent) => { + const phase: Phase = getPhase(); + // Abort if any keystrokes while a drag is pending + if (phase.type === 'PENDING') { + cancel(); + return; + } + + // cancelling a drag + if (event.keyCode === keyCodes.escape) { + event.preventDefault(); + cancel(); + return; + } + + preventStandardKeyEvents(event); + }, + }, + { + eventName: 'resize', + fn: cancel, + }, + { + eventName: 'scroll', + // kill a pending drag if there is a window scroll + options: { passive: true, capture: false }, + fn: () => { + if (getPhase().type === 'PENDING') { + cancel(); + } + }, + }, + + // Need to opt out of dragging if the user is a force press + // Only for safari which has decided to introduce its own custom way of doing things + // https://developer.apple.com/library/content/documentation/AppleApplications/Conceptual/SafariJSProgTopics/RespondingtoForceTouchEventsfromJavaScript.html + { + eventName: 'webkitmouseforcedown', + // it is considered a indirect cancel so we do not + // prevent default in any situation. + fn: (event: Event) => { + const phase: Phase = getPhase(); + invariant(phase.type !== 'IDLE', 'Unexpected phase'); + + if (phase.actions.shouldRespectForcePress()) { + cancel(); + return; + } + + // This technically doesn't do anything. + // It won't do anything if `webkitmouseforcewillbegin` is prevented. + // But it is a good signal that we want to opt out of this + + event.preventDefault(); + }, + }, + // Cancel on page visibility change + { + eventName: supportedPageVisibilityEventName, + fn: cancel, + }, + ]; +} + +export default function useMouseSensor(api: SensorAPI) { + const phaseRef = useRef(idle); + const unbindEventsRef = useRef<() => void>(noop); + + const startCaptureBinding: EventBinding = useMemo( + () => ({ + eventName: 'mousedown', + fn: function onMouseDown(event: MouseEvent) { + // Event already used + if (event.defaultPrevented) { + return; + } + // only starting a drag if dragging with the primary mouse button + if (event.button !== primaryButton) { + return; + } + + // Do not start a drag if any modifier key is pressed + if (event.ctrlKey || event.metaKey || event.shiftKey || event.altKey) { + return; + } + + const draggableId: ?DraggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + const actions: ?PreDragActions = api.tryGetLock( + draggableId, + // stop is defined later + // eslint-disable-next-line no-use-before-define + stop, + { sourceEvent: event }, + ); + + if (!actions) { + return; + } + + // consuming the event + event.preventDefault(); + + const point: Position = { + x: event.clientX, + y: event.clientY, + }; + + // unbind this listener + unbindEventsRef.current(); + // using this function before it is defined as their is a circular usage pattern + // eslint-disable-next-line no-use-before-define + startPendingDrag(actions, point); + }, + }), + // not including startPendingDrag as it is not defined initially + // eslint-disable-next-line react-hooks/exhaustive-deps + [api], + ); + + const preventForcePressBinding: EventBinding = useMemo( + () => ({ + eventName: 'webkitmouseforcewillbegin', + fn: (event: Event) => { + if (event.defaultPrevented) { + return; + } + + const id: ?DraggableId = api.findClosestDraggableId(event); + + if (!id) { + return; + } + + const options: ?DraggableOptions = api.findOptionsForDraggable(id); + + if (!options) { + return; + } + + if (options.shouldRespectForcePress) { + return; + } + + if (!api.canGetLock(id)) { + return; + } + + event.preventDefault(); + }, + }), + [api], + ); + + const listenForCapture = useCallback( + function listenForCapture() { + const options: EventOptions = { + passive: false, + capture: true, + }; + + unbindEventsRef.current = bindEvents( + window, + [preventForcePressBinding, startCaptureBinding], + options, + ); + }, + [preventForcePressBinding, startCaptureBinding], + ); + + const stop = useCallback(() => { + const current: Phase = phaseRef.current; + if (current.type === 'IDLE') { + return; + } + + phaseRef.current = idle; + unbindEventsRef.current(); + + listenForCapture(); + }, [listenForCapture]); + + const cancel = useCallback(() => { + const phase: Phase = phaseRef.current; + stop(); + if (phase.type === 'DRAGGING') { + phase.actions.cancel({ shouldBlockNextClick: true }); + } + if (phase.type === 'PENDING') { + phase.actions.abort(); + } + }, [stop]); + + const bindCapturingEvents = useCallback( + function bindCapturingEvents() { + const options = { capture: true, passive: false }; + const bindings: EventBinding[] = getCaptureBindings({ + cancel, + completed: stop, + getPhase: () => phaseRef.current, + setPhase: (phase: Phase) => { + phaseRef.current = phase; + }, + }); + + unbindEventsRef.current = bindEvents(window, bindings, options); + }, + [cancel, stop], + ); + + const startPendingDrag = useCallback( + function startPendingDrag(actions: PreDragActions, point: Position) { + invariant( + phaseRef.current.type === 'IDLE', + 'Expected to move from IDLE to PENDING drag', + ); + phaseRef.current = { + type: 'PENDING', + point, + actions, + }; + bindCapturingEvents(); + }, + [bindCapturingEvents], + ); + + useLayoutEffect( + function mount() { + listenForCapture(); + + // kill any pending window events when unmounting + return function unmount() { + unbindEventsRef.current(); + }; + }, + [listenForCapture], + ); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/use-touch-sensor.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/use-touch-sensor.js new file mode 100644 index 00000000..01f87a94 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/use-touch-sensor.js @@ -0,0 +1,461 @@ +// @flow +import { useRef } from 'react'; +import { useCallback, useMemo } from 'use-memo-one'; +import type { Position } from 'css-box-model'; +import { invariant } from '../../../invariant'; +import type { + DraggableId, + SensorAPI, + PreDragActions, + FluidDragActions, +} from '../../../types'; +import type { + EventBinding, + EventOptions, +} from '../../event-bindings/event-types'; +import bindEvents from '../../event-bindings/bind-events'; +import * as keyCodes from '../../key-codes'; +import supportedPageVisibilityEventName from './util/supported-page-visibility-event-name'; +import { noop } from '../../../empty'; +import useLayoutEffect from '../../use-isomorphic-layout-effect'; + +type TouchWithForce = Touch & { + force: number, +}; + +type Idle = {| + type: 'IDLE', +|}; + +type Pending = {| + type: 'PENDING', + point: Position, + actions: PreDragActions, + longPressTimerId: TimeoutID, +|}; + +type Dragging = {| + type: 'DRAGGING', + actions: FluidDragActions, + hasMoved: boolean, +|}; + +type Phase = Idle | Pending | Dragging; + +const idle: Idle = { type: 'IDLE' }; +// Decreased from 150 as a work around for an issue for forcepress on iOS +// https://github.com/atlassian/react-beautiful-dnd/issues/1401 +export const timeForLongPress: number = 120; +export const forcePressThreshold: number = 0.15; + +type GetBindingArgs = {| + cancel: () => void, + completed: () => void, + getPhase: () => Phase, +|}; + +function getWindowBindings({ + cancel, + getPhase, +}: GetBindingArgs): EventBinding[] { + return [ + // If the orientation of the device changes - kill the drag + // https://davidwalsh.name/orientation-change + { + eventName: 'orientationchange', + fn: cancel, + }, + // some devices fire resize if the orientation changes + { + eventName: 'resize', + fn: cancel, + }, + // Long press can bring up a context menu + // need to opt out of this behavior + { + eventName: 'contextmenu', + fn: (event: Event) => { + // always opting out of context menu events + event.preventDefault(); + }, + }, + // On some devices it is possible to have a touch interface with a keyboard. + // On any keyboard event we cancel a touch drag + { + eventName: 'keydown', + fn: (event: KeyboardEvent) => { + if (getPhase().type !== 'DRAGGING') { + cancel(); + return; + } + + // direct cancel: we are preventing the default action + // indirect cancel: we are not preventing the default action + + // escape is a direct cancel + if (event.keyCode === keyCodes.escape) { + event.preventDefault(); + } + cancel(); + }, + }, + // Cancel on page visibility change + { + eventName: supportedPageVisibilityEventName, + fn: cancel, + }, + ]; +} + +// All of the touch events get applied to the drag handle of the touch interaction +// This plays well with the event.target being unmounted during a drag +function getHandleBindings({ + cancel, + completed, + getPhase, +}: GetBindingArgs): EventBinding[] { + return [ + { + eventName: 'touchmove', + // Opting out of passive touchmove (default) so as to prevent scrolling while moving + // Not worried about performance as effect of move is throttled in requestAnimationFrame + // Using `capture: false` due to a recent horrible firefox bug: https://twitter.com/alexandereardon/status/1125904207184187393 + options: { capture: false }, + fn: (event: TouchEvent) => { + const phase: Phase = getPhase(); + // Drag has not yet started and we are waiting for a long press. + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + // At this point we are dragging + phase.hasMoved = true; + + const { clientX, clientY } = event.touches[0]; + + const point: Position = { + x: clientX, + y: clientY, + }; + + // We need to prevent the default event in order to block native scrolling + // Also because we are using it as part of a drag we prevent the default action + // as a sign that we are using the event + event.preventDefault(); + phase.actions.move(point); + }, + }, + { + eventName: 'touchend', + fn: (event: TouchEvent) => { + const phase: Phase = getPhase(); + // drag had not started yet - do not prevent the default action + if (phase.type !== 'DRAGGING') { + cancel(); + return; + } + + // ending the drag + event.preventDefault(); + phase.actions.drop({ shouldBlockNextClick: true }); + completed(); + }, + }, + { + eventName: 'touchcancel', + fn: (event: TouchEvent) => { + // drag had not started yet - do not prevent the default action + if (getPhase().type !== 'DRAGGING') { + cancel(); + return; + } + + // already dragging - this event is directly ending a drag + event.preventDefault(); + cancel(); + }, + }, + // Need to opt out of dragging if the user is a force press + // Only for webkit which has decided to introduce its own custom way of doing things + // https://developer.apple.com/library/content/documentation/AppleApplications/Conceptual/SafariJSProgTopics/RespondingtoForceTouchEventsfromJavaScript.html + { + eventName: 'touchforcechange', + fn: (event: TouchEvent) => { + const phase: Phase = getPhase(); + + // needed to use phase.actions + invariant(phase.type !== 'IDLE'); + + // This is not fantastic logic, but it is done to account for + // and issue with forcepress on iOS + // Calling event.preventDefault() will currently opt out of scrolling and clicking + // https://github.com/atlassian/react-beautiful-dnd/issues/1401 + + const touch: ?TouchWithForce = (event.touches[0]: any); + + if (!touch) { + return; + } + + const isForcePress: boolean = touch.force >= forcePressThreshold; + + if (!isForcePress) { + return; + } + + const shouldRespect: boolean = phase.actions.shouldRespectForcePress(); + + if (phase.type === 'PENDING') { + if (shouldRespect) { + cancel(); + } + // If not respecting we just let the event go through + // It will not have an impact on the browser until + // there has been a sufficient time ellapsed + return; + } + + // 'DRAGGING' + + if (shouldRespect) { + if (phase.hasMoved) { + // After the user has moved we do not allow the dragging item to be force pressed + // This prevents strange behaviour such as a link preview opening mid drag + event.preventDefault(); + return; + } + // indirect cancel + cancel(); + return; + } + + // not respecting during a drag + event.preventDefault(); + }, + }, + // Cancel on page visibility change + { + eventName: supportedPageVisibilityEventName, + fn: cancel, + }, + // Not adding a cancel on touchstart as this handler will pick up the initial touchstart event + ]; +} + +export default function useTouchSensor(api: SensorAPI) { + const phaseRef = useRef(idle); + const unbindEventsRef = useRef<() => void>(noop); + + const getPhase = useCallback(function getPhase(): Phase { + return phaseRef.current; + }, []); + + const setPhase = useCallback(function setPhase(phase: Phase) { + phaseRef.current = phase; + }, []); + + const startCaptureBinding: EventBinding = useMemo( + () => ({ + eventName: 'touchstart', + fn: function onTouchStart(event: TouchEvent) { + // Event already used by something else + if (event.defaultPrevented) { + return; + } + + // We need to NOT call event.preventDefault() so as to maintain as much standard + // browser interactions as possible. + // This includes navigation on anchors which we want to preserve + + const draggableId: ?DraggableId = api.findClosestDraggableId(event); + + if (!draggableId) { + return; + } + + const actions: ?PreDragActions = api.tryGetLock( + draggableId, + // eslint-disable-next-line no-use-before-define + stop, + { sourceEvent: event }, + ); + + // could not start a drag + if (!actions) { + return; + } + + const touch: Touch = event.touches[0]; + const { clientX, clientY } = touch; + const point: Position = { + x: clientX, + y: clientY, + }; + + // unbind this event handler + unbindEventsRef.current(); + + // eslint-disable-next-line no-use-before-define + startPendingDrag(actions, point); + }, + }), + // not including stop or startPendingDrag as it is not defined initially + // eslint-disable-next-line react-hooks/exhaustive-deps + [api], + ); + + const listenForCapture = useCallback( + function listenForCapture() { + const options: EventOptions = { + capture: true, + passive: false, + }; + + unbindEventsRef.current = bindEvents( + window, + [startCaptureBinding], + options, + ); + }, + [startCaptureBinding], + ); + + const stop = useCallback(() => { + const current: Phase = phaseRef.current; + if (current.type === 'IDLE') { + return; + } + + // aborting any pending drag + if (current.type === 'PENDING') { + clearTimeout(current.longPressTimerId); + } + + setPhase(idle); + unbindEventsRef.current(); + + listenForCapture(); + }, [listenForCapture, setPhase]); + + const cancel = useCallback(() => { + const phase: Phase = phaseRef.current; + stop(); + if (phase.type === 'DRAGGING') { + phase.actions.cancel({ shouldBlockNextClick: true }); + } + if (phase.type === 'PENDING') { + phase.actions.abort(); + } + }, [stop]); + + const bindCapturingEvents = useCallback( + function bindCapturingEvents() { + const options: EventOptions = { capture: true, passive: false }; + const args: GetBindingArgs = { + cancel, + completed: stop, + getPhase, + }; + + // In prior versions of iOS it was required that touch listeners be added + // to the handle to work correctly (even if the handle got removed in a portal / clone) + // In the latest version it appears to be the opposite: for reparenting to work + // the events need to be attached to the window. + // For now i'll keep these two functions seperate in case we need to swap it back again + // Old behaviour: + // https://gist.github.com/parris/dda613e3ae78f14eb2dc9fa0f4bfce3d + // https://stackoverflow.com/questions/33298828/touch-move-event-dont-fire-after-touch-start-target-is-removed + const unbindTarget = bindEvents(window, getHandleBindings(args), options); + const unbindWindow = bindEvents(window, getWindowBindings(args), options); + + unbindEventsRef.current = function unbindAll() { + unbindTarget(); + unbindWindow(); + }; + }, + [cancel, getPhase, stop], + ); + + const startDragging = useCallback( + function startDragging() { + const phase: Phase = getPhase(); + invariant( + phase.type === 'PENDING', + `Cannot start dragging from phase ${phase.type}`, + ); + + const actions: FluidDragActions = phase.actions.fluidLift(phase.point); + + setPhase({ + type: 'DRAGGING', + actions, + hasMoved: false, + }); + }, + [getPhase, setPhase], + ); + + const startPendingDrag = useCallback( + function startPendingDrag(actions: PreDragActions, point: Position) { + invariant( + getPhase().type === 'IDLE', + 'Expected to move from IDLE to PENDING drag', + ); + + const longPressTimerId: TimeoutID = setTimeout( + startDragging, + timeForLongPress, + ); + + setPhase({ + type: 'PENDING', + point, + actions, + longPressTimerId, + }); + + bindCapturingEvents(); + }, + [bindCapturingEvents, getPhase, setPhase, startDragging], + ); + + useLayoutEffect( + function mount() { + listenForCapture(); + + return function unmount() { + // remove any existing listeners + unbindEventsRef.current(); + + // need to kill any pending drag start timer + const phase: Phase = getPhase(); + if (phase.type === 'PENDING') { + clearTimeout(phase.longPressTimerId); + setPhase(idle); + } + }; + }, + [getPhase, listenForCapture, setPhase], + ); + + // This is needed for safari + // Simply adding a non capture, non passive 'touchmove' listener. + // This forces event.preventDefault() in dynamically added + // touchmove event handlers to actually work + // https://github.com/atlassian/react-beautiful-dnd/issues/1374 + useLayoutEffect(function webkitHack() { + const unbind = bindEvents(window, [ + { + eventName: 'touchmove', + // using a new noop function for each usage as a single `removeEventListener()` + // call will remove all handlers with the same reference + // https://codesandbox.io/s/removing-multiple-handlers-with-same-reference-fxe15 + fn: () => {}, + options: { capture: false, passive: false }, + }, + ]); + + return unbind; + }, []); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/util/prevent-standard-key-events.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/util/prevent-standard-key-events.js new file mode 100644 index 00000000..f7865b2e --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/util/prevent-standard-key-events.js @@ -0,0 +1,19 @@ +// @flow +import * as keyCodes from '../../../key-codes'; + +type KeyMap = { + [key: number]: true, +}; + +const preventedKeys: KeyMap = { + // submission + [keyCodes.enter]: true, + // tabbing + [keyCodes.tab]: true, +}; + +export default (event: KeyboardEvent) => { + if (preventedKeys[event.keyCode]) { + event.preventDefault(); + } +}; diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/util/supported-page-visibility-event-name.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/util/supported-page-visibility-event-name.js new file mode 100644 index 00000000..4f137996 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/sensors/util/supported-page-visibility-event-name.js @@ -0,0 +1,29 @@ +// @flow +import { find } from '../../../../native-with-fallback'; + +const supportedEventName: string = ((): string => { + const base: string = 'visibilitychange'; + + // Server side rendering + if (typeof document === 'undefined') { + return base; + } + + // See https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API + const candidates: string[] = [ + base, + `ms${base}`, + `webkit${base}`, + `moz${base}`, + `o${base}`, + ]; + + const supported: ?string = find( + candidates, + (eventName: string): boolean => `on${eventName}` in document, + ); + + return supported || base; +})(); + +export default supportedEventName; diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/use-sensor-marshal.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/use-sensor-marshal.js new file mode 100644 index 00000000..db3ac125 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/use-sensor-marshal.js @@ -0,0 +1,495 @@ +// @flow +import rafSchd from 'raf-schd'; +import { useState } from 'react'; +import { useCallback, useMemo } from 'use-memo-one'; +import type { Position } from 'css-box-model'; +import { invariant } from '../../invariant'; +import type { + ContextId, + State, + Sensor, + StopDragOptions, + PreDragActions, + FluidDragActions, + SnapDragActions, + DraggableId, + SensorAPI, + TryGetLock, + TryGetLockOptions, + DraggableOptions, +} from '../../types'; +import create, { type Lock, type LockAPI } from './lock'; +import type { Store, Action } from '../../state/store-types'; +import canStartDrag from '../../state/can-start-drag'; +import { + move as moveAction, + moveUp as moveUpAction, + moveRight as moveRightAction, + moveDown as moveDownAction, + moveLeft as moveLeftAction, + drop as dropAction, + lift as liftAction, + type LiftArgs as LiftActionArgs, + flush, +} from '../../state/action-creators'; +import type { + Registry, + DraggableEntry, +} from '../../state/registry/registry-types'; +import useMouseSensor from './sensors/use-mouse-sensor'; +import useKeyboardSensor from './sensors/use-keyboard-sensor'; +import useTouchSensor from './sensors/use-touch-sensor'; +import useValidateSensorHooks from './use-validate-sensor-hooks'; +import isEventInInteractiveElement from './is-event-in-interactive-element'; +import getBorderBoxCenterPosition from '../get-border-box-center-position'; +import { warning } from '../../dev-warning'; +import useLayoutEffect from '../use-isomorphic-layout-effect'; +import { noop } from '../../empty'; +import findClosestDraggableIdFromEvent from './find-closest-draggable-id-from-event'; +import findDraggable from '../get-elements/find-draggable'; +import bindEvents from '../event-bindings/bind-events'; + +function preventDefault(event: Event) { + event.preventDefault(); +} + +type LockPhase = 'PRE_DRAG' | 'DRAGGING' | 'COMPLETED'; + +type IsActiveArgs = {| + expected: LockPhase, + phase: LockPhase, + isLockActive: () => boolean, + shouldWarn: boolean, +|}; + +function isActive({ + expected, + phase, + isLockActive, + shouldWarn, +}: IsActiveArgs): boolean { + // lock is no longer active + if (!isLockActive()) { + if (shouldWarn) { + warning(` + Cannot perform action. + The sensor no longer has an action lock. + + Tips: + + - Throw away your action handlers when forceStop() is called + - Check actions.isActive() if you really need to + `); + } + return false; + } + // wrong phase + if (expected !== phase) { + if (shouldWarn) { + warning(` + Cannot perform action. + The actions you used belong to an outdated phase + + Current phase: ${expected} + You called an action from outdated phase: ${phase} + + Tips: + + - Do not use preDragActions actions after calling preDragActions.lift() + `); + } + return false; + } + return true; +} + +type CanStartArgs = {| + lockAPI: LockAPI, + registry: Registry, + store: Store, + draggableId: DraggableId, +|}; + +function canStart({ + lockAPI, + store, + registry, + draggableId, +}: CanStartArgs): boolean { + // lock is already claimed - cannot start + if (lockAPI.isClaimed()) { + return false; + } + + const entry: ?DraggableEntry = registry.draggable.findById(draggableId); + + if (!entry) { + warning(`Unable to find draggable with id: ${draggableId}`); + return false; + } + + // draggable is not enabled - cannot start + if (!entry.options.isEnabled) { + return false; + } + + // Application might now allow dragging right now + if (!canStartDrag(store.getState(), draggableId)) { + return false; + } + + return true; +} + +type TryStartArgs = {| + lockAPI: LockAPI, + contextId: ContextId, + registry: Registry, + store: Store, + draggableId: DraggableId, + forceSensorStop: ?() => void, + sourceEvent: ?Event, +|}; + +function tryStart({ + lockAPI, + contextId, + store, + registry, + draggableId, + forceSensorStop, + sourceEvent, +}: TryStartArgs): ?PreDragActions { + const shouldStart: boolean = canStart({ + lockAPI, + store, + registry, + draggableId, + }); + + if (!shouldStart) { + return null; + } + + const entry: DraggableEntry = registry.draggable.getById(draggableId); + const el: ?HTMLElement = findDraggable(contextId, entry.descriptor.id); + + if (!el) { + warning(`Unable to find draggable element with id: ${draggableId}`); + return null; + } + + // Do not allow dragging from interactive elements + if ( + sourceEvent && + !entry.options.canDragInteractiveElements && + isEventInInteractiveElement(el, sourceEvent) + ) { + return null; + } + + // claiming lock + const lock: Lock = lockAPI.claim(forceSensorStop || noop); + let phase: LockPhase = 'PRE_DRAG'; + + function getShouldRespectForcePress(): boolean { + // not looking up the entry as it might have been removed in a virtual list + return entry.options.shouldRespectForcePress; + } + + function isLockActive(): boolean { + return lockAPI.isActive(lock); + } + + function tryDispatch(expected: LockPhase, getAction: () => Action): void { + if (isActive({ expected, phase, isLockActive, shouldWarn: true })) { + store.dispatch(getAction()); + } + } + + const tryDispatchWhenDragging = tryDispatch.bind(null, 'DRAGGING'); + + type LiftArgs = {| + liftActionArgs: LiftActionArgs, + cleanup: () => void, + actions: Object, + |}; + + function lift(args: LiftArgs) { + function completed() { + lockAPI.release(); + phase = 'COMPLETED'; + } + // Double lift = bad + if (phase !== 'PRE_DRAG') { + completed(); + invariant(phase === 'PRE_DRAG', `Cannot lift in phase ${phase}`); + } + + store.dispatch(liftAction(args.liftActionArgs)); + + // We are now in the DRAGGING phase + phase = 'DRAGGING'; + + function finish( + reason: 'CANCEL' | 'DROP', + options?: StopDragOptions = { shouldBlockNextClick: false }, + ) { + args.cleanup(); + + // block next click if requested + if (options.shouldBlockNextClick) { + const unbind = bindEvents(window, [ + { + eventName: 'click', + fn: preventDefault, + options: { + // only blocking a single click + once: true, + passive: false, + capture: true, + }, + }, + ]); + // Sometimes the click is swallowed, such as when there is reparenting + // The click event (in the message queue) will occur before the next setTimeout expiry + // https://codesandbox.io/s/click-behaviour-pkfk2 + setTimeout(unbind); + } + + // releasing + completed(); + store.dispatch(dropAction({ reason })); + } + + return { + isActive: () => + isActive({ + expected: 'DRAGGING', + phase, + isLockActive, + // Do not want to want warnings for boolean checks + shouldWarn: false, + }), + shouldRespectForcePress: getShouldRespectForcePress, + drop: (options?: StopDragOptions) => finish('DROP', options), + cancel: (options?: StopDragOptions) => finish('CANCEL', options), + ...args.actions, + }; + } + + function fluidLift(clientSelection: Position): FluidDragActions { + const move = rafSchd((client: Position) => { + tryDispatchWhenDragging(() => moveAction({ client })); + }); + + const api = lift({ + liftActionArgs: { + id: draggableId, + clientSelection, + movementMode: 'FLUID', + }, + cleanup: () => move.cancel(), + actions: { move }, + }); + + return { + ...api, + move, + }; + } + + function snapLift(): SnapDragActions { + const actions = { + moveUp: () => tryDispatchWhenDragging(moveUpAction), + moveRight: () => tryDispatchWhenDragging(moveRightAction), + moveDown: () => tryDispatchWhenDragging(moveDownAction), + moveLeft: () => tryDispatchWhenDragging(moveLeftAction), + }; + + return lift({ + liftActionArgs: { + id: draggableId, + clientSelection: getBorderBoxCenterPosition(el), + movementMode: 'SNAP', + }, + cleanup: noop, + actions, + }); + } + + function abortPreDrag() { + const shouldRelease: boolean = isActive({ + expected: 'PRE_DRAG', + phase, + isLockActive, + shouldWarn: true, + }); + + if (shouldRelease) { + lockAPI.release(); + } + } + + const preDrag: PreDragActions = { + isActive: () => + isActive({ + expected: 'PRE_DRAG', + phase, + isLockActive, + // Do not want to want warnings for boolean checks + shouldWarn: false, + }), + shouldRespectForcePress: getShouldRespectForcePress, + fluidLift, + snapLift, + abort: abortPreDrag, + }; + + return preDrag; +} + +type SensorMarshalArgs = {| + contextId: ContextId, + registry: Registry, + store: Store, + customSensors: ?(Sensor[]), + enableDefaultSensors: boolean, +|}; + +// default sensors are now exported to library consumers +const defaultSensors: Sensor[] = [ + useMouseSensor, + useKeyboardSensor, + useTouchSensor, +]; + +export default function useSensorMarshal({ + contextId, + store, + registry, + customSensors, + enableDefaultSensors, +}: SensorMarshalArgs) { + const useSensors: Sensor[] = [ + ...(enableDefaultSensors ? defaultSensors : []), + ...(customSensors || []), + ]; + const lockAPI: LockAPI = useState(() => create())[0]; + + const tryAbandonLock = useCallback( + function tryAbandonLock(previous: State, current: State) { + if (previous.isDragging && !current.isDragging) { + lockAPI.tryAbandon(); + } + }, + [lockAPI], + ); + + // We need to abort any capturing if there is no longer a drag + useLayoutEffect( + function listenToStore() { + let previous: State = store.getState(); + const unsubscribe = store.subscribe(() => { + const current: State = store.getState(); + tryAbandonLock(previous, current); + previous = current; + }); + + // unsubscribe from store when unmounting + return unsubscribe; + }, + [lockAPI, store, tryAbandonLock], + ); + + // abort any lock on unmount + useLayoutEffect(() => { + return lockAPI.tryAbandon; + }, [lockAPI.tryAbandon]); + + const canGetLock = useCallback( + (draggableId: DraggableId): boolean => { + return canStart({ + lockAPI, + registry, + store, + draggableId, + }); + }, + [lockAPI, registry, store], + ); + + const tryGetLock: TryGetLock = useCallback( + ( + draggableId: DraggableId, + forceStop?: () => void, + options?: TryGetLockOptions, + ): ?PreDragActions => + tryStart({ + lockAPI, + registry, + contextId, + store, + draggableId, + forceSensorStop: forceStop, + sourceEvent: + options && options.sourceEvent ? options.sourceEvent : null, + }), + [contextId, lockAPI, registry, store], + ); + + const findClosestDraggableId = useCallback( + (event: Event): ?DraggableId => + findClosestDraggableIdFromEvent(contextId, event), + [contextId], + ); + + const findOptionsForDraggable = useCallback( + (id: DraggableId): ?DraggableOptions => { + const entry: ?DraggableEntry = registry.draggable.findById(id); + return entry ? entry.options : null; + }, + [registry.draggable], + ); + + const tryReleaseLock = useCallback( + function tryReleaseLock() { + if (!lockAPI.isClaimed()) { + return; + } + + lockAPI.tryAbandon(); + + if (store.getState().phase !== 'IDLE') { + store.dispatch(flush()); + } + }, + [lockAPI, store], + ); + const isLockClaimed = useCallback(lockAPI.isClaimed, [lockAPI]); + + const api: SensorAPI = useMemo( + () => ({ + canGetLock, + tryGetLock, + findClosestDraggableId, + findOptionsForDraggable, + tryReleaseLock, + isLockClaimed, + }), + [ + canGetLock, + tryGetLock, + findClosestDraggableId, + findOptionsForDraggable, + tryReleaseLock, + isLockClaimed, + ], + ); + + // Bad ass + useValidateSensorHooks(useSensors); + for (let i = 0; i < useSensors.length; i++) { + useSensors[i](api); + } +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/use-validate-sensor-hooks.js b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/use-validate-sensor-hooks.js new file mode 100644 index 00000000..1e528f6b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-sensor-marshal/use-validate-sensor-hooks.js @@ -0,0 +1,20 @@ +// @flow +/* eslint-disable react-hooks/rules-of-hooks */ +import { invariant } from '../../invariant'; +import type { Sensor } from '../../types'; +import usePreviousRef from '../use-previous-ref'; +import useDevSetupWarning from '../use-dev-setup-warning'; +import useDev from '../use-dev'; + +export default function useValidateSensorHooks(sensorHooks: Sensor[]) { + useDev(() => { + const previousRef = usePreviousRef(sensorHooks); + + useDevSetupWarning(() => { + invariant( + previousRef.current.length === sensorHooks.length, + 'Cannot change the amount of sensor hooks after mounting', + ); + }); + }); +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-style-marshal/get-styles.js b/node_modules/react-beautiful-dnd/src/view/use-style-marshal/get-styles.js new file mode 100644 index 00000000..a7aea9c3 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-style-marshal/get-styles.js @@ -0,0 +1,170 @@ +// @flow +import type { ContextId } from '../../types'; +import { transitions } from '../../animation'; +import * as attributes from '../data-attributes'; + +export type Styles = {| + always: string, + dragging: string, + resting: string, + dropAnimating: string, + userCancel: string, +|}; + +type Rule = {| + selector: string, + styles: {| + always?: string, + resting?: string, + dragging?: string, + dropAnimating?: string, + userCancel?: string, + |}, +|}; + +const makeGetSelector = (context: string) => (attribute: string) => + `[${attribute}="${context}"]`; + +const getStyles = (rules: Rule[], property: string): string => + rules + .map((rule: Rule): string => { + const value: ?string = rule.styles[property]; + if (!value) { + return ''; + } + + return `${rule.selector} { ${value} }`; + }) + .join(' '); + +const noPointerEvents: string = 'pointer-events: none;'; + +export default (contextId: ContextId): Styles => { + const getSelector = makeGetSelector(contextId); + + // ## Drag handle styles + + // -webkit-touch-callout + // A long press on anchors usually pops a content menu that has options for + // the link such as 'Open in new tab'. Because long press is used to start + // a drag we need to opt out of this behavior + + // -webkit-tap-highlight-color + // Webkit based browsers add a grey overlay to anchors when they are active. + // We remove this tap overlay as it is confusing for users + // https://css-tricks.com/snippets/css/remove-gray-highlight-when-tapping-links-in-mobile-safari/ + + // touch-action: manipulation + // Avoid the *pull to refresh action* and *delayed anchor focus* on Android Chrome + + // cursor: grab + // We apply this by default for an improved user experience. It is such a common default that we + // bake it right in. Consumers can opt out of this by adding a selector with higher specificity + // The cursor will not apply when pointer-events is set to none + + // pointer-events: none + // this is used to prevent pointer events firing on draggables during a drag + // Reasons: + // 1. performance: it stops the other draggables from processing mouse events + // 2. scrolling: it allows the user to scroll through the current draggable + // to scroll the list behind + // 3.* function: it blocks other draggables from starting. This is not relied on though as there + // is a function on the context (canLift) which is a more robust way of controlling this + + const dragHandle: Rule = (() => { + const grabCursor = ` + cursor: -webkit-grab; + cursor: grab; + `; + return { + selector: getSelector(attributes.dragHandle.contextId), + styles: { + always: ` + -webkit-touch-callout: none; + -webkit-tap-highlight-color: rgba(0,0,0,0); + touch-action: manipulation; + `, + resting: grabCursor, + dragging: noPointerEvents, + // it is fine for users to start dragging another item when a drop animation is occurring + dropAnimating: grabCursor, + // Not applying grab cursor during a user cancel as it is not possible for users to reorder + // items during a cancel + }, + }; + })(); + + // ## Draggable styles + + // transition: transform + // This controls the animation of draggables that are moving out of the way + // The main draggable is controlled by react-motion. + + const draggable: Rule = (() => { + const transition: string = ` + transition: ${transitions.outOfTheWay}; + `; + return { + selector: getSelector(attributes.draggable.contextId), + styles: { + dragging: transition, + dropAnimating: transition, + userCancel: transition, + }, + }; + })(); + + // ## Droppable styles + + // overflow-anchor: none; + // Opting out of the browser feature which tries to maintain + // the scroll position when the DOM changes above the fold. + // This does not work well with reordering DOM nodes. + // When we drop a Draggable it already has the correct scroll applied. + + const droppable: Rule = { + selector: getSelector(attributes.droppable.contextId), + styles: { + always: `overflow-anchor: none;`, + // need pointer events on the droppable to allow manual scrolling + }, + }; + + // ## Body styles + + // cursor: grab + // We apply this by default for an improved user experience. It is such a common default that we + // bake it right in. Consumers can opt out of this by adding a selector with higher specificity + + // user-select: none + // This prevents the user from selecting text on the page while dragging + + // overflow-anchor: none + // We are in control and aware of all of the window scrolls that occur + // we do not want the browser to have behaviors we do not expect + + const body: Rule = { + selector: 'body', + styles: { + dragging: ` + cursor: grabbing; + cursor: -webkit-grabbing; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + overflow-anchor: none; + `, + }, + }; + + const rules: Rule[] = [draggable, dragHandle, droppable, body]; + + return { + always: getStyles(rules, 'always'), + resting: getStyles(rules, 'resting'), + dragging: getStyles(rules, 'dragging'), + dropAnimating: getStyles(rules, 'dropAnimating'), + userCancel: getStyles(rules, 'userCancel'), + }; +}; diff --git a/node_modules/react-beautiful-dnd/src/view/use-style-marshal/index.js b/node_modules/react-beautiful-dnd/src/view/use-style-marshal/index.js new file mode 100644 index 00000000..8eda849f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-style-marshal/index.js @@ -0,0 +1,2 @@ +// @flow +export { default } from './use-style-marshal'; diff --git a/node_modules/react-beautiful-dnd/src/view/use-style-marshal/style-marshal-types.js b/node_modules/react-beautiful-dnd/src/view/use-style-marshal/style-marshal-types.js new file mode 100644 index 00000000..60f44b3d --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-style-marshal/style-marshal-types.js @@ -0,0 +1,8 @@ +// @flow +import type { DropReason } from '../../types'; + +export type StyleMarshal = {| + dragging: () => void, + dropping: (reason: DropReason) => void, + resting: () => void, +|}; diff --git a/node_modules/react-beautiful-dnd/src/view/use-style-marshal/use-style-marshal.js b/node_modules/react-beautiful-dnd/src/view/use-style-marshal/use-style-marshal.js new file mode 100644 index 00000000..eb411c3f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-style-marshal/use-style-marshal.js @@ -0,0 +1,126 @@ +// @flow +import { useRef } from 'react'; +import memoizeOne from 'memoize-one'; +import { useMemo, useCallback } from 'use-memo-one'; +import { invariant } from '../../invariant'; +import type { StyleMarshal } from './style-marshal-types'; +import type { ContextId, DropReason } from '../../types'; +import getStyles, { type Styles } from './get-styles'; +import { prefix } from '../data-attributes'; +import useLayoutEffect from '../use-isomorphic-layout-effect'; + +const getHead = (): HTMLHeadElement => { + const head: ?HTMLHeadElement = document.querySelector('head'); + invariant(head, 'Cannot find the head to append a style to'); + return head; +}; + +const createStyleEl = (nonce?: string): HTMLStyleElement => { + const el: HTMLStyleElement = document.createElement('style'); + if (nonce) { + el.setAttribute('nonce', nonce); + } + el.type = 'text/css'; + return el; +}; + +export default function useStyleMarshal(contextId: ContextId, nonce?: string) { + const styles: Styles = useMemo(() => getStyles(contextId), [contextId]); + const alwaysRef = useRef(null); + const dynamicRef = useRef(null); + + const setDynamicStyle = useCallback( + // Using memoizeOne to prevent frequent updates to textContext + memoizeOne((proposed: string) => { + const el: ?HTMLStyleElement = dynamicRef.current; + invariant(el, 'Cannot set dynamic style element if it is not set'); + el.textContent = proposed; + }), + [], + ); + + const setAlwaysStyle = useCallback((proposed: string) => { + const el: ?HTMLStyleElement = alwaysRef.current; + invariant(el, 'Cannot set dynamic style element if it is not set'); + el.textContent = proposed; + }, []); + + // using layout effect as programatic dragging might start straight away (such as for cypress) + useLayoutEffect(() => { + invariant( + !alwaysRef.current && !dynamicRef.current, + 'style elements already mounted', + ); + + const always: HTMLStyleElement = createStyleEl(nonce); + const dynamic: HTMLStyleElement = createStyleEl(nonce); + + // store their refs + alwaysRef.current = always; + dynamicRef.current = dynamic; + + // for easy identification + always.setAttribute(`${prefix}-always`, contextId); + dynamic.setAttribute(`${prefix}-dynamic`, contextId); + + // add style tags to head + getHead().appendChild(always); + getHead().appendChild(dynamic); + + // set initial style + setAlwaysStyle(styles.always); + setDynamicStyle(styles.resting); + + return () => { + const remove = (ref) => { + const current: ?HTMLStyleElement = ref.current; + invariant(current, 'Cannot unmount ref as it is not set'); + getHead().removeChild(current); + ref.current = null; + }; + + remove(alwaysRef); + remove(dynamicRef); + }; + }, [ + nonce, + setAlwaysStyle, + setDynamicStyle, + styles.always, + styles.resting, + contextId, + ]); + + const dragging = useCallback(() => setDynamicStyle(styles.dragging), [ + setDynamicStyle, + styles.dragging, + ]); + const dropping = useCallback( + (reason: DropReason) => { + if (reason === 'DROP') { + setDynamicStyle(styles.dropAnimating); + return; + } + setDynamicStyle(styles.userCancel); + }, + [setDynamicStyle, styles.dropAnimating, styles.userCancel], + ); + const resting = useCallback(() => { + // Can be called defensively + if (!dynamicRef.current) { + return; + } + setDynamicStyle(styles.resting); + }, [setDynamicStyle, styles.resting]); + + const marshal: StyleMarshal = useMemo( + () => ({ + dragging, + dropping, + resting, + }), + [dragging, dropping, resting], + ); + + return marshal; +} diff --git a/node_modules/react-beautiful-dnd/src/view/use-unique-id.js b/node_modules/react-beautiful-dnd/src/view/use-unique-id.js new file mode 100644 index 00000000..9851f09f --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/use-unique-id.js @@ -0,0 +1,25 @@ +// @flow +import { useMemo } from 'use-memo-one'; +import type { Id } from '../types'; + +let count: number = 0; + +type Options = { + separator: string, +}; + +const defaults: Options = { separator: '::' }; + +export function reset() { + count = 0; +} + +export default function useUniqueId( + prefix: string, + options?: Options = defaults, +): Id { + return useMemo(() => `${prefix}${options.separator}${count++}`, [ + options.separator, + prefix, + ]); +} diff --git a/node_modules/react-beautiful-dnd/src/view/visually-hidden-style.js b/node_modules/react-beautiful-dnd/src/view/visually-hidden-style.js new file mode 100644 index 00000000..856279bd --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/visually-hidden-style.js @@ -0,0 +1,16 @@ +// @flow +// https://allyjs.io/tutorials/hiding-elements.html +// Element is visually hidden but is readable by screen readers +const visuallyHidden: Object = { + position: 'absolute', + width: '1px', + height: '1px', + margin: '-1px', + border: '0', + padding: '0', + overflow: 'hidden', + clip: 'rect(0 0 0 0)', + 'clip-path': 'inset(100%)', +}; + +export default visuallyHidden; diff --git a/node_modules/react-beautiful-dnd/src/view/window/get-max-window-scroll.js b/node_modules/react-beautiful-dnd/src/view/window/get-max-window-scroll.js new file mode 100644 index 00000000..a6606c0b --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/window/get-max-window-scroll.js @@ -0,0 +1,19 @@ +// @flow +import type { Position } from 'css-box-model'; +import getMaxScroll from '../../state/get-max-scroll'; +import getDocumentElement from '../get-document-element'; + +export default (): Position => { + const doc: HTMLElement = getDocumentElement(); + + const maxScroll: Position = getMaxScroll({ + // unclipped padding box, with scrollbar + scrollHeight: doc.scrollHeight, + scrollWidth: doc.scrollWidth, + // clipped padding box, without scrollbar + width: doc.clientWidth, + height: doc.clientHeight, + }); + + return maxScroll; +}; diff --git a/node_modules/react-beautiful-dnd/src/view/window/get-viewport.js b/node_modules/react-beautiful-dnd/src/view/window/get-viewport.js new file mode 100644 index 00000000..94b3645c --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/window/get-viewport.js @@ -0,0 +1,49 @@ +// @flow +import { getRect, type Rect, type Position } from 'css-box-model'; +import type { Viewport } from '../../types'; +import { origin } from '../../state/position'; +import getWindowScroll from './get-window-scroll'; +import getMaxWindowScroll from './get-max-window-scroll'; +import getDocumentElement from '../get-document-element'; + +export default (): Viewport => { + const scroll: Position = getWindowScroll(); + const maxScroll: Position = getMaxWindowScroll(); + + const top: number = scroll.y; + const left: number = scroll.x; + + // window.innerHeight: includes scrollbars (not what we want) + // document.clientHeight gives us the correct value when using the html5 doctype + const doc: HTMLElement = getDocumentElement(); + // Using these values as they do not consider scrollbars + // padding box, without scrollbar + const width: number = doc.clientWidth; + const height: number = doc.clientHeight; + + // Computed + const right: number = left + width; + const bottom: number = top + height; + + const frame: Rect = getRect({ + top, + left, + right, + bottom, + }); + + const viewport: Viewport = { + frame, + scroll: { + initial: scroll, + current: scroll, + max: maxScroll, + diff: { + value: origin, + displacement: origin, + }, + }, + }; + + return viewport; +}; diff --git a/node_modules/react-beautiful-dnd/src/view/window/get-window-from-el.js b/node_modules/react-beautiful-dnd/src/view/window/get-window-from-el.js new file mode 100644 index 00000000..c3a3b941 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/window/get-window-from-el.js @@ -0,0 +1,3 @@ +// @flow +export default (el: ?Element): typeof window => + el && el.ownerDocument ? el.ownerDocument.defaultView : window; diff --git a/node_modules/react-beautiful-dnd/src/view/window/get-window-scroll.js b/node_modules/react-beautiful-dnd/src/view/window/get-window-scroll.js new file mode 100644 index 00000000..4fad3dce --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/window/get-window-scroll.js @@ -0,0 +1,30 @@ +// @flow +import { type Position } from 'css-box-model'; + +// The browsers update document.documentElement.scrollTop and window.pageYOffset +// differently as the window scrolls. + +// Webkit +// documentElement.scrollTop: no update. Stays at 0 +// window.pageYOffset: updates to whole number + +// Chrome +// documentElement.scrollTop: update with fractional value +// window.pageYOffset: update with fractional value + +// FireFox +// documentElement.scrollTop: updates to whole number +// window.pageYOffset: updates to whole number + +// IE11 (same as firefox) +// documentElement.scrollTop: updates to whole number +// window.pageYOffset: updates to whole number + +// Edge (same as webkit) +// documentElement.scrollTop: no update. Stays at 0 +// window.pageYOffset: updates to whole number + +export default (): Position => ({ + x: window.pageXOffset, + y: window.pageYOffset, +}); diff --git a/node_modules/react-beautiful-dnd/src/view/window/scroll-window.js b/node_modules/react-beautiful-dnd/src/view/window/scroll-window.js new file mode 100644 index 00000000..b0fb3c24 --- /dev/null +++ b/node_modules/react-beautiful-dnd/src/view/window/scroll-window.js @@ -0,0 +1,7 @@ +// @flow +import { type Position } from 'css-box-model'; + +// Not guarenteed to scroll by the entire amount +export default (change: Position): void => { + window.scrollBy(change.x, change.y); +}; diff --git a/node_modules/react-is/build-info.json b/node_modules/react-is/build-info.json index db5dbe5e..4094da67 100644 --- a/node_modules/react-is/build-info.json +++ b/node_modules/react-is/build-info.json @@ -1,8 +1,8 @@ { - "branch": "pull/21051", - "buildNumber": "287151", - "checksum": "94f5c65", - "commit": "12adaffef", + "branch": "pull/18344", + "buildNumber": "106499", + "checksum": "7fe5a2e", + "commit": "da834083c", "environment": "ci", - "reactVersion": "17.0.0-12adaffef" + "reactVersion": "16.12.0-da834083c" } diff --git a/node_modules/react-is/cjs/react-is.development.js b/node_modules/react-is/cjs/react-is.development.js index b2e388eb..8a80b768 100644 --- a/node_modules/react-is/cjs/react-is.development.js +++ b/node_modules/react-is/cjs/react-is.development.js @@ -1,4 +1,4 @@ -/** @license React v17.0.2 +/** @license React v16.13.1 * react-is.development.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -9,81 +9,39 @@ 'use strict'; + + if (process.env.NODE_ENV !== "production") { (function() { 'use strict'; -// ATTENTION -// When adding new symbols to this file, -// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' // The Symbol used to tag the ReactElement-like types. If there is no native Symbol // nor polyfill, then a plain number is used for performance. -var REACT_ELEMENT_TYPE = 0xeac7; -var REACT_PORTAL_TYPE = 0xeaca; -var REACT_FRAGMENT_TYPE = 0xeacb; -var REACT_STRICT_MODE_TYPE = 0xeacc; -var REACT_PROFILER_TYPE = 0xead2; -var REACT_PROVIDER_TYPE = 0xeacd; -var REACT_CONTEXT_TYPE = 0xeace; -var REACT_FORWARD_REF_TYPE = 0xead0; -var REACT_SUSPENSE_TYPE = 0xead1; -var REACT_SUSPENSE_LIST_TYPE = 0xead8; -var REACT_MEMO_TYPE = 0xead3; -var REACT_LAZY_TYPE = 0xead4; -var REACT_BLOCK_TYPE = 0xead9; -var REACT_SERVER_BLOCK_TYPE = 0xeada; -var REACT_FUNDAMENTAL_TYPE = 0xead5; -var REACT_SCOPE_TYPE = 0xead7; -var REACT_OPAQUE_ID_TYPE = 0xeae0; -var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1; -var REACT_OFFSCREEN_TYPE = 0xeae2; -var REACT_LEGACY_HIDDEN_TYPE = 0xeae3; - -if (typeof Symbol === 'function' && Symbol.for) { - var symbolFor = Symbol.for; - REACT_ELEMENT_TYPE = symbolFor('react.element'); - REACT_PORTAL_TYPE = symbolFor('react.portal'); - REACT_FRAGMENT_TYPE = symbolFor('react.fragment'); - REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode'); - REACT_PROFILER_TYPE = symbolFor('react.profiler'); - REACT_PROVIDER_TYPE = symbolFor('react.provider'); - REACT_CONTEXT_TYPE = symbolFor('react.context'); - REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref'); - REACT_SUSPENSE_TYPE = symbolFor('react.suspense'); - REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list'); - REACT_MEMO_TYPE = symbolFor('react.memo'); - REACT_LAZY_TYPE = symbolFor('react.lazy'); - REACT_BLOCK_TYPE = symbolFor('react.block'); - REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block'); - REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental'); - REACT_SCOPE_TYPE = symbolFor('react.scope'); - REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id'); - REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode'); - REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen'); - REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden'); -} - -// Filter certain DOM attributes (e.g. src, href) if their values are empty strings. - -var enableScopeAPI = false; // Experimental Create Event Handle API. +var hasSymbol = typeof Symbol === 'function' && Symbol.for; +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary +// (unstable) APIs that have been removed. Can we remove the symbols? + +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; +var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; +var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; +var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; +var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; +var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; +var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; function isValidElementType(type) { - if (typeof type === 'string' || typeof type === 'function') { - return true; - } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill). - - - if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) { - return true; - } - - if (typeof type === 'object' && type !== null) { - if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { - return true; - } - } - - return false; + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); } function typeOf(object) { @@ -95,11 +53,12 @@ function typeOf(object) { var type = object.type; switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: case REACT_FRAGMENT_TYPE: case REACT_PROFILER_TYPE: case REACT_STRICT_MODE_TYPE: case REACT_SUSPENSE_TYPE: - case REACT_SUSPENSE_LIST_TYPE: return type; default: @@ -125,7 +84,10 @@ function typeOf(object) { } return undefined; -} +} // AsyncMode is deprecated along with isAsyncMode + +var AsyncMode = REACT_ASYNC_MODE_TYPE; +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; var ContextConsumer = REACT_CONTEXT_TYPE; var ContextProvider = REACT_PROVIDER_TYPE; var Element = REACT_ELEMENT_TYPE; @@ -137,30 +99,21 @@ var Portal = REACT_PORTAL_TYPE; var Profiler = REACT_PROFILER_TYPE; var StrictMode = REACT_STRICT_MODE_TYPE; var Suspense = REACT_SUSPENSE_TYPE; -var hasWarnedAboutDeprecatedIsAsyncMode = false; -var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated +var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated function isAsyncMode(object) { { if (!hasWarnedAboutDeprecatedIsAsyncMode) { hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint - console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); } } - return false; + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; } function isConcurrentMode(object) { - { - if (!hasWarnedAboutDeprecatedIsConcurrentMode) { - hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint - - console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); - } - } - - return false; + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; } function isContextConsumer(object) { return typeOf(object) === REACT_CONTEXT_TYPE; @@ -196,6 +149,8 @@ function isSuspense(object) { return typeOf(object) === REACT_SUSPENSE_TYPE; } +exports.AsyncMode = AsyncMode; +exports.ConcurrentMode = ConcurrentMode; exports.ContextConsumer = ContextConsumer; exports.ContextProvider = ContextProvider; exports.Element = Element; diff --git a/node_modules/react-is/cjs/react-is.production.min.js b/node_modules/react-is/cjs/react-is.production.min.js index b4160904..3e83c7ab 100644 --- a/node_modules/react-is/cjs/react-is.production.min.js +++ b/node_modules/react-is/cjs/react-is.production.min.js @@ -1,4 +1,4 @@ -/** @license React v17.0.2 +/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -6,9 +6,10 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131; -if("function"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x("react.element");c=x("react.portal");d=x("react.fragment");e=x("react.strict_mode");f=x("react.profiler");g=x("react.provider");h=x("react.context");k=x("react.forward_ref");l=x("react.suspense");m=x("react.suspense_list");n=x("react.memo");p=x("react.lazy");q=x("react.block");r=x("react.server.block");u=x("react.fundamental");v=x("react.debug_trace_mode");w=x("react.legacy_hidden")} -function y(a){if("object"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H; -exports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n}; -exports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1}; -exports.typeOf=y; + +'use strict';var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b? +Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119; +function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d; +exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t}; +exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p}; +exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z; diff --git a/node_modules/react-is/package.json b/node_modules/react-is/package.json index 1a6567dc..5f32de2e 100644 --- a/node_modules/react-is/package.json +++ b/node_modules/react-is/package.json @@ -1,6 +1,6 @@ { "name": "react-is", - "version": "17.0.2", + "version": "16.13.1", "description": "Brand checking of React Elements.", "main": "index.js", "repository": { diff --git a/node_modules/react-is/umd/react-is.development.js b/node_modules/react-is/umd/react-is.development.js index cc44c5bf..a6bc018a 100644 --- a/node_modules/react-is/umd/react-is.development.js +++ b/node_modules/react-is/umd/react-is.development.js @@ -1,4 +1,4 @@ -/** @license React v17.0.2 +/** @license React v16.13.1 * react-is.development.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -6,83 +6,42 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ + +'use strict'; + (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (global = global || self, factory(global.ReactIs = {})); }(this, (function (exports) { 'use strict'; - // ATTENTION - // When adding new symbols to this file, - // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' // The Symbol used to tag the ReactElement-like types. If there is no native Symbol // nor polyfill, then a plain number is used for performance. - var REACT_ELEMENT_TYPE = 0xeac7; - var REACT_PORTAL_TYPE = 0xeaca; - var REACT_FRAGMENT_TYPE = 0xeacb; - var REACT_STRICT_MODE_TYPE = 0xeacc; - var REACT_PROFILER_TYPE = 0xead2; - var REACT_PROVIDER_TYPE = 0xeacd; - var REACT_CONTEXT_TYPE = 0xeace; - var REACT_FORWARD_REF_TYPE = 0xead0; - var REACT_SUSPENSE_TYPE = 0xead1; - var REACT_SUSPENSE_LIST_TYPE = 0xead8; - var REACT_MEMO_TYPE = 0xead3; - var REACT_LAZY_TYPE = 0xead4; - var REACT_BLOCK_TYPE = 0xead9; - var REACT_SERVER_BLOCK_TYPE = 0xeada; - var REACT_FUNDAMENTAL_TYPE = 0xead5; - var REACT_SCOPE_TYPE = 0xead7; - var REACT_OPAQUE_ID_TYPE = 0xeae0; - var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1; - var REACT_OFFSCREEN_TYPE = 0xeae2; - var REACT_LEGACY_HIDDEN_TYPE = 0xeae3; - - if (typeof Symbol === 'function' && Symbol.for) { - var symbolFor = Symbol.for; - REACT_ELEMENT_TYPE = symbolFor('react.element'); - REACT_PORTAL_TYPE = symbolFor('react.portal'); - REACT_FRAGMENT_TYPE = symbolFor('react.fragment'); - REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode'); - REACT_PROFILER_TYPE = symbolFor('react.profiler'); - REACT_PROVIDER_TYPE = symbolFor('react.provider'); - REACT_CONTEXT_TYPE = symbolFor('react.context'); - REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref'); - REACT_SUSPENSE_TYPE = symbolFor('react.suspense'); - REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list'); - REACT_MEMO_TYPE = symbolFor('react.memo'); - REACT_LAZY_TYPE = symbolFor('react.lazy'); - REACT_BLOCK_TYPE = symbolFor('react.block'); - REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block'); - REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental'); - REACT_SCOPE_TYPE = symbolFor('react.scope'); - REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id'); - REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode'); - REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen'); - REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden'); - } - - // Filter certain DOM attributes (e.g. src, href) if their values are empty strings. - - var enableScopeAPI = false; // Experimental Create Event Handle API. + var hasSymbol = typeof Symbol === 'function' && Symbol.for; + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary + // (unstable) APIs that have been removed. Can we remove the symbols? + + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; + var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; function isValidElementType(type) { - if (typeof type === 'string' || typeof type === 'function') { - return true; - } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill). - - - if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) { - return true; - } - - if (typeof type === 'object' && type !== null) { - if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { - return true; - } - } - - return false; + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); } function typeOf(object) { @@ -94,11 +53,12 @@ var type = object.type; switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: case REACT_FRAGMENT_TYPE: case REACT_PROFILER_TYPE: case REACT_STRICT_MODE_TYPE: case REACT_SUSPENSE_TYPE: - case REACT_SUSPENSE_LIST_TYPE: return type; default: @@ -124,7 +84,10 @@ } return undefined; - } + } // AsyncMode is deprecated along with isAsyncMode + + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; var ContextConsumer = REACT_CONTEXT_TYPE; var ContextProvider = REACT_PROVIDER_TYPE; var Element = REACT_ELEMENT_TYPE; @@ -136,30 +99,21 @@ var Profiler = REACT_PROFILER_TYPE; var StrictMode = REACT_STRICT_MODE_TYPE; var Suspense = REACT_SUSPENSE_TYPE; - var hasWarnedAboutDeprecatedIsAsyncMode = false; - var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated + var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated function isAsyncMode(object) { { if (!hasWarnedAboutDeprecatedIsAsyncMode) { hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint - console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); } } - return false; + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; } function isConcurrentMode(object) { - { - if (!hasWarnedAboutDeprecatedIsConcurrentMode) { - hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint - - console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); - } - } - - return false; + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; } function isContextConsumer(object) { return typeOf(object) === REACT_CONTEXT_TYPE; @@ -195,6 +149,8 @@ return typeOf(object) === REACT_SUSPENSE_TYPE; } + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; exports.ContextConsumer = ContextConsumer; exports.ContextProvider = ContextProvider; exports.Element = Element; diff --git a/node_modules/react-is/umd/react-is.production.min.js b/node_modules/react-is/umd/react-is.production.min.js index 126d595e..62fe6b22 100644 --- a/node_modules/react-is/umd/react-is.production.min.js +++ b/node_modules/react-is/umd/react-is.production.min.js @@ -1,4 +1,4 @@ -/** @license React v17.0.2 +/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -6,9 +6,8 @@ * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -(function(){'use strict';(function(b,d){"object"===typeof exports&&"undefined"!==typeof module?d(exports):"function"===typeof define&&define.amd?define(["exports"],d):(b=b||self,d(b.ReactIs={}))})(this,function(b){function d(a){if("object"===typeof a&&null!==a){var b=a.$$typeof;switch(b){case q:switch(a=a.type,a){case e:case f:case g:case h:case t:return a;default:switch(a=a&&a.$$typeof,a){case k:case l:case m:case n:case p:return a;default:return b}}case r:return b}}}var q=60103,r=60106,e=60107,g=60108,f=60114, -p=60109,k=60110,l=60112,h=60113,t=60120,n=60115,m=60116,u=60121,v=60122,w=60117,x=60129,y=60131;if("function"===typeof Symbol&&Symbol.for){var c=Symbol.for;q=c("react.element");r=c("react.portal");e=c("react.fragment");g=c("react.strict_mode");f=c("react.profiler");p=c("react.provider");k=c("react.context");l=c("react.forward_ref");h=c("react.suspense");t=c("react.suspense_list");n=c("react.memo");m=c("react.lazy");u=c("react.block");v=c("react.server.block");w=c("react.fundamental");x=c("react.debug_trace_mode"); -y=c("react.legacy_hidden")}b.ContextConsumer=k;b.ContextProvider=p;b.Element=q;b.ForwardRef=l;b.Fragment=e;b.Lazy=m;b.Memo=n;b.Portal=r;b.Profiler=f;b.StrictMode=g;b.Suspense=h;b.isAsyncMode=function(a){return!1};b.isConcurrentMode=function(a){return!1};b.isContextConsumer=function(a){return d(a)===k};b.isContextProvider=function(a){return d(a)===p};b.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===q};b.isForwardRef=function(a){return d(a)===l};b.isFragment=function(a){return d(a)=== -e};b.isLazy=function(a){return d(a)===m};b.isMemo=function(a){return d(a)===n};b.isPortal=function(a){return d(a)===r};b.isProfiler=function(a){return d(a)===f};b.isStrictMode=function(a){return d(a)===g};b.isSuspense=function(a){return d(a)===h};b.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===f||a===x||a===g||a===h||a===t||a===y||"object"===typeof a&&null!==a&&(a.$$typeof===m||a.$$typeof===n||a.$$typeof===p||a.$$typeof===k||a.$$typeof===l||a.$$typeof=== -w||a.$$typeof===u||a[0]===v)?!0:!1};b.typeOf=d}); -})(); +'use strict';(function(b,d){"object"===typeof exports&&"undefined"!==typeof module?d(exports):"function"===typeof define&&define.amd?define(["exports"],d):(b=b||self,d(b.ReactIs={}))})(this,function(b){function d(a){if("object"===typeof a&&null!==a){var b=a.$$typeof;switch(b){case r:switch(a=a.type,a){case t:case e:case f:case g:case h:case k:return a;default:switch(a=a&&a.$$typeof,a){case l:case m:case n:case p:case q:return a;default:return b}}case u:return b}}}function v(a){return d(a)===e}var c= +"function"===typeof Symbol&&Symbol.for,r=c?Symbol.for("react.element"):60103,u=c?Symbol.for("react.portal"):60106,f=c?Symbol.for("react.fragment"):60107,h=c?Symbol.for("react.strict_mode"):60108,g=c?Symbol.for("react.profiler"):60114,q=c?Symbol.for("react.provider"):60109,l=c?Symbol.for("react.context"):60110,t=c?Symbol.for("react.async_mode"):60111,e=c?Symbol.for("react.concurrent_mode"):60111,m=c?Symbol.for("react.forward_ref"):60112,k=c?Symbol.for("react.suspense"):60113,w=c?Symbol.for("react.suspense_list"): +60120,p=c?Symbol.for("react.memo"):60115,n=c?Symbol.for("react.lazy"):60116,x=c?Symbol.for("react.block"):60121,y=c?Symbol.for("react.fundamental"):60117,z=c?Symbol.for("react.responder"):60118,A=c?Symbol.for("react.scope"):60119;b.AsyncMode=t;b.ConcurrentMode=e;b.ContextConsumer=l;b.ContextProvider=q;b.Element=r;b.ForwardRef=m;b.Fragment=f;b.Lazy=n;b.Memo=p;b.Portal=u;b.Profiler=g;b.StrictMode=h;b.Suspense=k;b.isAsyncMode=function(a){return v(a)||d(a)===t};b.isConcurrentMode=v;b.isContextConsumer= +function(a){return d(a)===l};b.isContextProvider=function(a){return d(a)===q};b.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===r};b.isForwardRef=function(a){return d(a)===m};b.isFragment=function(a){return d(a)===f};b.isLazy=function(a){return d(a)===n};b.isMemo=function(a){return d(a)===p};b.isPortal=function(a){return d(a)===u};b.isProfiler=function(a){return d(a)===g};b.isStrictMode=function(a){return d(a)===h};b.isSuspense=function(a){return d(a)===k};b.isValidElementType= +function(a){return"string"===typeof a||"function"===typeof a||a===f||a===e||a===g||a===h||a===k||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===n||a.$$typeof===p||a.$$typeof===q||a.$$typeof===l||a.$$typeof===m||a.$$typeof===y||a.$$typeof===z||a.$$typeof===A||a.$$typeof===x)};b.typeOf=d}); diff --git a/node_modules/react-redux/LICENSE.md b/node_modules/react-redux/LICENSE.md new file mode 100644 index 00000000..c108bf37 --- /dev/null +++ b/node_modules/react-redux/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-present Dan Abramov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/react-redux/README.md b/node_modules/react-redux/README.md new file mode 100644 index 00000000..d208a766 --- /dev/null +++ b/node_modules/react-redux/README.md @@ -0,0 +1,64 @@ +# React Redux + +Official React bindings for [Redux](https://github.com/reduxjs/redux). +Performant and flexible. + +![GitHub Workflow Status](https://img.shields.io/github/workflow/status/reduxjs/react-redux/CI?style=flat-square) [![npm version](https://img.shields.io/npm/v/react-redux.svg?style=flat-square)](https://www.npmjs.com/package/react-redux) +[![npm downloads](https://img.shields.io/npm/dm/react-redux.svg?style=flat-square)](https://www.npmjs.com/package/react-redux) +[![redux channel on discord](https://img.shields.io/badge/discord-redux@reactiflux-61DAFB.svg?style=flat-square)](http://www.reactiflux.com) + +## Installation + +### Using Create React App + +The recommended way to start new apps with React Redux is by using the [official Redux+JS template](https://github.com/reduxjs/cra-template-redux) for [Create React App](https://github.com/facebook/create-react-app), which takes advantage of [Redux Toolkit](https://redux-toolkit.js.org/). + +```sh +npx create-react-app my-app --template redux +``` + +### An Existing React App + +React Redux 7.1 requires **React 16.8.3 or later.** + +To use React Redux with your React app, install it as a dependency: + +```bash +# If you use npm: +npm install react-redux + +# Or if you use Yarn: +yarn add react-redux +``` + +You'll also need to [install Redux](https://redux.js.org/introduction/installation) and [set up a Redux store](https://redux.js.org/recipes/configuring-your-store/) in your app. + +This assumes that you’re using [npm](http://npmjs.com/) package manager +with a module bundler like [Webpack](https://webpack.js.org/) or +[Browserify](http://browserify.org/) to consume [CommonJS +modules](https://webpack.js.org/api/module-methods/#commonjs). + +If you don’t yet use [npm](http://npmjs.com/) or a modern module bundler, and would rather prefer a single-file [UMD](https://github.com/umdjs/umd) build that makes `ReactRedux` available as a global object, you can grab a pre-built version from [cdnjs](https://cdnjs.com/libraries/react-redux). We _don’t_ recommend this approach for any serious application, as most of the libraries complementary to Redux are only available on [npm](http://npmjs.com/). + +## React Native + +As of React Native 0.18, React Redux 5.x should work with React Native. If you have any issues with React Redux 5.x on React Native, run `npm ls react` and make sure you don’t have a duplicate React installation in your `node_modules`. We recommend that you use `npm@3.x` which is better at avoiding these kinds of issues. + +## Documentation + +The React Redux docs are now published at **https://react-redux.js.org** . + +We're currently expanding and rewriting our docs content - check back soon for more updates! + +## How Does It Work? + +We do a deep dive on how React Redux works in [this readthesource episode](https://www.youtube.com/watch?v=VJ38wSFbM3A). + +Also, the post [The History and Implementation of React-Redux](https://blog.isquaredsoftware.com/2018/11/react-redux-history-implementation/) +explains what it does, how it works, and how the API and implementation have evolved over time. + +Enjoy! + +## License + +[MIT](LICENSE.md) diff --git a/node_modules/react-redux/dist/react-redux.js b/node_modules/react-redux/dist/react-redux.js new file mode 100644 index 00000000..10c1db18 --- /dev/null +++ b/node_modules/react-redux/dist/react-redux.js @@ -0,0 +1,2834 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('react-dom')) : + typeof define === 'function' && define.amd ? define(['exports', 'react', 'react-dom'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactRedux = {}, global.React, global.ReactDOM)); +})(this, (function (exports, React, reactDom) { 'use strict'; + + function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + + var React__default = /*#__PURE__*/_interopDefaultLegacy(React); + + var propTypes = {exports: {}}; + + var reactIs$3 = {exports: {}}; + + var reactIs_development$2 = {}; + + /** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + + { + (function() { + + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var hasSymbol = typeof Symbol === 'function' && Symbol.for; + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary + // (unstable) APIs that have been removed. Can we remove the symbols? + + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; + var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + + function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); + } + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } // AsyncMode is deprecated along with isAsyncMode + + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + reactIs_development$2.AsyncMode = AsyncMode; + reactIs_development$2.ConcurrentMode = ConcurrentMode; + reactIs_development$2.ContextConsumer = ContextConsumer; + reactIs_development$2.ContextProvider = ContextProvider; + reactIs_development$2.Element = Element; + reactIs_development$2.ForwardRef = ForwardRef; + reactIs_development$2.Fragment = Fragment; + reactIs_development$2.Lazy = Lazy; + reactIs_development$2.Memo = Memo; + reactIs_development$2.Portal = Portal; + reactIs_development$2.Profiler = Profiler; + reactIs_development$2.StrictMode = StrictMode; + reactIs_development$2.Suspense = Suspense; + reactIs_development$2.isAsyncMode = isAsyncMode; + reactIs_development$2.isConcurrentMode = isConcurrentMode; + reactIs_development$2.isContextConsumer = isContextConsumer; + reactIs_development$2.isContextProvider = isContextProvider; + reactIs_development$2.isElement = isElement; + reactIs_development$2.isForwardRef = isForwardRef; + reactIs_development$2.isFragment = isFragment; + reactIs_development$2.isLazy = isLazy; + reactIs_development$2.isMemo = isMemo; + reactIs_development$2.isPortal = isPortal; + reactIs_development$2.isProfiler = isProfiler; + reactIs_development$2.isStrictMode = isStrictMode; + reactIs_development$2.isSuspense = isSuspense; + reactIs_development$2.isValidElementType = isValidElementType; + reactIs_development$2.typeOf = typeOf; + })(); + } + + { + reactIs$3.exports = reactIs_development$2; + } + + /* + object-assign + (c) Sindre Sorhus + @license MIT + */ + /* eslint-disable no-unused-vars */ + var getOwnPropertySymbols$1 = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + + function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); + } + + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } + } + + var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols$1) { + symbols = getOwnPropertySymbols$1(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; + }; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + var ReactPropTypesSecret$2 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + + var ReactPropTypesSecret_1 = ReactPropTypesSecret$2; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + var printWarning$1 = function() {}; + + { + var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; + var loggedTypeFailures = {}; + var has$1 = Function.call.bind(Object.prototype.hasOwnProperty); + + printWarning$1 = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + } + + /** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ + function checkPropTypes$1(typeSpecs, values, location, componentName, getStack) { + { + for (var typeSpecName in typeSpecs) { + if (has$1(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning$1( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning$1( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } + } + + /** + * Resets warning cache when testing. + * + * @private + */ + checkPropTypes$1.resetWarningCache = function() { + { + loggedTypeFailures = {}; + } + }; + + var checkPropTypes_1 = checkPropTypes$1; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + var ReactIs$1 = reactIs$3.exports; + var assign = objectAssign; + + var ReactPropTypesSecret = ReactPropTypesSecret_1; + var checkPropTypes = checkPropTypes_1; + + var has = Function.call.bind(Object.prototype.hasOwnProperty); + var printWarning = function() {}; + + { + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + } + + function emptyFunctionThatReturnsNull() { + return null; + } + + var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if (typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs$1.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + { + if (arguments.length > 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') ; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + { + var ReactIs = reactIs$3.exports; + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + propTypes.exports = factoryWithTypeCheckers(ReactIs.isElement, throwOnDirectAccess); + } + + var PropTypes = propTypes.exports; + + var ReactReduxContext = /*#__PURE__*/React__default["default"].createContext(null); + + { + ReactReduxContext.displayName = 'ReactRedux'; + } + + // Default to a dummy "batch" implementation that just runs the callback + function defaultNoopBatch(callback) { + callback(); + } + + var batch = defaultNoopBatch; // Allow injecting another batching function later + + var setBatch = function setBatch(newBatch) { + return batch = newBatch; + }; // Supply a getter just to skip dealing with ESM bindings + + var getBatch = function getBatch() { + return batch; + }; + + // well as nesting subscriptions of descendant components, so that we can ensure the + // ancestor components re-render before descendants + + function createListenerCollection() { + var batch = getBatch(); + var first = null; + var last = null; + return { + clear: function clear() { + first = null; + last = null; + }, + notify: function notify() { + batch(function () { + var listener = first; + + while (listener) { + listener.callback(); + listener = listener.next; + } + }); + }, + get: function get() { + var listeners = []; + var listener = first; + + while (listener) { + listeners.push(listener); + listener = listener.next; + } + + return listeners; + }, + subscribe: function subscribe(callback) { + var isSubscribed = true; + var listener = last = { + callback: callback, + next: null, + prev: last + }; + + if (listener.prev) { + listener.prev.next = listener; + } else { + first = listener; + } + + return function unsubscribe() { + if (!isSubscribed || first === null) return; + isSubscribed = false; + + if (listener.next) { + listener.next.prev = listener.prev; + } else { + last = listener.prev; + } + + if (listener.prev) { + listener.prev.next = listener.next; + } else { + first = listener.next; + } + }; + } + }; + } + + var nullListeners = { + notify: function notify() {}, + get: function get() { + return []; + } + }; + function createSubscription(store, parentSub) { + var unsubscribe; + var listeners = nullListeners; + + function addNestedSub(listener) { + trySubscribe(); + return listeners.subscribe(listener); + } + + function notifyNestedSubs() { + listeners.notify(); + } + + function handleChangeWrapper() { + if (subscription.onStateChange) { + subscription.onStateChange(); + } + } + + function isSubscribed() { + return Boolean(unsubscribe); + } + + function trySubscribe() { + if (!unsubscribe) { + unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper); + listeners = createListenerCollection(); + } + } + + function tryUnsubscribe() { + if (unsubscribe) { + unsubscribe(); + unsubscribe = undefined; + listeners.clear(); + listeners = nullListeners; + } + } + + var subscription = { + addNestedSub: addNestedSub, + notifyNestedSubs: notifyNestedSubs, + handleChangeWrapper: handleChangeWrapper, + isSubscribed: isSubscribed, + trySubscribe: trySubscribe, + tryUnsubscribe: tryUnsubscribe, + getListeners: function getListeners() { + return listeners; + } + }; + return subscription; + } + + // To get around it, we can conditionally useEffect on the server (no-op) and + // useLayoutEffect in the browser. We need useLayoutEffect to ensure the store + // subscription callback always has the selector from the latest render commit + // available, otherwise a store update may happen between render and the effect, + // which may cause missed updates; we also must ensure the store subscription + // is created synchronously, otherwise a store update may occur before the + // subscription is created and an inconsistent state may be observed + + var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? React.useLayoutEffect : React.useEffect; + + function Provider(_ref) { + var store = _ref.store, + context = _ref.context, + children = _ref.children; + var contextValue = React.useMemo(function () { + var subscription = createSubscription(store); + return { + store: store, + subscription: subscription + }; + }, [store]); + var previousState = React.useMemo(function () { + return store.getState(); + }, [store]); + useIsomorphicLayoutEffect(function () { + var subscription = contextValue.subscription; + subscription.onStateChange = subscription.notifyNestedSubs; + subscription.trySubscribe(); + + if (previousState !== store.getState()) { + subscription.notifyNestedSubs(); + } + + return function () { + subscription.tryUnsubscribe(); + subscription.onStateChange = null; + }; + }, [contextValue, previousState]); + var Context = context || ReactReduxContext; + return /*#__PURE__*/React__default["default"].createElement(Context.Provider, { + value: contextValue + }, children); + } + + { + Provider.propTypes = { + store: PropTypes.shape({ + subscribe: PropTypes.func.isRequired, + dispatch: PropTypes.func.isRequired, + getState: PropTypes.func.isRequired + }), + context: PropTypes.object, + children: PropTypes.any + }; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; + } + + var reactIs$2 = {exports: {}}; + + var reactIs_development$1 = {}; + + /** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + + + { + (function() { + + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var hasSymbol = typeof Symbol === 'function' && Symbol.for; + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary + // (unstable) APIs that have been removed. Can we remove the symbols? + + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; + var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + + function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); + } + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } // AsyncMode is deprecated along with isAsyncMode + + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + reactIs_development$1.AsyncMode = AsyncMode; + reactIs_development$1.ConcurrentMode = ConcurrentMode; + reactIs_development$1.ContextConsumer = ContextConsumer; + reactIs_development$1.ContextProvider = ContextProvider; + reactIs_development$1.Element = Element; + reactIs_development$1.ForwardRef = ForwardRef; + reactIs_development$1.Fragment = Fragment; + reactIs_development$1.Lazy = Lazy; + reactIs_development$1.Memo = Memo; + reactIs_development$1.Portal = Portal; + reactIs_development$1.Profiler = Profiler; + reactIs_development$1.StrictMode = StrictMode; + reactIs_development$1.Suspense = Suspense; + reactIs_development$1.isAsyncMode = isAsyncMode; + reactIs_development$1.isConcurrentMode = isConcurrentMode; + reactIs_development$1.isContextConsumer = isContextConsumer; + reactIs_development$1.isContextProvider = isContextProvider; + reactIs_development$1.isElement = isElement; + reactIs_development$1.isForwardRef = isForwardRef; + reactIs_development$1.isFragment = isFragment; + reactIs_development$1.isLazy = isLazy; + reactIs_development$1.isMemo = isMemo; + reactIs_development$1.isPortal = isPortal; + reactIs_development$1.isProfiler = isProfiler; + reactIs_development$1.isStrictMode = isStrictMode; + reactIs_development$1.isSuspense = isSuspense; + reactIs_development$1.isValidElementType = isValidElementType; + reactIs_development$1.typeOf = typeOf; + })(); + } + + { + reactIs$2.exports = reactIs_development$1; + } + + var reactIs$1 = reactIs$2.exports; + + /** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ + var REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true + }; + var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true + }; + var FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true + }; + var MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true + }; + var TYPE_STATICS = {}; + TYPE_STATICS[reactIs$1.ForwardRef] = FORWARD_REF_STATICS; + TYPE_STATICS[reactIs$1.Memo] = MEMO_STATICS; + + function getStatics(component) { + // React v16.11 and below + if (reactIs$1.isMemo(component)) { + return MEMO_STATICS; + } // React v16.12 and above + + + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; + } + + var defineProperty = Object.defineProperty; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var getPrototypeOf = Object.getPrototypeOf; + var objectPrototype = Object.prototype; + function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { + // don't hoist over string (html) components + if (objectPrototype) { + var inheritedComponent = getPrototypeOf(sourceComponent); + + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + var keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols) { + keys = keys.concat(getOwnPropertySymbols(sourceComponent)); + } + + var targetStatics = getStatics(targetComponent); + var sourceStatics = getStatics(sourceComponent); + + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + + if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { + var descriptor = getOwnPropertyDescriptor(sourceComponent, key); + + try { + // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + } + + return targetComponent; + } + + var hoistNonReactStatics_cjs = hoistNonReactStatics; + + var reactIs = {exports: {}}; + + var reactIs_development = {}; + + /** @license React v17.0.2 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + { + (function() { + + // ATTENTION + // When adding new symbols to this file, + // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var REACT_ELEMENT_TYPE = 0xeac7; + var REACT_PORTAL_TYPE = 0xeaca; + var REACT_FRAGMENT_TYPE = 0xeacb; + var REACT_STRICT_MODE_TYPE = 0xeacc; + var REACT_PROFILER_TYPE = 0xead2; + var REACT_PROVIDER_TYPE = 0xeacd; + var REACT_CONTEXT_TYPE = 0xeace; + var REACT_FORWARD_REF_TYPE = 0xead0; + var REACT_SUSPENSE_TYPE = 0xead1; + var REACT_SUSPENSE_LIST_TYPE = 0xead8; + var REACT_MEMO_TYPE = 0xead3; + var REACT_LAZY_TYPE = 0xead4; + var REACT_BLOCK_TYPE = 0xead9; + var REACT_SERVER_BLOCK_TYPE = 0xeada; + var REACT_FUNDAMENTAL_TYPE = 0xead5; + var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1; + var REACT_LEGACY_HIDDEN_TYPE = 0xeae3; + + if (typeof Symbol === 'function' && Symbol.for) { + var symbolFor = Symbol.for; + REACT_ELEMENT_TYPE = symbolFor('react.element'); + REACT_PORTAL_TYPE = symbolFor('react.portal'); + REACT_FRAGMENT_TYPE = symbolFor('react.fragment'); + REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode'); + REACT_PROFILER_TYPE = symbolFor('react.profiler'); + REACT_PROVIDER_TYPE = symbolFor('react.provider'); + REACT_CONTEXT_TYPE = symbolFor('react.context'); + REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref'); + REACT_SUSPENSE_TYPE = symbolFor('react.suspense'); + REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list'); + REACT_MEMO_TYPE = symbolFor('react.memo'); + REACT_LAZY_TYPE = symbolFor('react.lazy'); + REACT_BLOCK_TYPE = symbolFor('react.block'); + REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block'); + REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental'); + symbolFor('react.scope'); + symbolFor('react.opaque.id'); + REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode'); + symbolFor('react.offscreen'); + REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden'); + } + + // Filter certain DOM attributes (e.g. src, href) if their values are empty strings. + + var enableScopeAPI = false; // Experimental Create Event Handle API. + + function isValidElementType(type) { + if (typeof type === 'string' || typeof type === 'function') { + return true; + } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill). + + + if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) { + return true; + } + + if (typeof type === 'object' && type !== null) { + if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { + return true; + } + } + + return false; + } + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + case REACT_SUSPENSE_LIST_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; + var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated + + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + } + } + + return false; + } + function isConcurrentMode(object) { + { + if (!hasWarnedAboutDeprecatedIsConcurrentMode) { + hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + } + } + + return false; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + reactIs_development.ContextConsumer = ContextConsumer; + reactIs_development.ContextProvider = ContextProvider; + reactIs_development.Element = Element; + reactIs_development.ForwardRef = ForwardRef; + reactIs_development.Fragment = Fragment; + reactIs_development.Lazy = Lazy; + reactIs_development.Memo = Memo; + reactIs_development.Portal = Portal; + reactIs_development.Profiler = Profiler; + reactIs_development.StrictMode = StrictMode; + reactIs_development.Suspense = Suspense; + reactIs_development.isAsyncMode = isAsyncMode; + reactIs_development.isConcurrentMode = isConcurrentMode; + reactIs_development.isContextConsumer = isContextConsumer; + reactIs_development.isContextProvider = isContextProvider; + reactIs_development.isElement = isElement; + reactIs_development.isForwardRef = isForwardRef; + reactIs_development.isFragment = isFragment; + reactIs_development.isLazy = isLazy; + reactIs_development.isMemo = isMemo; + reactIs_development.isPortal = isPortal; + reactIs_development.isProfiler = isProfiler; + reactIs_development.isStrictMode = isStrictMode; + reactIs_development.isSuspense = isSuspense; + reactIs_development.isValidElementType = isValidElementType; + reactIs_development.typeOf = typeOf; + })(); + } + + { + reactIs.exports = reactIs_development; + } + + var _excluded$2 = ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"], + _excluded2 = ["reactReduxForwardedRef"]; + + var EMPTY_ARRAY = []; + var NO_SUBSCRIPTION_ARRAY = [null, null]; + + var stringifyComponent = function stringifyComponent(Comp) { + try { + return JSON.stringify(Comp); + } catch (err) { + return String(Comp); + } + }; + + function storeStateUpdatesReducer(state, action) { + var updateCount = state[1]; + return [action.payload, updateCount + 1]; + } + + function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) { + useIsomorphicLayoutEffect(function () { + return effectFunc.apply(void 0, effectArgs); + }, dependencies); + } + + function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) { + // We want to capture the wrapper props and child props we used for later comparisons + lastWrapperProps.current = wrapperProps; + lastChildProps.current = actualChildProps; + renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update + + if (childPropsFromStoreUpdate.current) { + childPropsFromStoreUpdate.current = null; + notifyNestedSubs(); + } + } + + function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) { + // If we're not subscribed to the store, nothing to do here + if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts + + var didUnsubscribe = false; + var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component + + var checkForUpdates = function checkForUpdates() { + if (didUnsubscribe) { + // Don't run stale listeners. + // Redux doesn't guarantee unsubscriptions happen until next dispatch. + return; + } + + var latestStoreState = store.getState(); + var newChildProps, error; + + try { + // Actually run the selector with the most recent store state and wrapper props + // to determine what the child props should be + newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current); + } catch (e) { + error = e; + lastThrownError = e; + } + + if (!error) { + lastThrownError = null; + } // If the child props haven't changed, nothing to do here - cascade the subscription update + + + if (newChildProps === lastChildProps.current) { + if (!renderIsScheduled.current) { + notifyNestedSubs(); + } + } else { + // Save references to the new child props. Note that we track the "child props from store update" + // as a ref instead of a useState/useReducer because we need a way to determine if that value has + // been processed. If this went into useState/useReducer, we couldn't clear out the value without + // forcing another re-render, which we don't want. + lastChildProps.current = newChildProps; + childPropsFromStoreUpdate.current = newChildProps; + renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render + + forceComponentUpdateDispatch({ + type: 'STORE_UPDATED', + payload: { + error: error + } + }); + } + }; // Actually subscribe to the nearest connected ancestor (or store) + + + subscription.onStateChange = checkForUpdates; + subscription.trySubscribe(); // Pull data from the store after first render in case the store has + // changed since we began. + + checkForUpdates(); + + var unsubscribeWrapper = function unsubscribeWrapper() { + didUnsubscribe = true; + subscription.tryUnsubscribe(); + subscription.onStateChange = null; + + if (lastThrownError) { + // It's possible that we caught an error due to a bad mapState function, but the + // parent re-rendered without this component and we're about to unmount. + // This shouldn't happen as long as we do top-down subscriptions correctly, but + // if we ever do those wrong, this throw will surface the error in our tests. + // In that case, throw the error from here so it doesn't get lost. + throw lastThrownError; + } + }; + + return unsubscribeWrapper; + } + + var initStateUpdates = function initStateUpdates() { + return [null, 0]; + }; + + function connectAdvanced( + /* + selectorFactory is a func that is responsible for returning the selector function used to + compute new props from state, props, and dispatch. For example: + export default connectAdvanced((dispatch, options) => (state, props) => ({ + thing: state.things[props.thingId], + saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)), + }))(YourComponent) + Access to dispatch is provided to the factory so selectorFactories can bind actionCreators + outside of their selector as an optimization. Options passed to connectAdvanced are passed to + the selectorFactory, along with displayName and WrappedComponent, as the second argument. + Note that selectorFactory is responsible for all caching/memoization of inbound and outbound + props. Do not use connectAdvanced directly without memoizing results between calls to your + selector, otherwise the Connect component will re-render on every state or props change. + */ + selectorFactory, // options object: + _ref) { + if (_ref === void 0) { + _ref = {}; + } + + var _ref2 = _ref, + _ref2$getDisplayName = _ref2.getDisplayName, + getDisplayName = _ref2$getDisplayName === void 0 ? function (name) { + return "ConnectAdvanced(" + name + ")"; + } : _ref2$getDisplayName, + _ref2$methodName = _ref2.methodName, + methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName, + _ref2$renderCountProp = _ref2.renderCountProp, + renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp, + _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges, + shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta, + _ref2$storeKey = _ref2.storeKey, + storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey, + _ref2$withRef = _ref2.withRef, + withRef = _ref2$withRef === void 0 ? false : _ref2$withRef, + _ref2$forwardRef = _ref2.forwardRef, + forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef, + _ref2$context = _ref2.context, + context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context, + connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded$2); + + { + if (renderCountProp !== undefined) { + throw new Error("renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension"); + } + + if (withRef) { + throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component'); + } + + var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + "React.createContext(), and pass the context object to React Redux's Provider and specific components" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect'; + + if (storeKey !== 'store') { + throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage); + } + } + + var Context = context; + return function wrapWithConnect(WrappedComponent) { + if (!reactIs.exports.isValidElementType(WrappedComponent)) { + throw new Error("You must pass a component to the function returned by " + (methodName + ". Instead received " + stringifyComponent(WrappedComponent))); + } + + var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component'; + var displayName = getDisplayName(wrappedComponentName); + + var selectorFactoryOptions = _extends({}, connectOptions, { + getDisplayName: getDisplayName, + methodName: methodName, + renderCountProp: renderCountProp, + shouldHandleStateChanges: shouldHandleStateChanges, + storeKey: storeKey, + displayName: displayName, + wrappedComponentName: wrappedComponentName, + WrappedComponent: WrappedComponent + }); + + var pure = connectOptions.pure; + + function createChildSelector(store) { + return selectorFactory(store.dispatch, selectorFactoryOptions); + } // If we aren't running in "pure" mode, we don't want to memoize values. + // To avoid conditionally calling hooks, we fall back to a tiny wrapper + // that just executes the given callback immediately. + + + var usePureOnlyMemo = pure ? React.useMemo : function (callback) { + return callback(); + }; + + function ConnectFunction(props) { + var _useMemo = React.useMemo(function () { + // Distinguish between actual "data" props that were passed to the wrapper component, + // and values needed to control behavior (forwarded refs, alternate context instances). + // To maintain the wrapperProps object reference, memoize this destructuring. + var reactReduxForwardedRef = props.reactReduxForwardedRef, + wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2); + + return [props.context, reactReduxForwardedRef, wrapperProps]; + }, [props]), + propsContext = _useMemo[0], + reactReduxForwardedRef = _useMemo[1], + wrapperProps = _useMemo[2]; + + var ContextToUse = React.useMemo(function () { + // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext. + // Memoize the check that determines which context instance we should use. + return propsContext && propsContext.Consumer && reactIs.exports.isContextConsumer( /*#__PURE__*/React__default["default"].createElement(propsContext.Consumer, null)) ? propsContext : Context; + }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available + + var contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context. + // We'll check to see if it _looks_ like a Redux store first. + // This allows us to pass through a `store` prop that is just a plain value. + + var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch); + var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store); + + if (!didStoreComeFromProps && !didStoreComeFromContext) { + throw new Error("Could not find \"store\" in the context of " + ("\"" + displayName + "\". Either wrap the root component in a , ") + "or pass a custom React context provider to and the corresponding " + ("React context consumer to " + displayName + " in connect options.")); + } // Based on the previous check, one of these must be true + + + var store = didStoreComeFromProps ? props.store : contextValue.store; + var childPropsSelector = React.useMemo(function () { + // The child props selector needs the store reference as an input. + // Re-create this selector whenever the store changes. + return createChildSelector(store); + }, [store]); + + var _useMemo2 = React.useMemo(function () { + if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + + // This Subscription's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `subscription` will then be null. This can + // probably be avoided if Subscription's listeners logic is changed to not call listeners + // that have been unsubscribed in the middle of the notification loop. + + // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `subscription` will then be null. This can + // probably be avoided if Subscription's listeners logic is changed to not call listeners + // that have been unsubscribed in the middle of the notification loop. + var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription); + return [subscription, notifyNestedSubs]; + }, [store, didStoreComeFromProps, contextValue]), + subscription = _useMemo2[0], + notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary, + // and memoize that value to avoid unnecessary context updates. + + + var overriddenContextValue = React.useMemo(function () { + if (didStoreComeFromProps) { + // This component is directly subscribed to a store from props. + // We don't want descendants reading from this store - pass down whatever + // the existing context value is from the nearest connected ancestor. + return contextValue; + } // Otherwise, put this component's subscription instance into context, so that + // connected descendants won't update until after this component is done + + + return _extends({}, contextValue, { + subscription: subscription + }); + }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update + // causes a change to the calculated child component props (or we caught an error in mapState) + + var _useReducer = React.useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates), + _useReducer$ = _useReducer[0], + previousStateUpdateResult = _useReducer$[0], + forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards + + + if (previousStateUpdateResult && previousStateUpdateResult.error) { + throw previousStateUpdateResult.error; + } // Set up refs to coordinate values between the subscription effect and the render logic + + + var lastChildProps = React.useRef(); + var lastWrapperProps = React.useRef(wrapperProps); + var childPropsFromStoreUpdate = React.useRef(); + var renderIsScheduled = React.useRef(false); + var actualChildProps = usePureOnlyMemo(function () { + // Tricky logic here: + // - This render may have been triggered by a Redux store update that produced new child props + // - However, we may have gotten new wrapper props after that + // If we have new child props, and the same wrapper props, we know we should use the new child props as-is. + // But, if we have new wrapper props, those might change the child props, so we have to recalculate things. + // So, we'll use the child props from store update only if the wrapper props are the same as last time. + if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) { + return childPropsFromStoreUpdate.current; + } // TODO We're reading the store directly in render() here. Bad idea? + // This will likely cause Bad Things (TM) to happen in Concurrent Mode. + // Note that we do this because on renders _not_ caused by store updates, we need the latest store state + // to determine what the child props should be. + + + return childPropsSelector(store.getState(), wrapperProps); + }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns + // about useLayoutEffect in SSR, so we try to detect environment and fall back to + // just useEffect instead to avoid the warning, since neither will run anyway. + + useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes + + useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component. + // We memoize the elements for the rendered child component as an optimization. + + var renderedWrappedComponent = React.useMemo(function () { + return /*#__PURE__*/React__default["default"].createElement(WrappedComponent, _extends({}, actualChildProps, { + ref: reactReduxForwardedRef + })); + }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering + // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate. + + var renderedChild = React.useMemo(function () { + if (shouldHandleStateChanges) { + // If this component is subscribed to store updates, we need to pass its own + // subscription instance down to our descendants. That means rendering the same + // Context instance, and putting a different value into the context. + return /*#__PURE__*/React__default["default"].createElement(ContextToUse.Provider, { + value: overriddenContextValue + }, renderedWrappedComponent); + } + + return renderedWrappedComponent; + }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]); + return renderedChild; + } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed. + + + var Connect = pure ? React__default["default"].memo(ConnectFunction) : ConnectFunction; + Connect.WrappedComponent = WrappedComponent; + Connect.displayName = ConnectFunction.displayName = displayName; + + if (forwardRef) { + var forwarded = React__default["default"].forwardRef(function forwardConnectRef(props, ref) { + return /*#__PURE__*/React__default["default"].createElement(Connect, _extends({}, props, { + reactReduxForwardedRef: ref + })); + }); + forwarded.displayName = displayName; + forwarded.WrappedComponent = WrappedComponent; + return hoistNonReactStatics_cjs(forwarded, WrappedComponent); + } + + return hoistNonReactStatics_cjs(Connect, WrappedComponent); + }; + } + + function is(x, y) { + if (x === y) { + return x !== 0 || y !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } + } + + function shallowEqual(objA, objB) { + if (is(objA, objB)) return true; + + if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + if (keysA.length !== keysB.length) return false; + + for (var i = 0; i < keysA.length; i++) { + if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { + return false; + } + } + + return true; + } + + function bindActionCreators(actionCreators, dispatch) { + var boundActionCreators = {}; + + var _loop = function _loop(key) { + var actionCreator = actionCreators[key]; + + if (typeof actionCreator === 'function') { + boundActionCreators[key] = function () { + return dispatch(actionCreator.apply(void 0, arguments)); + }; + } + }; + + for (var key in actionCreators) { + _loop(key); + } + + return boundActionCreators; + } + + /** + * @param {any} obj The object to inspect. + * @returns {boolean} True if the argument appears to be a plain object. + */ + function isPlainObject(obj) { + if (typeof obj !== 'object' || obj === null) return false; + var proto = Object.getPrototypeOf(obj); + if (proto === null) return true; + var baseProto = proto; + + while (Object.getPrototypeOf(baseProto) !== null) { + baseProto = Object.getPrototypeOf(baseProto); + } + + return proto === baseProto; + } + + /** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ + function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + + + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + /* eslint-disable no-empty */ + } catch (e) {} + /* eslint-enable no-empty */ + + } + + function verifyPlainObject(value, displayName, methodName) { + if (!isPlainObject(value)) { + warning(methodName + "() in " + displayName + " must return a plain object. Instead received " + value + "."); + } + } + + function wrapMapToPropsConstant(getConstant) { + return function initConstantSelector(dispatch, options) { + var constant = getConstant(dispatch, options); + + function constantSelector() { + return constant; + } + + constantSelector.dependsOnOwnProps = false; + return constantSelector; + }; + } // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args + // to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine + // whether mapToProps needs to be invoked when props have changed. + // + // A length of one signals that mapToProps does not depend on props from the parent component. + // A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and + // therefore not reporting its length accurately.. + + function getDependsOnOwnProps(mapToProps) { + return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1; + } // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction, + // this function wraps mapToProps in a proxy function which does several things: + // + // * Detects whether the mapToProps function being called depends on props, which + // is used by selectorFactory to decide if it should reinvoke on props changes. + // + // * On first call, handles mapToProps if returns another function, and treats that + // new function as the true mapToProps for subsequent calls. + // + // * On first call, verifies the first result is a plain object, in order to warn + // the developer that their mapToProps function is not returning a valid result. + // + + function wrapMapToPropsFunc(mapToProps, methodName) { + return function initProxySelector(dispatch, _ref) { + var displayName = _ref.displayName; + + var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) { + return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch); + }; // allow detectFactoryAndVerify to get ownProps + + + proxy.dependsOnOwnProps = true; + + proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) { + proxy.mapToProps = mapToProps; + proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps); + var props = proxy(stateOrDispatch, ownProps); + + if (typeof props === 'function') { + proxy.mapToProps = props; + proxy.dependsOnOwnProps = getDependsOnOwnProps(props); + props = proxy(stateOrDispatch, ownProps); + } + + verifyPlainObject(props, displayName, methodName); + return props; + }; + + return proxy; + }; + } + + function whenMapDispatchToPropsIsFunction(mapDispatchToProps) { + return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined; + } + function whenMapDispatchToPropsIsMissing(mapDispatchToProps) { + return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) { + return { + dispatch: dispatch + }; + }) : undefined; + } + function whenMapDispatchToPropsIsObject(mapDispatchToProps) { + return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) { + return bindActionCreators(mapDispatchToProps, dispatch); + }) : undefined; + } + var defaultMapDispatchToPropsFactories = [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]; + + function whenMapStateToPropsIsFunction(mapStateToProps) { + return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined; + } + function whenMapStateToPropsIsMissing(mapStateToProps) { + return !mapStateToProps ? wrapMapToPropsConstant(function () { + return {}; + }) : undefined; + } + var defaultMapStateToPropsFactories = [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]; + + function defaultMergeProps(stateProps, dispatchProps, ownProps) { + return _extends({}, ownProps, stateProps, dispatchProps); + } + function wrapMergePropsFunc(mergeProps) { + return function initMergePropsProxy(dispatch, _ref) { + var displayName = _ref.displayName, + pure = _ref.pure, + areMergedPropsEqual = _ref.areMergedPropsEqual; + var hasRunOnce = false; + var mergedProps; + return function mergePropsProxy(stateProps, dispatchProps, ownProps) { + var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps); + + if (hasRunOnce) { + if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps; + } else { + hasRunOnce = true; + mergedProps = nextMergedProps; + verifyPlainObject(mergedProps, displayName, 'mergeProps'); + } + + return mergedProps; + }; + }; + } + function whenMergePropsIsFunction(mergeProps) { + return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined; + } + function whenMergePropsIsOmitted(mergeProps) { + return !mergeProps ? function () { + return defaultMergeProps; + } : undefined; + } + var defaultMergePropsFactories = [whenMergePropsIsFunction, whenMergePropsIsOmitted]; + + function verify(selector, methodName, displayName) { + if (!selector) { + throw new Error("Unexpected value for " + methodName + " in " + displayName + "."); + } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') { + if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) { + warning("The selector for " + methodName + " of " + displayName + " did not specify a value for dependsOnOwnProps."); + } + } + } + + function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) { + verify(mapStateToProps, 'mapStateToProps', displayName); + verify(mapDispatchToProps, 'mapDispatchToProps', displayName); + verify(mergeProps, 'mergeProps', displayName); + } + + var _excluded$1 = ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]; + function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) { + return function impureFinalPropsSelector(state, ownProps) { + return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps); + }; + } + function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) { + var areStatesEqual = _ref.areStatesEqual, + areOwnPropsEqual = _ref.areOwnPropsEqual, + areStatePropsEqual = _ref.areStatePropsEqual; + var hasRunAtLeastOnce = false; + var state; + var ownProps; + var stateProps; + var dispatchProps; + var mergedProps; + + function handleFirstCall(firstState, firstOwnProps) { + state = firstState; + ownProps = firstOwnProps; + stateProps = mapStateToProps(state, ownProps); + dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + hasRunAtLeastOnce = true; + return mergedProps; + } + + function handleNewPropsAndNewState() { + stateProps = mapStateToProps(state, ownProps); + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewProps() { + if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps); + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewState() { + var nextStateProps = mapStateToProps(state, ownProps); + var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps); + stateProps = nextStateProps; + if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleSubsequentCalls(nextState, nextOwnProps) { + var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps); + var stateChanged = !areStatesEqual(nextState, state); + state = nextState; + ownProps = nextOwnProps; + if (propsChanged && stateChanged) return handleNewPropsAndNewState(); + if (propsChanged) return handleNewProps(); + if (stateChanged) return handleNewState(); + return mergedProps; + } + + return function pureFinalPropsSelector(nextState, nextOwnProps) { + return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps); + }; + } // TODO: Add more comments + // If pure is true, the selector returned by selectorFactory will memoize its results, + // allowing connectAdvanced's shouldComponentUpdate to return false if final + // props have not changed. If false, the selector will always return a new + // object and shouldComponentUpdate will always return true. + + function finalPropsSelectorFactory(dispatch, _ref2) { + var initMapStateToProps = _ref2.initMapStateToProps, + initMapDispatchToProps = _ref2.initMapDispatchToProps, + initMergeProps = _ref2.initMergeProps, + options = _objectWithoutPropertiesLoose(_ref2, _excluded$1); + + var mapStateToProps = initMapStateToProps(dispatch, options); + var mapDispatchToProps = initMapDispatchToProps(dispatch, options); + var mergeProps = initMergeProps(dispatch, options); + + { + verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName); + } + + var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory; + return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options); + } + + var _excluded = ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]; + /* + connect is a facade over connectAdvanced. It turns its args into a compatible + selectorFactory, which has the signature: + + (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps + + connect passes its args to connectAdvanced as options, which will in turn pass them to + selectorFactory each time a Connect component instance is instantiated or hot reloaded. + + selectorFactory returns a final props selector from its mapStateToProps, + mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps, + mergePropsFactories, and pure args. + + The resulting final props selector is called by the Connect component instance whenever + it receives new props or store state. + */ + + function match(arg, factories, name) { + for (var i = factories.length - 1; i >= 0; i--) { + var result = factories[i](arg); + if (result) return result; + } + + return function (dispatch, options) { + throw new Error("Invalid value of type " + typeof arg + " for " + name + " argument when connecting component " + options.wrappedComponentName + "."); + }; + } + + function strictEqual(a, b) { + return a === b; + } // createConnect with default args builds the 'official' connect behavior. Calling it with + // different options opens up some testing and extensibility scenarios + + + function createConnect(_temp) { + var _ref = _temp === void 0 ? {} : _temp, + _ref$connectHOC = _ref.connectHOC, + connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC, + _ref$mapStateToPropsF = _ref.mapStateToPropsFactories, + mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF, + _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories, + mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro, + _ref$mergePropsFactor = _ref.mergePropsFactories, + mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor, + _ref$selectorFactory = _ref.selectorFactory, + selectorFactory = _ref$selectorFactory === void 0 ? finalPropsSelectorFactory : _ref$selectorFactory; + + return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) { + if (_ref2 === void 0) { + _ref2 = {}; + } + + var _ref3 = _ref2, + _ref3$pure = _ref3.pure, + pure = _ref3$pure === void 0 ? true : _ref3$pure, + _ref3$areStatesEqual = _ref3.areStatesEqual, + areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual, + _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual, + areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua, + _ref3$areStatePropsEq = _ref3.areStatePropsEqual, + areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq, + _ref3$areMergedPropsE = _ref3.areMergedPropsEqual, + areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE, + extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded); + + var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps'); + var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps'); + var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps'); + return connectHOC(selectorFactory, _extends({ + // used in error messages + methodName: 'connect', + // used to compute Connect's displayName from the wrapped component's displayName. + getDisplayName: function getDisplayName(name) { + return "Connect(" + name + ")"; + }, + // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes + shouldHandleStateChanges: Boolean(mapStateToProps), + // passed through to selectorFactory + initMapStateToProps: initMapStateToProps, + initMapDispatchToProps: initMapDispatchToProps, + initMergeProps: initMergeProps, + pure: pure, + areStatesEqual: areStatesEqual, + areOwnPropsEqual: areOwnPropsEqual, + areStatePropsEqual: areStatePropsEqual, + areMergedPropsEqual: areMergedPropsEqual + }, extraOptions)); + }; + } + var connect = /*#__PURE__*/createConnect(); + + /** + * A hook to access the value of the `ReactReduxContext`. This is a low-level + * hook that you should usually not need to call directly. + * + * @returns {any} the value of the `ReactReduxContext` + * + * @example + * + * import React from 'react' + * import { useReduxContext } from 'react-redux' + * + * export const CounterComponent = ({ value }) => { + * const { store } = useReduxContext() + * return
    {store.getState()}
    + * } + */ + + function useReduxContext() { + var contextValue = React.useContext(ReactReduxContext); + + if (!contextValue) { + throw new Error('could not find react-redux context value; please ensure the component is wrapped in a '); + } + + return contextValue; + } + + /** + * Hook factory, which creates a `useStore` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useStore` hook bound to the specified context. + */ + + function createStoreHook(context) { + if (context === void 0) { + context = ReactReduxContext; + } + + var useReduxContext$1 = context === ReactReduxContext ? useReduxContext : function () { + return React.useContext(context); + }; + return function useStore() { + var _useReduxContext = useReduxContext$1(), + store = _useReduxContext.store; + + return store; + }; + } + /** + * A hook to access the redux store. + * + * @returns {any} the redux store + * + * @example + * + * import React from 'react' + * import { useStore } from 'react-redux' + * + * export const ExampleComponent = () => { + * const store = useStore() + * return
    {store.getState()}
    + * } + */ + + var useStore = /*#__PURE__*/createStoreHook(); + + /** + * Hook factory, which creates a `useDispatch` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useDispatch` hook bound to the specified context. + */ + + function createDispatchHook(context) { + if (context === void 0) { + context = ReactReduxContext; + } + + var useStore$1 = context === ReactReduxContext ? useStore : createStoreHook(context); + return function useDispatch() { + var store = useStore$1(); + return store.dispatch; + }; + } + /** + * A hook to access the redux `dispatch` function. + * + * @returns {any|function} redux store's `dispatch` function + * + * @example + * + * import React, { useCallback } from 'react' + * import { useDispatch } from 'react-redux' + * + * export const CounterComponent = ({ value }) => { + * const dispatch = useDispatch() + * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), []) + * return ( + *
    + * {value} + * + *
    + * ) + * } + */ + + var useDispatch = /*#__PURE__*/createDispatchHook(); + + var refEquality = function refEquality(a, b) { + return a === b; + }; + + function useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) { + var _useReducer = React.useReducer(function (s) { + return s + 1; + }, 0), + forceRender = _useReducer[1]; + + var subscription = React.useMemo(function () { + return createSubscription(store, contextSub); + }, [store, contextSub]); + var latestSubscriptionCallbackError = React.useRef(); + var latestSelector = React.useRef(); + var latestStoreState = React.useRef(); + var latestSelectedState = React.useRef(); + var storeState = store.getState(); + var selectedState; + + try { + if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) { + var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references + + if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) { + selectedState = newSelectedState; + } else { + selectedState = latestSelectedState.current; + } + } else { + selectedState = latestSelectedState.current; + } + } catch (err) { + if (latestSubscriptionCallbackError.current) { + err.message += "\nThe error may be correlated with this previous error:\n" + latestSubscriptionCallbackError.current.stack + "\n\n"; + } + + throw err; + } + + useIsomorphicLayoutEffect(function () { + latestSelector.current = selector; + latestStoreState.current = storeState; + latestSelectedState.current = selectedState; + latestSubscriptionCallbackError.current = undefined; + }); + useIsomorphicLayoutEffect(function () { + function checkForUpdates() { + try { + var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed + + if (newStoreState === latestStoreState.current) { + return; + } + + var _newSelectedState = latestSelector.current(newStoreState); + + if (equalityFn(_newSelectedState, latestSelectedState.current)) { + return; + } + + latestSelectedState.current = _newSelectedState; + latestStoreState.current = newStoreState; + } catch (err) { + // we ignore all errors here, since when the component + // is re-rendered, the selectors are called again, and + // will throw again, if neither props nor store state + // changed + latestSubscriptionCallbackError.current = err; + } + + forceRender(); + } + + subscription.onStateChange = checkForUpdates; + subscription.trySubscribe(); + checkForUpdates(); + return function () { + return subscription.tryUnsubscribe(); + }; + }, [store, subscription]); + return selectedState; + } + /** + * Hook factory, which creates a `useSelector` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useSelector` hook bound to the specified context. + */ + + + function createSelectorHook(context) { + if (context === void 0) { + context = ReactReduxContext; + } + + var useReduxContext$1 = context === ReactReduxContext ? useReduxContext : function () { + return React.useContext(context); + }; + return function useSelector(selector, equalityFn) { + if (equalityFn === void 0) { + equalityFn = refEquality; + } + + { + if (!selector) { + throw new Error("You must pass a selector to useSelector"); + } + + if (typeof selector !== 'function') { + throw new Error("You must pass a function as a selector to useSelector"); + } + + if (typeof equalityFn !== 'function') { + throw new Error("You must pass a function as an equality function to useSelector"); + } + } + + var _useReduxContext = useReduxContext$1(), + store = _useReduxContext.store, + contextSub = _useReduxContext.subscription; + + var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub); + React.useDebugValue(selectedState); + return selectedState; + }; + } + /** + * A hook to access the redux store's state. This hook takes a selector function + * as an argument. The selector is called with the store state. + * + * This hook takes an optional equality comparison function as the second parameter + * that allows you to customize the way the selected state is compared to determine + * whether the component needs to be re-rendered. + * + * @param {Function} selector the selector function + * @param {Function=} equalityFn the function that will be used to determine equality + * + * @returns {any} the selected state + * + * @example + * + * import React from 'react' + * import { useSelector } from 'react-redux' + * + * export const CounterComponent = () => { + * const counter = useSelector(state => state.counter) + * return
    {counter}
    + * } + */ + + var useSelector = /*#__PURE__*/createSelectorHook(); + + // with standard React renderers (ReactDOM, React Native) + + setBatch(reactDom.unstable_batchedUpdates); + + Object.defineProperty(exports, 'batch', { + enumerable: true, + get: function () { return reactDom.unstable_batchedUpdates; } + }); + exports.Provider = Provider; + exports.ReactReduxContext = ReactReduxContext; + exports.connect = connect; + exports.connectAdvanced = connectAdvanced; + exports.createDispatchHook = createDispatchHook; + exports.createSelectorHook = createSelectorHook; + exports.createStoreHook = createStoreHook; + exports.shallowEqual = shallowEqual; + exports.useDispatch = useDispatch; + exports.useSelector = useSelector; + exports.useStore = useStore; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); diff --git a/node_modules/react-redux/dist/react-redux.min.js b/node_modules/react-redux/dist/react-redux.min.js new file mode 100644 index 00000000..5abd6f62 --- /dev/null +++ b/node_modules/react-redux/dist/react-redux.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["exports","react","react-dom"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ReactRedux={},e.React,e.ReactDOM)}(this,(function(e,t,r){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(t);function u(){}function a(){}a.resetWarningCache=u;!function(){function e(e,t,r,n,o,u){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==u){var a=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var r={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:u};r.PropTypes=r}();var c=o.default.createContext(null);var i=function(e){e()},f=function(){return i};var s={notify:function(){},get:function(){return[]}};function p(e,t){var r,n=s;function o(){a.onStateChange&&a.onStateChange()}function u(){r||(r=t?t.addNestedSub(o):e.subscribe(o),n=function(){var e=f(),t=null,r=null;return{clear:function(){t=null,r=null},notify:function(){e((function(){for(var e=t;e;)e.callback(),e=e.next}))},get:function(){for(var e=[],r=t;r;)e.push(r),r=r.next;return e},subscribe:function(e){var n=!0,o=r={callback:e,next:null,prev:r};return o.prev?o.prev.next=o:t=o,function(){n&&null!==t&&(n=!1,o.next?o.next.prev=o.prev:r=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}var a={addNestedSub:function(e){return u(),n.subscribe(e)},notifyNestedSubs:function(){n.notify()},handleChangeWrapper:o,isSubscribed:function(){return!!r},trySubscribe:u,tryUnsubscribe:function(){r&&(r(),r=void 0,n.clear(),n=s)},getListeners:function(){return n}};return a}var l="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?t.useLayoutEffect:t.useEffect;function d(){return d=Object.assign||function(e){for(var t=1;arguments.length>t;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(this,arguments)}function y(e,t){if(null==e)return{};var r,n,o={},u=Object.keys(e);for(n=0;u.length>n;n++)0>t.indexOf(r=u[n])&&(o[r]=e[r]);return o}var v={exports:{}},m={},b="function"==typeof Symbol&&Symbol.for,S=b?Symbol.for("react.element"):60103,h=b?Symbol.for("react.portal"):60106,P=b?Symbol.for("react.fragment"):60107,g=b?Symbol.for("react.strict_mode"):60108,O=b?Symbol.for("react.profiler"):60114,w=b?Symbol.for("react.provider"):60109,C=b?Symbol.for("react.context"):60110,x=b?Symbol.for("react.async_mode"):60111,$=b?Symbol.for("react.concurrent_mode"):60111,M=b?Symbol.for("react.forward_ref"):60112,E=b?Symbol.for("react.suspense"):60113,T=b?Symbol.for("react.suspense_list"):60120,R=b?Symbol.for("react.memo"):60115,j=b?Symbol.for("react.lazy"):60116,N=b?Symbol.for("react.block"):60121,_=b?Symbol.for("react.fundamental"):60117,D=b?Symbol.for("react.responder"):60118,q=b?Symbol.for("react.scope"):60119;function F(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case S:switch(e=e.type){case x:case $:case P:case O:case g:case E:return e;default:switch(e=e&&e.$$typeof){case C:case M:case j:case R:case w:return e;default:return t}}case h:return t}}}function k(e){return F(e)===$}m.AsyncMode=x,m.ConcurrentMode=$,m.ContextConsumer=C,m.ContextProvider=w,m.Element=S,m.ForwardRef=M,m.Fragment=P,m.Lazy=j,m.Memo=R,m.Portal=h,m.Profiler=O,m.StrictMode=g,m.Suspense=E,m.isAsyncMode=function(e){return k(e)||F(e)===x},m.isConcurrentMode=k,m.isContextConsumer=function(e){return F(e)===C},m.isContextProvider=function(e){return F(e)===w},m.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===S},m.isForwardRef=function(e){return F(e)===M},m.isFragment=function(e){return F(e)===P},m.isLazy=function(e){return F(e)===j},m.isMemo=function(e){return F(e)===R},m.isPortal=function(e){return F(e)===h},m.isProfiler=function(e){return F(e)===O},m.isStrictMode=function(e){return F(e)===g},m.isSuspense=function(e){return F(e)===E},m.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===P||e===$||e===O||e===g||e===E||e===T||"object"==typeof e&&null!==e&&(e.$$typeof===j||e.$$typeof===R||e.$$typeof===w||e.$$typeof===C||e.$$typeof===M||e.$$typeof===_||e.$$typeof===D||e.$$typeof===q||e.$$typeof===N)},m.typeOf=F,v.exports=m;var H=v.exports,U={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},A={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},L={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},W={};function z(e){return H.isMemo(e)?L:W[e.$$typeof]||U}W[H.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},W[H.Memo]=L;var I=Object.defineProperty,V=Object.getOwnPropertyNames,K=Object.getOwnPropertySymbols,B=Object.getOwnPropertyDescriptor,Y=Object.getPrototypeOf,G=Object.prototype;var J=function e(t,r,n){if("string"!=typeof r){if(G){var o=Y(r);o&&o!==G&&e(t,o,n)}var u=V(r);K&&(u=u.concat(K(r)));for(var a=z(t),c=z(r),i=0;u.length>i;++i){var f=u[i];if(!(A[f]||n&&n[f]||c&&c[f]||a&&a[f])){var s=B(r,f);try{I(t,f,s)}catch(e){}}}}return t},Q={exports:{}},X={},Z=60103,ee=60106,te=60107,re=60108,ne=60114,oe=60109,ue=60110,ae=60112,ce=60113,ie=60120,fe=60115,se=60116,pe=60121,le=60122,de=60117,ye=60129,ve=60131;if("function"==typeof Symbol&&Symbol.for){var me=Symbol.for;Z=me("react.element"),ee=me("react.portal"),te=me("react.fragment"),re=me("react.strict_mode"),ne=me("react.profiler"),oe=me("react.provider"),ue=me("react.context"),ae=me("react.forward_ref"),ce=me("react.suspense"),ie=me("react.suspense_list"),fe=me("react.memo"),se=me("react.lazy"),pe=me("react.block"),le=me("react.server.block"),de=me("react.fundamental"),ye=me("react.debug_trace_mode"),ve=me("react.legacy_hidden")}function be(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case Z:switch(e=e.type){case te:case ne:case re:case ce:case ie:return e;default:switch(e=e&&e.$$typeof){case ue:case ae:case se:case fe:case oe:return e;default:return t}}case ee:return t}}}var Se=oe,he=Z,Pe=ae,ge=te,Oe=se,we=fe,Ce=ee,xe=ne,$e=re,Me=ce;X.ContextConsumer=ue,X.ContextProvider=Se,X.Element=he,X.ForwardRef=Pe,X.Fragment=ge,X.Lazy=Oe,X.Memo=we,X.Portal=Ce,X.Profiler=xe,X.StrictMode=$e,X.Suspense=Me,X.isAsyncMode=function(){return!1},X.isConcurrentMode=function(){return!1},X.isContextConsumer=function(e){return be(e)===ue},X.isContextProvider=function(e){return be(e)===oe},X.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===Z},X.isForwardRef=function(e){return be(e)===ae},X.isFragment=function(e){return be(e)===te},X.isLazy=function(e){return be(e)===se},X.isMemo=function(e){return be(e)===fe},X.isPortal=function(e){return be(e)===ee},X.isProfiler=function(e){return be(e)===ne},X.isStrictMode=function(e){return be(e)===re},X.isSuspense=function(e){return be(e)===ce},X.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===te||e===ne||e===ye||e===re||e===ce||e===ie||e===ve||"object"==typeof e&&null!==e&&(e.$$typeof===se||e.$$typeof===fe||e.$$typeof===oe||e.$$typeof===ue||e.$$typeof===ae||e.$$typeof===de||e.$$typeof===pe||e[0]===le)},X.typeOf=be,Q.exports=X;var Ee=["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"],Te=["reactReduxForwardedRef"],Re=[],je=[null,null];function Ne(e,t){return[t.payload,e[1]+1]}function _e(e,t,r){l((function(){return e.apply(void 0,t)}),r)}function De(e,t,r,n,o,u,a){e.current=n,t.current=o,r.current=!1,u.current&&(u.current=null,a())}function qe(e,t,r,n,o,u,a,c,i,f){if(e){var s=!1,p=null,l=function(){if(!s){var e,r,l=t.getState();try{e=n(l,o.current)}catch(e){r=e,p=e}r||(p=null),e===u.current?a.current||i():(u.current=e,c.current=e,a.current=!0,f({type:"STORE_UPDATED",payload:{error:r}}))}};r.onStateChange=l,r.trySubscribe(),l();return function(){if(s=!0,r.tryUnsubscribe(),r.onStateChange=null,p)throw p}}}var Fe=function(){return[null,0]};function ke(e,r){void 0===r&&(r={});var n=r,u=n.getDisplayName,a=void 0===u?function(e){return"ConnectAdvanced("+e+")"}:u,i=n.methodName,f=void 0===i?"connectAdvanced":i,s=n.renderCountProp,l=void 0===s?void 0:s,v=n.shouldHandleStateChanges,m=void 0===v||v,b=n.storeKey,S=void 0===b?"store":b,h=n.forwardRef,P=void 0!==h&&h,g=n.context,O=void 0===g?c:g,w=y(n,Ee),C=O;return function(r){var n=r.displayName||r.name||"Component",u=a(n),c=d({},w,{getDisplayName:a,methodName:f,renderCountProp:l,shouldHandleStateChanges:m,storeKey:S,displayName:u,wrappedComponentName:n,WrappedComponent:r}),i=w.pure;var s=i?t.useMemo:function(e){return e()};function v(n){var u=t.useMemo((function(){var e=n.reactReduxForwardedRef,t=y(n,Te);return[n.context,e,t]}),[n]),a=u[0],i=u[1],f=u[2],l=t.useMemo((function(){return a&&a.Consumer&&Q.exports.isContextConsumer(o.default.createElement(a.Consumer,null))?a:C}),[a,C]),v=t.useContext(l),b=!!n.store&&!!n.store.getState&&!!n.store.dispatch,S=b?n.store:v.store,h=t.useMemo((function(){return function(t){return e(t.dispatch,c)}(S)}),[S]),P=t.useMemo((function(){if(!m)return je;var e=p(S,b?null:v.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[S,b,v]),g=P[0],O=P[1],w=t.useMemo((function(){return b?v:d({},v,{subscription:g})}),[b,v,g]),x=t.useReducer(Ne,Re,Fe),$=x[0][0],M=x[1];if($&&$.error)throw $.error;var E=t.useRef(),T=t.useRef(f),R=t.useRef(),j=t.useRef(!1),N=s((function(){return R.current&&f===T.current?R.current:h(S.getState(),f)}),[S,$,f]);_e(De,[T,E,j,f,N,R,O]),_e(qe,[m,S,g,h,T,E,j,R,O,M],[S,g,h]);var _=t.useMemo((function(){return o.default.createElement(r,d({},N,{ref:i}))}),[i,r,N]);return t.useMemo((function(){return m?o.default.createElement(l.Provider,{value:w},_):_}),[l,_,w])}var b=i?o.default.memo(v):v;if(b.WrappedComponent=r,b.displayName=v.displayName=u,P){var h=o.default.forwardRef((function(e,t){return o.default.createElement(b,d({},e,{reactReduxForwardedRef:t}))}));return h.displayName=u,h.WrappedComponent=r,J(h,r)}return J(b,r)}}function He(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function Ue(e,t){if(He(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(var n=0;r.length>n;n++)if(!Object.prototype.hasOwnProperty.call(t,r[n])||!He(e[r[n]],t[r[n]]))return!1;return!0}function Ae(e){return function(t,r){var n=e(t,r);function o(){return n}return o.dependsOnOwnProps=!1,o}}function Le(e){return null!=e.dependsOnOwnProps?!!e.dependsOnOwnProps:1!==e.length}function We(e,t){return function(t,r){var n=function(e,t){return n.dependsOnOwnProps?n.mapToProps(e,t):n.mapToProps(e)};return n.dependsOnOwnProps=!0,n.mapToProps=function(t,r){n.mapToProps=e,n.dependsOnOwnProps=Le(e);var o=n(t,r);return"function"==typeof o&&(n.mapToProps=o,n.dependsOnOwnProps=Le(o),o=n(t,r)),o},n}}var ze=[function(e){return"function"==typeof e?We(e):void 0},function(e){return e?void 0:Ae((function(e){return{dispatch:e}}))},function(e){return e&&"object"==typeof e?Ae((function(t){return function(e,t){var r={},n=function(n){var o=e[n];"function"==typeof o&&(r[n]=function(){return t(o.apply(void 0,arguments))})};for(var o in e)n(o);return r}(e,t)})):void 0}];var Ie=[function(e){return"function"==typeof e?We(e):void 0},function(e){return e?void 0:Ae((function(){return{}}))}];function Ve(e,t,r){return d({},r,e,t)}var Ke=[function(e){return"function"==typeof e?function(e){return function(t,r){var n,o=r.pure,u=r.areMergedPropsEqual,a=!1;return function(t,r,c){var i=e(t,r,c);return a?o&&u(i,n)||(n=i):(a=!0,n=i),n}}}(e):void 0},function(e){return e?void 0:function(){return Ve}}],Be=["initMapStateToProps","initMapDispatchToProps","initMergeProps"];function Ye(e,t,r,n){return function(o,u){return r(e(o,u),t(n,u),u)}}function Ge(e,t,r,n,o){var u,a,c,i,f,s=o.areStatesEqual,p=o.areOwnPropsEqual,l=o.areStatePropsEqual,d=!1;function y(o,d){var y,v,m=!p(d,a),b=!s(o,u);return u=o,a=d,m&&b?(c=e(u,a),t.dependsOnOwnProps&&(i=t(n,a)),f=r(c,i,a)):m?(e.dependsOnOwnProps&&(c=e(u,a)),t.dependsOnOwnProps&&(i=t(n,a)),f=r(c,i,a)):b?(y=e(u,a),v=!l(y,c),c=y,v&&(f=r(c,i,a)),f):f}return function(o,s){return d?y(o,s):(c=e(u=o,a=s),i=t(n,a),f=r(c,i,a),d=!0,f)}}function Je(e,t){var r=t.initMapStateToProps,n=t.initMapDispatchToProps,o=t.initMergeProps,u=y(t,Be),a=r(e,u),c=n(e,u),i=o(e,u);return(u.pure?Ge:Ye)(a,c,i,e,u)}var Qe=["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"];function Xe(e,t,r){for(var n=t.length-1;n>=0;n--){var o=t[n](e);if(o)return o}return function(t,n){throw Error("Invalid value of type "+typeof e+" for "+r+" argument when connecting component "+n.wrappedComponentName+".")}}function Ze(e,t){return e===t}function et(e){var t=void 0===e?{}:e,r=t.connectHOC,n=void 0===r?ke:r,o=t.mapStateToPropsFactories,u=void 0===o?Ie:o,a=t.mapDispatchToPropsFactories,c=void 0===a?ze:a,i=t.mergePropsFactories,f=void 0===i?Ke:i,s=t.selectorFactory,p=void 0===s?Je:s;return function(e,t,r,o){void 0===o&&(o={});var a=o.pure,i=void 0===a||a,s=o.areStatesEqual,l=void 0===s?Ze:s,v=o.areOwnPropsEqual,m=void 0===v?Ue:v,b=o.areStatePropsEqual,S=void 0===b?Ue:b,h=o.areMergedPropsEqual,P=void 0===h?Ue:h,g=y(o,Qe),O=Xe(e,u,"mapStateToProps"),w=Xe(t,c,"mapDispatchToProps"),C=Xe(r,f,"mergeProps");return n(p,d({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:!!e,initMapStateToProps:O,initMapDispatchToProps:w,initMergeProps:C,pure:i,areStatesEqual:l,areOwnPropsEqual:m,areStatePropsEqual:S,areMergedPropsEqual:P},g))}}var tt=et();function rt(){return t.useContext(c)}function nt(e){void 0===e&&(e=c);var r=e===c?rt:function(){return t.useContext(e)};return function(){return r().store}}var ot=nt();function ut(e){void 0===e&&(e=c);var t=e===c?ot:nt(e);return function(){return t().dispatch}}var at=ut(),ct=function(e,t){return e===t};function it(e){void 0===e&&(e=c);var r=e===c?rt:function(){return t.useContext(e)};return function(e,n){void 0===n&&(n=ct);var o=r(),u=function(e,r,n,o){var u,a=t.useReducer((function(e){return e+1}),0)[1],c=t.useMemo((function(){return p(n,o)}),[n,o]),i=t.useRef(),f=t.useRef(),s=t.useRef(),d=t.useRef(),y=n.getState();try{if(e!==f.current||y!==s.current||i.current){var v=e(y);u=void 0!==d.current&&r(v,d.current)?d.current:v}else u=d.current}catch(e){throw i.current&&(e.message+="\nThe error may be correlated with this previous error:\n"+i.current.stack+"\n\n"),e}return l((function(){f.current=e,s.current=y,d.current=u,i.current=void 0})),l((function(){function e(){try{var e=n.getState();if(e===s.current)return;var t=f.current(e);if(r(t,d.current))return;d.current=t,s.current=e}catch(e){i.current=e}a()}return c.onStateChange=e,c.trySubscribe(),e(),function(){return c.tryUnsubscribe()}}),[n,c]),u}(e,n,o.store,o.subscription);return t.useDebugValue(u),u}}var ft=it();i=r.unstable_batchedUpdates,Object.defineProperty(e,"batch",{enumerable:!0,get:function(){return r.unstable_batchedUpdates}}),e.Provider=function(e){var r=e.store,n=e.context,u=e.children,a=t.useMemo((function(){var e=p(r);return{store:r,subscription:e}}),[r]),i=t.useMemo((function(){return r.getState()}),[r]);return l((function(){var e=a.subscription;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),i!==r.getState()&&e.notifyNestedSubs(),function(){e.tryUnsubscribe(),e.onStateChange=null}}),[a,i]),o.default.createElement((n||c).Provider,{value:a},u)},e.ReactReduxContext=c,e.connect=tt,e.connectAdvanced=ke,e.createDispatchHook=ut,e.createSelectorHook=it,e.createStoreHook=nt,e.shallowEqual=Ue,e.useDispatch=at,e.useSelector=ft,e.useStore=ot,Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/node_modules/react-redux/es/alternate-renderers.js b/node_modules/react-redux/es/alternate-renderers.js new file mode 100644 index 00000000..20e3c5e7 --- /dev/null +++ b/node_modules/react-redux/es/alternate-renderers.js @@ -0,0 +1,6 @@ +export * from './exports'; +import { getBatch } from './utils/batch'; // For other renderers besides ReactDOM and React Native, +// use the default noop batch function + +var batch = getBatch(); +export { batch }; \ No newline at end of file diff --git a/node_modules/react-redux/es/components/Context.js b/node_modules/react-redux/es/components/Context.js new file mode 100644 index 00000000..020a9031 --- /dev/null +++ b/node_modules/react-redux/es/components/Context.js @@ -0,0 +1,8 @@ +import React from 'react'; +export var ReactReduxContext = /*#__PURE__*/React.createContext(null); + +if (process.env.NODE_ENV !== 'production') { + ReactReduxContext.displayName = 'ReactRedux'; +} + +export default ReactReduxContext; \ No newline at end of file diff --git a/node_modules/react-redux/es/components/Provider.js b/node_modules/react-redux/es/components/Provider.js new file mode 100644 index 00000000..4fa3785b --- /dev/null +++ b/node_modules/react-redux/es/components/Provider.js @@ -0,0 +1,53 @@ +import React, { useMemo } from 'react'; +import PropTypes from 'prop-types'; +import { ReactReduxContext } from './Context'; +import { createSubscription } from '../utils/Subscription'; +import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'; + +function Provider(_ref) { + var store = _ref.store, + context = _ref.context, + children = _ref.children; + var contextValue = useMemo(function () { + var subscription = createSubscription(store); + return { + store: store, + subscription: subscription + }; + }, [store]); + var previousState = useMemo(function () { + return store.getState(); + }, [store]); + useIsomorphicLayoutEffect(function () { + var subscription = contextValue.subscription; + subscription.onStateChange = subscription.notifyNestedSubs; + subscription.trySubscribe(); + + if (previousState !== store.getState()) { + subscription.notifyNestedSubs(); + } + + return function () { + subscription.tryUnsubscribe(); + subscription.onStateChange = null; + }; + }, [contextValue, previousState]); + var Context = context || ReactReduxContext; + return /*#__PURE__*/React.createElement(Context.Provider, { + value: contextValue + }, children); +} + +if (process.env.NODE_ENV !== 'production') { + Provider.propTypes = { + store: PropTypes.shape({ + subscribe: PropTypes.func.isRequired, + dispatch: PropTypes.func.isRequired, + getState: PropTypes.func.isRequired + }), + context: PropTypes.object, + children: PropTypes.any + }; +} + +export default Provider; \ No newline at end of file diff --git a/node_modules/react-redux/es/components/connectAdvanced.js b/node_modules/react-redux/es/components/connectAdvanced.js new file mode 100644 index 00000000..53dc8b67 --- /dev/null +++ b/node_modules/react-redux/es/components/connectAdvanced.js @@ -0,0 +1,377 @@ +import _extends from "@babel/runtime/helpers/esm/extends"; +import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; +var _excluded = ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"], + _excluded2 = ["reactReduxForwardedRef"]; +import hoistStatics from 'hoist-non-react-statics'; +import React, { useContext, useMemo, useRef, useReducer } from 'react'; +import { isValidElementType, isContextConsumer } from 'react-is'; +import { createSubscription } from '../utils/Subscription'; +import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'; +import { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these + +var EMPTY_ARRAY = []; +var NO_SUBSCRIPTION_ARRAY = [null, null]; + +var stringifyComponent = function stringifyComponent(Comp) { + try { + return JSON.stringify(Comp); + } catch (err) { + return String(Comp); + } +}; + +function storeStateUpdatesReducer(state, action) { + var updateCount = state[1]; + return [action.payload, updateCount + 1]; +} + +function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) { + useIsomorphicLayoutEffect(function () { + return effectFunc.apply(void 0, effectArgs); + }, dependencies); +} + +function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) { + // We want to capture the wrapper props and child props we used for later comparisons + lastWrapperProps.current = wrapperProps; + lastChildProps.current = actualChildProps; + renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update + + if (childPropsFromStoreUpdate.current) { + childPropsFromStoreUpdate.current = null; + notifyNestedSubs(); + } +} + +function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) { + // If we're not subscribed to the store, nothing to do here + if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts + + var didUnsubscribe = false; + var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component + + var checkForUpdates = function checkForUpdates() { + if (didUnsubscribe) { + // Don't run stale listeners. + // Redux doesn't guarantee unsubscriptions happen until next dispatch. + return; + } + + var latestStoreState = store.getState(); + var newChildProps, error; + + try { + // Actually run the selector with the most recent store state and wrapper props + // to determine what the child props should be + newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current); + } catch (e) { + error = e; + lastThrownError = e; + } + + if (!error) { + lastThrownError = null; + } // If the child props haven't changed, nothing to do here - cascade the subscription update + + + if (newChildProps === lastChildProps.current) { + if (!renderIsScheduled.current) { + notifyNestedSubs(); + } + } else { + // Save references to the new child props. Note that we track the "child props from store update" + // as a ref instead of a useState/useReducer because we need a way to determine if that value has + // been processed. If this went into useState/useReducer, we couldn't clear out the value without + // forcing another re-render, which we don't want. + lastChildProps.current = newChildProps; + childPropsFromStoreUpdate.current = newChildProps; + renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render + + forceComponentUpdateDispatch({ + type: 'STORE_UPDATED', + payload: { + error: error + } + }); + } + }; // Actually subscribe to the nearest connected ancestor (or store) + + + subscription.onStateChange = checkForUpdates; + subscription.trySubscribe(); // Pull data from the store after first render in case the store has + // changed since we began. + + checkForUpdates(); + + var unsubscribeWrapper = function unsubscribeWrapper() { + didUnsubscribe = true; + subscription.tryUnsubscribe(); + subscription.onStateChange = null; + + if (lastThrownError) { + // It's possible that we caught an error due to a bad mapState function, but the + // parent re-rendered without this component and we're about to unmount. + // This shouldn't happen as long as we do top-down subscriptions correctly, but + // if we ever do those wrong, this throw will surface the error in our tests. + // In that case, throw the error from here so it doesn't get lost. + throw lastThrownError; + } + }; + + return unsubscribeWrapper; +} + +var initStateUpdates = function initStateUpdates() { + return [null, 0]; +}; + +export default function connectAdvanced( +/* + selectorFactory is a func that is responsible for returning the selector function used to + compute new props from state, props, and dispatch. For example: + export default connectAdvanced((dispatch, options) => (state, props) => ({ + thing: state.things[props.thingId], + saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)), + }))(YourComponent) + Access to dispatch is provided to the factory so selectorFactories can bind actionCreators + outside of their selector as an optimization. Options passed to connectAdvanced are passed to + the selectorFactory, along with displayName and WrappedComponent, as the second argument. + Note that selectorFactory is responsible for all caching/memoization of inbound and outbound + props. Do not use connectAdvanced directly without memoizing results between calls to your + selector, otherwise the Connect component will re-render on every state or props change. +*/ +selectorFactory, // options object: +_ref) { + if (_ref === void 0) { + _ref = {}; + } + + var _ref2 = _ref, + _ref2$getDisplayName = _ref2.getDisplayName, + getDisplayName = _ref2$getDisplayName === void 0 ? function (name) { + return "ConnectAdvanced(" + name + ")"; + } : _ref2$getDisplayName, + _ref2$methodName = _ref2.methodName, + methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName, + _ref2$renderCountProp = _ref2.renderCountProp, + renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp, + _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges, + shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta, + _ref2$storeKey = _ref2.storeKey, + storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey, + _ref2$withRef = _ref2.withRef, + withRef = _ref2$withRef === void 0 ? false : _ref2$withRef, + _ref2$forwardRef = _ref2.forwardRef, + forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef, + _ref2$context = _ref2.context, + context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context, + connectOptions = _objectWithoutPropertiesLoose(_ref2, _excluded); + + if (process.env.NODE_ENV !== 'production') { + if (renderCountProp !== undefined) { + throw new Error("renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension"); + } + + if (withRef) { + throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component'); + } + + var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + "React.createContext(), and pass the context object to React Redux's Provider and specific components" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect'; + + if (storeKey !== 'store') { + throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage); + } + } + + var Context = context; + return function wrapWithConnect(WrappedComponent) { + if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) { + throw new Error("You must pass a component to the function returned by " + (methodName + ". Instead received " + stringifyComponent(WrappedComponent))); + } + + var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component'; + var displayName = getDisplayName(wrappedComponentName); + + var selectorFactoryOptions = _extends({}, connectOptions, { + getDisplayName: getDisplayName, + methodName: methodName, + renderCountProp: renderCountProp, + shouldHandleStateChanges: shouldHandleStateChanges, + storeKey: storeKey, + displayName: displayName, + wrappedComponentName: wrappedComponentName, + WrappedComponent: WrappedComponent + }); + + var pure = connectOptions.pure; + + function createChildSelector(store) { + return selectorFactory(store.dispatch, selectorFactoryOptions); + } // If we aren't running in "pure" mode, we don't want to memoize values. + // To avoid conditionally calling hooks, we fall back to a tiny wrapper + // that just executes the given callback immediately. + + + var usePureOnlyMemo = pure ? useMemo : function (callback) { + return callback(); + }; + + function ConnectFunction(props) { + var _useMemo = useMemo(function () { + // Distinguish between actual "data" props that were passed to the wrapper component, + // and values needed to control behavior (forwarded refs, alternate context instances). + // To maintain the wrapperProps object reference, memoize this destructuring. + var reactReduxForwardedRef = props.reactReduxForwardedRef, + wrapperProps = _objectWithoutPropertiesLoose(props, _excluded2); + + return [props.context, reactReduxForwardedRef, wrapperProps]; + }, [props]), + propsContext = _useMemo[0], + reactReduxForwardedRef = _useMemo[1], + wrapperProps = _useMemo[2]; + + var ContextToUse = useMemo(function () { + // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext. + // Memoize the check that determines which context instance we should use. + return propsContext && propsContext.Consumer && isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context; + }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available + + var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context. + // We'll check to see if it _looks_ like a Redux store first. + // This allows us to pass through a `store` prop that is just a plain value. + + var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch); + var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store); + + if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) { + throw new Error("Could not find \"store\" in the context of " + ("\"" + displayName + "\". Either wrap the root component in a , ") + "or pass a custom React context provider to and the corresponding " + ("React context consumer to " + displayName + " in connect options.")); + } // Based on the previous check, one of these must be true + + + var store = didStoreComeFromProps ? props.store : contextValue.store; + var childPropsSelector = useMemo(function () { + // The child props selector needs the store reference as an input. + // Re-create this selector whenever the store changes. + return createChildSelector(store); + }, [store]); + + var _useMemo2 = useMemo(function () { + if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + + // This Subscription's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + var subscription = createSubscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `subscription` will then be null. This can + // probably be avoided if Subscription's listeners logic is changed to not call listeners + // that have been unsubscribed in the middle of the notification loop. + + // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `subscription` will then be null. This can + // probably be avoided if Subscription's listeners logic is changed to not call listeners + // that have been unsubscribed in the middle of the notification loop. + var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription); + return [subscription, notifyNestedSubs]; + }, [store, didStoreComeFromProps, contextValue]), + subscription = _useMemo2[0], + notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary, + // and memoize that value to avoid unnecessary context updates. + + + var overriddenContextValue = useMemo(function () { + if (didStoreComeFromProps) { + // This component is directly subscribed to a store from props. + // We don't want descendants reading from this store - pass down whatever + // the existing context value is from the nearest connected ancestor. + return contextValue; + } // Otherwise, put this component's subscription instance into context, so that + // connected descendants won't update until after this component is done + + + return _extends({}, contextValue, { + subscription: subscription + }); + }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update + // causes a change to the calculated child component props (or we caught an error in mapState) + + var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates), + _useReducer$ = _useReducer[0], + previousStateUpdateResult = _useReducer$[0], + forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards + + + if (previousStateUpdateResult && previousStateUpdateResult.error) { + throw previousStateUpdateResult.error; + } // Set up refs to coordinate values between the subscription effect and the render logic + + + var lastChildProps = useRef(); + var lastWrapperProps = useRef(wrapperProps); + var childPropsFromStoreUpdate = useRef(); + var renderIsScheduled = useRef(false); + var actualChildProps = usePureOnlyMemo(function () { + // Tricky logic here: + // - This render may have been triggered by a Redux store update that produced new child props + // - However, we may have gotten new wrapper props after that + // If we have new child props, and the same wrapper props, we know we should use the new child props as-is. + // But, if we have new wrapper props, those might change the child props, so we have to recalculate things. + // So, we'll use the child props from store update only if the wrapper props are the same as last time. + if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) { + return childPropsFromStoreUpdate.current; + } // TODO We're reading the store directly in render() here. Bad idea? + // This will likely cause Bad Things (TM) to happen in Concurrent Mode. + // Note that we do this because on renders _not_ caused by store updates, we need the latest store state + // to determine what the child props should be. + + + return childPropsSelector(store.getState(), wrapperProps); + }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns + // about useLayoutEffect in SSR, so we try to detect environment and fall back to + // just useEffect instead to avoid the warning, since neither will run anyway. + + useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes + + useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component. + // We memoize the elements for the rendered child component as an optimization. + + var renderedWrappedComponent = useMemo(function () { + return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, actualChildProps, { + ref: reactReduxForwardedRef + })); + }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering + // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate. + + var renderedChild = useMemo(function () { + if (shouldHandleStateChanges) { + // If this component is subscribed to store updates, we need to pass its own + // subscription instance down to our descendants. That means rendering the same + // Context instance, and putting a different value into the context. + return /*#__PURE__*/React.createElement(ContextToUse.Provider, { + value: overriddenContextValue + }, renderedWrappedComponent); + } + + return renderedWrappedComponent; + }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]); + return renderedChild; + } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed. + + + var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction; + Connect.WrappedComponent = WrappedComponent; + Connect.displayName = ConnectFunction.displayName = displayName; + + if (forwardRef) { + var forwarded = React.forwardRef(function forwardConnectRef(props, ref) { + return /*#__PURE__*/React.createElement(Connect, _extends({}, props, { + reactReduxForwardedRef: ref + })); + }); + forwarded.displayName = displayName; + forwarded.WrappedComponent = WrappedComponent; + return hoistStatics(forwarded, WrappedComponent); + } + + return hoistStatics(Connect, WrappedComponent); + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/es/connect/connect.js b/node_modules/react-redux/es/connect/connect.js new file mode 100644 index 00000000..f805be5a --- /dev/null +++ b/node_modules/react-redux/es/connect/connect.js @@ -0,0 +1,99 @@ +import _extends from "@babel/runtime/helpers/esm/extends"; +import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; +var _excluded = ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]; +import connectAdvanced from '../components/connectAdvanced'; +import shallowEqual from '../utils/shallowEqual'; +import defaultMapDispatchToPropsFactories from './mapDispatchToProps'; +import defaultMapStateToPropsFactories from './mapStateToProps'; +import defaultMergePropsFactories from './mergeProps'; +import defaultSelectorFactory from './selectorFactory'; +/* + connect is a facade over connectAdvanced. It turns its args into a compatible + selectorFactory, which has the signature: + + (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps + + connect passes its args to connectAdvanced as options, which will in turn pass them to + selectorFactory each time a Connect component instance is instantiated or hot reloaded. + + selectorFactory returns a final props selector from its mapStateToProps, + mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps, + mergePropsFactories, and pure args. + + The resulting final props selector is called by the Connect component instance whenever + it receives new props or store state. + */ + +function match(arg, factories, name) { + for (var i = factories.length - 1; i >= 0; i--) { + var result = factories[i](arg); + if (result) return result; + } + + return function (dispatch, options) { + throw new Error("Invalid value of type " + typeof arg + " for " + name + " argument when connecting component " + options.wrappedComponentName + "."); + }; +} + +function strictEqual(a, b) { + return a === b; +} // createConnect with default args builds the 'official' connect behavior. Calling it with +// different options opens up some testing and extensibility scenarios + + +export function createConnect(_temp) { + var _ref = _temp === void 0 ? {} : _temp, + _ref$connectHOC = _ref.connectHOC, + connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC, + _ref$mapStateToPropsF = _ref.mapStateToPropsFactories, + mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF, + _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories, + mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro, + _ref$mergePropsFactor = _ref.mergePropsFactories, + mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor, + _ref$selectorFactory = _ref.selectorFactory, + selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory; + + return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) { + if (_ref2 === void 0) { + _ref2 = {}; + } + + var _ref3 = _ref2, + _ref3$pure = _ref3.pure, + pure = _ref3$pure === void 0 ? true : _ref3$pure, + _ref3$areStatesEqual = _ref3.areStatesEqual, + areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual, + _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual, + areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua, + _ref3$areStatePropsEq = _ref3.areStatePropsEqual, + areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq, + _ref3$areMergedPropsE = _ref3.areMergedPropsEqual, + areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE, + extraOptions = _objectWithoutPropertiesLoose(_ref3, _excluded); + + var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps'); + var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps'); + var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps'); + return connectHOC(selectorFactory, _extends({ + // used in error messages + methodName: 'connect', + // used to compute Connect's displayName from the wrapped component's displayName. + getDisplayName: function getDisplayName(name) { + return "Connect(" + name + ")"; + }, + // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes + shouldHandleStateChanges: Boolean(mapStateToProps), + // passed through to selectorFactory + initMapStateToProps: initMapStateToProps, + initMapDispatchToProps: initMapDispatchToProps, + initMergeProps: initMergeProps, + pure: pure, + areStatesEqual: areStatesEqual, + areOwnPropsEqual: areOwnPropsEqual, + areStatePropsEqual: areStatePropsEqual, + areMergedPropsEqual: areMergedPropsEqual + }, extraOptions)); + }; +} +export default /*#__PURE__*/createConnect(); \ No newline at end of file diff --git a/node_modules/react-redux/es/connect/mapDispatchToProps.js b/node_modules/react-redux/es/connect/mapDispatchToProps.js new file mode 100644 index 00000000..ca1f0ea3 --- /dev/null +++ b/node_modules/react-redux/es/connect/mapDispatchToProps.js @@ -0,0 +1,18 @@ +import bindActionCreators from '../utils/bindActionCreators'; +import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'; +export function whenMapDispatchToPropsIsFunction(mapDispatchToProps) { + return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined; +} +export function whenMapDispatchToPropsIsMissing(mapDispatchToProps) { + return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) { + return { + dispatch: dispatch + }; + }) : undefined; +} +export function whenMapDispatchToPropsIsObject(mapDispatchToProps) { + return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) { + return bindActionCreators(mapDispatchToProps, dispatch); + }) : undefined; +} +export default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]; \ No newline at end of file diff --git a/node_modules/react-redux/es/connect/mapStateToProps.js b/node_modules/react-redux/es/connect/mapStateToProps.js new file mode 100644 index 00000000..baffdf37 --- /dev/null +++ b/node_modules/react-redux/es/connect/mapStateToProps.js @@ -0,0 +1,10 @@ +import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps'; +export function whenMapStateToPropsIsFunction(mapStateToProps) { + return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined; +} +export function whenMapStateToPropsIsMissing(mapStateToProps) { + return !mapStateToProps ? wrapMapToPropsConstant(function () { + return {}; + }) : undefined; +} +export default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]; \ No newline at end of file diff --git a/node_modules/react-redux/es/connect/mergeProps.js b/node_modules/react-redux/es/connect/mergeProps.js new file mode 100644 index 00000000..23d2ad3b --- /dev/null +++ b/node_modules/react-redux/es/connect/mergeProps.js @@ -0,0 +1,36 @@ +import _extends from "@babel/runtime/helpers/esm/extends"; +import verifyPlainObject from '../utils/verifyPlainObject'; +export function defaultMergeProps(stateProps, dispatchProps, ownProps) { + return _extends({}, ownProps, stateProps, dispatchProps); +} +export function wrapMergePropsFunc(mergeProps) { + return function initMergePropsProxy(dispatch, _ref) { + var displayName = _ref.displayName, + pure = _ref.pure, + areMergedPropsEqual = _ref.areMergedPropsEqual; + var hasRunOnce = false; + var mergedProps; + return function mergePropsProxy(stateProps, dispatchProps, ownProps) { + var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps); + + if (hasRunOnce) { + if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps; + } else { + hasRunOnce = true; + mergedProps = nextMergedProps; + if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps'); + } + + return mergedProps; + }; + }; +} +export function whenMergePropsIsFunction(mergeProps) { + return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined; +} +export function whenMergePropsIsOmitted(mergeProps) { + return !mergeProps ? function () { + return defaultMergeProps; + } : undefined; +} +export default [whenMergePropsIsFunction, whenMergePropsIsOmitted]; \ No newline at end of file diff --git a/node_modules/react-redux/es/connect/selectorFactory.js b/node_modules/react-redux/es/connect/selectorFactory.js new file mode 100644 index 00000000..acd0559a --- /dev/null +++ b/node_modules/react-redux/es/connect/selectorFactory.js @@ -0,0 +1,88 @@ +import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; +var _excluded = ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]; +import verifySubselectors from './verifySubselectors'; +export function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) { + return function impureFinalPropsSelector(state, ownProps) { + return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps); + }; +} +export function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) { + var areStatesEqual = _ref.areStatesEqual, + areOwnPropsEqual = _ref.areOwnPropsEqual, + areStatePropsEqual = _ref.areStatePropsEqual; + var hasRunAtLeastOnce = false; + var state; + var ownProps; + var stateProps; + var dispatchProps; + var mergedProps; + + function handleFirstCall(firstState, firstOwnProps) { + state = firstState; + ownProps = firstOwnProps; + stateProps = mapStateToProps(state, ownProps); + dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + hasRunAtLeastOnce = true; + return mergedProps; + } + + function handleNewPropsAndNewState() { + stateProps = mapStateToProps(state, ownProps); + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewProps() { + if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps); + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewState() { + var nextStateProps = mapStateToProps(state, ownProps); + var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps); + stateProps = nextStateProps; + if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleSubsequentCalls(nextState, nextOwnProps) { + var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps); + var stateChanged = !areStatesEqual(nextState, state); + state = nextState; + ownProps = nextOwnProps; + if (propsChanged && stateChanged) return handleNewPropsAndNewState(); + if (propsChanged) return handleNewProps(); + if (stateChanged) return handleNewState(); + return mergedProps; + } + + return function pureFinalPropsSelector(nextState, nextOwnProps) { + return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps); + }; +} // TODO: Add more comments +// If pure is true, the selector returned by selectorFactory will memoize its results, +// allowing connectAdvanced's shouldComponentUpdate to return false if final +// props have not changed. If false, the selector will always return a new +// object and shouldComponentUpdate will always return true. + +export default function finalPropsSelectorFactory(dispatch, _ref2) { + var initMapStateToProps = _ref2.initMapStateToProps, + initMapDispatchToProps = _ref2.initMapDispatchToProps, + initMergeProps = _ref2.initMergeProps, + options = _objectWithoutPropertiesLoose(_ref2, _excluded); + + var mapStateToProps = initMapStateToProps(dispatch, options); + var mapDispatchToProps = initMapDispatchToProps(dispatch, options); + var mergeProps = initMergeProps(dispatch, options); + + if (process.env.NODE_ENV !== 'production') { + verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName); + } + + var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory; + return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options); +} \ No newline at end of file diff --git a/node_modules/react-redux/es/connect/verifySubselectors.js b/node_modules/react-redux/es/connect/verifySubselectors.js new file mode 100644 index 00000000..9fb9a72e --- /dev/null +++ b/node_modules/react-redux/es/connect/verifySubselectors.js @@ -0,0 +1,17 @@ +import warning from '../utils/warning'; + +function verify(selector, methodName, displayName) { + if (!selector) { + throw new Error("Unexpected value for " + methodName + " in " + displayName + "."); + } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') { + if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) { + warning("The selector for " + methodName + " of " + displayName + " did not specify a value for dependsOnOwnProps."); + } + } +} + +export default function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) { + verify(mapStateToProps, 'mapStateToProps', displayName); + verify(mapDispatchToProps, 'mapDispatchToProps', displayName); + verify(mergeProps, 'mergeProps', displayName); +} \ No newline at end of file diff --git a/node_modules/react-redux/es/connect/wrapMapToProps.js b/node_modules/react-redux/es/connect/wrapMapToProps.js new file mode 100644 index 00000000..868f6041 --- /dev/null +++ b/node_modules/react-redux/es/connect/wrapMapToProps.js @@ -0,0 +1,64 @@ +import verifyPlainObject from '../utils/verifyPlainObject'; +export function wrapMapToPropsConstant(getConstant) { + return function initConstantSelector(dispatch, options) { + var constant = getConstant(dispatch, options); + + function constantSelector() { + return constant; + } + + constantSelector.dependsOnOwnProps = false; + return constantSelector; + }; +} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args +// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine +// whether mapToProps needs to be invoked when props have changed. +// +// A length of one signals that mapToProps does not depend on props from the parent component. +// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and +// therefore not reporting its length accurately.. + +export function getDependsOnOwnProps(mapToProps) { + return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1; +} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction, +// this function wraps mapToProps in a proxy function which does several things: +// +// * Detects whether the mapToProps function being called depends on props, which +// is used by selectorFactory to decide if it should reinvoke on props changes. +// +// * On first call, handles mapToProps if returns another function, and treats that +// new function as the true mapToProps for subsequent calls. +// +// * On first call, verifies the first result is a plain object, in order to warn +// the developer that their mapToProps function is not returning a valid result. +// + +export function wrapMapToPropsFunc(mapToProps, methodName) { + return function initProxySelector(dispatch, _ref) { + var displayName = _ref.displayName; + + var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) { + return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch); + }; // allow detectFactoryAndVerify to get ownProps + + + proxy.dependsOnOwnProps = true; + + proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) { + proxy.mapToProps = mapToProps; + proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps); + var props = proxy(stateOrDispatch, ownProps); + + if (typeof props === 'function') { + proxy.mapToProps = props; + proxy.dependsOnOwnProps = getDependsOnOwnProps(props); + props = proxy(stateOrDispatch, ownProps); + } + + if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName); + return props; + }; + + return proxy; + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/es/exports.js b/node_modules/react-redux/es/exports.js new file mode 100644 index 00000000..eb5bf539 --- /dev/null +++ b/node_modules/react-redux/es/exports.js @@ -0,0 +1,9 @@ +import Provider from './components/Provider'; +import connectAdvanced from './components/connectAdvanced'; +import { ReactReduxContext } from './components/Context'; +import connect from './connect/connect'; +import { useDispatch, createDispatchHook } from './hooks/useDispatch'; +import { useSelector, createSelectorHook } from './hooks/useSelector'; +import { useStore, createStoreHook } from './hooks/useStore'; +import shallowEqual from './utils/shallowEqual'; +export { Provider, connectAdvanced, ReactReduxContext, connect, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual }; \ No newline at end of file diff --git a/node_modules/react-redux/es/hooks/useDispatch.js b/node_modules/react-redux/es/hooks/useDispatch.js new file mode 100644 index 00000000..6c571e55 --- /dev/null +++ b/node_modules/react-redux/es/hooks/useDispatch.js @@ -0,0 +1,43 @@ +import { ReactReduxContext } from '../components/Context'; +import { useStore as useDefaultStore, createStoreHook } from './useStore'; +/** + * Hook factory, which creates a `useDispatch` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useDispatch` hook bound to the specified context. + */ + +export function createDispatchHook(context) { + if (context === void 0) { + context = ReactReduxContext; + } + + var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context); + return function useDispatch() { + var store = useStore(); + return store.dispatch; + }; +} +/** + * A hook to access the redux `dispatch` function. + * + * @returns {any|function} redux store's `dispatch` function + * + * @example + * + * import React, { useCallback } from 'react' + * import { useDispatch } from 'react-redux' + * + * export const CounterComponent = ({ value }) => { + * const dispatch = useDispatch() + * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), []) + * return ( + *
    + * {value} + * + *
    + * ) + * } + */ + +export var useDispatch = /*#__PURE__*/createDispatchHook(); \ No newline at end of file diff --git a/node_modules/react-redux/es/hooks/useReduxContext.js b/node_modules/react-redux/es/hooks/useReduxContext.js new file mode 100644 index 00000000..575677b4 --- /dev/null +++ b/node_modules/react-redux/es/hooks/useReduxContext.js @@ -0,0 +1,28 @@ +import { useContext } from 'react'; +import { ReactReduxContext } from '../components/Context'; +/** + * A hook to access the value of the `ReactReduxContext`. This is a low-level + * hook that you should usually not need to call directly. + * + * @returns {any} the value of the `ReactReduxContext` + * + * @example + * + * import React from 'react' + * import { useReduxContext } from 'react-redux' + * + * export const CounterComponent = ({ value }) => { + * const { store } = useReduxContext() + * return
    {store.getState()}
    + * } + */ + +export function useReduxContext() { + var contextValue = useContext(ReactReduxContext); + + if (process.env.NODE_ENV !== 'production' && !contextValue) { + throw new Error('could not find react-redux context value; please ensure the component is wrapped in a '); + } + + return contextValue; +} \ No newline at end of file diff --git a/node_modules/react-redux/es/hooks/useSelector.js b/node_modules/react-redux/es/hooks/useSelector.js new file mode 100644 index 00000000..c53d301c --- /dev/null +++ b/node_modules/react-redux/es/hooks/useSelector.js @@ -0,0 +1,158 @@ +import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react'; +import { useReduxContext as useDefaultReduxContext } from './useReduxContext'; +import { createSubscription } from '../utils/Subscription'; +import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect'; +import { ReactReduxContext } from '../components/Context'; + +var refEquality = function refEquality(a, b) { + return a === b; +}; + +function useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) { + var _useReducer = useReducer(function (s) { + return s + 1; + }, 0), + forceRender = _useReducer[1]; + + var subscription = useMemo(function () { + return createSubscription(store, contextSub); + }, [store, contextSub]); + var latestSubscriptionCallbackError = useRef(); + var latestSelector = useRef(); + var latestStoreState = useRef(); + var latestSelectedState = useRef(); + var storeState = store.getState(); + var selectedState; + + try { + if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) { + var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references + + if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) { + selectedState = newSelectedState; + } else { + selectedState = latestSelectedState.current; + } + } else { + selectedState = latestSelectedState.current; + } + } catch (err) { + if (latestSubscriptionCallbackError.current) { + err.message += "\nThe error may be correlated with this previous error:\n" + latestSubscriptionCallbackError.current.stack + "\n\n"; + } + + throw err; + } + + useIsomorphicLayoutEffect(function () { + latestSelector.current = selector; + latestStoreState.current = storeState; + latestSelectedState.current = selectedState; + latestSubscriptionCallbackError.current = undefined; + }); + useIsomorphicLayoutEffect(function () { + function checkForUpdates() { + try { + var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed + + if (newStoreState === latestStoreState.current) { + return; + } + + var _newSelectedState = latestSelector.current(newStoreState); + + if (equalityFn(_newSelectedState, latestSelectedState.current)) { + return; + } + + latestSelectedState.current = _newSelectedState; + latestStoreState.current = newStoreState; + } catch (err) { + // we ignore all errors here, since when the component + // is re-rendered, the selectors are called again, and + // will throw again, if neither props nor store state + // changed + latestSubscriptionCallbackError.current = err; + } + + forceRender(); + } + + subscription.onStateChange = checkForUpdates; + subscription.trySubscribe(); + checkForUpdates(); + return function () { + return subscription.tryUnsubscribe(); + }; + }, [store, subscription]); + return selectedState; +} +/** + * Hook factory, which creates a `useSelector` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useSelector` hook bound to the specified context. + */ + + +export function createSelectorHook(context) { + if (context === void 0) { + context = ReactReduxContext; + } + + var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () { + return useContext(context); + }; + return function useSelector(selector, equalityFn) { + if (equalityFn === void 0) { + equalityFn = refEquality; + } + + if (process.env.NODE_ENV !== 'production') { + if (!selector) { + throw new Error("You must pass a selector to useSelector"); + } + + if (typeof selector !== 'function') { + throw new Error("You must pass a function as a selector to useSelector"); + } + + if (typeof equalityFn !== 'function') { + throw new Error("You must pass a function as an equality function to useSelector"); + } + } + + var _useReduxContext = useReduxContext(), + store = _useReduxContext.store, + contextSub = _useReduxContext.subscription; + + var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub); + useDebugValue(selectedState); + return selectedState; + }; +} +/** + * A hook to access the redux store's state. This hook takes a selector function + * as an argument. The selector is called with the store state. + * + * This hook takes an optional equality comparison function as the second parameter + * that allows you to customize the way the selected state is compared to determine + * whether the component needs to be re-rendered. + * + * @param {Function} selector the selector function + * @param {Function=} equalityFn the function that will be used to determine equality + * + * @returns {any} the selected state + * + * @example + * + * import React from 'react' + * import { useSelector } from 'react-redux' + * + * export const CounterComponent = () => { + * const counter = useSelector(state => state.counter) + * return
    {counter}
    + * } + */ + +export var useSelector = /*#__PURE__*/createSelectorHook(); \ No newline at end of file diff --git a/node_modules/react-redux/es/hooks/useStore.js b/node_modules/react-redux/es/hooks/useStore.js new file mode 100644 index 00000000..b2244e1d --- /dev/null +++ b/node_modules/react-redux/es/hooks/useStore.js @@ -0,0 +1,42 @@ +import { useContext } from 'react'; +import { ReactReduxContext } from '../components/Context'; +import { useReduxContext as useDefaultReduxContext } from './useReduxContext'; +/** + * Hook factory, which creates a `useStore` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useStore` hook bound to the specified context. + */ + +export function createStoreHook(context) { + if (context === void 0) { + context = ReactReduxContext; + } + + var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () { + return useContext(context); + }; + return function useStore() { + var _useReduxContext = useReduxContext(), + store = _useReduxContext.store; + + return store; + }; +} +/** + * A hook to access the redux store. + * + * @returns {any} the redux store + * + * @example + * + * import React from 'react' + * import { useStore } from 'react-redux' + * + * export const ExampleComponent = () => { + * const store = useStore() + * return
    {store.getState()}
    + * } + */ + +export var useStore = /*#__PURE__*/createStoreHook(); \ No newline at end of file diff --git a/node_modules/react-redux/es/index.js b/node_modules/react-redux/es/index.js new file mode 100644 index 00000000..f3c548a6 --- /dev/null +++ b/node_modules/react-redux/es/index.js @@ -0,0 +1,7 @@ +export * from './exports'; +import { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates'; +import { setBatch } from './utils/batch'; // Enable batched updates in our subscriptions for use +// with standard React renderers (ReactDOM, React Native) + +setBatch(batch); +export { batch }; \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/Subscription.js b/node_modules/react-redux/es/utils/Subscription.js new file mode 100644 index 00000000..c921bbe3 --- /dev/null +++ b/node_modules/react-redux/es/utils/Subscription.js @@ -0,0 +1,126 @@ +import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as +// well as nesting subscriptions of descendant components, so that we can ensure the +// ancestor components re-render before descendants + +function createListenerCollection() { + var batch = getBatch(); + var first = null; + var last = null; + return { + clear: function clear() { + first = null; + last = null; + }, + notify: function notify() { + batch(function () { + var listener = first; + + while (listener) { + listener.callback(); + listener = listener.next; + } + }); + }, + get: function get() { + var listeners = []; + var listener = first; + + while (listener) { + listeners.push(listener); + listener = listener.next; + } + + return listeners; + }, + subscribe: function subscribe(callback) { + var isSubscribed = true; + var listener = last = { + callback: callback, + next: null, + prev: last + }; + + if (listener.prev) { + listener.prev.next = listener; + } else { + first = listener; + } + + return function unsubscribe() { + if (!isSubscribed || first === null) return; + isSubscribed = false; + + if (listener.next) { + listener.next.prev = listener.prev; + } else { + last = listener.prev; + } + + if (listener.prev) { + listener.prev.next = listener.next; + } else { + first = listener.next; + } + }; + } + }; +} + +var nullListeners = { + notify: function notify() {}, + get: function get() { + return []; + } +}; +export function createSubscription(store, parentSub) { + var unsubscribe; + var listeners = nullListeners; + + function addNestedSub(listener) { + trySubscribe(); + return listeners.subscribe(listener); + } + + function notifyNestedSubs() { + listeners.notify(); + } + + function handleChangeWrapper() { + if (subscription.onStateChange) { + subscription.onStateChange(); + } + } + + function isSubscribed() { + return Boolean(unsubscribe); + } + + function trySubscribe() { + if (!unsubscribe) { + unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper); + listeners = createListenerCollection(); + } + } + + function tryUnsubscribe() { + if (unsubscribe) { + unsubscribe(); + unsubscribe = undefined; + listeners.clear(); + listeners = nullListeners; + } + } + + var subscription = { + addNestedSub: addNestedSub, + notifyNestedSubs: notifyNestedSubs, + handleChangeWrapper: handleChangeWrapper, + isSubscribed: isSubscribed, + trySubscribe: trySubscribe, + tryUnsubscribe: tryUnsubscribe, + getListeners: function getListeners() { + return listeners; + } + }; + return subscription; +} \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/batch.js b/node_modules/react-redux/es/utils/batch.js new file mode 100644 index 00000000..4fe1ccf4 --- /dev/null +++ b/node_modules/react-redux/es/utils/batch.js @@ -0,0 +1,14 @@ +// Default to a dummy "batch" implementation that just runs the callback +function defaultNoopBatch(callback) { + callback(); +} + +var batch = defaultNoopBatch; // Allow injecting another batching function later + +export var setBatch = function setBatch(newBatch) { + return batch = newBatch; +}; // Supply a getter just to skip dealing with ESM bindings + +export var getBatch = function getBatch() { + return batch; +}; \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/bindActionCreators.js b/node_modules/react-redux/es/utils/bindActionCreators.js new file mode 100644 index 00000000..1ba617e4 --- /dev/null +++ b/node_modules/react-redux/es/utils/bindActionCreators.js @@ -0,0 +1,19 @@ +export default function bindActionCreators(actionCreators, dispatch) { + var boundActionCreators = {}; + + var _loop = function _loop(key) { + var actionCreator = actionCreators[key]; + + if (typeof actionCreator === 'function') { + boundActionCreators[key] = function () { + return dispatch(actionCreator.apply(void 0, arguments)); + }; + } + }; + + for (var key in actionCreators) { + _loop(key); + } + + return boundActionCreators; +} \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/isPlainObject.js b/node_modules/react-redux/es/utils/isPlainObject.js new file mode 100644 index 00000000..4d83cd44 --- /dev/null +++ b/node_modules/react-redux/es/utils/isPlainObject.js @@ -0,0 +1,16 @@ +/** + * @param {any} obj The object to inspect. + * @returns {boolean} True if the argument appears to be a plain object. + */ +export default function isPlainObject(obj) { + if (typeof obj !== 'object' || obj === null) return false; + var proto = Object.getPrototypeOf(obj); + if (proto === null) return true; + var baseProto = proto; + + while (Object.getPrototypeOf(baseProto) !== null) { + baseProto = Object.getPrototypeOf(baseProto); + } + + return proto === baseProto; +} \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/reactBatchedUpdates.js b/node_modules/react-redux/es/utils/reactBatchedUpdates.js new file mode 100644 index 00000000..0a75f7f4 --- /dev/null +++ b/node_modules/react-redux/es/utils/reactBatchedUpdates.js @@ -0,0 +1,2 @@ +/* eslint-disable import/no-unresolved */ +export { unstable_batchedUpdates } from 'react-dom'; \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/reactBatchedUpdates.native.js b/node_modules/react-redux/es/utils/reactBatchedUpdates.native.js new file mode 100644 index 00000000..9aa3f43c --- /dev/null +++ b/node_modules/react-redux/es/utils/reactBatchedUpdates.native.js @@ -0,0 +1,3 @@ +/* eslint-disable import/named */ +import { unstable_batchedUpdates } from 'react-native'; +export { unstable_batchedUpdates }; \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/shallowEqual.js b/node_modules/react-redux/es/utils/shallowEqual.js new file mode 100644 index 00000000..76c942a2 --- /dev/null +++ b/node_modules/react-redux/es/utils/shallowEqual.js @@ -0,0 +1,27 @@ +function is(x, y) { + if (x === y) { + return x !== 0 || y !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } +} + +export default function shallowEqual(objA, objB) { + if (is(objA, objB)) return true; + + if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + if (keysA.length !== keysB.length) return false; + + for (var i = 0; i < keysA.length; i++) { + if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { + return false; + } + } + + return true; +} \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js b/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js new file mode 100644 index 00000000..2242a85c --- /dev/null +++ b/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js @@ -0,0 +1,10 @@ +import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server. +// To get around it, we can conditionally useEffect on the server (no-op) and +// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store +// subscription callback always has the selector from the latest render commit +// available, otherwise a store update may happen between render and the effect, +// which may cause missed updates; we also must ensure the store subscription +// is created synchronously, otherwise a store update may occur before the +// subscription is created and an inconsistent state may be observed + +export var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect; \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.native.js b/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.native.js new file mode 100644 index 00000000..2137cb1a --- /dev/null +++ b/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.native.js @@ -0,0 +1,3 @@ +import { useLayoutEffect } from 'react'; // Under React Native, we know that we always want to use useLayoutEffect + +export var useIsomorphicLayoutEffect = useLayoutEffect; \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/verifyPlainObject.js b/node_modules/react-redux/es/utils/verifyPlainObject.js new file mode 100644 index 00000000..93cbbace --- /dev/null +++ b/node_modules/react-redux/es/utils/verifyPlainObject.js @@ -0,0 +1,7 @@ +import isPlainObject from './isPlainObject'; +import warning from './warning'; +export default function verifyPlainObject(value, displayName, methodName) { + if (!isPlainObject(value)) { + warning(methodName + "() in " + displayName + " must return a plain object. Instead received " + value + "."); + } +} \ No newline at end of file diff --git a/node_modules/react-redux/es/utils/warning.js b/node_modules/react-redux/es/utils/warning.js new file mode 100644 index 00000000..ea8d7f93 --- /dev/null +++ b/node_modules/react-redux/es/utils/warning.js @@ -0,0 +1,24 @@ +/** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ +export default function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + + + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + /* eslint-disable no-empty */ + } catch (e) {} + /* eslint-enable no-empty */ + +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/alternate-renderers.js b/node_modules/react-redux/lib/alternate-renderers.js new file mode 100644 index 00000000..602f0b3b --- /dev/null +++ b/node_modules/react-redux/lib/alternate-renderers.js @@ -0,0 +1,23 @@ +"use strict"; + +exports.__esModule = true; +var _exportNames = { + batch: true +}; +exports.batch = void 0; + +var _exports = require("./exports"); + +Object.keys(_exports).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _exports[key]) return; + exports[key] = _exports[key]; +}); + +var _batch = require("./utils/batch"); + +// For other renderers besides ReactDOM and React Native, +// use the default noop batch function +var batch = (0, _batch.getBatch)(); +exports.batch = batch; \ No newline at end of file diff --git a/node_modules/react-redux/lib/components/Context.js b/node_modules/react-redux/lib/components/Context.js new file mode 100644 index 00000000..e1abd491 --- /dev/null +++ b/node_modules/react-redux/lib/components/Context.js @@ -0,0 +1,19 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +exports.__esModule = true; +exports["default"] = exports.ReactReduxContext = void 0; + +var _react = _interopRequireDefault(require("react")); + +var ReactReduxContext = /*#__PURE__*/_react["default"].createContext(null); + +exports.ReactReduxContext = ReactReduxContext; + +if (process.env.NODE_ENV !== 'production') { + ReactReduxContext.displayName = 'ReactRedux'; +} + +var _default = ReactReduxContext; +exports["default"] = _default; \ No newline at end of file diff --git a/node_modules/react-redux/lib/components/Provider.js b/node_modules/react-redux/lib/components/Provider.js new file mode 100644 index 00000000..53b56b5b --- /dev/null +++ b/node_modules/react-redux/lib/components/Provider.js @@ -0,0 +1,67 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; + +exports.__esModule = true; +exports["default"] = void 0; + +var _react = _interopRequireWildcard(require("react")); + +var _propTypes = _interopRequireDefault(require("prop-types")); + +var _Context = require("./Context"); + +var _Subscription = require("../utils/Subscription"); + +var _useIsomorphicLayoutEffect = require("../utils/useIsomorphicLayoutEffect"); + +function Provider(_ref) { + var store = _ref.store, + context = _ref.context, + children = _ref.children; + var contextValue = (0, _react.useMemo)(function () { + var subscription = (0, _Subscription.createSubscription)(store); + return { + store: store, + subscription: subscription + }; + }, [store]); + var previousState = (0, _react.useMemo)(function () { + return store.getState(); + }, [store]); + (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () { + var subscription = contextValue.subscription; + subscription.onStateChange = subscription.notifyNestedSubs; + subscription.trySubscribe(); + + if (previousState !== store.getState()) { + subscription.notifyNestedSubs(); + } + + return function () { + subscription.tryUnsubscribe(); + subscription.onStateChange = null; + }; + }, [contextValue, previousState]); + var Context = context || _Context.ReactReduxContext; + return /*#__PURE__*/_react["default"].createElement(Context.Provider, { + value: contextValue + }, children); +} + +if (process.env.NODE_ENV !== 'production') { + Provider.propTypes = { + store: _propTypes["default"].shape({ + subscribe: _propTypes["default"].func.isRequired, + dispatch: _propTypes["default"].func.isRequired, + getState: _propTypes["default"].func.isRequired + }), + context: _propTypes["default"].object, + children: _propTypes["default"].any + }; +} + +var _default = Provider; +exports["default"] = _default; \ No newline at end of file diff --git a/node_modules/react-redux/lib/components/connectAdvanced.js b/node_modules/react-redux/lib/components/connectAdvanced.js new file mode 100644 index 00000000..ffad444a --- /dev/null +++ b/node_modules/react-redux/lib/components/connectAdvanced.js @@ -0,0 +1,392 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; + +exports.__esModule = true; +exports["default"] = connectAdvanced; + +var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); + +var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); + +var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics")); + +var _react = _interopRequireWildcard(require("react")); + +var _reactIs = require("react-is"); + +var _Subscription = require("../utils/Subscription"); + +var _useIsomorphicLayoutEffect = require("../utils/useIsomorphicLayoutEffect"); + +var _Context = require("./Context"); + +var _excluded = ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"], + _excluded2 = ["reactReduxForwardedRef"]; +// Define some constant arrays just to avoid re-creating these +var EMPTY_ARRAY = []; +var NO_SUBSCRIPTION_ARRAY = [null, null]; + +var stringifyComponent = function stringifyComponent(Comp) { + try { + return JSON.stringify(Comp); + } catch (err) { + return String(Comp); + } +}; + +function storeStateUpdatesReducer(state, action) { + var updateCount = state[1]; + return [action.payload, updateCount + 1]; +} + +function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) { + (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () { + return effectFunc.apply(void 0, effectArgs); + }, dependencies); +} + +function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) { + // We want to capture the wrapper props and child props we used for later comparisons + lastWrapperProps.current = wrapperProps; + lastChildProps.current = actualChildProps; + renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update + + if (childPropsFromStoreUpdate.current) { + childPropsFromStoreUpdate.current = null; + notifyNestedSubs(); + } +} + +function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) { + // If we're not subscribed to the store, nothing to do here + if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts + + var didUnsubscribe = false; + var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component + + var checkForUpdates = function checkForUpdates() { + if (didUnsubscribe) { + // Don't run stale listeners. + // Redux doesn't guarantee unsubscriptions happen until next dispatch. + return; + } + + var latestStoreState = store.getState(); + var newChildProps, error; + + try { + // Actually run the selector with the most recent store state and wrapper props + // to determine what the child props should be + newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current); + } catch (e) { + error = e; + lastThrownError = e; + } + + if (!error) { + lastThrownError = null; + } // If the child props haven't changed, nothing to do here - cascade the subscription update + + + if (newChildProps === lastChildProps.current) { + if (!renderIsScheduled.current) { + notifyNestedSubs(); + } + } else { + // Save references to the new child props. Note that we track the "child props from store update" + // as a ref instead of a useState/useReducer because we need a way to determine if that value has + // been processed. If this went into useState/useReducer, we couldn't clear out the value without + // forcing another re-render, which we don't want. + lastChildProps.current = newChildProps; + childPropsFromStoreUpdate.current = newChildProps; + renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render + + forceComponentUpdateDispatch({ + type: 'STORE_UPDATED', + payload: { + error: error + } + }); + } + }; // Actually subscribe to the nearest connected ancestor (or store) + + + subscription.onStateChange = checkForUpdates; + subscription.trySubscribe(); // Pull data from the store after first render in case the store has + // changed since we began. + + checkForUpdates(); + + var unsubscribeWrapper = function unsubscribeWrapper() { + didUnsubscribe = true; + subscription.tryUnsubscribe(); + subscription.onStateChange = null; + + if (lastThrownError) { + // It's possible that we caught an error due to a bad mapState function, but the + // parent re-rendered without this component and we're about to unmount. + // This shouldn't happen as long as we do top-down subscriptions correctly, but + // if we ever do those wrong, this throw will surface the error in our tests. + // In that case, throw the error from here so it doesn't get lost. + throw lastThrownError; + } + }; + + return unsubscribeWrapper; +} + +var initStateUpdates = function initStateUpdates() { + return [null, 0]; +}; + +function connectAdvanced( +/* + selectorFactory is a func that is responsible for returning the selector function used to + compute new props from state, props, and dispatch. For example: + export default connectAdvanced((dispatch, options) => (state, props) => ({ + thing: state.things[props.thingId], + saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)), + }))(YourComponent) + Access to dispatch is provided to the factory so selectorFactories can bind actionCreators + outside of their selector as an optimization. Options passed to connectAdvanced are passed to + the selectorFactory, along with displayName and WrappedComponent, as the second argument. + Note that selectorFactory is responsible for all caching/memoization of inbound and outbound + props. Do not use connectAdvanced directly without memoizing results between calls to your + selector, otherwise the Connect component will re-render on every state or props change. +*/ +selectorFactory, // options object: +_ref) { + if (_ref === void 0) { + _ref = {}; + } + + var _ref2 = _ref, + _ref2$getDisplayName = _ref2.getDisplayName, + getDisplayName = _ref2$getDisplayName === void 0 ? function (name) { + return "ConnectAdvanced(" + name + ")"; + } : _ref2$getDisplayName, + _ref2$methodName = _ref2.methodName, + methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName, + _ref2$renderCountProp = _ref2.renderCountProp, + renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp, + _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges, + shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta, + _ref2$storeKey = _ref2.storeKey, + storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey, + _ref2$withRef = _ref2.withRef, + withRef = _ref2$withRef === void 0 ? false : _ref2$withRef, + _ref2$forwardRef = _ref2.forwardRef, + forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef, + _ref2$context = _ref2.context, + context = _ref2$context === void 0 ? _Context.ReactReduxContext : _ref2$context, + connectOptions = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, _excluded); + + if (process.env.NODE_ENV !== 'production') { + if (renderCountProp !== undefined) { + throw new Error("renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension"); + } + + if (withRef) { + throw new Error('withRef is removed. To access the wrapped instance, use a ref on the connected component'); + } + + var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + "React.createContext(), and pass the context object to React Redux's Provider and specific components" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect'; + + if (storeKey !== 'store') { + throw new Error('storeKey has been removed and does not do anything. ' + customStoreWarningMessage); + } + } + + var Context = context; + return function wrapWithConnect(WrappedComponent) { + if (process.env.NODE_ENV !== 'production' && !(0, _reactIs.isValidElementType)(WrappedComponent)) { + throw new Error("You must pass a component to the function returned by " + (methodName + ". Instead received " + stringifyComponent(WrappedComponent))); + } + + var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component'; + var displayName = getDisplayName(wrappedComponentName); + var selectorFactoryOptions = (0, _extends2["default"])({}, connectOptions, { + getDisplayName: getDisplayName, + methodName: methodName, + renderCountProp: renderCountProp, + shouldHandleStateChanges: shouldHandleStateChanges, + storeKey: storeKey, + displayName: displayName, + wrappedComponentName: wrappedComponentName, + WrappedComponent: WrappedComponent + }); + var pure = connectOptions.pure; + + function createChildSelector(store) { + return selectorFactory(store.dispatch, selectorFactoryOptions); + } // If we aren't running in "pure" mode, we don't want to memoize values. + // To avoid conditionally calling hooks, we fall back to a tiny wrapper + // that just executes the given callback immediately. + + + var usePureOnlyMemo = pure ? _react.useMemo : function (callback) { + return callback(); + }; + + function ConnectFunction(props) { + var _useMemo = (0, _react.useMemo)(function () { + // Distinguish between actual "data" props that were passed to the wrapper component, + // and values needed to control behavior (forwarded refs, alternate context instances). + // To maintain the wrapperProps object reference, memoize this destructuring. + var reactReduxForwardedRef = props.reactReduxForwardedRef, + wrapperProps = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded2); + return [props.context, reactReduxForwardedRef, wrapperProps]; + }, [props]), + propsContext = _useMemo[0], + reactReduxForwardedRef = _useMemo[1], + wrapperProps = _useMemo[2]; + + var ContextToUse = (0, _react.useMemo)(function () { + // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext. + // Memoize the check that determines which context instance we should use. + return propsContext && propsContext.Consumer && (0, _reactIs.isContextConsumer)( /*#__PURE__*/_react["default"].createElement(propsContext.Consumer, null)) ? propsContext : Context; + }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available + + var contextValue = (0, _react.useContext)(ContextToUse); // The store _must_ exist as either a prop or in context. + // We'll check to see if it _looks_ like a Redux store first. + // This allows us to pass through a `store` prop that is just a plain value. + + var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch); + var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store); + + if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) { + throw new Error("Could not find \"store\" in the context of " + ("\"" + displayName + "\". Either wrap the root component in a , ") + "or pass a custom React context provider to and the corresponding " + ("React context consumer to " + displayName + " in connect options.")); + } // Based on the previous check, one of these must be true + + + var store = didStoreComeFromProps ? props.store : contextValue.store; + var childPropsSelector = (0, _react.useMemo)(function () { + // The child props selector needs the store reference as an input. + // Re-create this selector whenever the store changes. + return createChildSelector(store); + }, [store]); + + var _useMemo2 = (0, _react.useMemo)(function () { + if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + + // This Subscription's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + var subscription = (0, _Subscription.createSubscription)(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `subscription` will then be null. This can + // probably be avoided if Subscription's listeners logic is changed to not call listeners + // that have been unsubscribed in the middle of the notification loop. + + // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `subscription` will then be null. This can + // probably be avoided if Subscription's listeners logic is changed to not call listeners + // that have been unsubscribed in the middle of the notification loop. + var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription); + return [subscription, notifyNestedSubs]; + }, [store, didStoreComeFromProps, contextValue]), + subscription = _useMemo2[0], + notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary, + // and memoize that value to avoid unnecessary context updates. + + + var overriddenContextValue = (0, _react.useMemo)(function () { + if (didStoreComeFromProps) { + // This component is directly subscribed to a store from props. + // We don't want descendants reading from this store - pass down whatever + // the existing context value is from the nearest connected ancestor. + return contextValue; + } // Otherwise, put this component's subscription instance into context, so that + // connected descendants won't update until after this component is done + + + return (0, _extends2["default"])({}, contextValue, { + subscription: subscription + }); + }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update + // causes a change to the calculated child component props (or we caught an error in mapState) + + var _useReducer = (0, _react.useReducer)(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates), + _useReducer$ = _useReducer[0], + previousStateUpdateResult = _useReducer$[0], + forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards + + + if (previousStateUpdateResult && previousStateUpdateResult.error) { + throw previousStateUpdateResult.error; + } // Set up refs to coordinate values between the subscription effect and the render logic + + + var lastChildProps = (0, _react.useRef)(); + var lastWrapperProps = (0, _react.useRef)(wrapperProps); + var childPropsFromStoreUpdate = (0, _react.useRef)(); + var renderIsScheduled = (0, _react.useRef)(false); + var actualChildProps = usePureOnlyMemo(function () { + // Tricky logic here: + // - This render may have been triggered by a Redux store update that produced new child props + // - However, we may have gotten new wrapper props after that + // If we have new child props, and the same wrapper props, we know we should use the new child props as-is. + // But, if we have new wrapper props, those might change the child props, so we have to recalculate things. + // So, we'll use the child props from store update only if the wrapper props are the same as last time. + if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) { + return childPropsFromStoreUpdate.current; + } // TODO We're reading the store directly in render() here. Bad idea? + // This will likely cause Bad Things (TM) to happen in Concurrent Mode. + // Note that we do this because on renders _not_ caused by store updates, we need the latest store state + // to determine what the child props should be. + + + return childPropsSelector(store.getState(), wrapperProps); + }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns + // about useLayoutEffect in SSR, so we try to detect environment and fall back to + // just useEffect instead to avoid the warning, since neither will run anyway. + + useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes + + useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component. + // We memoize the elements for the rendered child component as an optimization. + + var renderedWrappedComponent = (0, _react.useMemo)(function () { + return /*#__PURE__*/_react["default"].createElement(WrappedComponent, (0, _extends2["default"])({}, actualChildProps, { + ref: reactReduxForwardedRef + })); + }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering + // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate. + + var renderedChild = (0, _react.useMemo)(function () { + if (shouldHandleStateChanges) { + // If this component is subscribed to store updates, we need to pass its own + // subscription instance down to our descendants. That means rendering the same + // Context instance, and putting a different value into the context. + return /*#__PURE__*/_react["default"].createElement(ContextToUse.Provider, { + value: overriddenContextValue + }, renderedWrappedComponent); + } + + return renderedWrappedComponent; + }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]); + return renderedChild; + } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed. + + + var Connect = pure ? _react["default"].memo(ConnectFunction) : ConnectFunction; + Connect.WrappedComponent = WrappedComponent; + Connect.displayName = ConnectFunction.displayName = displayName; + + if (forwardRef) { + var forwarded = _react["default"].forwardRef(function forwardConnectRef(props, ref) { + return /*#__PURE__*/_react["default"].createElement(Connect, (0, _extends2["default"])({}, props, { + reactReduxForwardedRef: ref + })); + }); + + forwarded.displayName = displayName; + forwarded.WrappedComponent = WrappedComponent; + return (0, _hoistNonReactStatics["default"])(forwarded, WrappedComponent); + } + + return (0, _hoistNonReactStatics["default"])(Connect, WrappedComponent); + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/connect/connect.js b/node_modules/react-redux/lib/connect/connect.js new file mode 100644 index 00000000..da5b6562 --- /dev/null +++ b/node_modules/react-redux/lib/connect/connect.js @@ -0,0 +1,117 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +exports.__esModule = true; +exports.createConnect = createConnect; +exports["default"] = void 0; + +var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); + +var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); + +var _connectAdvanced = _interopRequireDefault(require("../components/connectAdvanced")); + +var _shallowEqual = _interopRequireDefault(require("../utils/shallowEqual")); + +var _mapDispatchToProps = _interopRequireDefault(require("./mapDispatchToProps")); + +var _mapStateToProps = _interopRequireDefault(require("./mapStateToProps")); + +var _mergeProps = _interopRequireDefault(require("./mergeProps")); + +var _selectorFactory = _interopRequireDefault(require("./selectorFactory")); + +var _excluded = ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]; + +/* + connect is a facade over connectAdvanced. It turns its args into a compatible + selectorFactory, which has the signature: + + (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps + + connect passes its args to connectAdvanced as options, which will in turn pass them to + selectorFactory each time a Connect component instance is instantiated or hot reloaded. + + selectorFactory returns a final props selector from its mapStateToProps, + mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps, + mergePropsFactories, and pure args. + + The resulting final props selector is called by the Connect component instance whenever + it receives new props or store state. + */ +function match(arg, factories, name) { + for (var i = factories.length - 1; i >= 0; i--) { + var result = factories[i](arg); + if (result) return result; + } + + return function (dispatch, options) { + throw new Error("Invalid value of type " + typeof arg + " for " + name + " argument when connecting component " + options.wrappedComponentName + "."); + }; +} + +function strictEqual(a, b) { + return a === b; +} // createConnect with default args builds the 'official' connect behavior. Calling it with +// different options opens up some testing and extensibility scenarios + + +function createConnect(_temp) { + var _ref = _temp === void 0 ? {} : _temp, + _ref$connectHOC = _ref.connectHOC, + connectHOC = _ref$connectHOC === void 0 ? _connectAdvanced["default"] : _ref$connectHOC, + _ref$mapStateToPropsF = _ref.mapStateToPropsFactories, + mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? _mapStateToProps["default"] : _ref$mapStateToPropsF, + _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories, + mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? _mapDispatchToProps["default"] : _ref$mapDispatchToPro, + _ref$mergePropsFactor = _ref.mergePropsFactories, + mergePropsFactories = _ref$mergePropsFactor === void 0 ? _mergeProps["default"] : _ref$mergePropsFactor, + _ref$selectorFactory = _ref.selectorFactory, + selectorFactory = _ref$selectorFactory === void 0 ? _selectorFactory["default"] : _ref$selectorFactory; + + return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) { + if (_ref2 === void 0) { + _ref2 = {}; + } + + var _ref3 = _ref2, + _ref3$pure = _ref3.pure, + pure = _ref3$pure === void 0 ? true : _ref3$pure, + _ref3$areStatesEqual = _ref3.areStatesEqual, + areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual, + _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual, + areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? _shallowEqual["default"] : _ref3$areOwnPropsEqua, + _ref3$areStatePropsEq = _ref3.areStatePropsEqual, + areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? _shallowEqual["default"] : _ref3$areStatePropsEq, + _ref3$areMergedPropsE = _ref3.areMergedPropsEqual, + areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? _shallowEqual["default"] : _ref3$areMergedPropsE, + extraOptions = (0, _objectWithoutPropertiesLoose2["default"])(_ref3, _excluded); + var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps'); + var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps'); + var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps'); + return connectHOC(selectorFactory, (0, _extends2["default"])({ + // used in error messages + methodName: 'connect', + // used to compute Connect's displayName from the wrapped component's displayName. + getDisplayName: function getDisplayName(name) { + return "Connect(" + name + ")"; + }, + // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes + shouldHandleStateChanges: Boolean(mapStateToProps), + // passed through to selectorFactory + initMapStateToProps: initMapStateToProps, + initMapDispatchToProps: initMapDispatchToProps, + initMergeProps: initMergeProps, + pure: pure, + areStatesEqual: areStatesEqual, + areOwnPropsEqual: areOwnPropsEqual, + areStatePropsEqual: areStatePropsEqual, + areMergedPropsEqual: areMergedPropsEqual + }, extraOptions)); + }; +} + +var _default = /*#__PURE__*/createConnect(); + +exports["default"] = _default; \ No newline at end of file diff --git a/node_modules/react-redux/lib/connect/mapDispatchToProps.js b/node_modules/react-redux/lib/connect/mapDispatchToProps.js new file mode 100644 index 00000000..6656d31e --- /dev/null +++ b/node_modules/react-redux/lib/connect/mapDispatchToProps.js @@ -0,0 +1,34 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +exports.__esModule = true; +exports["default"] = void 0; +exports.whenMapDispatchToPropsIsFunction = whenMapDispatchToPropsIsFunction; +exports.whenMapDispatchToPropsIsMissing = whenMapDispatchToPropsIsMissing; +exports.whenMapDispatchToPropsIsObject = whenMapDispatchToPropsIsObject; + +var _bindActionCreators = _interopRequireDefault(require("../utils/bindActionCreators")); + +var _wrapMapToProps = require("./wrapMapToProps"); + +function whenMapDispatchToPropsIsFunction(mapDispatchToProps) { + return typeof mapDispatchToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapDispatchToProps, 'mapDispatchToProps') : undefined; +} + +function whenMapDispatchToPropsIsMissing(mapDispatchToProps) { + return !mapDispatchToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) { + return { + dispatch: dispatch + }; + }) : undefined; +} + +function whenMapDispatchToPropsIsObject(mapDispatchToProps) { + return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function (dispatch) { + return (0, _bindActionCreators["default"])(mapDispatchToProps, dispatch); + }) : undefined; +} + +var _default = [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]; +exports["default"] = _default; \ No newline at end of file diff --git a/node_modules/react-redux/lib/connect/mapStateToProps.js b/node_modules/react-redux/lib/connect/mapStateToProps.js new file mode 100644 index 00000000..41a90960 --- /dev/null +++ b/node_modules/react-redux/lib/connect/mapStateToProps.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = void 0; +exports.whenMapStateToPropsIsFunction = whenMapStateToPropsIsFunction; +exports.whenMapStateToPropsIsMissing = whenMapStateToPropsIsMissing; + +var _wrapMapToProps = require("./wrapMapToProps"); + +function whenMapStateToPropsIsFunction(mapStateToProps) { + return typeof mapStateToProps === 'function' ? (0, _wrapMapToProps.wrapMapToPropsFunc)(mapStateToProps, 'mapStateToProps') : undefined; +} + +function whenMapStateToPropsIsMissing(mapStateToProps) { + return !mapStateToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(function () { + return {}; + }) : undefined; +} + +var _default = [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]; +exports["default"] = _default; \ No newline at end of file diff --git a/node_modules/react-redux/lib/connect/mergeProps.js b/node_modules/react-redux/lib/connect/mergeProps.js new file mode 100644 index 00000000..1bd4c153 --- /dev/null +++ b/node_modules/react-redux/lib/connect/mergeProps.js @@ -0,0 +1,54 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +exports.__esModule = true; +exports["default"] = void 0; +exports.defaultMergeProps = defaultMergeProps; +exports.whenMergePropsIsFunction = whenMergePropsIsFunction; +exports.whenMergePropsIsOmitted = whenMergePropsIsOmitted; +exports.wrapMergePropsFunc = wrapMergePropsFunc; + +var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); + +var _verifyPlainObject = _interopRequireDefault(require("../utils/verifyPlainObject")); + +function defaultMergeProps(stateProps, dispatchProps, ownProps) { + return (0, _extends2["default"])({}, ownProps, stateProps, dispatchProps); +} + +function wrapMergePropsFunc(mergeProps) { + return function initMergePropsProxy(dispatch, _ref) { + var displayName = _ref.displayName, + pure = _ref.pure, + areMergedPropsEqual = _ref.areMergedPropsEqual; + var hasRunOnce = false; + var mergedProps; + return function mergePropsProxy(stateProps, dispatchProps, ownProps) { + var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps); + + if (hasRunOnce) { + if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps; + } else { + hasRunOnce = true; + mergedProps = nextMergedProps; + if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject["default"])(mergedProps, displayName, 'mergeProps'); + } + + return mergedProps; + }; + }; +} + +function whenMergePropsIsFunction(mergeProps) { + return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined; +} + +function whenMergePropsIsOmitted(mergeProps) { + return !mergeProps ? function () { + return defaultMergeProps; + } : undefined; +} + +var _default = [whenMergePropsIsFunction, whenMergePropsIsOmitted]; +exports["default"] = _default; \ No newline at end of file diff --git a/node_modules/react-redux/lib/connect/selectorFactory.js b/node_modules/react-redux/lib/connect/selectorFactory.js new file mode 100644 index 00000000..51baae9e --- /dev/null +++ b/node_modules/react-redux/lib/connect/selectorFactory.js @@ -0,0 +1,101 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +exports.__esModule = true; +exports["default"] = finalPropsSelectorFactory; +exports.impureFinalPropsSelectorFactory = impureFinalPropsSelectorFactory; +exports.pureFinalPropsSelectorFactory = pureFinalPropsSelectorFactory; + +var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); + +var _verifySubselectors = _interopRequireDefault(require("./verifySubselectors")); + +var _excluded = ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]; + +function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) { + return function impureFinalPropsSelector(state, ownProps) { + return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps); + }; +} + +function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) { + var areStatesEqual = _ref.areStatesEqual, + areOwnPropsEqual = _ref.areOwnPropsEqual, + areStatePropsEqual = _ref.areStatePropsEqual; + var hasRunAtLeastOnce = false; + var state; + var ownProps; + var stateProps; + var dispatchProps; + var mergedProps; + + function handleFirstCall(firstState, firstOwnProps) { + state = firstState; + ownProps = firstOwnProps; + stateProps = mapStateToProps(state, ownProps); + dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + hasRunAtLeastOnce = true; + return mergedProps; + } + + function handleNewPropsAndNewState() { + stateProps = mapStateToProps(state, ownProps); + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewProps() { + if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps); + if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps); + mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleNewState() { + var nextStateProps = mapStateToProps(state, ownProps); + var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps); + stateProps = nextStateProps; + if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps); + return mergedProps; + } + + function handleSubsequentCalls(nextState, nextOwnProps) { + var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps); + var stateChanged = !areStatesEqual(nextState, state); + state = nextState; + ownProps = nextOwnProps; + if (propsChanged && stateChanged) return handleNewPropsAndNewState(); + if (propsChanged) return handleNewProps(); + if (stateChanged) return handleNewState(); + return mergedProps; + } + + return function pureFinalPropsSelector(nextState, nextOwnProps) { + return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps); + }; +} // TODO: Add more comments +// If pure is true, the selector returned by selectorFactory will memoize its results, +// allowing connectAdvanced's shouldComponentUpdate to return false if final +// props have not changed. If false, the selector will always return a new +// object and shouldComponentUpdate will always return true. + + +function finalPropsSelectorFactory(dispatch, _ref2) { + var initMapStateToProps = _ref2.initMapStateToProps, + initMapDispatchToProps = _ref2.initMapDispatchToProps, + initMergeProps = _ref2.initMergeProps, + options = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, _excluded); + var mapStateToProps = initMapStateToProps(dispatch, options); + var mapDispatchToProps = initMapDispatchToProps(dispatch, options); + var mergeProps = initMergeProps(dispatch, options); + + if (process.env.NODE_ENV !== 'production') { + (0, _verifySubselectors["default"])(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName); + } + + var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory; + return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options); +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/connect/verifySubselectors.js b/node_modules/react-redux/lib/connect/verifySubselectors.js new file mode 100644 index 00000000..42d78874 --- /dev/null +++ b/node_modules/react-redux/lib/connect/verifySubselectors.js @@ -0,0 +1,24 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +exports.__esModule = true; +exports["default"] = verifySubselectors; + +var _warning = _interopRequireDefault(require("../utils/warning")); + +function verify(selector, methodName, displayName) { + if (!selector) { + throw new Error("Unexpected value for " + methodName + " in " + displayName + "."); + } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') { + if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) { + (0, _warning["default"])("The selector for " + methodName + " of " + displayName + " did not specify a value for dependsOnOwnProps."); + } + } +} + +function verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, displayName) { + verify(mapStateToProps, 'mapStateToProps', displayName); + verify(mapDispatchToProps, 'mapDispatchToProps', displayName); + verify(mergeProps, 'mergeProps', displayName); +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/connect/wrapMapToProps.js b/node_modules/react-redux/lib/connect/wrapMapToProps.js new file mode 100644 index 00000000..c188da6a --- /dev/null +++ b/node_modules/react-redux/lib/connect/wrapMapToProps.js @@ -0,0 +1,76 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +exports.__esModule = true; +exports.getDependsOnOwnProps = getDependsOnOwnProps; +exports.wrapMapToPropsConstant = wrapMapToPropsConstant; +exports.wrapMapToPropsFunc = wrapMapToPropsFunc; + +var _verifyPlainObject = _interopRequireDefault(require("../utils/verifyPlainObject")); + +function wrapMapToPropsConstant(getConstant) { + return function initConstantSelector(dispatch, options) { + var constant = getConstant(dispatch, options); + + function constantSelector() { + return constant; + } + + constantSelector.dependsOnOwnProps = false; + return constantSelector; + }; +} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args +// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine +// whether mapToProps needs to be invoked when props have changed. +// +// A length of one signals that mapToProps does not depend on props from the parent component. +// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and +// therefore not reporting its length accurately.. + + +function getDependsOnOwnProps(mapToProps) { + return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1; +} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction, +// this function wraps mapToProps in a proxy function which does several things: +// +// * Detects whether the mapToProps function being called depends on props, which +// is used by selectorFactory to decide if it should reinvoke on props changes. +// +// * On first call, handles mapToProps if returns another function, and treats that +// new function as the true mapToProps for subsequent calls. +// +// * On first call, verifies the first result is a plain object, in order to warn +// the developer that their mapToProps function is not returning a valid result. +// + + +function wrapMapToPropsFunc(mapToProps, methodName) { + return function initProxySelector(dispatch, _ref) { + var displayName = _ref.displayName; + + var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) { + return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch); + }; // allow detectFactoryAndVerify to get ownProps + + + proxy.dependsOnOwnProps = true; + + proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) { + proxy.mapToProps = mapToProps; + proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps); + var props = proxy(stateOrDispatch, ownProps); + + if (typeof props === 'function') { + proxy.mapToProps = props; + proxy.dependsOnOwnProps = getDependsOnOwnProps(props); + props = proxy(stateOrDispatch, ownProps); + } + + if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject["default"])(props, displayName, methodName); + return props; + }; + + return proxy; + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/exports.js b/node_modules/react-redux/lib/exports.js new file mode 100644 index 00000000..96c1557b --- /dev/null +++ b/node_modules/react-redux/lib/exports.js @@ -0,0 +1,40 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +exports.__esModule = true; + +var _Provider = _interopRequireDefault(require("./components/Provider")); + +exports.Provider = _Provider["default"]; + +var _connectAdvanced = _interopRequireDefault(require("./components/connectAdvanced")); + +exports.connectAdvanced = _connectAdvanced["default"]; + +var _Context = require("./components/Context"); + +exports.ReactReduxContext = _Context.ReactReduxContext; + +var _connect = _interopRequireDefault(require("./connect/connect")); + +exports.connect = _connect["default"]; + +var _useDispatch = require("./hooks/useDispatch"); + +exports.useDispatch = _useDispatch.useDispatch; +exports.createDispatchHook = _useDispatch.createDispatchHook; + +var _useSelector = require("./hooks/useSelector"); + +exports.useSelector = _useSelector.useSelector; +exports.createSelectorHook = _useSelector.createSelectorHook; + +var _useStore = require("./hooks/useStore"); + +exports.useStore = _useStore.useStore; +exports.createStoreHook = _useStore.createStoreHook; + +var _shallowEqual = _interopRequireDefault(require("./utils/shallowEqual")); + +exports.shallowEqual = _shallowEqual["default"]; \ No newline at end of file diff --git a/node_modules/react-redux/lib/hooks/useDispatch.js b/node_modules/react-redux/lib/hooks/useDispatch.js new file mode 100644 index 00000000..73b41793 --- /dev/null +++ b/node_modules/react-redux/lib/hooks/useDispatch.js @@ -0,0 +1,52 @@ +"use strict"; + +exports.__esModule = true; +exports.createDispatchHook = createDispatchHook; +exports.useDispatch = void 0; + +var _Context = require("../components/Context"); + +var _useStore = require("./useStore"); + +/** + * Hook factory, which creates a `useDispatch` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useDispatch` hook bound to the specified context. + */ +function createDispatchHook(context) { + if (context === void 0) { + context = _Context.ReactReduxContext; + } + + var useStore = context === _Context.ReactReduxContext ? _useStore.useStore : (0, _useStore.createStoreHook)(context); + return function useDispatch() { + var store = useStore(); + return store.dispatch; + }; +} +/** + * A hook to access the redux `dispatch` function. + * + * @returns {any|function} redux store's `dispatch` function + * + * @example + * + * import React, { useCallback } from 'react' + * import { useDispatch } from 'react-redux' + * + * export const CounterComponent = ({ value }) => { + * const dispatch = useDispatch() + * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), []) + * return ( + *
    + * {value} + * + *
    + * ) + * } + */ + + +var useDispatch = /*#__PURE__*/createDispatchHook(); +exports.useDispatch = useDispatch; \ No newline at end of file diff --git a/node_modules/react-redux/lib/hooks/useReduxContext.js b/node_modules/react-redux/lib/hooks/useReduxContext.js new file mode 100644 index 00000000..feaf53f9 --- /dev/null +++ b/node_modules/react-redux/lib/hooks/useReduxContext.js @@ -0,0 +1,34 @@ +"use strict"; + +exports.__esModule = true; +exports.useReduxContext = useReduxContext; + +var _react = require("react"); + +var _Context = require("../components/Context"); + +/** + * A hook to access the value of the `ReactReduxContext`. This is a low-level + * hook that you should usually not need to call directly. + * + * @returns {any} the value of the `ReactReduxContext` + * + * @example + * + * import React from 'react' + * import { useReduxContext } from 'react-redux' + * + * export const CounterComponent = ({ value }) => { + * const { store } = useReduxContext() + * return
    {store.getState()}
    + * } + */ +function useReduxContext() { + var contextValue = (0, _react.useContext)(_Context.ReactReduxContext); + + if (process.env.NODE_ENV !== 'production' && !contextValue) { + throw new Error('could not find react-redux context value; please ensure the component is wrapped in a '); + } + + return contextValue; +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/hooks/useSelector.js b/node_modules/react-redux/lib/hooks/useSelector.js new file mode 100644 index 00000000..198d1253 --- /dev/null +++ b/node_modules/react-redux/lib/hooks/useSelector.js @@ -0,0 +1,170 @@ +"use strict"; + +exports.__esModule = true; +exports.createSelectorHook = createSelectorHook; +exports.useSelector = void 0; + +var _react = require("react"); + +var _useReduxContext2 = require("./useReduxContext"); + +var _Subscription = require("../utils/Subscription"); + +var _useIsomorphicLayoutEffect = require("../utils/useIsomorphicLayoutEffect"); + +var _Context = require("../components/Context"); + +var refEquality = function refEquality(a, b) { + return a === b; +}; + +function useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) { + var _useReducer = (0, _react.useReducer)(function (s) { + return s + 1; + }, 0), + forceRender = _useReducer[1]; + + var subscription = (0, _react.useMemo)(function () { + return (0, _Subscription.createSubscription)(store, contextSub); + }, [store, contextSub]); + var latestSubscriptionCallbackError = (0, _react.useRef)(); + var latestSelector = (0, _react.useRef)(); + var latestStoreState = (0, _react.useRef)(); + var latestSelectedState = (0, _react.useRef)(); + var storeState = store.getState(); + var selectedState; + + try { + if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) { + var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references + + if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) { + selectedState = newSelectedState; + } else { + selectedState = latestSelectedState.current; + } + } else { + selectedState = latestSelectedState.current; + } + } catch (err) { + if (latestSubscriptionCallbackError.current) { + err.message += "\nThe error may be correlated with this previous error:\n" + latestSubscriptionCallbackError.current.stack + "\n\n"; + } + + throw err; + } + + (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () { + latestSelector.current = selector; + latestStoreState.current = storeState; + latestSelectedState.current = selectedState; + latestSubscriptionCallbackError.current = undefined; + }); + (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () { + function checkForUpdates() { + try { + var newStoreState = store.getState(); // Avoid calling selector multiple times if the store's state has not changed + + if (newStoreState === latestStoreState.current) { + return; + } + + var _newSelectedState = latestSelector.current(newStoreState); + + if (equalityFn(_newSelectedState, latestSelectedState.current)) { + return; + } + + latestSelectedState.current = _newSelectedState; + latestStoreState.current = newStoreState; + } catch (err) { + // we ignore all errors here, since when the component + // is re-rendered, the selectors are called again, and + // will throw again, if neither props nor store state + // changed + latestSubscriptionCallbackError.current = err; + } + + forceRender(); + } + + subscription.onStateChange = checkForUpdates; + subscription.trySubscribe(); + checkForUpdates(); + return function () { + return subscription.tryUnsubscribe(); + }; + }, [store, subscription]); + return selectedState; +} +/** + * Hook factory, which creates a `useSelector` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useSelector` hook bound to the specified context. + */ + + +function createSelectorHook(context) { + if (context === void 0) { + context = _Context.ReactReduxContext; + } + + var useReduxContext = context === _Context.ReactReduxContext ? _useReduxContext2.useReduxContext : function () { + return (0, _react.useContext)(context); + }; + return function useSelector(selector, equalityFn) { + if (equalityFn === void 0) { + equalityFn = refEquality; + } + + if (process.env.NODE_ENV !== 'production') { + if (!selector) { + throw new Error("You must pass a selector to useSelector"); + } + + if (typeof selector !== 'function') { + throw new Error("You must pass a function as a selector to useSelector"); + } + + if (typeof equalityFn !== 'function') { + throw new Error("You must pass a function as an equality function to useSelector"); + } + } + + var _useReduxContext = useReduxContext(), + store = _useReduxContext.store, + contextSub = _useReduxContext.subscription; + + var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub); + (0, _react.useDebugValue)(selectedState); + return selectedState; + }; +} +/** + * A hook to access the redux store's state. This hook takes a selector function + * as an argument. The selector is called with the store state. + * + * This hook takes an optional equality comparison function as the second parameter + * that allows you to customize the way the selected state is compared to determine + * whether the component needs to be re-rendered. + * + * @param {Function} selector the selector function + * @param {Function=} equalityFn the function that will be used to determine equality + * + * @returns {any} the selected state + * + * @example + * + * import React from 'react' + * import { useSelector } from 'react-redux' + * + * export const CounterComponent = () => { + * const counter = useSelector(state => state.counter) + * return
    {counter}
    + * } + */ + + +var useSelector = /*#__PURE__*/createSelectorHook(); +exports.useSelector = useSelector; \ No newline at end of file diff --git a/node_modules/react-redux/lib/hooks/useStore.js b/node_modules/react-redux/lib/hooks/useStore.js new file mode 100644 index 00000000..5698064d --- /dev/null +++ b/node_modules/react-redux/lib/hooks/useStore.js @@ -0,0 +1,52 @@ +"use strict"; + +exports.__esModule = true; +exports.createStoreHook = createStoreHook; +exports.useStore = void 0; + +var _react = require("react"); + +var _Context = require("../components/Context"); + +var _useReduxContext2 = require("./useReduxContext"); + +/** + * Hook factory, which creates a `useStore` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useStore` hook bound to the specified context. + */ +function createStoreHook(context) { + if (context === void 0) { + context = _Context.ReactReduxContext; + } + + var useReduxContext = context === _Context.ReactReduxContext ? _useReduxContext2.useReduxContext : function () { + return (0, _react.useContext)(context); + }; + return function useStore() { + var _useReduxContext = useReduxContext(), + store = _useReduxContext.store; + + return store; + }; +} +/** + * A hook to access the redux store. + * + * @returns {any} the redux store + * + * @example + * + * import React from 'react' + * import { useStore } from 'react-redux' + * + * export const ExampleComponent = () => { + * const store = useStore() + * return
    {store.getState()}
    + * } + */ + + +var useStore = /*#__PURE__*/createStoreHook(); +exports.useStore = useStore; \ No newline at end of file diff --git a/node_modules/react-redux/lib/index.js b/node_modules/react-redux/lib/index.js new file mode 100644 index 00000000..9ccee65a --- /dev/null +++ b/node_modules/react-redux/lib/index.js @@ -0,0 +1,25 @@ +"use strict"; + +exports.__esModule = true; +var _exportNames = { + batch: true +}; + +var _exports = require("./exports"); + +Object.keys(_exports).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; + if (key in exports && exports[key] === _exports[key]) return; + exports[key] = _exports[key]; +}); + +var _reactBatchedUpdates = require("./utils/reactBatchedUpdates"); + +exports.batch = _reactBatchedUpdates.unstable_batchedUpdates; + +var _batch = require("./utils/batch"); + +// Enable batched updates in our subscriptions for use +// with standard React renderers (ReactDOM, React Native) +(0, _batch.setBatch)(_reactBatchedUpdates.unstable_batchedUpdates); \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/Subscription.js b/node_modules/react-redux/lib/utils/Subscription.js new file mode 100644 index 00000000..f6b3e87c --- /dev/null +++ b/node_modules/react-redux/lib/utils/Subscription.js @@ -0,0 +1,133 @@ +"use strict"; + +exports.__esModule = true; +exports.createSubscription = createSubscription; + +var _batch = require("./batch"); + +// encapsulates the subscription logic for connecting a component to the redux store, as +// well as nesting subscriptions of descendant components, so that we can ensure the +// ancestor components re-render before descendants +function createListenerCollection() { + var batch = (0, _batch.getBatch)(); + var first = null; + var last = null; + return { + clear: function clear() { + first = null; + last = null; + }, + notify: function notify() { + batch(function () { + var listener = first; + + while (listener) { + listener.callback(); + listener = listener.next; + } + }); + }, + get: function get() { + var listeners = []; + var listener = first; + + while (listener) { + listeners.push(listener); + listener = listener.next; + } + + return listeners; + }, + subscribe: function subscribe(callback) { + var isSubscribed = true; + var listener = last = { + callback: callback, + next: null, + prev: last + }; + + if (listener.prev) { + listener.prev.next = listener; + } else { + first = listener; + } + + return function unsubscribe() { + if (!isSubscribed || first === null) return; + isSubscribed = false; + + if (listener.next) { + listener.next.prev = listener.prev; + } else { + last = listener.prev; + } + + if (listener.prev) { + listener.prev.next = listener.next; + } else { + first = listener.next; + } + }; + } + }; +} + +var nullListeners = { + notify: function notify() {}, + get: function get() { + return []; + } +}; + +function createSubscription(store, parentSub) { + var unsubscribe; + var listeners = nullListeners; + + function addNestedSub(listener) { + trySubscribe(); + return listeners.subscribe(listener); + } + + function notifyNestedSubs() { + listeners.notify(); + } + + function handleChangeWrapper() { + if (subscription.onStateChange) { + subscription.onStateChange(); + } + } + + function isSubscribed() { + return Boolean(unsubscribe); + } + + function trySubscribe() { + if (!unsubscribe) { + unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper); + listeners = createListenerCollection(); + } + } + + function tryUnsubscribe() { + if (unsubscribe) { + unsubscribe(); + unsubscribe = undefined; + listeners.clear(); + listeners = nullListeners; + } + } + + var subscription = { + addNestedSub: addNestedSub, + notifyNestedSubs: notifyNestedSubs, + handleChangeWrapper: handleChangeWrapper, + isSubscribed: isSubscribed, + trySubscribe: trySubscribe, + tryUnsubscribe: tryUnsubscribe, + getListeners: function getListeners() { + return listeners; + } + }; + return subscription; +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/batch.js b/node_modules/react-redux/lib/utils/batch.js new file mode 100644 index 00000000..8f982585 --- /dev/null +++ b/node_modules/react-redux/lib/utils/batch.js @@ -0,0 +1,24 @@ +"use strict"; + +exports.__esModule = true; +exports.setBatch = exports.getBatch = void 0; + +// Default to a dummy "batch" implementation that just runs the callback +function defaultNoopBatch(callback) { + callback(); +} + +var batch = defaultNoopBatch; // Allow injecting another batching function later + +var setBatch = function setBatch(newBatch) { + return batch = newBatch; +}; // Supply a getter just to skip dealing with ESM bindings + + +exports.setBatch = setBatch; + +var getBatch = function getBatch() { + return batch; +}; + +exports.getBatch = getBatch; \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/bindActionCreators.js b/node_modules/react-redux/lib/utils/bindActionCreators.js new file mode 100644 index 00000000..afdf7551 --- /dev/null +++ b/node_modules/react-redux/lib/utils/bindActionCreators.js @@ -0,0 +1,24 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = bindActionCreators; + +function bindActionCreators(actionCreators, dispatch) { + var boundActionCreators = {}; + + var _loop = function _loop(key) { + var actionCreator = actionCreators[key]; + + if (typeof actionCreator === 'function') { + boundActionCreators[key] = function () { + return dispatch(actionCreator.apply(void 0, arguments)); + }; + } + }; + + for (var key in actionCreators) { + _loop(key); + } + + return boundActionCreators; +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/isPlainObject.js b/node_modules/react-redux/lib/utils/isPlainObject.js new file mode 100644 index 00000000..f5a598b7 --- /dev/null +++ b/node_modules/react-redux/lib/utils/isPlainObject.js @@ -0,0 +1,21 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = isPlainObject; + +/** + * @param {any} obj The object to inspect. + * @returns {boolean} True if the argument appears to be a plain object. + */ +function isPlainObject(obj) { + if (typeof obj !== 'object' || obj === null) return false; + var proto = Object.getPrototypeOf(obj); + if (proto === null) return true; + var baseProto = proto; + + while (Object.getPrototypeOf(baseProto) !== null) { + baseProto = Object.getPrototypeOf(baseProto); + } + + return proto === baseProto; +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/reactBatchedUpdates.js b/node_modules/react-redux/lib/utils/reactBatchedUpdates.js new file mode 100644 index 00000000..0a1a8e81 --- /dev/null +++ b/node_modules/react-redux/lib/utils/reactBatchedUpdates.js @@ -0,0 +1,8 @@ +"use strict"; + +exports.__esModule = true; +exports.unstable_batchedUpdates = void 0; + +var _reactDom = require("react-dom"); + +exports.unstable_batchedUpdates = _reactDom.unstable_batchedUpdates; \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/reactBatchedUpdates.native.js b/node_modules/react-redux/lib/utils/reactBatchedUpdates.native.js new file mode 100644 index 00000000..096550b3 --- /dev/null +++ b/node_modules/react-redux/lib/utils/reactBatchedUpdates.native.js @@ -0,0 +1,7 @@ +"use strict"; + +exports.__esModule = true; + +var _reactNative = require("react-native"); + +exports.unstable_batchedUpdates = _reactNative.unstable_batchedUpdates; \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/shallowEqual.js b/node_modules/react-redux/lib/utils/shallowEqual.js new file mode 100644 index 00000000..2d6ddfd8 --- /dev/null +++ b/node_modules/react-redux/lib/utils/shallowEqual.js @@ -0,0 +1,32 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = shallowEqual; + +function is(x, y) { + if (x === y) { + return x !== 0 || y !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } +} + +function shallowEqual(objA, objB) { + if (is(objA, objB)) return true; + + if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { + return false; + } + + var keysA = Object.keys(objA); + var keysB = Object.keys(objB); + if (keysA.length !== keysB.length) return false; + + for (var i = 0; i < keysA.length; i++) { + if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { + return false; + } + } + + return true; +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js b/node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js new file mode 100644 index 00000000..c6befb0e --- /dev/null +++ b/node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js @@ -0,0 +1,17 @@ +"use strict"; + +exports.__esModule = true; +exports.useIsomorphicLayoutEffect = void 0; + +var _react = require("react"); + +// React currently throws a warning when using useLayoutEffect on the server. +// To get around it, we can conditionally useEffect on the server (no-op) and +// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store +// subscription callback always has the selector from the latest render commit +// available, otherwise a store update may happen between render and the effect, +// which may cause missed updates; we also must ensure the store subscription +// is created synchronously, otherwise a store update may occur before the +// subscription is created and an inconsistent state may be observed +var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? _react.useLayoutEffect : _react.useEffect; +exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect; \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.native.js b/node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.native.js new file mode 100644 index 00000000..c90c23aa --- /dev/null +++ b/node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.native.js @@ -0,0 +1,10 @@ +"use strict"; + +exports.__esModule = true; +exports.useIsomorphicLayoutEffect = void 0; + +var _react = require("react"); + +// Under React Native, we know that we always want to use useLayoutEffect +var useIsomorphicLayoutEffect = _react.useLayoutEffect; +exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect; \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/verifyPlainObject.js b/node_modules/react-redux/lib/utils/verifyPlainObject.js new file mode 100644 index 00000000..55f6db5b --- /dev/null +++ b/node_modules/react-redux/lib/utils/verifyPlainObject.js @@ -0,0 +1,16 @@ +"use strict"; + +var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; + +exports.__esModule = true; +exports["default"] = verifyPlainObject; + +var _isPlainObject = _interopRequireDefault(require("./isPlainObject")); + +var _warning = _interopRequireDefault(require("./warning")); + +function verifyPlainObject(value, displayName, methodName) { + if (!(0, _isPlainObject["default"])(value)) { + (0, _warning["default"])(methodName + "() in " + displayName + " must return a plain object. Instead received " + value + "."); + } +} \ No newline at end of file diff --git a/node_modules/react-redux/lib/utils/warning.js b/node_modules/react-redux/lib/utils/warning.js new file mode 100644 index 00000000..7e08fce5 --- /dev/null +++ b/node_modules/react-redux/lib/utils/warning.js @@ -0,0 +1,29 @@ +"use strict"; + +exports.__esModule = true; +exports["default"] = warning; + +/** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ +function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message); + } + /* eslint-enable no-console */ + + + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message); + /* eslint-disable no-empty */ + } catch (e) {} + /* eslint-enable no-empty */ + +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/.bin/loose-envify b/node_modules/react-redux/node_modules/.bin/loose-envify new file mode 120000 index 00000000..2a6b8df6 --- /dev/null +++ b/node_modules/react-redux/node_modules/.bin/loose-envify @@ -0,0 +1 @@ +../../../loose-envify/cli.js \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/LICENSE b/node_modules/react-redux/node_modules/@babel/runtime/LICENSE new file mode 100644 index 00000000..f31575ec --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/react-redux/node_modules/@babel/runtime/README.md b/node_modules/react-redux/node_modules/@babel/runtime/README.md new file mode 100644 index 00000000..be27e834 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/README.md @@ -0,0 +1,19 @@ +# @babel/runtime + +> babel's modular runtime helpers + +See our website [@babel/runtime](https://babeljs.io/docs/en/babel-runtime) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/runtime +``` + +or using yarn: + +```sh +yarn add @babel/runtime +``` diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/AsyncGenerator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/AsyncGenerator.js new file mode 100644 index 00000000..e6a15a7c --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/AsyncGenerator.js @@ -0,0 +1,98 @@ +var AwaitValue = require("./AwaitValue.js"); + +function AsyncGenerator(gen) { + var front, back; + + function send(key, arg) { + return new Promise(function (resolve, reject) { + var request = { + key: key, + arg: arg, + resolve: resolve, + reject: reject, + next: null + }; + + if (back) { + back = back.next = request; + } else { + front = back = request; + resume(key, arg); + } + }); + } + + function resume(key, arg) { + try { + var result = gen[key](arg); + var value = result.value; + var wrappedAwait = value instanceof AwaitValue; + Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { + if (wrappedAwait) { + resume(key === "return" ? "return" : "next", arg); + return; + } + + settle(result.done ? "return" : "normal", arg); + }, function (err) { + resume("throw", err); + }); + } catch (err) { + settle("throw", err); + } + } + + function settle(type, value) { + switch (type) { + case "return": + front.resolve({ + value: value, + done: true + }); + break; + + case "throw": + front.reject(value); + break; + + default: + front.resolve({ + value: value, + done: false + }); + break; + } + + front = front.next; + + if (front) { + resume(front.key, front.arg); + } else { + back = null; + } + } + + this._invoke = send; + + if (typeof gen["return"] !== "function") { + this["return"] = undefined; + } +} + +AsyncGenerator.prototype[typeof Symbol === "function" && Symbol.asyncIterator || "@@asyncIterator"] = function () { + return this; +}; + +AsyncGenerator.prototype.next = function (arg) { + return this._invoke("next", arg); +}; + +AsyncGenerator.prototype["throw"] = function (arg) { + return this._invoke("throw", arg); +}; + +AsyncGenerator.prototype["return"] = function (arg) { + return this._invoke("return", arg); +}; + +module.exports = AsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/AwaitValue.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/AwaitValue.js new file mode 100644 index 00000000..5ddee2e1 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/AwaitValue.js @@ -0,0 +1,5 @@ +function _AwaitValue(value) { + this.wrapped = value; +} + +module.exports = _AwaitValue, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js new file mode 100644 index 00000000..9080fd63 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js @@ -0,0 +1,30 @@ +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { + var desc = {}; + Object.keys(descriptor).forEach(function (key) { + desc[key] = descriptor[key]; + }); + desc.enumerable = !!desc.enumerable; + desc.configurable = !!desc.configurable; + + if ('value' in desc || desc.initializer) { + desc.writable = true; + } + + desc = decorators.slice().reverse().reduce(function (desc, decorator) { + return decorator(target, property, desc) || desc; + }, desc); + + if (context && desc.initializer !== void 0) { + desc.value = desc.initializer ? desc.initializer.call(context) : void 0; + desc.initializer = undefined; + } + + if (desc.initializer === void 0) { + Object.defineProperty(target, property, desc); + desc = null; + } + + return desc; +} + +module.exports = _applyDecoratedDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/applyDecs.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/applyDecs.js new file mode 100644 index 00000000..b27baad2 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/applyDecs.js @@ -0,0 +1,284 @@ +var _typeof = require("./typeof.js")["default"]; + +function createMetadataMethodsForProperty(metadataMap, kind, property, decoratorFinishedRef) { + return { + getMetadata: function getMetadata(key) { + assertNotFinished(decoratorFinishedRef, "getMetadata"), assertMetadataKey(key); + var metadataForKey = metadataMap[key]; + if (void 0 !== metadataForKey) if (1 === kind) { + var pub = metadataForKey["public"]; + if (void 0 !== pub) return pub[property]; + } else if (2 === kind) { + var priv = metadataForKey["private"]; + if (void 0 !== priv) return priv.get(property); + } else if (Object.hasOwnProperty.call(metadataForKey, "constructor")) return metadataForKey.constructor; + }, + setMetadata: function setMetadata(key, value) { + assertNotFinished(decoratorFinishedRef, "setMetadata"), assertMetadataKey(key); + var metadataForKey = metadataMap[key]; + + if (void 0 === metadataForKey && (metadataForKey = metadataMap[key] = {}), 1 === kind) { + var pub = metadataForKey["public"]; + void 0 === pub && (pub = metadataForKey["public"] = {}), pub[property] = value; + } else if (2 === kind) { + var priv = metadataForKey.priv; + void 0 === priv && (priv = metadataForKey["private"] = new Map()), priv.set(property, value); + } else metadataForKey.constructor = value; + } + }; +} + +function convertMetadataMapToFinal(obj, metadataMap) { + var parentMetadataMap = obj[Symbol.metadata || Symbol["for"]("Symbol.metadata")], + metadataKeys = Object.getOwnPropertySymbols(metadataMap); + + if (0 !== metadataKeys.length) { + for (var i = 0; i < metadataKeys.length; i++) { + var key = metadataKeys[i], + metaForKey = metadataMap[key], + parentMetaForKey = parentMetadataMap ? parentMetadataMap[key] : null, + pub = metaForKey["public"], + parentPub = parentMetaForKey ? parentMetaForKey["public"] : null; + pub && parentPub && Object.setPrototypeOf(pub, parentPub); + var priv = metaForKey["private"]; + + if (priv) { + var privArr = Array.from(priv.values()), + parentPriv = parentMetaForKey ? parentMetaForKey["private"] : null; + parentPriv && (privArr = privArr.concat(parentPriv)), metaForKey["private"] = privArr; + } + + parentMetaForKey && Object.setPrototypeOf(metaForKey, parentMetaForKey); + } + + parentMetadataMap && Object.setPrototypeOf(metadataMap, parentMetadataMap), obj[Symbol.metadata || Symbol["for"]("Symbol.metadata")] = metadataMap; + } +} + +function createAddInitializerMethod(initializers, decoratorFinishedRef) { + return function (initializer) { + assertNotFinished(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer); + }; +} + +function memberDec(dec, name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value) { + var kindStr; + + switch (kind) { + case 1: + kindStr = "accessor"; + break; + + case 2: + kindStr = "method"; + break; + + case 3: + kindStr = "getter"; + break; + + case 4: + kindStr = "setter"; + break; + + default: + kindStr = "field"; + } + + var metadataKind, + metadataName, + ctx = { + kind: kindStr, + name: isPrivate ? "#" + name : name, + isStatic: isStatic, + isPrivate: isPrivate + }, + decoratorFinishedRef = { + v: !1 + }; + + if (0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), isPrivate) { + metadataKind = 2, metadataName = Symbol(name); + var access = {}; + 0 === kind ? (access.get = desc.get, access.set = desc.set) : 2 === kind ? access.get = function () { + return desc.value; + } : (1 !== kind && 3 !== kind || (access.get = function () { + return desc.get.call(this); + }), 1 !== kind && 4 !== kind || (access.set = function (v) { + desc.set.call(this, v); + })), ctx.access = access; + } else metadataKind = 1, metadataName = name; + + try { + return dec(value, Object.assign(ctx, createMetadataMethodsForProperty(metadataMap, metadataKind, metadataName, decoratorFinishedRef))); + } finally { + decoratorFinishedRef.v = !0; + } +} + +function assertNotFinished(decoratorFinishedRef, fnName) { + if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished"); +} + +function assertMetadataKey(key) { + if ("symbol" != _typeof(key)) throw new TypeError("Metadata keys must be symbols, received: " + key); +} + +function assertCallable(fn, hint) { + if ("function" != typeof fn) throw new TypeError(hint + " must be a function"); +} + +function assertValidReturnValue(kind, value) { + var type = _typeof(value); + + if (1 === kind) { + if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); + void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init"), void 0 !== value.initializer && assertCallable(value.initializer, "accessor.initializer"); + } else if ("function" !== type) { + var hint; + throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0"); + } +} + +function getInit(desc) { + var initializer; + return null == (initializer = desc.init) && (initializer = desc.initializer) && "undefined" != typeof console && console.warn(".initializer has been renamed to .init as of March 2022"), initializer; +} + +function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, metadataMap, initializers) { + var desc, + initializer, + value, + newValue, + get, + set, + decs = decInfo[0]; + if (isPrivate ? desc = 0 === kind || 1 === kind ? { + get: decInfo[3], + set: decInfo[4] + } : 3 === kind ? { + get: decInfo[3] + } : 4 === kind ? { + set: decInfo[3] + } : { + value: decInfo[3] + } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = { + get: desc.get, + set: desc.set + } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = memberDec(decs, name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value)) && (assertValidReturnValue(kind, newValue), 0 === kind ? initializer = newValue : 1 === kind ? (initializer = getInit(newValue), get = newValue.get || value.get, set = newValue.set || value.set, value = { + get: get, + set: set + }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) { + var newInit; + if (void 0 !== (newValue = memberDec(decs[i], name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = getInit(newValue), get = newValue.get || value.get, set = newValue.set || value.set, value = { + get: get, + set: set + }) : value = newValue, void 0 !== newInit && (void 0 === initializer ? initializer = newInit : "function" == typeof initializer ? initializer = [initializer, newInit] : initializer.push(newInit)); + } + + if (0 === kind || 1 === kind) { + if (void 0 === initializer) initializer = function initializer(instance, init) { + return init; + };else if ("function" != typeof initializer) { + var ownInitializers = initializer; + + initializer = function initializer(instance, init) { + for (var value = init, i = 0; i < ownInitializers.length; i++) { + value = ownInitializers[i].call(instance, value); + } + + return value; + }; + } else { + var originalInitializer = initializer; + + initializer = function initializer(instance, init) { + return originalInitializer.call(instance, init); + }; + } + ret.push(initializer); + } + + 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) { + return value.get.call(instance, args); + }), ret.push(function (instance, args) { + return value.set.call(instance, args); + })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) { + return value.call(instance, args); + }) : Object.defineProperty(base, name, desc)); +} + +function applyMemberDecs(ret, Class, protoMetadataMap, staticMetadataMap, decInfos) { + for (var protoInitializers, staticInitializers, existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) { + var decInfo = decInfos[i]; + + if (Array.isArray(decInfo)) { + var base, + metadataMap, + initializers, + kind = decInfo[1], + name = decInfo[2], + isPrivate = decInfo.length > 3, + isStatic = kind >= 5; + + if (isStatic ? (base = Class, metadataMap = staticMetadataMap, 0 !== (kind -= 5) && (initializers = staticInitializers = staticInitializers || [])) : (base = Class.prototype, metadataMap = protoMetadataMap, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) { + var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields, + existingKind = existingNonFields.get(name) || 0; + if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name); + !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0); + } + + applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, metadataMap, initializers); + } + } + + pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers); +} + +function pushInitializers(ret, initializers) { + initializers && ret.push(function (instance) { + for (var i = 0; i < initializers.length; i++) { + initializers[i].call(instance); + } + + return instance; + }); +} + +function applyClassDecs(ret, targetClass, metadataMap, classDecs) { + if (classDecs.length > 0) { + for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) { + var decoratorFinishedRef = { + v: !1 + }; + + try { + var ctx = Object.assign({ + kind: "class", + name: name, + addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef) + }, createMetadataMethodsForProperty(metadataMap, 0, name, decoratorFinishedRef)), + nextNewClass = classDecs[i](newClass, ctx); + } finally { + decoratorFinishedRef.v = !0; + } + + void 0 !== nextNewClass && (assertValidReturnValue(10, nextNewClass), newClass = nextNewClass); + } + + ret.push(newClass, function () { + for (var i = 0; i < initializers.length; i++) { + initializers[i].call(newClass); + } + }); + } +} + +function applyDecs(targetClass, memberDecs, classDecs) { + var ret = [], + staticMetadataMap = {}, + protoMetadataMap = {}; + return applyMemberDecs(ret, targetClass, protoMetadataMap, staticMetadataMap, memberDecs), convertMetadataMapToFinal(targetClass.prototype, protoMetadataMap), applyClassDecs(ret, targetClass, staticMetadataMap, classDecs), convertMetadataMapToFinal(targetClass, staticMetadataMap), ret; +} + +module.exports = applyDecs, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/arrayLikeToArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/arrayLikeToArray.js new file mode 100644 index 00000000..465974f1 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/arrayLikeToArray.js @@ -0,0 +1,11 @@ +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} + +module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/arrayWithHoles.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/arrayWithHoles.js new file mode 100644 index 00000000..b5680a0e --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/arrayWithHoles.js @@ -0,0 +1,5 @@ +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js new file mode 100644 index 00000000..30bf377f --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js @@ -0,0 +1,7 @@ +var arrayLikeToArray = require("./arrayLikeToArray.js"); + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return arrayLikeToArray(arr); +} + +module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/assertThisInitialized.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/assertThisInitialized.js new file mode 100644 index 00000000..70ea8557 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/assertThisInitialized.js @@ -0,0 +1,9 @@ +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +module.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js new file mode 100644 index 00000000..cf7d4801 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js @@ -0,0 +1,56 @@ +function _asyncGeneratorDelegate(inner, awaitWrap) { + var iter = {}, + waiting = false; + + function pump(key, value) { + waiting = true; + value = new Promise(function (resolve) { + resolve(inner[key](value)); + }); + return { + done: false, + value: awaitWrap(value) + }; + } + + ; + + iter[typeof Symbol !== "undefined" && Symbol.iterator || "@@iterator"] = function () { + return this; + }; + + iter.next = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("next", value); + }; + + if (typeof inner["throw"] === "function") { + iter["throw"] = function (value) { + if (waiting) { + waiting = false; + throw value; + } + + return pump("throw", value); + }; + } + + if (typeof inner["return"] === "function") { + iter["return"] = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("return", value); + }; + } + + return iter; +} + +module.exports = _asyncGeneratorDelegate, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/asyncIterator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/asyncIterator.js new file mode 100644 index 00000000..d8e11f01 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/asyncIterator.js @@ -0,0 +1,50 @@ +function _asyncIterator(iterable) { + var method, + async, + sync, + retry = 2; + + for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { + if (async && null != (method = iterable[async])) return method.call(iterable); + if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); + async = "@@asyncIterator", sync = "@@iterator"; + } + + throw new TypeError("Object is not async iterable"); +} + +function AsyncFromSyncIterator(s) { + function AsyncFromSyncIteratorContinuation(r) { + if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); + var done = r.done; + return Promise.resolve(r.value).then(function (value) { + return { + value: value, + done: done + }; + }); + } + + return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { + this.s = s, this.n = s.next; + }, AsyncFromSyncIterator.prototype = { + s: null, + n: null, + next: function next() { + return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); + }, + "return": function _return(value) { + var ret = this.s["return"]; + return void 0 === ret ? Promise.resolve({ + value: value, + done: !0 + }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); + }, + "throw": function _throw(value) { + var thr = this.s["return"]; + return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); + } + }, new AsyncFromSyncIterator(s); +} + +module.exports = _asyncIterator, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/asyncToGenerator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/asyncToGenerator.js new file mode 100644 index 00000000..becd1630 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/asyncToGenerator.js @@ -0,0 +1,37 @@ +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} + +function _asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + + _next(undefined); + }); + }; +} + +module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js new file mode 100644 index 00000000..f0f30ed7 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js @@ -0,0 +1,7 @@ +var AwaitValue = require("./AwaitValue.js"); + +function _awaitAsyncGenerator(value) { + return new AwaitValue(value); +} + +module.exports = _awaitAsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js new file mode 100644 index 00000000..6cd0fcbb --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js @@ -0,0 +1,7 @@ +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} + +module.exports = _checkPrivateRedeclaration, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js new file mode 100644 index 00000000..ea1c860d --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js @@ -0,0 +1,22 @@ +function _classApplyDescriptorDestructureSet(receiver, descriptor) { + if (descriptor.set) { + if (!("__destrObj" in descriptor)) { + descriptor.__destrObj = { + set value(v) { + descriptor.set.call(receiver, v); + } + + }; + } + + return descriptor.__destrObj; + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + + return descriptor; + } +} + +module.exports = _classApplyDescriptorDestructureSet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js new file mode 100644 index 00000000..b9d0e949 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js @@ -0,0 +1,9 @@ +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + + return descriptor.value; +} + +module.exports = _classApplyDescriptorGet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js new file mode 100644 index 00000000..9824b5c5 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js @@ -0,0 +1,13 @@ +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + + descriptor.value = value; + } +} + +module.exports = _classApplyDescriptorSet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classCallCheck.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classCallCheck.js new file mode 100644 index 00000000..14188453 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classCallCheck.js @@ -0,0 +1,7 @@ +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js new file mode 100644 index 00000000..7f5213bc --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js @@ -0,0 +1,7 @@ +function _classCheckPrivateStaticAccess(receiver, classConstructor) { + if (receiver !== classConstructor) { + throw new TypeError("Private static access of wrong provenance"); + } +} + +module.exports = _classCheckPrivateStaticAccess, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js new file mode 100644 index 00000000..87ec4ea8 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js @@ -0,0 +1,7 @@ +function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { + if (descriptor === undefined) { + throw new TypeError("attempted to " + action + " private static field before its declaration"); + } +} + +module.exports = _classCheckPrivateStaticFieldDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js new file mode 100644 index 00000000..5c422bfc --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js @@ -0,0 +1,9 @@ +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + + return privateMap.get(receiver); +} + +module.exports = _classExtractFieldDescriptor, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classNameTDZError.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classNameTDZError.js new file mode 100644 index 00000000..9a48c703 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classNameTDZError.js @@ -0,0 +1,5 @@ +function _classNameTDZError(name) { + throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys."); +} + +module.exports = _classNameTDZError, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js new file mode 100644 index 00000000..07abfe5f --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js @@ -0,0 +1,10 @@ +var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js"); + +var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js"); + +function _classPrivateFieldDestructureSet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); +} + +module.exports = _classPrivateFieldDestructureSet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js new file mode 100644 index 00000000..470ded71 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js @@ -0,0 +1,10 @@ +var classApplyDescriptorGet = require("./classApplyDescriptorGet.js"); + +var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js"); + +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get"); + return classApplyDescriptorGet(receiver, descriptor); +} + +module.exports = _classPrivateFieldGet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js new file mode 100644 index 00000000..a6243c27 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js @@ -0,0 +1,8 @@ +var checkPrivateRedeclaration = require("./checkPrivateRedeclaration.js"); + +function _classPrivateFieldInitSpec(obj, privateMap, value) { + checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} + +module.exports = _classPrivateFieldInitSpec, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js new file mode 100644 index 00000000..571109ff --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js @@ -0,0 +1,9 @@ +function _classPrivateFieldBase(receiver, privateKey) { + if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { + throw new TypeError("attempted to use private field on non-instance"); + } + + return receiver; +} + +module.exports = _classPrivateFieldBase, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js new file mode 100644 index 00000000..b05e1940 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js @@ -0,0 +1,7 @@ +var id = 0; + +function _classPrivateFieldKey(name) { + return "__private_" + id++ + "_" + name; +} + +module.exports = _classPrivateFieldKey, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js new file mode 100644 index 00000000..f8ab8420 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js @@ -0,0 +1,11 @@ +var classApplyDescriptorSet = require("./classApplyDescriptorSet.js"); + +var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js"); + +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; +} + +module.exports = _classPrivateFieldSet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js new file mode 100644 index 00000000..540a1f3e --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js @@ -0,0 +1,9 @@ +function _classPrivateMethodGet(receiver, privateSet, fn) { + if (!privateSet.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + + return fn; +} + +module.exports = _classPrivateMethodGet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js new file mode 100644 index 00000000..6c4df76e --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js @@ -0,0 +1,8 @@ +var checkPrivateRedeclaration = require("./checkPrivateRedeclaration.js"); + +function _classPrivateMethodInitSpec(obj, privateSet) { + checkPrivateRedeclaration(obj, privateSet); + privateSet.add(obj); +} + +module.exports = _classPrivateMethodInitSpec, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js new file mode 100644 index 00000000..226789d5 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js @@ -0,0 +1,5 @@ +function _classPrivateMethodSet() { + throw new TypeError("attempted to reassign private method"); +} + +module.exports = _classPrivateMethodSet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js new file mode 100644 index 00000000..120c74d8 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js @@ -0,0 +1,13 @@ +var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js"); + +var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); + +var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js"); + +function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); +} + +module.exports = _classStaticPrivateFieldDestructureSet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js new file mode 100644 index 00000000..d7201c33 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js @@ -0,0 +1,13 @@ +var classApplyDescriptorGet = require("./classApplyDescriptorGet.js"); + +var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); + +var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js"); + +function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "get"); + return classApplyDescriptorGet(receiver, descriptor); +} + +module.exports = _classStaticPrivateFieldSpecGet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js new file mode 100644 index 00000000..2aa13ef9 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js @@ -0,0 +1,14 @@ +var classApplyDescriptorSet = require("./classApplyDescriptorSet.js"); + +var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); + +var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js"); + +function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; +} + +module.exports = _classStaticPrivateFieldSpecSet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js new file mode 100644 index 00000000..d77c8422 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js @@ -0,0 +1,8 @@ +var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); + +function _classStaticPrivateMethodGet(receiver, classConstructor, method) { + classCheckPrivateStaticAccess(receiver, classConstructor); + return method; +} + +module.exports = _classStaticPrivateMethodGet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js new file mode 100644 index 00000000..2e1c83fd --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js @@ -0,0 +1,5 @@ +function _classStaticPrivateMethodSet() { + throw new TypeError("attempted to set read only static private field"); +} + +module.exports = _classStaticPrivateMethodSet, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/construct.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/construct.js new file mode 100644 index 00000000..ecc013db --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/construct.js @@ -0,0 +1,22 @@ +var setPrototypeOf = require("./setPrototypeOf.js"); + +var isNativeReflectConstruct = require("./isNativeReflectConstruct.js"); + +function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports; + } else { + module.exports = _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) setPrototypeOf(instance, Class.prototype); + return instance; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + + return _construct.apply(null, arguments); +} + +module.exports = _construct, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/createClass.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/createClass.js new file mode 100644 index 00000000..4273e7a1 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/createClass.js @@ -0,0 +1,20 @@ +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} + +module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js new file mode 100644 index 00000000..0835893b --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js @@ -0,0 +1,60 @@ +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + + if (!it) { + if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + + var F = function F() {}; + + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, + didErr = false, + err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; +} + +module.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js new file mode 100644 index 00000000..65d3bc9e --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js @@ -0,0 +1,24 @@ +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +function _createForOfIteratorHelperLoose(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (it) return (it = it.call(o)).next.bind(it); + + if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + return function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +module.exports = _createForOfIteratorHelperLoose, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/createSuper.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/createSuper.js new file mode 100644 index 00000000..624728bb --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/createSuper.js @@ -0,0 +1,24 @@ +var getPrototypeOf = require("./getPrototypeOf.js"); + +var isNativeReflectConstruct = require("./isNativeReflectConstruct.js"); + +var possibleConstructorReturn = require("./possibleConstructorReturn.js"); + +function _createSuper(Derived) { + var hasNativeReflectConstruct = isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return possibleConstructorReturn(this, result); + }; +} + +module.exports = _createSuper, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/decorate.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/decorate.js new file mode 100644 index 00000000..3bd35e7d --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/decorate.js @@ -0,0 +1,400 @@ +var toArray = require("./toArray.js"); + +var toPropertyKey = require("./toPropertyKey.js"); + +function _decorate(decorators, factory, superClass, mixins) { + var api = _getDecoratorsApi(); + + if (mixins) { + for (var i = 0; i < mixins.length; i++) { + api = mixins[i](api); + } + } + + var r = factory(function initialize(O) { + api.initializeInstanceElements(O, decorated.elements); + }, superClass); + var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); + api.initializeClassElements(r.F, decorated.elements); + return api.runClassFinishers(r.F, decorated.finishers); +} + +function _getDecoratorsApi() { + _getDecoratorsApi = function _getDecoratorsApi() { + return api; + }; + + var api = { + elementsDefinitionOrder: [["method"], ["field"]], + initializeInstanceElements: function initializeInstanceElements(O, elements) { + ["method", "field"].forEach(function (kind) { + elements.forEach(function (element) { + if (element.kind === kind && element.placement === "own") { + this.defineClassElement(O, element); + } + }, this); + }, this); + }, + initializeClassElements: function initializeClassElements(F, elements) { + var proto = F.prototype; + ["method", "field"].forEach(function (kind) { + elements.forEach(function (element) { + var placement = element.placement; + + if (element.kind === kind && (placement === "static" || placement === "prototype")) { + var receiver = placement === "static" ? F : proto; + this.defineClassElement(receiver, element); + } + }, this); + }, this); + }, + defineClassElement: function defineClassElement(receiver, element) { + var descriptor = element.descriptor; + + if (element.kind === "field") { + var initializer = element.initializer; + descriptor = { + enumerable: descriptor.enumerable, + writable: descriptor.writable, + configurable: descriptor.configurable, + value: initializer === void 0 ? void 0 : initializer.call(receiver) + }; + } + + Object.defineProperty(receiver, element.key, descriptor); + }, + decorateClass: function decorateClass(elements, decorators) { + var newElements = []; + var finishers = []; + var placements = { + "static": [], + prototype: [], + own: [] + }; + elements.forEach(function (element) { + this.addElementPlacement(element, placements); + }, this); + elements.forEach(function (element) { + if (!_hasDecorators(element)) return newElements.push(element); + var elementFinishersExtras = this.decorateElement(element, placements); + newElements.push(elementFinishersExtras.element); + newElements.push.apply(newElements, elementFinishersExtras.extras); + finishers.push.apply(finishers, elementFinishersExtras.finishers); + }, this); + + if (!decorators) { + return { + elements: newElements, + finishers: finishers + }; + } + + var result = this.decorateConstructor(newElements, decorators); + finishers.push.apply(finishers, result.finishers); + result.finishers = finishers; + return result; + }, + addElementPlacement: function addElementPlacement(element, placements, silent) { + var keys = placements[element.placement]; + + if (!silent && keys.indexOf(element.key) !== -1) { + throw new TypeError("Duplicated element (" + element.key + ")"); + } + + keys.push(element.key); + }, + decorateElement: function decorateElement(element, placements) { + var extras = []; + var finishers = []; + + for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { + var keys = placements[element.placement]; + keys.splice(keys.indexOf(element.key), 1); + var elementObject = this.fromElementDescriptor(element); + var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); + element = elementFinisherExtras.element; + this.addElementPlacement(element, placements); + + if (elementFinisherExtras.finisher) { + finishers.push(elementFinisherExtras.finisher); + } + + var newExtras = elementFinisherExtras.extras; + + if (newExtras) { + for (var j = 0; j < newExtras.length; j++) { + this.addElementPlacement(newExtras[j], placements); + } + + extras.push.apply(extras, newExtras); + } + } + + return { + element: element, + finishers: finishers, + extras: extras + }; + }, + decorateConstructor: function decorateConstructor(elements, decorators) { + var finishers = []; + + for (var i = decorators.length - 1; i >= 0; i--) { + var obj = this.fromClassDescriptor(elements); + var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); + + if (elementsAndFinisher.finisher !== undefined) { + finishers.push(elementsAndFinisher.finisher); + } + + if (elementsAndFinisher.elements !== undefined) { + elements = elementsAndFinisher.elements; + + for (var j = 0; j < elements.length - 1; j++) { + for (var k = j + 1; k < elements.length; k++) { + if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { + throw new TypeError("Duplicated element (" + elements[j].key + ")"); + } + } + } + } + } + + return { + elements: elements, + finishers: finishers + }; + }, + fromElementDescriptor: function fromElementDescriptor(element) { + var obj = { + kind: element.kind, + key: element.key, + placement: element.placement, + descriptor: element.descriptor + }; + var desc = { + value: "Descriptor", + configurable: true + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + if (element.kind === "field") obj.initializer = element.initializer; + return obj; + }, + toElementDescriptors: function toElementDescriptors(elementObjects) { + if (elementObjects === undefined) return; + return toArray(elementObjects).map(function (elementObject) { + var element = this.toElementDescriptor(elementObject); + this.disallowProperty(elementObject, "finisher", "An element descriptor"); + this.disallowProperty(elementObject, "extras", "An element descriptor"); + return element; + }, this); + }, + toElementDescriptor: function toElementDescriptor(elementObject) { + var kind = String(elementObject.kind); + + if (kind !== "method" && kind !== "field") { + throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"'); + } + + var key = toPropertyKey(elementObject.key); + var placement = String(elementObject.placement); + + if (placement !== "static" && placement !== "prototype" && placement !== "own") { + throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"'); + } + + var descriptor = elementObject.descriptor; + this.disallowProperty(elementObject, "elements", "An element descriptor"); + var element = { + kind: kind, + key: key, + placement: placement, + descriptor: Object.assign({}, descriptor) + }; + + if (kind !== "field") { + this.disallowProperty(elementObject, "initializer", "A method descriptor"); + } else { + this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); + this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); + this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); + element.initializer = elementObject.initializer; + } + + return element; + }, + toElementFinisherExtras: function toElementFinisherExtras(elementObject) { + var element = this.toElementDescriptor(elementObject); + + var finisher = _optionalCallableProperty(elementObject, "finisher"); + + var extras = this.toElementDescriptors(elementObject.extras); + return { + element: element, + finisher: finisher, + extras: extras + }; + }, + fromClassDescriptor: function fromClassDescriptor(elements) { + var obj = { + kind: "class", + elements: elements.map(this.fromElementDescriptor, this) + }; + var desc = { + value: "Descriptor", + configurable: true + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + return obj; + }, + toClassDescriptor: function toClassDescriptor(obj) { + var kind = String(obj.kind); + + if (kind !== "class") { + throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); + } + + this.disallowProperty(obj, "key", "A class descriptor"); + this.disallowProperty(obj, "placement", "A class descriptor"); + this.disallowProperty(obj, "descriptor", "A class descriptor"); + this.disallowProperty(obj, "initializer", "A class descriptor"); + this.disallowProperty(obj, "extras", "A class descriptor"); + + var finisher = _optionalCallableProperty(obj, "finisher"); + + var elements = this.toElementDescriptors(obj.elements); + return { + elements: elements, + finisher: finisher + }; + }, + runClassFinishers: function runClassFinishers(constructor, finishers) { + for (var i = 0; i < finishers.length; i++) { + var newConstructor = (0, finishers[i])(constructor); + + if (newConstructor !== undefined) { + if (typeof newConstructor !== "function") { + throw new TypeError("Finishers must return a constructor."); + } + + constructor = newConstructor; + } + } + + return constructor; + }, + disallowProperty: function disallowProperty(obj, name, objectType) { + if (obj[name] !== undefined) { + throw new TypeError(objectType + " can't have a ." + name + " property."); + } + } + }; + return api; +} + +function _createElementDescriptor(def) { + var key = toPropertyKey(def.key); + var descriptor; + + if (def.kind === "method") { + descriptor = { + value: def.value, + writable: true, + configurable: true, + enumerable: false + }; + } else if (def.kind === "get") { + descriptor = { + get: def.value, + configurable: true, + enumerable: false + }; + } else if (def.kind === "set") { + descriptor = { + set: def.value, + configurable: true, + enumerable: false + }; + } else if (def.kind === "field") { + descriptor = { + configurable: true, + writable: true, + enumerable: true + }; + } + + var element = { + kind: def.kind === "field" ? "field" : "method", + key: key, + placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype", + descriptor: descriptor + }; + if (def.decorators) element.decorators = def.decorators; + if (def.kind === "field") element.initializer = def.value; + return element; +} + +function _coalesceGetterSetter(element, other) { + if (element.descriptor.get !== undefined) { + other.descriptor.get = element.descriptor.get; + } else { + other.descriptor.set = element.descriptor.set; + } +} + +function _coalesceClassElements(elements) { + var newElements = []; + + var isSameElement = function isSameElement(other) { + return other.kind === "method" && other.key === element.key && other.placement === element.placement; + }; + + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + var other; + + if (element.kind === "method" && (other = newElements.find(isSameElement))) { + if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) { + if (_hasDecorators(element) || _hasDecorators(other)) { + throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated."); + } + + other.descriptor = element.descriptor; + } else { + if (_hasDecorators(element)) { + if (_hasDecorators(other)) { + throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ")."); + } + + other.decorators = element.decorators; + } + + _coalesceGetterSetter(element, other); + } + } else { + newElements.push(element); + } + } + + return newElements; +} + +function _hasDecorators(element) { + return element.decorators && element.decorators.length; +} + +function _isDataDescriptor(desc) { + return desc !== undefined && !(desc.value === undefined && desc.writable === undefined); +} + +function _optionalCallableProperty(obj, name) { + var value = obj[name]; + + if (value !== undefined && typeof value !== "function") { + throw new TypeError("Expected '" + name + "' to be a function"); + } + + return value; +} + +module.exports = _decorate, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/defaults.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/defaults.js new file mode 100644 index 00000000..6c1c196d --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/defaults.js @@ -0,0 +1,16 @@ +function _defaults(obj, defaults) { + var keys = Object.getOwnPropertyNames(defaults); + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = Object.getOwnPropertyDescriptor(defaults, key); + + if (value && value.configurable && obj[key] === undefined) { + Object.defineProperty(obj, key, value); + } + } + + return obj; +} + +module.exports = _defaults, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js new file mode 100644 index 00000000..cd491282 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js @@ -0,0 +1,24 @@ +function _defineEnumerableProperties(obj, descs) { + for (var key in descs) { + var desc = descs[key]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, key, desc); + } + + if (Object.getOwnPropertySymbols) { + var objectSymbols = Object.getOwnPropertySymbols(descs); + + for (var i = 0; i < objectSymbols.length; i++) { + var sym = objectSymbols[i]; + var desc = descs[sym]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, sym, desc); + } + } + + return obj; +} + +module.exports = _defineEnumerableProperties, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/defineProperty.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/defineProperty.js new file mode 100644 index 00000000..fe7d6bb9 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/defineProperty.js @@ -0,0 +1,16 @@ +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js new file mode 100644 index 00000000..919aab87 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js @@ -0,0 +1,95 @@ +import AwaitValue from "./AwaitValue.js"; +export default function AsyncGenerator(gen) { + var front, back; + + function send(key, arg) { + return new Promise(function (resolve, reject) { + var request = { + key: key, + arg: arg, + resolve: resolve, + reject: reject, + next: null + }; + + if (back) { + back = back.next = request; + } else { + front = back = request; + resume(key, arg); + } + }); + } + + function resume(key, arg) { + try { + var result = gen[key](arg); + var value = result.value; + var wrappedAwait = value instanceof AwaitValue; + Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { + if (wrappedAwait) { + resume(key === "return" ? "return" : "next", arg); + return; + } + + settle(result.done ? "return" : "normal", arg); + }, function (err) { + resume("throw", err); + }); + } catch (err) { + settle("throw", err); + } + } + + function settle(type, value) { + switch (type) { + case "return": + front.resolve({ + value: value, + done: true + }); + break; + + case "throw": + front.reject(value); + break; + + default: + front.resolve({ + value: value, + done: false + }); + break; + } + + front = front.next; + + if (front) { + resume(front.key, front.arg); + } else { + back = null; + } + } + + this._invoke = send; + + if (typeof gen["return"] !== "function") { + this["return"] = undefined; + } +} + +AsyncGenerator.prototype[typeof Symbol === "function" && Symbol.asyncIterator || "@@asyncIterator"] = function () { + return this; +}; + +AsyncGenerator.prototype.next = function (arg) { + return this._invoke("next", arg); +}; + +AsyncGenerator.prototype["throw"] = function (arg) { + return this._invoke("throw", arg); +}; + +AsyncGenerator.prototype["return"] = function (arg) { + return this._invoke("return", arg); +}; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/AwaitValue.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/AwaitValue.js new file mode 100644 index 00000000..5237e18f --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/AwaitValue.js @@ -0,0 +1,3 @@ +export default function _AwaitValue(value) { + this.wrapped = value; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js new file mode 100644 index 00000000..84b59617 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js @@ -0,0 +1,28 @@ +export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { + var desc = {}; + Object.keys(descriptor).forEach(function (key) { + desc[key] = descriptor[key]; + }); + desc.enumerable = !!desc.enumerable; + desc.configurable = !!desc.configurable; + + if ('value' in desc || desc.initializer) { + desc.writable = true; + } + + desc = decorators.slice().reverse().reduce(function (desc, decorator) { + return decorator(target, property, desc) || desc; + }, desc); + + if (context && desc.initializer !== void 0) { + desc.value = desc.initializer ? desc.initializer.call(context) : void 0; + desc.initializer = undefined; + } + + if (desc.initializer === void 0) { + Object.defineProperty(target, property, desc); + desc = null; + } + + return desc; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/applyDecs.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/applyDecs.js new file mode 100644 index 00000000..a6187c02 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/applyDecs.js @@ -0,0 +1,282 @@ +import _typeof from "./typeof.js"; + +function createMetadataMethodsForProperty(metadataMap, kind, property, decoratorFinishedRef) { + return { + getMetadata: function getMetadata(key) { + assertNotFinished(decoratorFinishedRef, "getMetadata"), assertMetadataKey(key); + var metadataForKey = metadataMap[key]; + if (void 0 !== metadataForKey) if (1 === kind) { + var pub = metadataForKey["public"]; + if (void 0 !== pub) return pub[property]; + } else if (2 === kind) { + var priv = metadataForKey["private"]; + if (void 0 !== priv) return priv.get(property); + } else if (Object.hasOwnProperty.call(metadataForKey, "constructor")) return metadataForKey.constructor; + }, + setMetadata: function setMetadata(key, value) { + assertNotFinished(decoratorFinishedRef, "setMetadata"), assertMetadataKey(key); + var metadataForKey = metadataMap[key]; + + if (void 0 === metadataForKey && (metadataForKey = metadataMap[key] = {}), 1 === kind) { + var pub = metadataForKey["public"]; + void 0 === pub && (pub = metadataForKey["public"] = {}), pub[property] = value; + } else if (2 === kind) { + var priv = metadataForKey.priv; + void 0 === priv && (priv = metadataForKey["private"] = new Map()), priv.set(property, value); + } else metadataForKey.constructor = value; + } + }; +} + +function convertMetadataMapToFinal(obj, metadataMap) { + var parentMetadataMap = obj[Symbol.metadata || Symbol["for"]("Symbol.metadata")], + metadataKeys = Object.getOwnPropertySymbols(metadataMap); + + if (0 !== metadataKeys.length) { + for (var i = 0; i < metadataKeys.length; i++) { + var key = metadataKeys[i], + metaForKey = metadataMap[key], + parentMetaForKey = parentMetadataMap ? parentMetadataMap[key] : null, + pub = metaForKey["public"], + parentPub = parentMetaForKey ? parentMetaForKey["public"] : null; + pub && parentPub && Object.setPrototypeOf(pub, parentPub); + var priv = metaForKey["private"]; + + if (priv) { + var privArr = Array.from(priv.values()), + parentPriv = parentMetaForKey ? parentMetaForKey["private"] : null; + parentPriv && (privArr = privArr.concat(parentPriv)), metaForKey["private"] = privArr; + } + + parentMetaForKey && Object.setPrototypeOf(metaForKey, parentMetaForKey); + } + + parentMetadataMap && Object.setPrototypeOf(metadataMap, parentMetadataMap), obj[Symbol.metadata || Symbol["for"]("Symbol.metadata")] = metadataMap; + } +} + +function createAddInitializerMethod(initializers, decoratorFinishedRef) { + return function (initializer) { + assertNotFinished(decoratorFinishedRef, "addInitializer"), assertCallable(initializer, "An initializer"), initializers.push(initializer); + }; +} + +function memberDec(dec, name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value) { + var kindStr; + + switch (kind) { + case 1: + kindStr = "accessor"; + break; + + case 2: + kindStr = "method"; + break; + + case 3: + kindStr = "getter"; + break; + + case 4: + kindStr = "setter"; + break; + + default: + kindStr = "field"; + } + + var metadataKind, + metadataName, + ctx = { + kind: kindStr, + name: isPrivate ? "#" + name : name, + isStatic: isStatic, + isPrivate: isPrivate + }, + decoratorFinishedRef = { + v: !1 + }; + + if (0 !== kind && (ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef)), isPrivate) { + metadataKind = 2, metadataName = Symbol(name); + var access = {}; + 0 === kind ? (access.get = desc.get, access.set = desc.set) : 2 === kind ? access.get = function () { + return desc.value; + } : (1 !== kind && 3 !== kind || (access.get = function () { + return desc.get.call(this); + }), 1 !== kind && 4 !== kind || (access.set = function (v) { + desc.set.call(this, v); + })), ctx.access = access; + } else metadataKind = 1, metadataName = name; + + try { + return dec(value, Object.assign(ctx, createMetadataMethodsForProperty(metadataMap, metadataKind, metadataName, decoratorFinishedRef))); + } finally { + decoratorFinishedRef.v = !0; + } +} + +function assertNotFinished(decoratorFinishedRef, fnName) { + if (decoratorFinishedRef.v) throw new Error("attempted to call " + fnName + " after decoration was finished"); +} + +function assertMetadataKey(key) { + if ("symbol" != _typeof(key)) throw new TypeError("Metadata keys must be symbols, received: " + key); +} + +function assertCallable(fn, hint) { + if ("function" != typeof fn) throw new TypeError(hint + " must be a function"); +} + +function assertValidReturnValue(kind, value) { + var type = _typeof(value); + + if (1 === kind) { + if ("object" !== type || null === value) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); + void 0 !== value.get && assertCallable(value.get, "accessor.get"), void 0 !== value.set && assertCallable(value.set, "accessor.set"), void 0 !== value.init && assertCallable(value.init, "accessor.init"), void 0 !== value.initializer && assertCallable(value.initializer, "accessor.initializer"); + } else if ("function" !== type) { + var hint; + throw hint = 0 === kind ? "field" : 10 === kind ? "class" : "method", new TypeError(hint + " decorators must return a function or void 0"); + } +} + +function getInit(desc) { + var initializer; + return null == (initializer = desc.init) && (initializer = desc.initializer) && "undefined" != typeof console && console.warn(".initializer has been renamed to .init as of March 2022"), initializer; +} + +function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, metadataMap, initializers) { + var desc, + initializer, + value, + newValue, + get, + set, + decs = decInfo[0]; + if (isPrivate ? desc = 0 === kind || 1 === kind ? { + get: decInfo[3], + set: decInfo[4] + } : 3 === kind ? { + get: decInfo[3] + } : 4 === kind ? { + set: decInfo[3] + } : { + value: decInfo[3] + } : 0 !== kind && (desc = Object.getOwnPropertyDescriptor(base, name)), 1 === kind ? value = { + get: desc.get, + set: desc.set + } : 2 === kind ? value = desc.value : 3 === kind ? value = desc.get : 4 === kind && (value = desc.set), "function" == typeof decs) void 0 !== (newValue = memberDec(decs, name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value)) && (assertValidReturnValue(kind, newValue), 0 === kind ? initializer = newValue : 1 === kind ? (initializer = getInit(newValue), get = newValue.get || value.get, set = newValue.set || value.set, value = { + get: get, + set: set + }) : value = newValue);else for (var i = decs.length - 1; i >= 0; i--) { + var newInit; + if (void 0 !== (newValue = memberDec(decs[i], name, desc, metadataMap, initializers, kind, isStatic, isPrivate, value))) assertValidReturnValue(kind, newValue), 0 === kind ? newInit = newValue : 1 === kind ? (newInit = getInit(newValue), get = newValue.get || value.get, set = newValue.set || value.set, value = { + get: get, + set: set + }) : value = newValue, void 0 !== newInit && (void 0 === initializer ? initializer = newInit : "function" == typeof initializer ? initializer = [initializer, newInit] : initializer.push(newInit)); + } + + if (0 === kind || 1 === kind) { + if (void 0 === initializer) initializer = function initializer(instance, init) { + return init; + };else if ("function" != typeof initializer) { + var ownInitializers = initializer; + + initializer = function initializer(instance, init) { + for (var value = init, i = 0; i < ownInitializers.length; i++) { + value = ownInitializers[i].call(instance, value); + } + + return value; + }; + } else { + var originalInitializer = initializer; + + initializer = function initializer(instance, init) { + return originalInitializer.call(instance, init); + }; + } + ret.push(initializer); + } + + 0 !== kind && (1 === kind ? (desc.get = value.get, desc.set = value.set) : 2 === kind ? desc.value = value : 3 === kind ? desc.get = value : 4 === kind && (desc.set = value), isPrivate ? 1 === kind ? (ret.push(function (instance, args) { + return value.get.call(instance, args); + }), ret.push(function (instance, args) { + return value.set.call(instance, args); + })) : 2 === kind ? ret.push(value) : ret.push(function (instance, args) { + return value.call(instance, args); + }) : Object.defineProperty(base, name, desc)); +} + +function applyMemberDecs(ret, Class, protoMetadataMap, staticMetadataMap, decInfos) { + for (var protoInitializers, staticInitializers, existingProtoNonFields = new Map(), existingStaticNonFields = new Map(), i = 0; i < decInfos.length; i++) { + var decInfo = decInfos[i]; + + if (Array.isArray(decInfo)) { + var base, + metadataMap, + initializers, + kind = decInfo[1], + name = decInfo[2], + isPrivate = decInfo.length > 3, + isStatic = kind >= 5; + + if (isStatic ? (base = Class, metadataMap = staticMetadataMap, 0 !== (kind -= 5) && (initializers = staticInitializers = staticInitializers || [])) : (base = Class.prototype, metadataMap = protoMetadataMap, 0 !== kind && (initializers = protoInitializers = protoInitializers || [])), 0 !== kind && !isPrivate) { + var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields, + existingKind = existingNonFields.get(name) || 0; + if (!0 === existingKind || 3 === existingKind && 4 !== kind || 4 === existingKind && 3 !== kind) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name); + !existingKind && kind > 2 ? existingNonFields.set(name, kind) : existingNonFields.set(name, !0); + } + + applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, metadataMap, initializers); + } + } + + pushInitializers(ret, protoInitializers), pushInitializers(ret, staticInitializers); +} + +function pushInitializers(ret, initializers) { + initializers && ret.push(function (instance) { + for (var i = 0; i < initializers.length; i++) { + initializers[i].call(instance); + } + + return instance; + }); +} + +function applyClassDecs(ret, targetClass, metadataMap, classDecs) { + if (classDecs.length > 0) { + for (var initializers = [], newClass = targetClass, name = targetClass.name, i = classDecs.length - 1; i >= 0; i--) { + var decoratorFinishedRef = { + v: !1 + }; + + try { + var ctx = Object.assign({ + kind: "class", + name: name, + addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef) + }, createMetadataMethodsForProperty(metadataMap, 0, name, decoratorFinishedRef)), + nextNewClass = classDecs[i](newClass, ctx); + } finally { + decoratorFinishedRef.v = !0; + } + + void 0 !== nextNewClass && (assertValidReturnValue(10, nextNewClass), newClass = nextNewClass); + } + + ret.push(newClass, function () { + for (var i = 0; i < initializers.length; i++) { + initializers[i].call(newClass); + } + }); + } +} + +export default function applyDecs(targetClass, memberDecs, classDecs) { + var ret = [], + staticMetadataMap = {}, + protoMetadataMap = {}; + return applyMemberDecs(ret, targetClass, protoMetadataMap, staticMetadataMap, memberDecs), convertMetadataMapToFinal(targetClass.prototype, protoMetadataMap), applyClassDecs(ret, targetClass, staticMetadataMap, classDecs), convertMetadataMapToFinal(targetClass, staticMetadataMap), ret; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js new file mode 100644 index 00000000..edbeb8ee --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js @@ -0,0 +1,9 @@ +export default function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js new file mode 100644 index 00000000..be734fc3 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js @@ -0,0 +1,3 @@ +export default function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js new file mode 100644 index 00000000..f7d8dc78 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js @@ -0,0 +1,4 @@ +import arrayLikeToArray from "./arrayLikeToArray.js"; +export default function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return arrayLikeToArray(arr); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js new file mode 100644 index 00000000..bbf849ca --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js @@ -0,0 +1,7 @@ +export default function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js new file mode 100644 index 00000000..a7ccd675 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js @@ -0,0 +1,54 @@ +export default function _asyncGeneratorDelegate(inner, awaitWrap) { + var iter = {}, + waiting = false; + + function pump(key, value) { + waiting = true; + value = new Promise(function (resolve) { + resolve(inner[key](value)); + }); + return { + done: false, + value: awaitWrap(value) + }; + } + + ; + + iter[typeof Symbol !== "undefined" && Symbol.iterator || "@@iterator"] = function () { + return this; + }; + + iter.next = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("next", value); + }; + + if (typeof inner["throw"] === "function") { + iter["throw"] = function (value) { + if (waiting) { + waiting = false; + throw value; + } + + return pump("throw", value); + }; + } + + if (typeof inner["return"] === "function") { + iter["return"] = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("return", value); + }; + } + + return iter; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/asyncIterator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/asyncIterator.js new file mode 100644 index 00000000..030c44e0 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/asyncIterator.js @@ -0,0 +1,48 @@ +export default function _asyncIterator(iterable) { + var method, + async, + sync, + retry = 2; + + for ("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;) { + if (async && null != (method = iterable[async])) return method.call(iterable); + if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable)); + async = "@@asyncIterator", sync = "@@iterator"; + } + + throw new TypeError("Object is not async iterable"); +} + +function AsyncFromSyncIterator(s) { + function AsyncFromSyncIteratorContinuation(r) { + if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); + var done = r.done; + return Promise.resolve(r.value).then(function (value) { + return { + value: value, + done: done + }; + }); + } + + return AsyncFromSyncIterator = function AsyncFromSyncIterator(s) { + this.s = s, this.n = s.next; + }, AsyncFromSyncIterator.prototype = { + s: null, + n: null, + next: function next() { + return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); + }, + "return": function _return(value) { + var ret = this.s["return"]; + return void 0 === ret ? Promise.resolve({ + value: value, + done: !0 + }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments)); + }, + "throw": function _throw(value) { + var thr = this.s["return"]; + return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments)); + } + }, new AsyncFromSyncIterator(s); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js new file mode 100644 index 00000000..2a25f543 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js @@ -0,0 +1,35 @@ +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} + +export default function _asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + + _next(undefined); + }); + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js new file mode 100644 index 00000000..ccca65e5 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js @@ -0,0 +1,4 @@ +import AwaitValue from "./AwaitValue.js"; +export default function _awaitAsyncGenerator(value) { + return new AwaitValue(value); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js new file mode 100644 index 00000000..99014036 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js @@ -0,0 +1,5 @@ +export default function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js new file mode 100644 index 00000000..4472adc6 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js @@ -0,0 +1,20 @@ +export default function _classApplyDescriptorDestructureSet(receiver, descriptor) { + if (descriptor.set) { + if (!("__destrObj" in descriptor)) { + descriptor.__destrObj = { + set value(v) { + descriptor.set.call(receiver, v); + } + + }; + } + + return descriptor.__destrObj; + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + + return descriptor; + } +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js new file mode 100644 index 00000000..0fad169d --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js @@ -0,0 +1,7 @@ +export default function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + + return descriptor.value; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js new file mode 100644 index 00000000..f295f3e3 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js @@ -0,0 +1,11 @@ +export default function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + + descriptor.value = value; + } +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classCallCheck.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classCallCheck.js new file mode 100644 index 00000000..2f1738a3 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classCallCheck.js @@ -0,0 +1,5 @@ +export default function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js new file mode 100644 index 00000000..098ed309 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js @@ -0,0 +1,5 @@ +export default function _classCheckPrivateStaticAccess(receiver, classConstructor) { + if (receiver !== classConstructor) { + throw new TypeError("Private static access of wrong provenance"); + } +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js new file mode 100644 index 00000000..0ef34b8d --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js @@ -0,0 +1,5 @@ +export default function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { + if (descriptor === undefined) { + throw new TypeError("attempted to " + action + " private static field before its declaration"); + } +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js new file mode 100644 index 00000000..8dabe9a3 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js @@ -0,0 +1,7 @@ +export default function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + + return privateMap.get(receiver); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js new file mode 100644 index 00000000..f7b6dd57 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js @@ -0,0 +1,3 @@ +export default function _classNameTDZError(name) { + throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys."); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js new file mode 100644 index 00000000..fb588336 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js @@ -0,0 +1,6 @@ +import classApplyDescriptorDestructureSet from "./classApplyDescriptorDestructureSet.js"; +import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js"; +export default function _classPrivateFieldDestructureSet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js new file mode 100644 index 00000000..53cd1379 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js @@ -0,0 +1,6 @@ +import classApplyDescriptorGet from "./classApplyDescriptorGet.js"; +import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js"; +export default function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get"); + return classApplyDescriptorGet(receiver, descriptor); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js new file mode 100644 index 00000000..2253dd84 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js @@ -0,0 +1,5 @@ +import checkPrivateRedeclaration from "./checkPrivateRedeclaration.js"; +export default function _classPrivateFieldInitSpec(obj, privateMap, value) { + checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js new file mode 100644 index 00000000..5b10916f --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js @@ -0,0 +1,7 @@ +export default function _classPrivateFieldBase(receiver, privateKey) { + if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { + throw new TypeError("attempted to use private field on non-instance"); + } + + return receiver; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js new file mode 100644 index 00000000..5b7e5ac0 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js @@ -0,0 +1,4 @@ +var id = 0; +export default function _classPrivateFieldKey(name) { + return "__private_" + id++ + "_" + name; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js new file mode 100644 index 00000000..ad91be44 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js @@ -0,0 +1,7 @@ +import classApplyDescriptorSet from "./classApplyDescriptorSet.js"; +import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js"; +export default function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js new file mode 100644 index 00000000..38b9d584 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js @@ -0,0 +1,7 @@ +export default function _classPrivateMethodGet(receiver, privateSet, fn) { + if (!privateSet.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + + return fn; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js new file mode 100644 index 00000000..18d12915 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js @@ -0,0 +1,5 @@ +import checkPrivateRedeclaration from "./checkPrivateRedeclaration.js"; +export default function _classPrivateMethodInitSpec(obj, privateSet) { + checkPrivateRedeclaration(obj, privateSet); + privateSet.add(obj); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js new file mode 100644 index 00000000..2bbaf3a7 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js @@ -0,0 +1,3 @@ +export default function _classPrivateMethodSet() { + throw new TypeError("attempted to reassign private method"); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js new file mode 100644 index 00000000..77afcfb1 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js @@ -0,0 +1,8 @@ +import classApplyDescriptorDestructureSet from "./classApplyDescriptorDestructureSet.js"; +import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; +import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js"; +export default function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js new file mode 100644 index 00000000..d253d311 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js @@ -0,0 +1,8 @@ +import classApplyDescriptorGet from "./classApplyDescriptorGet.js"; +import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; +import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js"; +export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "get"); + return classApplyDescriptorGet(receiver, descriptor); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js new file mode 100644 index 00000000..b0b0cc64 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js @@ -0,0 +1,9 @@ +import classApplyDescriptorSet from "./classApplyDescriptorSet.js"; +import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; +import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js"; +export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js new file mode 100644 index 00000000..fddc7b2d --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js @@ -0,0 +1,5 @@ +import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; +export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) { + classCheckPrivateStaticAccess(receiver, classConstructor); + return method; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js new file mode 100644 index 00000000..d5ab60a9 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js @@ -0,0 +1,3 @@ +export default function _classStaticPrivateMethodSet() { + throw new TypeError("attempted to set read only static private field"); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/construct.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/construct.js new file mode 100644 index 00000000..de064639 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/construct.js @@ -0,0 +1,18 @@ +import setPrototypeOf from "./setPrototypeOf.js"; +import isNativeReflectConstruct from "./isNativeReflectConstruct.js"; +export default function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + _construct = Reflect.construct.bind(); + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + + return _construct.apply(null, arguments); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createClass.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createClass.js new file mode 100644 index 00000000..b3207315 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createClass.js @@ -0,0 +1,18 @@ +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +export default function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js new file mode 100644 index 00000000..a7a2a50a --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js @@ -0,0 +1,57 @@ +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +export default function _createForOfIteratorHelper(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + + if (!it) { + if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + + var F = function F() {}; + + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, + didErr = false, + err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js new file mode 100644 index 00000000..640ec683 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js @@ -0,0 +1,21 @@ +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +export default function _createForOfIteratorHelperLoose(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (it) return (it = it.call(o)).next.bind(it); + + if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + return function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createSuper.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createSuper.js new file mode 100644 index 00000000..ea5ea995 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/createSuper.js @@ -0,0 +1,19 @@ +import getPrototypeOf from "./getPrototypeOf.js"; +import isNativeReflectConstruct from "./isNativeReflectConstruct.js"; +import possibleConstructorReturn from "./possibleConstructorReturn.js"; +export default function _createSuper(Derived) { + var hasNativeReflectConstruct = isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return possibleConstructorReturn(this, result); + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/decorate.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/decorate.js new file mode 100644 index 00000000..daf56da2 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/decorate.js @@ -0,0 +1,396 @@ +import toArray from "./toArray.js"; +import toPropertyKey from "./toPropertyKey.js"; +export default function _decorate(decorators, factory, superClass, mixins) { + var api = _getDecoratorsApi(); + + if (mixins) { + for (var i = 0; i < mixins.length; i++) { + api = mixins[i](api); + } + } + + var r = factory(function initialize(O) { + api.initializeInstanceElements(O, decorated.elements); + }, superClass); + var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); + api.initializeClassElements(r.F, decorated.elements); + return api.runClassFinishers(r.F, decorated.finishers); +} + +function _getDecoratorsApi() { + _getDecoratorsApi = function _getDecoratorsApi() { + return api; + }; + + var api = { + elementsDefinitionOrder: [["method"], ["field"]], + initializeInstanceElements: function initializeInstanceElements(O, elements) { + ["method", "field"].forEach(function (kind) { + elements.forEach(function (element) { + if (element.kind === kind && element.placement === "own") { + this.defineClassElement(O, element); + } + }, this); + }, this); + }, + initializeClassElements: function initializeClassElements(F, elements) { + var proto = F.prototype; + ["method", "field"].forEach(function (kind) { + elements.forEach(function (element) { + var placement = element.placement; + + if (element.kind === kind && (placement === "static" || placement === "prototype")) { + var receiver = placement === "static" ? F : proto; + this.defineClassElement(receiver, element); + } + }, this); + }, this); + }, + defineClassElement: function defineClassElement(receiver, element) { + var descriptor = element.descriptor; + + if (element.kind === "field") { + var initializer = element.initializer; + descriptor = { + enumerable: descriptor.enumerable, + writable: descriptor.writable, + configurable: descriptor.configurable, + value: initializer === void 0 ? void 0 : initializer.call(receiver) + }; + } + + Object.defineProperty(receiver, element.key, descriptor); + }, + decorateClass: function decorateClass(elements, decorators) { + var newElements = []; + var finishers = []; + var placements = { + "static": [], + prototype: [], + own: [] + }; + elements.forEach(function (element) { + this.addElementPlacement(element, placements); + }, this); + elements.forEach(function (element) { + if (!_hasDecorators(element)) return newElements.push(element); + var elementFinishersExtras = this.decorateElement(element, placements); + newElements.push(elementFinishersExtras.element); + newElements.push.apply(newElements, elementFinishersExtras.extras); + finishers.push.apply(finishers, elementFinishersExtras.finishers); + }, this); + + if (!decorators) { + return { + elements: newElements, + finishers: finishers + }; + } + + var result = this.decorateConstructor(newElements, decorators); + finishers.push.apply(finishers, result.finishers); + result.finishers = finishers; + return result; + }, + addElementPlacement: function addElementPlacement(element, placements, silent) { + var keys = placements[element.placement]; + + if (!silent && keys.indexOf(element.key) !== -1) { + throw new TypeError("Duplicated element (" + element.key + ")"); + } + + keys.push(element.key); + }, + decorateElement: function decorateElement(element, placements) { + var extras = []; + var finishers = []; + + for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { + var keys = placements[element.placement]; + keys.splice(keys.indexOf(element.key), 1); + var elementObject = this.fromElementDescriptor(element); + var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); + element = elementFinisherExtras.element; + this.addElementPlacement(element, placements); + + if (elementFinisherExtras.finisher) { + finishers.push(elementFinisherExtras.finisher); + } + + var newExtras = elementFinisherExtras.extras; + + if (newExtras) { + for (var j = 0; j < newExtras.length; j++) { + this.addElementPlacement(newExtras[j], placements); + } + + extras.push.apply(extras, newExtras); + } + } + + return { + element: element, + finishers: finishers, + extras: extras + }; + }, + decorateConstructor: function decorateConstructor(elements, decorators) { + var finishers = []; + + for (var i = decorators.length - 1; i >= 0; i--) { + var obj = this.fromClassDescriptor(elements); + var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); + + if (elementsAndFinisher.finisher !== undefined) { + finishers.push(elementsAndFinisher.finisher); + } + + if (elementsAndFinisher.elements !== undefined) { + elements = elementsAndFinisher.elements; + + for (var j = 0; j < elements.length - 1; j++) { + for (var k = j + 1; k < elements.length; k++) { + if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { + throw new TypeError("Duplicated element (" + elements[j].key + ")"); + } + } + } + } + } + + return { + elements: elements, + finishers: finishers + }; + }, + fromElementDescriptor: function fromElementDescriptor(element) { + var obj = { + kind: element.kind, + key: element.key, + placement: element.placement, + descriptor: element.descriptor + }; + var desc = { + value: "Descriptor", + configurable: true + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + if (element.kind === "field") obj.initializer = element.initializer; + return obj; + }, + toElementDescriptors: function toElementDescriptors(elementObjects) { + if (elementObjects === undefined) return; + return toArray(elementObjects).map(function (elementObject) { + var element = this.toElementDescriptor(elementObject); + this.disallowProperty(elementObject, "finisher", "An element descriptor"); + this.disallowProperty(elementObject, "extras", "An element descriptor"); + return element; + }, this); + }, + toElementDescriptor: function toElementDescriptor(elementObject) { + var kind = String(elementObject.kind); + + if (kind !== "method" && kind !== "field") { + throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"'); + } + + var key = toPropertyKey(elementObject.key); + var placement = String(elementObject.placement); + + if (placement !== "static" && placement !== "prototype" && placement !== "own") { + throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"'); + } + + var descriptor = elementObject.descriptor; + this.disallowProperty(elementObject, "elements", "An element descriptor"); + var element = { + kind: kind, + key: key, + placement: placement, + descriptor: Object.assign({}, descriptor) + }; + + if (kind !== "field") { + this.disallowProperty(elementObject, "initializer", "A method descriptor"); + } else { + this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); + this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); + this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); + element.initializer = elementObject.initializer; + } + + return element; + }, + toElementFinisherExtras: function toElementFinisherExtras(elementObject) { + var element = this.toElementDescriptor(elementObject); + + var finisher = _optionalCallableProperty(elementObject, "finisher"); + + var extras = this.toElementDescriptors(elementObject.extras); + return { + element: element, + finisher: finisher, + extras: extras + }; + }, + fromClassDescriptor: function fromClassDescriptor(elements) { + var obj = { + kind: "class", + elements: elements.map(this.fromElementDescriptor, this) + }; + var desc = { + value: "Descriptor", + configurable: true + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + return obj; + }, + toClassDescriptor: function toClassDescriptor(obj) { + var kind = String(obj.kind); + + if (kind !== "class") { + throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); + } + + this.disallowProperty(obj, "key", "A class descriptor"); + this.disallowProperty(obj, "placement", "A class descriptor"); + this.disallowProperty(obj, "descriptor", "A class descriptor"); + this.disallowProperty(obj, "initializer", "A class descriptor"); + this.disallowProperty(obj, "extras", "A class descriptor"); + + var finisher = _optionalCallableProperty(obj, "finisher"); + + var elements = this.toElementDescriptors(obj.elements); + return { + elements: elements, + finisher: finisher + }; + }, + runClassFinishers: function runClassFinishers(constructor, finishers) { + for (var i = 0; i < finishers.length; i++) { + var newConstructor = (0, finishers[i])(constructor); + + if (newConstructor !== undefined) { + if (typeof newConstructor !== "function") { + throw new TypeError("Finishers must return a constructor."); + } + + constructor = newConstructor; + } + } + + return constructor; + }, + disallowProperty: function disallowProperty(obj, name, objectType) { + if (obj[name] !== undefined) { + throw new TypeError(objectType + " can't have a ." + name + " property."); + } + } + }; + return api; +} + +function _createElementDescriptor(def) { + var key = toPropertyKey(def.key); + var descriptor; + + if (def.kind === "method") { + descriptor = { + value: def.value, + writable: true, + configurable: true, + enumerable: false + }; + } else if (def.kind === "get") { + descriptor = { + get: def.value, + configurable: true, + enumerable: false + }; + } else if (def.kind === "set") { + descriptor = { + set: def.value, + configurable: true, + enumerable: false + }; + } else if (def.kind === "field") { + descriptor = { + configurable: true, + writable: true, + enumerable: true + }; + } + + var element = { + kind: def.kind === "field" ? "field" : "method", + key: key, + placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype", + descriptor: descriptor + }; + if (def.decorators) element.decorators = def.decorators; + if (def.kind === "field") element.initializer = def.value; + return element; +} + +function _coalesceGetterSetter(element, other) { + if (element.descriptor.get !== undefined) { + other.descriptor.get = element.descriptor.get; + } else { + other.descriptor.set = element.descriptor.set; + } +} + +function _coalesceClassElements(elements) { + var newElements = []; + + var isSameElement = function isSameElement(other) { + return other.kind === "method" && other.key === element.key && other.placement === element.placement; + }; + + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + var other; + + if (element.kind === "method" && (other = newElements.find(isSameElement))) { + if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) { + if (_hasDecorators(element) || _hasDecorators(other)) { + throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated."); + } + + other.descriptor = element.descriptor; + } else { + if (_hasDecorators(element)) { + if (_hasDecorators(other)) { + throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ")."); + } + + other.decorators = element.decorators; + } + + _coalesceGetterSetter(element, other); + } + } else { + newElements.push(element); + } + } + + return newElements; +} + +function _hasDecorators(element) { + return element.decorators && element.decorators.length; +} + +function _isDataDescriptor(desc) { + return desc !== undefined && !(desc.value === undefined && desc.writable === undefined); +} + +function _optionalCallableProperty(obj, name) { + var value = obj[name]; + + if (value !== undefined && typeof value !== "function") { + throw new TypeError("Expected '" + name + "' to be a function"); + } + + return value; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/defaults.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/defaults.js new file mode 100644 index 00000000..3de1d8ec --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/defaults.js @@ -0,0 +1,14 @@ +export default function _defaults(obj, defaults) { + var keys = Object.getOwnPropertyNames(defaults); + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = Object.getOwnPropertyDescriptor(defaults, key); + + if (value && value.configurable && obj[key] === undefined) { + Object.defineProperty(obj, key, value); + } + } + + return obj; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js new file mode 100644 index 00000000..7981acd4 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js @@ -0,0 +1,22 @@ +export default function _defineEnumerableProperties(obj, descs) { + for (var key in descs) { + var desc = descs[key]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, key, desc); + } + + if (Object.getOwnPropertySymbols) { + var objectSymbols = Object.getOwnPropertySymbols(descs); + + for (var i = 0; i < objectSymbols.length; i++) { + var sym = objectSymbols[i]; + var desc = descs[sym]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, sym, desc); + } + } + + return obj; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/defineProperty.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/defineProperty.js new file mode 100644 index 00000000..7cf6e59f --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/defineProperty.js @@ -0,0 +1,14 @@ +export default function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/extends.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/extends.js new file mode 100644 index 00000000..93b2e39a --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/extends.js @@ -0,0 +1,16 @@ +export default function _extends() { + _extends = Object.assign ? Object.assign.bind() : function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + return _extends.apply(this, arguments); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/get.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/get.js new file mode 100644 index 00000000..09a2a0e1 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/get.js @@ -0,0 +1,20 @@ +import superPropBase from "./superPropBase.js"; +export default function _get() { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get.bind(); + } else { + _get = function _get(target, property, receiver) { + var base = superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(arguments.length < 3 ? target : receiver); + } + + return desc.value; + }; + } + + return _get.apply(this, arguments); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js new file mode 100644 index 00000000..e9bb1d54 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js @@ -0,0 +1,6 @@ +export default function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/identity.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/identity.js new file mode 100644 index 00000000..a1e7e4cd --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/identity.js @@ -0,0 +1,3 @@ +export default function _identity(x) { + return x; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/inherits.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/inherits.js new file mode 100644 index 00000000..e099909f --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/inherits.js @@ -0,0 +1,18 @@ +import setPrototypeOf from "./setPrototypeOf.js"; +export default function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) setPrototypeOf(subClass, superClass); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js new file mode 100644 index 00000000..90bb7965 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js @@ -0,0 +1,6 @@ +import setPrototypeOf from "./setPrototypeOf.js"; +export default function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + setPrototypeOf(subClass, superClass); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js new file mode 100644 index 00000000..26fdea08 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js @@ -0,0 +1,9 @@ +export default function _initializerDefineProperty(target, property, descriptor, context) { + if (!descriptor) return; + Object.defineProperty(target, property, { + enumerable: descriptor.enumerable, + configurable: descriptor.configurable, + writable: descriptor.writable, + value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 + }); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js new file mode 100644 index 00000000..30d518cf --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js @@ -0,0 +1,3 @@ +export default function _initializerWarningHelper(descriptor, context) { + throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/instanceof.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/instanceof.js new file mode 100644 index 00000000..8c43b717 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/instanceof.js @@ -0,0 +1,7 @@ +export default function _instanceof(left, right) { + if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { + return !!right[Symbol.hasInstance](left); + } else { + return left instanceof right; + } +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js new file mode 100644 index 00000000..c2df7b64 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js @@ -0,0 +1,5 @@ +export default function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js new file mode 100644 index 00000000..01ee6b3f --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js @@ -0,0 +1,51 @@ +import _typeof from "./typeof.js"; + +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} + +export default function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + + if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { + return { + "default": obj + }; + } + + var cache = _getRequireWildcardCache(nodeInterop); + + if (cache && cache.has(obj)) { + return cache.get(obj); + } + + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + + newObj["default"] = obj; + + if (cache) { + cache.set(obj, newObj); + } + + return newObj; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js new file mode 100644 index 00000000..7b1bc821 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js @@ -0,0 +1,3 @@ +export default function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js new file mode 100644 index 00000000..0da1624e --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js @@ -0,0 +1,12 @@ +export default function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/iterableToArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/iterableToArray.js new file mode 100644 index 00000000..cfe9fbd3 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/iterableToArray.js @@ -0,0 +1,3 @@ +export default function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js new file mode 100644 index 00000000..c72ca94b --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js @@ -0,0 +1,29 @@ +export default function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + + var _s, _e; + + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js new file mode 100644 index 00000000..27c15e09 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js @@ -0,0 +1,14 @@ +export default function _iterableToArrayLimitLoose(arr, i) { + var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); + + if (_i == null) return; + var _arr = []; + + for (_i = _i.call(arr), _step; !(_step = _i.next()).done;) { + _arr.push(_step.value); + + if (i && _arr.length === i) break; + } + + return _arr; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/jsx.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/jsx.js new file mode 100644 index 00000000..9a6a94ca --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/jsx.js @@ -0,0 +1,26 @@ +var REACT_ELEMENT_TYPE; +export default function _createRawReactElement(type, props, key, children) { + REACT_ELEMENT_TYPE || (REACT_ELEMENT_TYPE = "function" == typeof Symbol && Symbol["for"] && Symbol["for"]("react.element") || 60103); + var defaultProps = type && type.defaultProps, + childrenLength = arguments.length - 3; + if (props || 0 === childrenLength || (props = { + children: void 0 + }), 1 === childrenLength) props.children = children;else if (childrenLength > 1) { + for (var childArray = new Array(childrenLength), i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 3]; + } + + props.children = childArray; + } + if (props && defaultProps) for (var propName in defaultProps) { + void 0 === props[propName] && (props[propName] = defaultProps[propName]); + } else props || (props = defaultProps || {}); + return { + $$typeof: REACT_ELEMENT_TYPE, + type: type, + key: void 0 === key ? null : "" + key, + ref: null, + props: props, + _owner: null + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js new file mode 100644 index 00000000..f6879592 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js @@ -0,0 +1,9 @@ +import arrayLikeToArray from "./arrayLikeToArray.js"; +export default function _maybeArrayLike(next, arr, i) { + if (arr && !Array.isArray(arr) && typeof arr.length === "number") { + var len = arr.length; + return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len); + } + + return next(arr, i); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js new file mode 100644 index 00000000..d6cd8643 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js @@ -0,0 +1,5 @@ +export default function _newArrowCheck(innerThis, boundThis) { + if (innerThis !== boundThis) { + throw new TypeError("Cannot instantiate an arrow function"); + } +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js new file mode 100644 index 00000000..b349d006 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js @@ -0,0 +1,3 @@ +export default function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js new file mode 100644 index 00000000..82d82961 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js @@ -0,0 +1,3 @@ +export default function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js new file mode 100644 index 00000000..82b67d2c --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js @@ -0,0 +1,3 @@ +export default function _objectDestructuringEmpty(obj) { + if (obj == null) throw new TypeError("Cannot destructure undefined"); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectSpread.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectSpread.js new file mode 100644 index 00000000..889a5f0e --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectSpread.js @@ -0,0 +1,19 @@ +import defineProperty from "./defineProperty.js"; +export default function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? Object(arguments[i]) : {}; + var ownKeys = Object.keys(source); + + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + + ownKeys.forEach(function (key) { + defineProperty(target, key, source[key]); + }); + } + + return target; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectSpread2.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectSpread2.js new file mode 100644 index 00000000..76f29688 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectSpread2.js @@ -0,0 +1,27 @@ +import defineProperty from "./defineProperty.js"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + + return keys; +} + +export default function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { + defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + + return target; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js new file mode 100644 index 00000000..0fef3219 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js @@ -0,0 +1,19 @@ +import objectWithoutPropertiesLoose from "./objectWithoutPropertiesLoose.js"; +export default function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = objectWithoutPropertiesLoose(source, excluded); + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js new file mode 100644 index 00000000..c36815ce --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js @@ -0,0 +1,14 @@ +export default function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/package.json b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/package.json new file mode 100644 index 00000000..aead43de --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js new file mode 100644 index 00000000..56d55445 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js @@ -0,0 +1,11 @@ +import _typeof from "./typeof.js"; +import assertThisInitialized from "./assertThisInitialized.js"; +export default function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + + return assertThisInitialized(self); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/readOnlyError.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/readOnlyError.js new file mode 100644 index 00000000..166e40e5 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/readOnlyError.js @@ -0,0 +1,3 @@ +export default function _readOnlyError(name) { + throw new TypeError("\"" + name + "\" is read-only"); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js new file mode 100644 index 00000000..db43a934 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js @@ -0,0 +1,352 @@ +import _typeof from "./typeof.js"; +export default function _regeneratorRuntime() { + "use strict"; + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + + _regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }; + + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return generator._invoke = function (innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + }(innerFn, self, context), generator; + } + + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + + exports.wrap = wrap; + var ContinueSentinel = {}; + + function Generator() {} + + function GeneratorFunction() {} + + function GeneratorFunctionPrototype() {} + + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + + reject(record.arg); + } + + var previousPromise; + + this._invoke = function (method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + }; + } + + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + + if (undefined === method) { + if (context.delegate = null, "throw" === context.method) { + if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; + context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) { + if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + } + + return next.value = undefined, next.done = !0, next; + }; + + return next.next = next; + } + } + + return { + next: doneResult + }; + } + + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + + return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (object) { + var keys = []; + + for (var key in object) { + keys.push(key); + } + + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { + "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + } + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + "catch": function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + + return thrown; + } + } + + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/set.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/set.js new file mode 100644 index 00000000..9c547739 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/set.js @@ -0,0 +1,51 @@ +import superPropBase from "./superPropBase.js"; +import defineProperty from "./defineProperty.js"; + +function set(target, property, value, receiver) { + if (typeof Reflect !== "undefined" && Reflect.set) { + set = Reflect.set; + } else { + set = function set(target, property, value, receiver) { + var base = superPropBase(target, property); + var desc; + + if (base) { + desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.set) { + desc.set.call(receiver, value); + return true; + } else if (!desc.writable) { + return false; + } + } + + desc = Object.getOwnPropertyDescriptor(receiver, property); + + if (desc) { + if (!desc.writable) { + return false; + } + + desc.value = value; + Object.defineProperty(receiver, property, desc); + } else { + defineProperty(receiver, property, value); + } + + return true; + }; + } + + return set(target, property, value, receiver); +} + +export default function _set(target, property, value, receiver, isStrict) { + var s = set(target, property, value, receiver || target); + + if (!s && isStrict) { + throw new Error('failed to set property'); + } + + return value; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js new file mode 100644 index 00000000..905e13c0 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js @@ -0,0 +1,7 @@ +export default function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js new file mode 100644 index 00000000..cadd9bb5 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js @@ -0,0 +1,7 @@ +export default function _skipFirstGeneratorNext(fn) { + return function () { + var it = fn.apply(this, arguments); + it.next(); + return it; + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/slicedToArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/slicedToArray.js new file mode 100644 index 00000000..618200b9 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/slicedToArray.js @@ -0,0 +1,7 @@ +import arrayWithHoles from "./arrayWithHoles.js"; +import iterableToArrayLimit from "./iterableToArrayLimit.js"; +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +import nonIterableRest from "./nonIterableRest.js"; +export default function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js new file mode 100644 index 00000000..efc7429e --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js @@ -0,0 +1,7 @@ +import arrayWithHoles from "./arrayWithHoles.js"; +import iterableToArrayLimitLoose from "./iterableToArrayLimitLoose.js"; +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +import nonIterableRest from "./nonIterableRest.js"; +export default function _slicedToArrayLoose(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/superPropBase.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/superPropBase.js new file mode 100644 index 00000000..feffe6f7 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/superPropBase.js @@ -0,0 +1,9 @@ +import getPrototypeOf from "./getPrototypeOf.js"; +export default function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = getPrototypeOf(object); + if (object === null) break; + } + + return object; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js new file mode 100644 index 00000000..421f18ab --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js @@ -0,0 +1,11 @@ +export default function _taggedTemplateLiteral(strings, raw) { + if (!raw) { + raw = strings.slice(0); + } + + return Object.freeze(Object.defineProperties(strings, { + raw: { + value: Object.freeze(raw) + } + })); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js new file mode 100644 index 00000000..c8f081e9 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js @@ -0,0 +1,8 @@ +export default function _taggedTemplateLiteralLoose(strings, raw) { + if (!raw) { + raw = strings.slice(0); + } + + strings.raw = raw; + return strings; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/tdz.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/tdz.js new file mode 100644 index 00000000..d5d0adc8 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/tdz.js @@ -0,0 +1,3 @@ +export default function _tdzError(name) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/temporalRef.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/temporalRef.js new file mode 100644 index 00000000..b25f7c44 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/temporalRef.js @@ -0,0 +1,5 @@ +import undef from "./temporalUndefined.js"; +import err from "./tdz.js"; +export default function _temporalRef(val, name) { + return val === undef ? err(name) : val; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js new file mode 100644 index 00000000..1a357173 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js @@ -0,0 +1 @@ +export default function _temporalUndefined() {} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toArray.js new file mode 100644 index 00000000..ad7c871a --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toArray.js @@ -0,0 +1,7 @@ +import arrayWithHoles from "./arrayWithHoles.js"; +import iterableToArray from "./iterableToArray.js"; +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +import nonIterableRest from "./nonIterableRest.js"; +export default function _toArray(arr) { + return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest(); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js new file mode 100644 index 00000000..bd912855 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js @@ -0,0 +1,7 @@ +import arrayWithoutHoles from "./arrayWithoutHoles.js"; +import iterableToArray from "./iterableToArray.js"; +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +import nonIterableSpread from "./nonIterableSpread.js"; +export default function _toConsumableArray(arr) { + return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toPrimitive.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toPrimitive.js new file mode 100644 index 00000000..fa32ddac --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toPrimitive.js @@ -0,0 +1,13 @@ +import _typeof from "./typeof.js"; +export default function _toPrimitive(input, hint) { + if (_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + + return (hint === "string" ? String : Number)(input); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js new file mode 100644 index 00000000..0fcc93b3 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js @@ -0,0 +1,6 @@ +import _typeof from "./typeof.js"; +import toPrimitive from "./toPrimitive.js"; +export default function _toPropertyKey(arg) { + var key = toPrimitive(arg, "string"); + return _typeof(key) === "symbol" ? key : String(key); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/typeof.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/typeof.js new file mode 100644 index 00000000..92100c66 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/typeof.js @@ -0,0 +1,9 @@ +export default function _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js new file mode 100644 index 00000000..c0f63bd5 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js @@ -0,0 +1,9 @@ +import arrayLikeToArray from "./arrayLikeToArray.js"; +export default function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js new file mode 100644 index 00000000..723b2dda --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js @@ -0,0 +1,6 @@ +import AsyncGenerator from "./AsyncGenerator.js"; +export default function _wrapAsyncGenerator(fn) { + return function () { + return new AsyncGenerator(fn.apply(this, arguments)); + }; +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js new file mode 100644 index 00000000..512630d0 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js @@ -0,0 +1,37 @@ +import getPrototypeOf from "./getPrototypeOf.js"; +import setPrototypeOf from "./setPrototypeOf.js"; +import isNativeFunction from "./isNativeFunction.js"; +import construct from "./construct.js"; +export default function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } + + function Wrapper() { + return construct(Class, arguments, getPrototypeOf(this).constructor); + } + + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return setPrototypeOf(Wrapper, Class); + }; + + return _wrapNativeSuper(Class); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js new file mode 100644 index 00000000..beac1e13 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js @@ -0,0 +1,50 @@ +import _typeof from "./typeof.js"; +import setPrototypeOf from "./setPrototypeOf.js"; +import inherits from "./inherits.js"; +export default function _wrapRegExp() { + _wrapRegExp = function _wrapRegExp(re, groups) { + return new BabelRegExp(re, void 0, groups); + }; + + var _super = RegExp.prototype, + _groups = new WeakMap(); + + function BabelRegExp(re, flags, groups) { + var _this = new RegExp(re, flags); + + return _groups.set(_this, groups || _groups.get(re)), setPrototypeOf(_this, BabelRegExp.prototype); + } + + function buildGroups(result, re) { + var g = _groups.get(re); + + return Object.keys(g).reduce(function (groups, name) { + return groups[name] = result[g[name]], groups; + }, Object.create(null)); + } + + return inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) { + var result = _super.exec.call(this, str); + + return result && (result.groups = buildGroups(result, this)), result; + }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { + if ("string" == typeof substitution) { + var groups = _groups.get(this); + + return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { + return "$" + groups[name]; + })); + } + + if ("function" == typeof substitution) { + var _this = this; + + return _super[Symbol.replace].call(this, str, function () { + var args = arguments; + return "object" != _typeof(args[args.length - 1]) && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args); + }); + } + + return _super[Symbol.replace].call(this, str, substitution); + }, _wrapRegExp.apply(this, arguments); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js new file mode 100644 index 00000000..9170bd45 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js @@ -0,0 +1,3 @@ +export default function _writeOnlyError(name) { + throw new TypeError("\"" + name + "\" is write-only"); +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/extends.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/extends.js new file mode 100644 index 00000000..b76a6543 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/extends.js @@ -0,0 +1,18 @@ +function _extends() { + module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + return _extends.apply(this, arguments); +} + +module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/get.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/get.js new file mode 100644 index 00000000..50c3bee3 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/get.js @@ -0,0 +1,23 @@ +var superPropBase = require("./superPropBase.js"); + +function _get() { + if (typeof Reflect !== "undefined" && Reflect.get) { + module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports["default"] = module.exports; + } else { + module.exports = _get = function _get(target, property, receiver) { + var base = superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(arguments.length < 3 ? target : receiver); + } + + return desc.value; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + } + + return _get.apply(this, arguments); +} + +module.exports = _get, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/getPrototypeOf.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/getPrototypeOf.js new file mode 100644 index 00000000..259ed275 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/getPrototypeOf.js @@ -0,0 +1,8 @@ +function _getPrototypeOf(o) { + module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + return _getPrototypeOf(o); +} + +module.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/identity.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/identity.js new file mode 100644 index 00000000..3d00062c --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/identity.js @@ -0,0 +1,5 @@ +function _identity(x) { + return x; +} + +module.exports = _identity, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/inherits.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/inherits.js new file mode 100644 index 00000000..0b10f28e --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/inherits.js @@ -0,0 +1,21 @@ +var setPrototypeOf = require("./setPrototypeOf.js"); + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + Object.defineProperty(subClass, "prototype", { + writable: false + }); + if (superClass) setPrototypeOf(subClass, superClass); +} + +module.exports = _inherits, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/inheritsLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/inheritsLoose.js new file mode 100644 index 00000000..df6de46a --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/inheritsLoose.js @@ -0,0 +1,9 @@ +var setPrototypeOf = require("./setPrototypeOf.js"); + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + setPrototypeOf(subClass, superClass); +} + +module.exports = _inheritsLoose, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/initializerDefineProperty.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/initializerDefineProperty.js new file mode 100644 index 00000000..5a595a70 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/initializerDefineProperty.js @@ -0,0 +1,11 @@ +function _initializerDefineProperty(target, property, descriptor, context) { + if (!descriptor) return; + Object.defineProperty(target, property, { + enumerable: descriptor.enumerable, + configurable: descriptor.configurable, + writable: descriptor.writable, + value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 + }); +} + +module.exports = _initializerDefineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/initializerWarningHelper.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/initializerWarningHelper.js new file mode 100644 index 00000000..001d8a3a --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/initializerWarningHelper.js @@ -0,0 +1,5 @@ +function _initializerWarningHelper(descriptor, context) { + throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); +} + +module.exports = _initializerWarningHelper, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/instanceof.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/instanceof.js new file mode 100644 index 00000000..08eea81b --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/instanceof.js @@ -0,0 +1,9 @@ +function _instanceof(left, right) { + if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { + return !!right[Symbol.hasInstance](left); + } else { + return left instanceof right; + } +} + +module.exports = _instanceof, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/interopRequireDefault.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/interopRequireDefault.js new file mode 100644 index 00000000..5faa0e46 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/interopRequireDefault.js @@ -0,0 +1,7 @@ +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} + +module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/interopRequireWildcard.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/interopRequireWildcard.js new file mode 100644 index 00000000..0f8ffbfa --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/interopRequireWildcard.js @@ -0,0 +1,53 @@ +var _typeof = require("./typeof.js")["default"]; + +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} + +function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + + if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { + return { + "default": obj + }; + } + + var cache = _getRequireWildcardCache(nodeInterop); + + if (cache && cache.has(obj)) { + return cache.get(obj); + } + + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + + newObj["default"] = obj; + + if (cache) { + cache.set(obj, newObj); + } + + return newObj; +} + +module.exports = _interopRequireWildcard, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/isNativeFunction.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/isNativeFunction.js new file mode 100644 index 00000000..5c3d98fc --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/isNativeFunction.js @@ -0,0 +1,5 @@ +function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} + +module.exports = _isNativeFunction, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js new file mode 100644 index 00000000..f07899da --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js @@ -0,0 +1,14 @@ +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} + +module.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/iterableToArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/iterableToArray.js new file mode 100644 index 00000000..5b9038a8 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/iterableToArray.js @@ -0,0 +1,5 @@ +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); +} + +module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js new file mode 100644 index 00000000..8d01fb31 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js @@ -0,0 +1,31 @@ +function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + + var _s, _e; + + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js new file mode 100644 index 00000000..bca54521 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js @@ -0,0 +1,16 @@ +function _iterableToArrayLimitLoose(arr, i) { + var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); + + if (_i == null) return; + var _arr = []; + + for (_i = _i.call(arr), _step; !(_step = _i.next()).done;) { + _arr.push(_step.value); + + if (i && _arr.length === i) break; + } + + return _arr; +} + +module.exports = _iterableToArrayLimitLoose, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/jsx.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/jsx.js new file mode 100644 index 00000000..bc19ec4b --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/jsx.js @@ -0,0 +1,29 @@ +var REACT_ELEMENT_TYPE; + +function _createRawReactElement(type, props, key, children) { + REACT_ELEMENT_TYPE || (REACT_ELEMENT_TYPE = "function" == typeof Symbol && Symbol["for"] && Symbol["for"]("react.element") || 60103); + var defaultProps = type && type.defaultProps, + childrenLength = arguments.length - 3; + if (props || 0 === childrenLength || (props = { + children: void 0 + }), 1 === childrenLength) props.children = children;else if (childrenLength > 1) { + for (var childArray = new Array(childrenLength), i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 3]; + } + + props.children = childArray; + } + if (props && defaultProps) for (var propName in defaultProps) { + void 0 === props[propName] && (props[propName] = defaultProps[propName]); + } else props || (props = defaultProps || {}); + return { + $$typeof: REACT_ELEMENT_TYPE, + type: type, + key: void 0 === key ? null : "" + key, + ref: null, + props: props, + _owner: null + }; +} + +module.exports = _createRawReactElement, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/maybeArrayLike.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/maybeArrayLike.js new file mode 100644 index 00000000..212d68c7 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/maybeArrayLike.js @@ -0,0 +1,12 @@ +var arrayLikeToArray = require("./arrayLikeToArray.js"); + +function _maybeArrayLike(next, arr, i) { + if (arr && !Array.isArray(arr) && typeof arr.length === "number") { + var len = arr.length; + return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len); + } + + return next(arr, i); +} + +module.exports = _maybeArrayLike, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/newArrowCheck.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/newArrowCheck.js new file mode 100644 index 00000000..86a91f2b --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/newArrowCheck.js @@ -0,0 +1,7 @@ +function _newArrowCheck(innerThis, boundThis) { + if (innerThis !== boundThis) { + throw new TypeError("Cannot instantiate an arrow function"); + } +} + +module.exports = _newArrowCheck, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/nonIterableRest.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/nonIterableRest.js new file mode 100644 index 00000000..e7911087 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/nonIterableRest.js @@ -0,0 +1,5 @@ +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/nonIterableSpread.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/nonIterableSpread.js new file mode 100644 index 00000000..64379ea2 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/nonIterableSpread.js @@ -0,0 +1,5 @@ +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js new file mode 100644 index 00000000..cb0866e7 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js @@ -0,0 +1,5 @@ +function _objectDestructuringEmpty(obj) { + if (obj == null) throw new TypeError("Cannot destructure undefined"); +} + +module.exports = _objectDestructuringEmpty, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectSpread.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectSpread.js new file mode 100644 index 00000000..cfb43097 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectSpread.js @@ -0,0 +1,22 @@ +var defineProperty = require("./defineProperty.js"); + +function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? Object(arguments[i]) : {}; + var ownKeys = Object.keys(source); + + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + + ownKeys.forEach(function (key) { + defineProperty(target, key, source[key]); + }); + } + + return target; +} + +module.exports = _objectSpread, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectSpread2.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectSpread2.js new file mode 100644 index 00000000..7e5db07d --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectSpread2.js @@ -0,0 +1,29 @@ +var defineProperty = require("./defineProperty.js"); + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { + defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + + return target; +} + +module.exports = _objectSpread2, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectWithoutProperties.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectWithoutProperties.js new file mode 100644 index 00000000..8cf3ab8d --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectWithoutProperties.js @@ -0,0 +1,22 @@ +var objectWithoutPropertiesLoose = require("./objectWithoutPropertiesLoose.js"); + +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = objectWithoutPropertiesLoose(source, excluded); + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} + +module.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js new file mode 100644 index 00000000..44d5771e --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js @@ -0,0 +1,16 @@ +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js new file mode 100644 index 00000000..e1997be4 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js @@ -0,0 +1,15 @@ +var _typeof = require("./typeof.js")["default"]; + +var assertThisInitialized = require("./assertThisInitialized.js"); + +function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } else if (call !== void 0) { + throw new TypeError("Derived constructors may only return object or undefined"); + } + + return assertThisInitialized(self); +} + +module.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/readOnlyError.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/readOnlyError.js new file mode 100644 index 00000000..93cb90c6 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/readOnlyError.js @@ -0,0 +1,5 @@ +function _readOnlyError(name) { + throw new TypeError("\"" + name + "\" is read-only"); +} + +module.exports = _readOnlyError, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/regeneratorRuntime.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/regeneratorRuntime.js new file mode 100644 index 00000000..c92f45ee --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/regeneratorRuntime.js @@ -0,0 +1,354 @@ +var _typeof = require("./typeof.js")["default"]; + +function _regeneratorRuntime() { + "use strict"; + /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ + + module.exports = _regeneratorRuntime = function _regeneratorRuntime() { + return exports; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + var exports = {}, + Op = Object.prototype, + hasOwn = Op.hasOwnProperty, + $Symbol = "function" == typeof Symbol ? Symbol : {}, + iteratorSymbol = $Symbol.iterator || "@@iterator", + asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", + toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function define(obj, key, value) { + return Object.defineProperty(obj, key, { + value: value, + enumerable: !0, + configurable: !0, + writable: !0 + }), obj[key]; + } + + try { + define({}, ""); + } catch (err) { + define = function define(obj, key, value) { + return obj[key] = value; + }; + } + + function wrap(innerFn, outerFn, self, tryLocsList) { + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, + generator = Object.create(protoGenerator.prototype), + context = new Context(tryLocsList || []); + return generator._invoke = function (innerFn, self, context) { + var state = "suspendedStart"; + return function (method, arg) { + if ("executing" === state) throw new Error("Generator is already running"); + + if ("completed" === state) { + if ("throw" === method) throw arg; + return doneResult(); + } + + for (context.method = method, context.arg = arg;;) { + var delegate = context.delegate; + + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { + if ("suspendedStart" === state) throw state = "completed", context.arg; + context.dispatchException(context.arg); + } else "return" === context.method && context.abrupt("return", context.arg); + state = "executing"; + var record = tryCatch(innerFn, self, context); + + if ("normal" === record.type) { + if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; + return { + value: record.arg, + done: context.done + }; + } + + "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); + } + }; + }(innerFn, self, context), generator; + } + + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + + exports.wrap = wrap; + var ContinueSentinel = {}; + + function Generator() {} + + function GeneratorFunction() {} + + function GeneratorFunctionPrototype() {} + + var IteratorPrototype = {}; + define(IteratorPrototype, iteratorSymbol, function () { + return this; + }); + var getProto = Object.getPrototypeOf, + NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + define(prototype, method, function (arg) { + return this._invoke(method, arg); + }); + }); + } + + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + + if ("throw" !== record.type) { + var result = record.arg, + value = result.value; + return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }) : PromiseImpl.resolve(value).then(function (unwrapped) { + result.value = unwrapped, resolve(result); + }, function (error) { + return invoke("throw", error, resolve, reject); + }); + } + + reject(record.arg); + } + + var previousPromise; + + this._invoke = function (method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + }; + } + + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + + if (undefined === method) { + if (context.delegate = null, "throw" === context.method) { + if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; + context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; + var info = record.arg; + return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); + } + + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal", delete record.arg, entry.completion = record; + } + + function Context(tryLocsList) { + this.tryEntries = [{ + tryLoc: "root" + }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); + } + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) return iteratorMethod.call(iterable); + if ("function" == typeof iterable.next) return iterable; + + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + for (; ++i < iterable.length;) { + if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; + } + + return next.value = undefined, next.done = !0, next; + }; + + return next.next = next; + } + } + + return { + next: doneResult + }; + } + + function doneResult() { + return { + value: undefined, + done: !0 + }; + } + + return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { + var ctor = "function" == typeof genFun && genFun.constructor; + return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); + }, exports.mark = function (genFun) { + return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; + }, exports.awrap = function (arg) { + return { + __await: arg + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { + return this; + }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { + void 0 === PromiseImpl && (PromiseImpl = Promise); + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); + return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { + return this; + }), define(Gp, "toString", function () { + return "[object Generator]"; + }), exports.keys = function (object) { + var keys = []; + + for (var key in object) { + keys.push(key); + } + + return keys.reverse(), function next() { + for (; keys.length;) { + var key = keys.pop(); + if (key in object) return next.value = key, next.done = !1, next; + } + + return next.done = !0, next; + }; + }, exports.values = values, Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { + "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); + } + }, + stop: function stop() { + this.done = !0; + var rootRecord = this.tryEntries[0].completion; + if ("throw" === rootRecord.type) throw rootRecord.arg; + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) throw exception; + var context = this; + + function handle(loc, caught) { + return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i], + record = entry.completion; + if ("root" === entry.tryLoc) return handle("end"); + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"), + hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } else if (hasCatch) { + if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); + } else { + if (!hasFinally) throw new Error("try statement without catch or finally"); + if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); + var record = finallyEntry ? finallyEntry.completion : {}; + return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); + }, + complete: function complete(record, afterLoc) { + if ("throw" === record.type) throw record.arg; + return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; + } + }, + "catch": function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + + if ("throw" === record.type) { + var thrown = record.arg; + resetTryEntry(entry); + } + + return thrown; + } + } + + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + return this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }, "next" === this.method && (this.arg = undefined), ContinueSentinel; + } + }, exports; +} + +module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/set.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/set.js new file mode 100644 index 00000000..6438def2 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/set.js @@ -0,0 +1,54 @@ +var superPropBase = require("./superPropBase.js"); + +var defineProperty = require("./defineProperty.js"); + +function set(target, property, value, receiver) { + if (typeof Reflect !== "undefined" && Reflect.set) { + set = Reflect.set; + } else { + set = function set(target, property, value, receiver) { + var base = superPropBase(target, property); + var desc; + + if (base) { + desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.set) { + desc.set.call(receiver, value); + return true; + } else if (!desc.writable) { + return false; + } + } + + desc = Object.getOwnPropertyDescriptor(receiver, property); + + if (desc) { + if (!desc.writable) { + return false; + } + + desc.value = value; + Object.defineProperty(receiver, property, desc); + } else { + defineProperty(receiver, property, value); + } + + return true; + }; + } + + return set(target, property, value, receiver); +} + +function _set(target, property, value, receiver, isStrict) { + var s = set(target, property, value, receiver || target); + + if (!s && isStrict) { + throw new Error('failed to set property'); + } + + return value; +} + +module.exports = _set, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/setPrototypeOf.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/setPrototypeOf.js new file mode 100644 index 00000000..ed2c1eb0 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/setPrototypeOf.js @@ -0,0 +1,9 @@ +function _setPrototypeOf(o, p) { + module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + return _setPrototypeOf(o, p); +} + +module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js new file mode 100644 index 00000000..88908962 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js @@ -0,0 +1,9 @@ +function _skipFirstGeneratorNext(fn) { + return function () { + var it = fn.apply(this, arguments); + it.next(); + return it; + }; +} + +module.exports = _skipFirstGeneratorNext, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/slicedToArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/slicedToArray.js new file mode 100644 index 00000000..bce5fc0b --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/slicedToArray.js @@ -0,0 +1,13 @@ +var arrayWithHoles = require("./arrayWithHoles.js"); + +var iterableToArrayLimit = require("./iterableToArrayLimit.js"); + +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +var nonIterableRest = require("./nonIterableRest.js"); + +function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js new file mode 100644 index 00000000..cc9ace2f --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js @@ -0,0 +1,13 @@ +var arrayWithHoles = require("./arrayWithHoles.js"); + +var iterableToArrayLimitLoose = require("./iterableToArrayLimitLoose.js"); + +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +var nonIterableRest = require("./nonIterableRest.js"); + +function _slicedToArrayLoose(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArrayLoose, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/superPropBase.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/superPropBase.js new file mode 100644 index 00000000..dd47fff7 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/superPropBase.js @@ -0,0 +1,12 @@ +var getPrototypeOf = require("./getPrototypeOf.js"); + +function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = getPrototypeOf(object); + if (object === null) break; + } + + return object; +} + +module.exports = _superPropBase, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js new file mode 100644 index 00000000..6d9738ca --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js @@ -0,0 +1,13 @@ +function _taggedTemplateLiteral(strings, raw) { + if (!raw) { + raw = strings.slice(0); + } + + return Object.freeze(Object.defineProperties(strings, { + raw: { + value: Object.freeze(raw) + } + })); +} + +module.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js new file mode 100644 index 00000000..4f151ca7 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js @@ -0,0 +1,10 @@ +function _taggedTemplateLiteralLoose(strings, raw) { + if (!raw) { + raw = strings.slice(0); + } + + strings.raw = raw; + return strings; +} + +module.exports = _taggedTemplateLiteralLoose, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/tdz.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/tdz.js new file mode 100644 index 00000000..91ec2b22 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/tdz.js @@ -0,0 +1,5 @@ +function _tdzError(name) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); +} + +module.exports = _tdzError, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/temporalRef.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/temporalRef.js new file mode 100644 index 00000000..6afd9323 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/temporalRef.js @@ -0,0 +1,9 @@ +var temporalUndefined = require("./temporalUndefined.js"); + +var tdz = require("./tdz.js"); + +function _temporalRef(val, name) { + return val === temporalUndefined ? tdz(name) : val; +} + +module.exports = _temporalRef, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/temporalUndefined.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/temporalUndefined.js new file mode 100644 index 00000000..7aca810f --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/temporalUndefined.js @@ -0,0 +1,3 @@ +function _temporalUndefined() {} + +module.exports = _temporalUndefined, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/toArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/toArray.js new file mode 100644 index 00000000..d0af0e93 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/toArray.js @@ -0,0 +1,13 @@ +var arrayWithHoles = require("./arrayWithHoles.js"); + +var iterableToArray = require("./iterableToArray.js"); + +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +var nonIterableRest = require("./nonIterableRest.js"); + +function _toArray(arr) { + return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest(); +} + +module.exports = _toArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/toConsumableArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/toConsumableArray.js new file mode 100644 index 00000000..9c69072c --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/toConsumableArray.js @@ -0,0 +1,13 @@ +var arrayWithoutHoles = require("./arrayWithoutHoles.js"); + +var iterableToArray = require("./iterableToArray.js"); + +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +var nonIterableSpread = require("./nonIterableSpread.js"); + +function _toConsumableArray(arr) { + return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); +} + +module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/toPrimitive.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/toPrimitive.js new file mode 100644 index 00000000..dc4da81a --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/toPrimitive.js @@ -0,0 +1,16 @@ +var _typeof = require("./typeof.js")["default"]; + +function _toPrimitive(input, hint) { + if (_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + + return (hint === "string" ? String : Number)(input); +} + +module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/toPropertyKey.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/toPropertyKey.js new file mode 100644 index 00000000..61367cf3 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/toPropertyKey.js @@ -0,0 +1,10 @@ +var _typeof = require("./typeof.js")["default"]; + +var toPrimitive = require("./toPrimitive.js"); + +function _toPropertyKey(arg) { + var key = toPrimitive(arg, "string"); + return _typeof(key) === "symbol" ? key : String(key); +} + +module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/typeof.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/typeof.js new file mode 100644 index 00000000..6c7860ff --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/typeof.js @@ -0,0 +1,11 @@ +function _typeof(obj) { + "@babel/helpers - typeof"; + + return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj); +} + +module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js new file mode 100644 index 00000000..bfe65e40 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js @@ -0,0 +1,12 @@ +var arrayLikeToArray = require("./arrayLikeToArray.js"); + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); +} + +module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js new file mode 100644 index 00000000..1fb4fd76 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js @@ -0,0 +1,9 @@ +var AsyncGenerator = require("./AsyncGenerator.js"); + +function _wrapAsyncGenerator(fn) { + return function () { + return new AsyncGenerator(fn.apply(this, arguments)); + }; +} + +module.exports = _wrapAsyncGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/wrapNativeSuper.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/wrapNativeSuper.js new file mode 100644 index 00000000..516220bf --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/wrapNativeSuper.js @@ -0,0 +1,42 @@ +var getPrototypeOf = require("./getPrototypeOf.js"); + +var setPrototypeOf = require("./setPrototypeOf.js"); + +var isNativeFunction = require("./isNativeFunction.js"); + +var construct = require("./construct.js"); + +function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } + + function Wrapper() { + return construct(Class, arguments, getPrototypeOf(this).constructor); + } + + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return setPrototypeOf(Wrapper, Class); + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + return _wrapNativeSuper(Class); +} + +module.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/wrapRegExp.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/wrapRegExp.js new file mode 100644 index 00000000..5b8342bd --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/wrapRegExp.js @@ -0,0 +1,55 @@ +var _typeof = require("./typeof.js")["default"]; + +var setPrototypeOf = require("./setPrototypeOf.js"); + +var inherits = require("./inherits.js"); + +function _wrapRegExp() { + module.exports = _wrapRegExp = function _wrapRegExp(re, groups) { + return new BabelRegExp(re, void 0, groups); + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + + var _super = RegExp.prototype, + _groups = new WeakMap(); + + function BabelRegExp(re, flags, groups) { + var _this = new RegExp(re, flags); + + return _groups.set(_this, groups || _groups.get(re)), setPrototypeOf(_this, BabelRegExp.prototype); + } + + function buildGroups(result, re) { + var g = _groups.get(re); + + return Object.keys(g).reduce(function (groups, name) { + return groups[name] = result[g[name]], groups; + }, Object.create(null)); + } + + return inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) { + var result = _super.exec.call(this, str); + + return result && (result.groups = buildGroups(result, this)), result; + }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { + if ("string" == typeof substitution) { + var groups = _groups.get(this); + + return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { + return "$" + groups[name]; + })); + } + + if ("function" == typeof substitution) { + var _this = this; + + return _super[Symbol.replace].call(this, str, function () { + var args = arguments; + return "object" != _typeof(args[args.length - 1]) && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args); + }); + } + + return _super[Symbol.replace].call(this, str, substitution); + }, _wrapRegExp.apply(this, arguments); +} + +module.exports = _wrapRegExp, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/helpers/writeOnlyError.js b/node_modules/react-redux/node_modules/@babel/runtime/helpers/writeOnlyError.js new file mode 100644 index 00000000..13294873 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/helpers/writeOnlyError.js @@ -0,0 +1,5 @@ +function _writeOnlyError(name) { + throw new TypeError("\"" + name + "\" is write-only"); +} + +module.exports = _writeOnlyError, module.exports.__esModule = true, module.exports["default"] = module.exports; \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/package.json b/node_modules/react-redux/node_modules/@babel/runtime/package.json new file mode 100644 index 00000000..96b3f07c --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/package.json @@ -0,0 +1,876 @@ +{ + "name": "@babel/runtime", + "version": "7.18.9", + "description": "babel's modular runtime helpers", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-runtime" + }, + "homepage": "https://babel.dev/docs/en/next/babel-runtime", + "author": "The Babel Team (https://babel.dev/team)", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "exports": { + "./helpers/applyDecs": [ + { + "node": "./helpers/applyDecs.js", + "import": "./helpers/esm/applyDecs.js", + "default": "./helpers/applyDecs.js" + }, + "./helpers/applyDecs.js" + ], + "./helpers/esm/applyDecs": "./helpers/esm/applyDecs.js", + "./helpers/asyncIterator": [ + { + "node": "./helpers/asyncIterator.js", + "import": "./helpers/esm/asyncIterator.js", + "default": "./helpers/asyncIterator.js" + }, + "./helpers/asyncIterator.js" + ], + "./helpers/esm/asyncIterator": "./helpers/esm/asyncIterator.js", + "./helpers/jsx": [ + { + "node": "./helpers/jsx.js", + "import": "./helpers/esm/jsx.js", + "default": "./helpers/jsx.js" + }, + "./helpers/jsx.js" + ], + "./helpers/esm/jsx": "./helpers/esm/jsx.js", + "./helpers/objectSpread2": [ + { + "node": "./helpers/objectSpread2.js", + "import": "./helpers/esm/objectSpread2.js", + "default": "./helpers/objectSpread2.js" + }, + "./helpers/objectSpread2.js" + ], + "./helpers/esm/objectSpread2": "./helpers/esm/objectSpread2.js", + "./helpers/regeneratorRuntime": [ + { + "node": "./helpers/regeneratorRuntime.js", + "import": "./helpers/esm/regeneratorRuntime.js", + "default": "./helpers/regeneratorRuntime.js" + }, + "./helpers/regeneratorRuntime.js" + ], + "./helpers/esm/regeneratorRuntime": "./helpers/esm/regeneratorRuntime.js", + "./helpers/typeof": [ + { + "node": "./helpers/typeof.js", + "import": "./helpers/esm/typeof.js", + "default": "./helpers/typeof.js" + }, + "./helpers/typeof.js" + ], + "./helpers/esm/typeof": "./helpers/esm/typeof.js", + "./helpers/wrapRegExp": [ + { + "node": "./helpers/wrapRegExp.js", + "import": "./helpers/esm/wrapRegExp.js", + "default": "./helpers/wrapRegExp.js" + }, + "./helpers/wrapRegExp.js" + ], + "./helpers/esm/wrapRegExp": "./helpers/esm/wrapRegExp.js", + "./helpers/AwaitValue": [ + { + "node": "./helpers/AwaitValue.js", + "import": "./helpers/esm/AwaitValue.js", + "default": "./helpers/AwaitValue.js" + }, + "./helpers/AwaitValue.js" + ], + "./helpers/esm/AwaitValue": "./helpers/esm/AwaitValue.js", + "./helpers/AsyncGenerator": [ + { + "node": "./helpers/AsyncGenerator.js", + "import": "./helpers/esm/AsyncGenerator.js", + "default": "./helpers/AsyncGenerator.js" + }, + "./helpers/AsyncGenerator.js" + ], + "./helpers/esm/AsyncGenerator": "./helpers/esm/AsyncGenerator.js", + "./helpers/wrapAsyncGenerator": [ + { + "node": "./helpers/wrapAsyncGenerator.js", + "import": "./helpers/esm/wrapAsyncGenerator.js", + "default": "./helpers/wrapAsyncGenerator.js" + }, + "./helpers/wrapAsyncGenerator.js" + ], + "./helpers/esm/wrapAsyncGenerator": "./helpers/esm/wrapAsyncGenerator.js", + "./helpers/awaitAsyncGenerator": [ + { + "node": "./helpers/awaitAsyncGenerator.js", + "import": "./helpers/esm/awaitAsyncGenerator.js", + "default": "./helpers/awaitAsyncGenerator.js" + }, + "./helpers/awaitAsyncGenerator.js" + ], + "./helpers/esm/awaitAsyncGenerator": "./helpers/esm/awaitAsyncGenerator.js", + "./helpers/asyncGeneratorDelegate": [ + { + "node": "./helpers/asyncGeneratorDelegate.js", + "import": "./helpers/esm/asyncGeneratorDelegate.js", + "default": "./helpers/asyncGeneratorDelegate.js" + }, + "./helpers/asyncGeneratorDelegate.js" + ], + "./helpers/esm/asyncGeneratorDelegate": "./helpers/esm/asyncGeneratorDelegate.js", + "./helpers/asyncToGenerator": [ + { + "node": "./helpers/asyncToGenerator.js", + "import": "./helpers/esm/asyncToGenerator.js", + "default": "./helpers/asyncToGenerator.js" + }, + "./helpers/asyncToGenerator.js" + ], + "./helpers/esm/asyncToGenerator": "./helpers/esm/asyncToGenerator.js", + "./helpers/classCallCheck": [ + { + "node": "./helpers/classCallCheck.js", + "import": "./helpers/esm/classCallCheck.js", + "default": "./helpers/classCallCheck.js" + }, + "./helpers/classCallCheck.js" + ], + "./helpers/esm/classCallCheck": "./helpers/esm/classCallCheck.js", + "./helpers/createClass": [ + { + "node": "./helpers/createClass.js", + "import": "./helpers/esm/createClass.js", + "default": "./helpers/createClass.js" + }, + "./helpers/createClass.js" + ], + "./helpers/esm/createClass": "./helpers/esm/createClass.js", + "./helpers/defineEnumerableProperties": [ + { + "node": "./helpers/defineEnumerableProperties.js", + "import": "./helpers/esm/defineEnumerableProperties.js", + "default": "./helpers/defineEnumerableProperties.js" + }, + "./helpers/defineEnumerableProperties.js" + ], + "./helpers/esm/defineEnumerableProperties": "./helpers/esm/defineEnumerableProperties.js", + "./helpers/defaults": [ + { + "node": "./helpers/defaults.js", + "import": "./helpers/esm/defaults.js", + "default": "./helpers/defaults.js" + }, + "./helpers/defaults.js" + ], + "./helpers/esm/defaults": "./helpers/esm/defaults.js", + "./helpers/defineProperty": [ + { + "node": "./helpers/defineProperty.js", + "import": "./helpers/esm/defineProperty.js", + "default": "./helpers/defineProperty.js" + }, + "./helpers/defineProperty.js" + ], + "./helpers/esm/defineProperty": "./helpers/esm/defineProperty.js", + "./helpers/extends": [ + { + "node": "./helpers/extends.js", + "import": "./helpers/esm/extends.js", + "default": "./helpers/extends.js" + }, + "./helpers/extends.js" + ], + "./helpers/esm/extends": "./helpers/esm/extends.js", + "./helpers/objectSpread": [ + { + "node": "./helpers/objectSpread.js", + "import": "./helpers/esm/objectSpread.js", + "default": "./helpers/objectSpread.js" + }, + "./helpers/objectSpread.js" + ], + "./helpers/esm/objectSpread": "./helpers/esm/objectSpread.js", + "./helpers/inherits": [ + { + "node": "./helpers/inherits.js", + "import": "./helpers/esm/inherits.js", + "default": "./helpers/inherits.js" + }, + "./helpers/inherits.js" + ], + "./helpers/esm/inherits": "./helpers/esm/inherits.js", + "./helpers/inheritsLoose": [ + { + "node": "./helpers/inheritsLoose.js", + "import": "./helpers/esm/inheritsLoose.js", + "default": "./helpers/inheritsLoose.js" + }, + "./helpers/inheritsLoose.js" + ], + "./helpers/esm/inheritsLoose": "./helpers/esm/inheritsLoose.js", + "./helpers/getPrototypeOf": [ + { + "node": "./helpers/getPrototypeOf.js", + "import": "./helpers/esm/getPrototypeOf.js", + "default": "./helpers/getPrototypeOf.js" + }, + "./helpers/getPrototypeOf.js" + ], + "./helpers/esm/getPrototypeOf": "./helpers/esm/getPrototypeOf.js", + "./helpers/setPrototypeOf": [ + { + "node": "./helpers/setPrototypeOf.js", + "import": "./helpers/esm/setPrototypeOf.js", + "default": "./helpers/setPrototypeOf.js" + }, + "./helpers/setPrototypeOf.js" + ], + "./helpers/esm/setPrototypeOf": "./helpers/esm/setPrototypeOf.js", + "./helpers/isNativeReflectConstruct": [ + { + "node": "./helpers/isNativeReflectConstruct.js", + "import": "./helpers/esm/isNativeReflectConstruct.js", + "default": "./helpers/isNativeReflectConstruct.js" + }, + "./helpers/isNativeReflectConstruct.js" + ], + "./helpers/esm/isNativeReflectConstruct": "./helpers/esm/isNativeReflectConstruct.js", + "./helpers/construct": [ + { + "node": "./helpers/construct.js", + "import": "./helpers/esm/construct.js", + "default": "./helpers/construct.js" + }, + "./helpers/construct.js" + ], + "./helpers/esm/construct": "./helpers/esm/construct.js", + "./helpers/isNativeFunction": [ + { + "node": "./helpers/isNativeFunction.js", + "import": "./helpers/esm/isNativeFunction.js", + "default": "./helpers/isNativeFunction.js" + }, + "./helpers/isNativeFunction.js" + ], + "./helpers/esm/isNativeFunction": "./helpers/esm/isNativeFunction.js", + "./helpers/wrapNativeSuper": [ + { + "node": "./helpers/wrapNativeSuper.js", + "import": "./helpers/esm/wrapNativeSuper.js", + "default": "./helpers/wrapNativeSuper.js" + }, + "./helpers/wrapNativeSuper.js" + ], + "./helpers/esm/wrapNativeSuper": "./helpers/esm/wrapNativeSuper.js", + "./helpers/instanceof": [ + { + "node": "./helpers/instanceof.js", + "import": "./helpers/esm/instanceof.js", + "default": "./helpers/instanceof.js" + }, + "./helpers/instanceof.js" + ], + "./helpers/esm/instanceof": "./helpers/esm/instanceof.js", + "./helpers/interopRequireDefault": [ + { + "node": "./helpers/interopRequireDefault.js", + "import": "./helpers/esm/interopRequireDefault.js", + "default": "./helpers/interopRequireDefault.js" + }, + "./helpers/interopRequireDefault.js" + ], + "./helpers/esm/interopRequireDefault": "./helpers/esm/interopRequireDefault.js", + "./helpers/interopRequireWildcard": [ + { + "node": "./helpers/interopRequireWildcard.js", + "import": "./helpers/esm/interopRequireWildcard.js", + "default": "./helpers/interopRequireWildcard.js" + }, + "./helpers/interopRequireWildcard.js" + ], + "./helpers/esm/interopRequireWildcard": "./helpers/esm/interopRequireWildcard.js", + "./helpers/newArrowCheck": [ + { + "node": "./helpers/newArrowCheck.js", + "import": "./helpers/esm/newArrowCheck.js", + "default": "./helpers/newArrowCheck.js" + }, + "./helpers/newArrowCheck.js" + ], + "./helpers/esm/newArrowCheck": "./helpers/esm/newArrowCheck.js", + "./helpers/objectDestructuringEmpty": [ + { + "node": "./helpers/objectDestructuringEmpty.js", + "import": "./helpers/esm/objectDestructuringEmpty.js", + "default": "./helpers/objectDestructuringEmpty.js" + }, + "./helpers/objectDestructuringEmpty.js" + ], + "./helpers/esm/objectDestructuringEmpty": "./helpers/esm/objectDestructuringEmpty.js", + "./helpers/objectWithoutPropertiesLoose": [ + { + "node": "./helpers/objectWithoutPropertiesLoose.js", + "import": "./helpers/esm/objectWithoutPropertiesLoose.js", + "default": "./helpers/objectWithoutPropertiesLoose.js" + }, + "./helpers/objectWithoutPropertiesLoose.js" + ], + "./helpers/esm/objectWithoutPropertiesLoose": "./helpers/esm/objectWithoutPropertiesLoose.js", + "./helpers/objectWithoutProperties": [ + { + "node": "./helpers/objectWithoutProperties.js", + "import": "./helpers/esm/objectWithoutProperties.js", + "default": "./helpers/objectWithoutProperties.js" + }, + "./helpers/objectWithoutProperties.js" + ], + "./helpers/esm/objectWithoutProperties": "./helpers/esm/objectWithoutProperties.js", + "./helpers/assertThisInitialized": [ + { + "node": "./helpers/assertThisInitialized.js", + "import": "./helpers/esm/assertThisInitialized.js", + "default": "./helpers/assertThisInitialized.js" + }, + "./helpers/assertThisInitialized.js" + ], + "./helpers/esm/assertThisInitialized": "./helpers/esm/assertThisInitialized.js", + "./helpers/possibleConstructorReturn": [ + { + "node": "./helpers/possibleConstructorReturn.js", + "import": "./helpers/esm/possibleConstructorReturn.js", + "default": "./helpers/possibleConstructorReturn.js" + }, + "./helpers/possibleConstructorReturn.js" + ], + "./helpers/esm/possibleConstructorReturn": "./helpers/esm/possibleConstructorReturn.js", + "./helpers/createSuper": [ + { + "node": "./helpers/createSuper.js", + "import": "./helpers/esm/createSuper.js", + "default": "./helpers/createSuper.js" + }, + "./helpers/createSuper.js" + ], + "./helpers/esm/createSuper": "./helpers/esm/createSuper.js", + "./helpers/superPropBase": [ + { + "node": "./helpers/superPropBase.js", + "import": "./helpers/esm/superPropBase.js", + "default": "./helpers/superPropBase.js" + }, + "./helpers/superPropBase.js" + ], + "./helpers/esm/superPropBase": "./helpers/esm/superPropBase.js", + "./helpers/get": [ + { + "node": "./helpers/get.js", + "import": "./helpers/esm/get.js", + "default": "./helpers/get.js" + }, + "./helpers/get.js" + ], + "./helpers/esm/get": "./helpers/esm/get.js", + "./helpers/set": [ + { + "node": "./helpers/set.js", + "import": "./helpers/esm/set.js", + "default": "./helpers/set.js" + }, + "./helpers/set.js" + ], + "./helpers/esm/set": "./helpers/esm/set.js", + "./helpers/taggedTemplateLiteral": [ + { + "node": "./helpers/taggedTemplateLiteral.js", + "import": "./helpers/esm/taggedTemplateLiteral.js", + "default": "./helpers/taggedTemplateLiteral.js" + }, + "./helpers/taggedTemplateLiteral.js" + ], + "./helpers/esm/taggedTemplateLiteral": "./helpers/esm/taggedTemplateLiteral.js", + "./helpers/taggedTemplateLiteralLoose": [ + { + "node": "./helpers/taggedTemplateLiteralLoose.js", + "import": "./helpers/esm/taggedTemplateLiteralLoose.js", + "default": "./helpers/taggedTemplateLiteralLoose.js" + }, + "./helpers/taggedTemplateLiteralLoose.js" + ], + "./helpers/esm/taggedTemplateLiteralLoose": "./helpers/esm/taggedTemplateLiteralLoose.js", + "./helpers/readOnlyError": [ + { + "node": "./helpers/readOnlyError.js", + "import": "./helpers/esm/readOnlyError.js", + "default": "./helpers/readOnlyError.js" + }, + "./helpers/readOnlyError.js" + ], + "./helpers/esm/readOnlyError": "./helpers/esm/readOnlyError.js", + "./helpers/writeOnlyError": [ + { + "node": "./helpers/writeOnlyError.js", + "import": "./helpers/esm/writeOnlyError.js", + "default": "./helpers/writeOnlyError.js" + }, + "./helpers/writeOnlyError.js" + ], + "./helpers/esm/writeOnlyError": "./helpers/esm/writeOnlyError.js", + "./helpers/classNameTDZError": [ + { + "node": "./helpers/classNameTDZError.js", + "import": "./helpers/esm/classNameTDZError.js", + "default": "./helpers/classNameTDZError.js" + }, + "./helpers/classNameTDZError.js" + ], + "./helpers/esm/classNameTDZError": "./helpers/esm/classNameTDZError.js", + "./helpers/temporalUndefined": [ + { + "node": "./helpers/temporalUndefined.js", + "import": "./helpers/esm/temporalUndefined.js", + "default": "./helpers/temporalUndefined.js" + }, + "./helpers/temporalUndefined.js" + ], + "./helpers/esm/temporalUndefined": "./helpers/esm/temporalUndefined.js", + "./helpers/tdz": [ + { + "node": "./helpers/tdz.js", + "import": "./helpers/esm/tdz.js", + "default": "./helpers/tdz.js" + }, + "./helpers/tdz.js" + ], + "./helpers/esm/tdz": "./helpers/esm/tdz.js", + "./helpers/temporalRef": [ + { + "node": "./helpers/temporalRef.js", + "import": "./helpers/esm/temporalRef.js", + "default": "./helpers/temporalRef.js" + }, + "./helpers/temporalRef.js" + ], + "./helpers/esm/temporalRef": "./helpers/esm/temporalRef.js", + "./helpers/slicedToArray": [ + { + "node": "./helpers/slicedToArray.js", + "import": "./helpers/esm/slicedToArray.js", + "default": "./helpers/slicedToArray.js" + }, + "./helpers/slicedToArray.js" + ], + "./helpers/esm/slicedToArray": "./helpers/esm/slicedToArray.js", + "./helpers/slicedToArrayLoose": [ + { + "node": "./helpers/slicedToArrayLoose.js", + "import": "./helpers/esm/slicedToArrayLoose.js", + "default": "./helpers/slicedToArrayLoose.js" + }, + "./helpers/slicedToArrayLoose.js" + ], + "./helpers/esm/slicedToArrayLoose": "./helpers/esm/slicedToArrayLoose.js", + "./helpers/toArray": [ + { + "node": "./helpers/toArray.js", + "import": "./helpers/esm/toArray.js", + "default": "./helpers/toArray.js" + }, + "./helpers/toArray.js" + ], + "./helpers/esm/toArray": "./helpers/esm/toArray.js", + "./helpers/toConsumableArray": [ + { + "node": "./helpers/toConsumableArray.js", + "import": "./helpers/esm/toConsumableArray.js", + "default": "./helpers/toConsumableArray.js" + }, + "./helpers/toConsumableArray.js" + ], + "./helpers/esm/toConsumableArray": "./helpers/esm/toConsumableArray.js", + "./helpers/arrayWithoutHoles": [ + { + "node": "./helpers/arrayWithoutHoles.js", + "import": "./helpers/esm/arrayWithoutHoles.js", + "default": "./helpers/arrayWithoutHoles.js" + }, + "./helpers/arrayWithoutHoles.js" + ], + "./helpers/esm/arrayWithoutHoles": "./helpers/esm/arrayWithoutHoles.js", + "./helpers/arrayWithHoles": [ + { + "node": "./helpers/arrayWithHoles.js", + "import": "./helpers/esm/arrayWithHoles.js", + "default": "./helpers/arrayWithHoles.js" + }, + "./helpers/arrayWithHoles.js" + ], + "./helpers/esm/arrayWithHoles": "./helpers/esm/arrayWithHoles.js", + "./helpers/maybeArrayLike": [ + { + "node": "./helpers/maybeArrayLike.js", + "import": "./helpers/esm/maybeArrayLike.js", + "default": "./helpers/maybeArrayLike.js" + }, + "./helpers/maybeArrayLike.js" + ], + "./helpers/esm/maybeArrayLike": "./helpers/esm/maybeArrayLike.js", + "./helpers/iterableToArray": [ + { + "node": "./helpers/iterableToArray.js", + "import": "./helpers/esm/iterableToArray.js", + "default": "./helpers/iterableToArray.js" + }, + "./helpers/iterableToArray.js" + ], + "./helpers/esm/iterableToArray": "./helpers/esm/iterableToArray.js", + "./helpers/iterableToArrayLimit": [ + { + "node": "./helpers/iterableToArrayLimit.js", + "import": "./helpers/esm/iterableToArrayLimit.js", + "default": "./helpers/iterableToArrayLimit.js" + }, + "./helpers/iterableToArrayLimit.js" + ], + "./helpers/esm/iterableToArrayLimit": "./helpers/esm/iterableToArrayLimit.js", + "./helpers/iterableToArrayLimitLoose": [ + { + "node": "./helpers/iterableToArrayLimitLoose.js", + "import": "./helpers/esm/iterableToArrayLimitLoose.js", + "default": "./helpers/iterableToArrayLimitLoose.js" + }, + "./helpers/iterableToArrayLimitLoose.js" + ], + "./helpers/esm/iterableToArrayLimitLoose": "./helpers/esm/iterableToArrayLimitLoose.js", + "./helpers/unsupportedIterableToArray": [ + { + "node": "./helpers/unsupportedIterableToArray.js", + "import": "./helpers/esm/unsupportedIterableToArray.js", + "default": "./helpers/unsupportedIterableToArray.js" + }, + "./helpers/unsupportedIterableToArray.js" + ], + "./helpers/esm/unsupportedIterableToArray": "./helpers/esm/unsupportedIterableToArray.js", + "./helpers/arrayLikeToArray": [ + { + "node": "./helpers/arrayLikeToArray.js", + "import": "./helpers/esm/arrayLikeToArray.js", + "default": "./helpers/arrayLikeToArray.js" + }, + "./helpers/arrayLikeToArray.js" + ], + "./helpers/esm/arrayLikeToArray": "./helpers/esm/arrayLikeToArray.js", + "./helpers/nonIterableSpread": [ + { + "node": "./helpers/nonIterableSpread.js", + "import": "./helpers/esm/nonIterableSpread.js", + "default": "./helpers/nonIterableSpread.js" + }, + "./helpers/nonIterableSpread.js" + ], + "./helpers/esm/nonIterableSpread": "./helpers/esm/nonIterableSpread.js", + "./helpers/nonIterableRest": [ + { + "node": "./helpers/nonIterableRest.js", + "import": "./helpers/esm/nonIterableRest.js", + "default": "./helpers/nonIterableRest.js" + }, + "./helpers/nonIterableRest.js" + ], + "./helpers/esm/nonIterableRest": "./helpers/esm/nonIterableRest.js", + "./helpers/createForOfIteratorHelper": [ + { + "node": "./helpers/createForOfIteratorHelper.js", + "import": "./helpers/esm/createForOfIteratorHelper.js", + "default": "./helpers/createForOfIteratorHelper.js" + }, + "./helpers/createForOfIteratorHelper.js" + ], + "./helpers/esm/createForOfIteratorHelper": "./helpers/esm/createForOfIteratorHelper.js", + "./helpers/createForOfIteratorHelperLoose": [ + { + "node": "./helpers/createForOfIteratorHelperLoose.js", + "import": "./helpers/esm/createForOfIteratorHelperLoose.js", + "default": "./helpers/createForOfIteratorHelperLoose.js" + }, + "./helpers/createForOfIteratorHelperLoose.js" + ], + "./helpers/esm/createForOfIteratorHelperLoose": "./helpers/esm/createForOfIteratorHelperLoose.js", + "./helpers/skipFirstGeneratorNext": [ + { + "node": "./helpers/skipFirstGeneratorNext.js", + "import": "./helpers/esm/skipFirstGeneratorNext.js", + "default": "./helpers/skipFirstGeneratorNext.js" + }, + "./helpers/skipFirstGeneratorNext.js" + ], + "./helpers/esm/skipFirstGeneratorNext": "./helpers/esm/skipFirstGeneratorNext.js", + "./helpers/toPrimitive": [ + { + "node": "./helpers/toPrimitive.js", + "import": "./helpers/esm/toPrimitive.js", + "default": "./helpers/toPrimitive.js" + }, + "./helpers/toPrimitive.js" + ], + "./helpers/esm/toPrimitive": "./helpers/esm/toPrimitive.js", + "./helpers/toPropertyKey": [ + { + "node": "./helpers/toPropertyKey.js", + "import": "./helpers/esm/toPropertyKey.js", + "default": "./helpers/toPropertyKey.js" + }, + "./helpers/toPropertyKey.js" + ], + "./helpers/esm/toPropertyKey": "./helpers/esm/toPropertyKey.js", + "./helpers/initializerWarningHelper": [ + { + "node": "./helpers/initializerWarningHelper.js", + "import": "./helpers/esm/initializerWarningHelper.js", + "default": "./helpers/initializerWarningHelper.js" + }, + "./helpers/initializerWarningHelper.js" + ], + "./helpers/esm/initializerWarningHelper": "./helpers/esm/initializerWarningHelper.js", + "./helpers/initializerDefineProperty": [ + { + "node": "./helpers/initializerDefineProperty.js", + "import": "./helpers/esm/initializerDefineProperty.js", + "default": "./helpers/initializerDefineProperty.js" + }, + "./helpers/initializerDefineProperty.js" + ], + "./helpers/esm/initializerDefineProperty": "./helpers/esm/initializerDefineProperty.js", + "./helpers/applyDecoratedDescriptor": [ + { + "node": "./helpers/applyDecoratedDescriptor.js", + "import": "./helpers/esm/applyDecoratedDescriptor.js", + "default": "./helpers/applyDecoratedDescriptor.js" + }, + "./helpers/applyDecoratedDescriptor.js" + ], + "./helpers/esm/applyDecoratedDescriptor": "./helpers/esm/applyDecoratedDescriptor.js", + "./helpers/classPrivateFieldLooseKey": [ + { + "node": "./helpers/classPrivateFieldLooseKey.js", + "import": "./helpers/esm/classPrivateFieldLooseKey.js", + "default": "./helpers/classPrivateFieldLooseKey.js" + }, + "./helpers/classPrivateFieldLooseKey.js" + ], + "./helpers/esm/classPrivateFieldLooseKey": "./helpers/esm/classPrivateFieldLooseKey.js", + "./helpers/classPrivateFieldLooseBase": [ + { + "node": "./helpers/classPrivateFieldLooseBase.js", + "import": "./helpers/esm/classPrivateFieldLooseBase.js", + "default": "./helpers/classPrivateFieldLooseBase.js" + }, + "./helpers/classPrivateFieldLooseBase.js" + ], + "./helpers/esm/classPrivateFieldLooseBase": "./helpers/esm/classPrivateFieldLooseBase.js", + "./helpers/classPrivateFieldGet": [ + { + "node": "./helpers/classPrivateFieldGet.js", + "import": "./helpers/esm/classPrivateFieldGet.js", + "default": "./helpers/classPrivateFieldGet.js" + }, + "./helpers/classPrivateFieldGet.js" + ], + "./helpers/esm/classPrivateFieldGet": "./helpers/esm/classPrivateFieldGet.js", + "./helpers/classPrivateFieldSet": [ + { + "node": "./helpers/classPrivateFieldSet.js", + "import": "./helpers/esm/classPrivateFieldSet.js", + "default": "./helpers/classPrivateFieldSet.js" + }, + "./helpers/classPrivateFieldSet.js" + ], + "./helpers/esm/classPrivateFieldSet": "./helpers/esm/classPrivateFieldSet.js", + "./helpers/classPrivateFieldDestructureSet": [ + { + "node": "./helpers/classPrivateFieldDestructureSet.js", + "import": "./helpers/esm/classPrivateFieldDestructureSet.js", + "default": "./helpers/classPrivateFieldDestructureSet.js" + }, + "./helpers/classPrivateFieldDestructureSet.js" + ], + "./helpers/esm/classPrivateFieldDestructureSet": "./helpers/esm/classPrivateFieldDestructureSet.js", + "./helpers/classExtractFieldDescriptor": [ + { + "node": "./helpers/classExtractFieldDescriptor.js", + "import": "./helpers/esm/classExtractFieldDescriptor.js", + "default": "./helpers/classExtractFieldDescriptor.js" + }, + "./helpers/classExtractFieldDescriptor.js" + ], + "./helpers/esm/classExtractFieldDescriptor": "./helpers/esm/classExtractFieldDescriptor.js", + "./helpers/classStaticPrivateFieldSpecGet": [ + { + "node": "./helpers/classStaticPrivateFieldSpecGet.js", + "import": "./helpers/esm/classStaticPrivateFieldSpecGet.js", + "default": "./helpers/classStaticPrivateFieldSpecGet.js" + }, + "./helpers/classStaticPrivateFieldSpecGet.js" + ], + "./helpers/esm/classStaticPrivateFieldSpecGet": "./helpers/esm/classStaticPrivateFieldSpecGet.js", + "./helpers/classStaticPrivateFieldSpecSet": [ + { + "node": "./helpers/classStaticPrivateFieldSpecSet.js", + "import": "./helpers/esm/classStaticPrivateFieldSpecSet.js", + "default": "./helpers/classStaticPrivateFieldSpecSet.js" + }, + "./helpers/classStaticPrivateFieldSpecSet.js" + ], + "./helpers/esm/classStaticPrivateFieldSpecSet": "./helpers/esm/classStaticPrivateFieldSpecSet.js", + "./helpers/classStaticPrivateMethodGet": [ + { + "node": "./helpers/classStaticPrivateMethodGet.js", + "import": "./helpers/esm/classStaticPrivateMethodGet.js", + "default": "./helpers/classStaticPrivateMethodGet.js" + }, + "./helpers/classStaticPrivateMethodGet.js" + ], + "./helpers/esm/classStaticPrivateMethodGet": "./helpers/esm/classStaticPrivateMethodGet.js", + "./helpers/classStaticPrivateMethodSet": [ + { + "node": "./helpers/classStaticPrivateMethodSet.js", + "import": "./helpers/esm/classStaticPrivateMethodSet.js", + "default": "./helpers/classStaticPrivateMethodSet.js" + }, + "./helpers/classStaticPrivateMethodSet.js" + ], + "./helpers/esm/classStaticPrivateMethodSet": "./helpers/esm/classStaticPrivateMethodSet.js", + "./helpers/classApplyDescriptorGet": [ + { + "node": "./helpers/classApplyDescriptorGet.js", + "import": "./helpers/esm/classApplyDescriptorGet.js", + "default": "./helpers/classApplyDescriptorGet.js" + }, + "./helpers/classApplyDescriptorGet.js" + ], + "./helpers/esm/classApplyDescriptorGet": "./helpers/esm/classApplyDescriptorGet.js", + "./helpers/classApplyDescriptorSet": [ + { + "node": "./helpers/classApplyDescriptorSet.js", + "import": "./helpers/esm/classApplyDescriptorSet.js", + "default": "./helpers/classApplyDescriptorSet.js" + }, + "./helpers/classApplyDescriptorSet.js" + ], + "./helpers/esm/classApplyDescriptorSet": "./helpers/esm/classApplyDescriptorSet.js", + "./helpers/classApplyDescriptorDestructureSet": [ + { + "node": "./helpers/classApplyDescriptorDestructureSet.js", + "import": "./helpers/esm/classApplyDescriptorDestructureSet.js", + "default": "./helpers/classApplyDescriptorDestructureSet.js" + }, + "./helpers/classApplyDescriptorDestructureSet.js" + ], + "./helpers/esm/classApplyDescriptorDestructureSet": "./helpers/esm/classApplyDescriptorDestructureSet.js", + "./helpers/classStaticPrivateFieldDestructureSet": [ + { + "node": "./helpers/classStaticPrivateFieldDestructureSet.js", + "import": "./helpers/esm/classStaticPrivateFieldDestructureSet.js", + "default": "./helpers/classStaticPrivateFieldDestructureSet.js" + }, + "./helpers/classStaticPrivateFieldDestructureSet.js" + ], + "./helpers/esm/classStaticPrivateFieldDestructureSet": "./helpers/esm/classStaticPrivateFieldDestructureSet.js", + "./helpers/classCheckPrivateStaticAccess": [ + { + "node": "./helpers/classCheckPrivateStaticAccess.js", + "import": "./helpers/esm/classCheckPrivateStaticAccess.js", + "default": "./helpers/classCheckPrivateStaticAccess.js" + }, + "./helpers/classCheckPrivateStaticAccess.js" + ], + "./helpers/esm/classCheckPrivateStaticAccess": "./helpers/esm/classCheckPrivateStaticAccess.js", + "./helpers/classCheckPrivateStaticFieldDescriptor": [ + { + "node": "./helpers/classCheckPrivateStaticFieldDescriptor.js", + "import": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js", + "default": "./helpers/classCheckPrivateStaticFieldDescriptor.js" + }, + "./helpers/classCheckPrivateStaticFieldDescriptor.js" + ], + "./helpers/esm/classCheckPrivateStaticFieldDescriptor": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js", + "./helpers/decorate": [ + { + "node": "./helpers/decorate.js", + "import": "./helpers/esm/decorate.js", + "default": "./helpers/decorate.js" + }, + "./helpers/decorate.js" + ], + "./helpers/esm/decorate": "./helpers/esm/decorate.js", + "./helpers/classPrivateMethodGet": [ + { + "node": "./helpers/classPrivateMethodGet.js", + "import": "./helpers/esm/classPrivateMethodGet.js", + "default": "./helpers/classPrivateMethodGet.js" + }, + "./helpers/classPrivateMethodGet.js" + ], + "./helpers/esm/classPrivateMethodGet": "./helpers/esm/classPrivateMethodGet.js", + "./helpers/checkPrivateRedeclaration": [ + { + "node": "./helpers/checkPrivateRedeclaration.js", + "import": "./helpers/esm/checkPrivateRedeclaration.js", + "default": "./helpers/checkPrivateRedeclaration.js" + }, + "./helpers/checkPrivateRedeclaration.js" + ], + "./helpers/esm/checkPrivateRedeclaration": "./helpers/esm/checkPrivateRedeclaration.js", + "./helpers/classPrivateFieldInitSpec": [ + { + "node": "./helpers/classPrivateFieldInitSpec.js", + "import": "./helpers/esm/classPrivateFieldInitSpec.js", + "default": "./helpers/classPrivateFieldInitSpec.js" + }, + "./helpers/classPrivateFieldInitSpec.js" + ], + "./helpers/esm/classPrivateFieldInitSpec": "./helpers/esm/classPrivateFieldInitSpec.js", + "./helpers/classPrivateMethodInitSpec": [ + { + "node": "./helpers/classPrivateMethodInitSpec.js", + "import": "./helpers/esm/classPrivateMethodInitSpec.js", + "default": "./helpers/classPrivateMethodInitSpec.js" + }, + "./helpers/classPrivateMethodInitSpec.js" + ], + "./helpers/esm/classPrivateMethodInitSpec": "./helpers/esm/classPrivateMethodInitSpec.js", + "./helpers/classPrivateMethodSet": [ + { + "node": "./helpers/classPrivateMethodSet.js", + "import": "./helpers/esm/classPrivateMethodSet.js", + "default": "./helpers/classPrivateMethodSet.js" + }, + "./helpers/classPrivateMethodSet.js" + ], + "./helpers/esm/classPrivateMethodSet": "./helpers/esm/classPrivateMethodSet.js", + "./helpers/identity": [ + { + "node": "./helpers/identity.js", + "import": "./helpers/esm/identity.js", + "default": "./helpers/identity.js" + }, + "./helpers/identity.js" + ], + "./helpers/esm/identity": "./helpers/esm/identity.js", + "./package": "./package.json", + "./package.json": "./package.json", + "./regenerator": "./regenerator/index.js", + "./regenerator/*.js": "./regenerator/*.js", + "./regenerator/": "./regenerator/" + }, + "engines": { + "node": ">=6.9.0" + }, + "type": "commonjs" +} \ No newline at end of file diff --git a/node_modules/react-redux/node_modules/@babel/runtime/regenerator/index.js b/node_modules/react-redux/node_modules/@babel/runtime/regenerator/index.js new file mode 100644 index 00000000..58813573 --- /dev/null +++ b/node_modules/react-redux/node_modules/@babel/runtime/regenerator/index.js @@ -0,0 +1,15 @@ +// TODO(Babel 8): Remove this file. + +var runtime = require("../helpers/regeneratorRuntime")(); +module.exports = runtime; + +// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + if (typeof globalThis === "object") { + globalThis.regeneratorRuntime = runtime; + } else { + Function("r", "regeneratorRuntime = r")(runtime); + } +} diff --git a/node_modules/react-redux/node_modules/react-is/LICENSE b/node_modules/react-redux/node_modules/react-is/LICENSE new file mode 100644 index 00000000..b96dcb04 --- /dev/null +++ b/node_modules/react-redux/node_modules/react-is/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Facebook, Inc. and its affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/react-redux/node_modules/react-is/README.md b/node_modules/react-redux/node_modules/react-is/README.md new file mode 100644 index 00000000..d2559776 --- /dev/null +++ b/node_modules/react-redux/node_modules/react-is/README.md @@ -0,0 +1,104 @@ +# `react-is` + +This package allows you to test arbitrary values and see if they're a particular React element type. + +## Installation + +```sh +# Yarn +yarn add react-is + +# NPM +npm install react-is +``` + +## Usage + +### Determining if a Component is Valid + +```js +import React from "react"; +import * as ReactIs from "react-is"; + +class ClassComponent extends React.Component { + render() { + return React.createElement("div"); + } +} + +const FunctionComponent = () => React.createElement("div"); + +const ForwardRefComponent = React.forwardRef((props, ref) => + React.createElement(Component, { forwardedRef: ref, ...props }) +); + +const Context = React.createContext(false); + +ReactIs.isValidElementType("div"); // true +ReactIs.isValidElementType(ClassComponent); // true +ReactIs.isValidElementType(FunctionComponent); // true +ReactIs.isValidElementType(ForwardRefComponent); // true +ReactIs.isValidElementType(Context.Provider); // true +ReactIs.isValidElementType(Context.Consumer); // true +ReactIs.isValidElementType(React.createFactory("div")); // true +``` + +### Determining an Element's Type + +#### Context + +```js +import React from "react"; +import * as ReactIs from 'react-is'; + +const ThemeContext = React.createContext("blue"); + +ReactIs.isContextConsumer(); // true +ReactIs.isContextProvider(); // true +ReactIs.typeOf() === ReactIs.ContextProvider; // true +ReactIs.typeOf() === ReactIs.ContextConsumer; // true +``` + +#### Element + +```js +import React from "react"; +import * as ReactIs from 'react-is'; + +ReactIs.isElement(
    ); // true +ReactIs.typeOf(
    ) === ReactIs.Element; // true +``` + +#### Fragment + +```js +import React from "react"; +import * as ReactIs from 'react-is'; + +ReactIs.isFragment(<>); // true +ReactIs.typeOf(<>) === ReactIs.Fragment; // true +``` + +#### Portal + +```js +import React from "react"; +import ReactDOM from "react-dom"; +import * as ReactIs from 'react-is'; + +const div = document.createElement("div"); +const portal = ReactDOM.createPortal(
    , div); + +ReactIs.isPortal(portal); // true +ReactIs.typeOf(portal) === ReactIs.Portal; // true +``` + +#### StrictMode + +```js +import React from "react"; +import * as ReactIs from 'react-is'; + +ReactIs.isStrictMode(); // true +ReactIs.typeOf() === ReactIs.StrictMode; // true +``` diff --git a/node_modules/react-redux/node_modules/react-is/build-info.json b/node_modules/react-redux/node_modules/react-is/build-info.json new file mode 100644 index 00000000..db5dbe5e --- /dev/null +++ b/node_modules/react-redux/node_modules/react-is/build-info.json @@ -0,0 +1,8 @@ +{ + "branch": "pull/21051", + "buildNumber": "287151", + "checksum": "94f5c65", + "commit": "12adaffef", + "environment": "ci", + "reactVersion": "17.0.0-12adaffef" +} diff --git a/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js b/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js new file mode 100644 index 00000000..b2e388eb --- /dev/null +++ b/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js @@ -0,0 +1,226 @@ +/** @license React v17.0.2 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +if (process.env.NODE_ENV !== "production") { + (function() { +'use strict'; + +// ATTENTION +// When adding new symbols to this file, +// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var REACT_ELEMENT_TYPE = 0xeac7; +var REACT_PORTAL_TYPE = 0xeaca; +var REACT_FRAGMENT_TYPE = 0xeacb; +var REACT_STRICT_MODE_TYPE = 0xeacc; +var REACT_PROFILER_TYPE = 0xead2; +var REACT_PROVIDER_TYPE = 0xeacd; +var REACT_CONTEXT_TYPE = 0xeace; +var REACT_FORWARD_REF_TYPE = 0xead0; +var REACT_SUSPENSE_TYPE = 0xead1; +var REACT_SUSPENSE_LIST_TYPE = 0xead8; +var REACT_MEMO_TYPE = 0xead3; +var REACT_LAZY_TYPE = 0xead4; +var REACT_BLOCK_TYPE = 0xead9; +var REACT_SERVER_BLOCK_TYPE = 0xeada; +var REACT_FUNDAMENTAL_TYPE = 0xead5; +var REACT_SCOPE_TYPE = 0xead7; +var REACT_OPAQUE_ID_TYPE = 0xeae0; +var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1; +var REACT_OFFSCREEN_TYPE = 0xeae2; +var REACT_LEGACY_HIDDEN_TYPE = 0xeae3; + +if (typeof Symbol === 'function' && Symbol.for) { + var symbolFor = Symbol.for; + REACT_ELEMENT_TYPE = symbolFor('react.element'); + REACT_PORTAL_TYPE = symbolFor('react.portal'); + REACT_FRAGMENT_TYPE = symbolFor('react.fragment'); + REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode'); + REACT_PROFILER_TYPE = symbolFor('react.profiler'); + REACT_PROVIDER_TYPE = symbolFor('react.provider'); + REACT_CONTEXT_TYPE = symbolFor('react.context'); + REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref'); + REACT_SUSPENSE_TYPE = symbolFor('react.suspense'); + REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list'); + REACT_MEMO_TYPE = symbolFor('react.memo'); + REACT_LAZY_TYPE = symbolFor('react.lazy'); + REACT_BLOCK_TYPE = symbolFor('react.block'); + REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block'); + REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental'); + REACT_SCOPE_TYPE = symbolFor('react.scope'); + REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id'); + REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode'); + REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen'); + REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden'); +} + +// Filter certain DOM attributes (e.g. src, href) if their values are empty strings. + +var enableScopeAPI = false; // Experimental Create Event Handle API. + +function isValidElementType(type) { + if (typeof type === 'string' || typeof type === 'function') { + return true; + } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill). + + + if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) { + return true; + } + + if (typeof type === 'object' && type !== null) { + if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { + return true; + } + } + + return false; +} + +function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + case REACT_SUSPENSE_LIST_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; +} +var ContextConsumer = REACT_CONTEXT_TYPE; +var ContextProvider = REACT_PROVIDER_TYPE; +var Element = REACT_ELEMENT_TYPE; +var ForwardRef = REACT_FORWARD_REF_TYPE; +var Fragment = REACT_FRAGMENT_TYPE; +var Lazy = REACT_LAZY_TYPE; +var Memo = REACT_MEMO_TYPE; +var Portal = REACT_PORTAL_TYPE; +var Profiler = REACT_PROFILER_TYPE; +var StrictMode = REACT_STRICT_MODE_TYPE; +var Suspense = REACT_SUSPENSE_TYPE; +var hasWarnedAboutDeprecatedIsAsyncMode = false; +var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated + +function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + } + } + + return false; +} +function isConcurrentMode(object) { + { + if (!hasWarnedAboutDeprecatedIsConcurrentMode) { + hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + } + } + + return false; +} +function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +} +function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; +} +function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} +function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +} +function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +} +function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; +} +function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; +} +function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; +} +function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; +} +function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +} +function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +} + +exports.ContextConsumer = ContextConsumer; +exports.ContextProvider = ContextProvider; +exports.Element = Element; +exports.ForwardRef = ForwardRef; +exports.Fragment = Fragment; +exports.Lazy = Lazy; +exports.Memo = Memo; +exports.Portal = Portal; +exports.Profiler = Profiler; +exports.StrictMode = StrictMode; +exports.Suspense = Suspense; +exports.isAsyncMode = isAsyncMode; +exports.isConcurrentMode = isConcurrentMode; +exports.isContextConsumer = isContextConsumer; +exports.isContextProvider = isContextProvider; +exports.isElement = isElement; +exports.isForwardRef = isForwardRef; +exports.isFragment = isFragment; +exports.isLazy = isLazy; +exports.isMemo = isMemo; +exports.isPortal = isPortal; +exports.isProfiler = isProfiler; +exports.isStrictMode = isStrictMode; +exports.isSuspense = isSuspense; +exports.isValidElementType = isValidElementType; +exports.typeOf = typeOf; + })(); +} diff --git a/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js b/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js new file mode 100644 index 00000000..b4160904 --- /dev/null +++ b/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js @@ -0,0 +1,14 @@ +/** @license React v17.0.2 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131; +if("function"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x("react.element");c=x("react.portal");d=x("react.fragment");e=x("react.strict_mode");f=x("react.profiler");g=x("react.provider");h=x("react.context");k=x("react.forward_ref");l=x("react.suspense");m=x("react.suspense_list");n=x("react.memo");p=x("react.lazy");q=x("react.block");r=x("react.server.block");u=x("react.fundamental");v=x("react.debug_trace_mode");w=x("react.legacy_hidden")} +function y(a){if("object"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H; +exports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n}; +exports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1}; +exports.typeOf=y; diff --git a/node_modules/react-redux/node_modules/react-is/index.js b/node_modules/react-redux/node_modules/react-is/index.js new file mode 100644 index 00000000..3ae098d0 --- /dev/null +++ b/node_modules/react-redux/node_modules/react-is/index.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-is.production.min.js'); +} else { + module.exports = require('./cjs/react-is.development.js'); +} diff --git a/node_modules/react-redux/node_modules/react-is/package.json b/node_modules/react-redux/node_modules/react-is/package.json new file mode 100644 index 00000000..1a6567dc --- /dev/null +++ b/node_modules/react-redux/node_modules/react-is/package.json @@ -0,0 +1,27 @@ +{ + "name": "react-is", + "version": "17.0.2", + "description": "Brand checking of React Elements.", + "main": "index.js", + "repository": { + "type": "git", + "url": "https://github.com/facebook/react.git", + "directory": "packages/react-is" + }, + "keywords": [ + "react" + ], + "license": "MIT", + "bugs": { + "url": "https://github.com/facebook/react/issues" + }, + "homepage": "https://reactjs.org/", + "files": [ + "LICENSE", + "README.md", + "build-info.json", + "index.js", + "cjs/", + "umd/" + ] +} diff --git a/node_modules/react-redux/node_modules/react-is/umd/react-is.development.js b/node_modules/react-redux/node_modules/react-is/umd/react-is.development.js new file mode 100644 index 00000000..cc44c5bf --- /dev/null +++ b/node_modules/react-redux/node_modules/react-is/umd/react-is.development.js @@ -0,0 +1,225 @@ +/** @license React v17.0.2 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = global || self, factory(global.ReactIs = {})); +}(this, (function (exports) { 'use strict'; + + // ATTENTION + // When adding new symbols to this file, + // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols' + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var REACT_ELEMENT_TYPE = 0xeac7; + var REACT_PORTAL_TYPE = 0xeaca; + var REACT_FRAGMENT_TYPE = 0xeacb; + var REACT_STRICT_MODE_TYPE = 0xeacc; + var REACT_PROFILER_TYPE = 0xead2; + var REACT_PROVIDER_TYPE = 0xeacd; + var REACT_CONTEXT_TYPE = 0xeace; + var REACT_FORWARD_REF_TYPE = 0xead0; + var REACT_SUSPENSE_TYPE = 0xead1; + var REACT_SUSPENSE_LIST_TYPE = 0xead8; + var REACT_MEMO_TYPE = 0xead3; + var REACT_LAZY_TYPE = 0xead4; + var REACT_BLOCK_TYPE = 0xead9; + var REACT_SERVER_BLOCK_TYPE = 0xeada; + var REACT_FUNDAMENTAL_TYPE = 0xead5; + var REACT_SCOPE_TYPE = 0xead7; + var REACT_OPAQUE_ID_TYPE = 0xeae0; + var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1; + var REACT_OFFSCREEN_TYPE = 0xeae2; + var REACT_LEGACY_HIDDEN_TYPE = 0xeae3; + + if (typeof Symbol === 'function' && Symbol.for) { + var symbolFor = Symbol.for; + REACT_ELEMENT_TYPE = symbolFor('react.element'); + REACT_PORTAL_TYPE = symbolFor('react.portal'); + REACT_FRAGMENT_TYPE = symbolFor('react.fragment'); + REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode'); + REACT_PROFILER_TYPE = symbolFor('react.profiler'); + REACT_PROVIDER_TYPE = symbolFor('react.provider'); + REACT_CONTEXT_TYPE = symbolFor('react.context'); + REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref'); + REACT_SUSPENSE_TYPE = symbolFor('react.suspense'); + REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list'); + REACT_MEMO_TYPE = symbolFor('react.memo'); + REACT_LAZY_TYPE = symbolFor('react.lazy'); + REACT_BLOCK_TYPE = symbolFor('react.block'); + REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block'); + REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental'); + REACT_SCOPE_TYPE = symbolFor('react.scope'); + REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id'); + REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode'); + REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen'); + REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden'); + } + + // Filter certain DOM attributes (e.g. src, href) if their values are empty strings. + + var enableScopeAPI = false; // Experimental Create Event Handle API. + + function isValidElementType(type) { + if (typeof type === 'string' || typeof type === 'function') { + return true; + } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill). + + + if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_DEBUG_TRACING_MODE_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) { + return true; + } + + if (typeof type === 'object' && type !== null) { + if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) { + return true; + } + } + + return false; + } + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + case REACT_SUSPENSE_LIST_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; + var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated + + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + } + } + + return false; + } + function isConcurrentMode(object) { + { + if (!hasWarnedAboutDeprecatedIsConcurrentMode) { + hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.'); + } + } + + return false; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + exports.isValidElementType = isValidElementType; + exports.typeOf = typeOf; + +}))); diff --git a/node_modules/react-redux/node_modules/react-is/umd/react-is.production.min.js b/node_modules/react-redux/node_modules/react-is/umd/react-is.production.min.js new file mode 100644 index 00000000..126d595e --- /dev/null +++ b/node_modules/react-redux/node_modules/react-is/umd/react-is.production.min.js @@ -0,0 +1,14 @@ +/** @license React v17.0.2 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +(function(){'use strict';(function(b,d){"object"===typeof exports&&"undefined"!==typeof module?d(exports):"function"===typeof define&&define.amd?define(["exports"],d):(b=b||self,d(b.ReactIs={}))})(this,function(b){function d(a){if("object"===typeof a&&null!==a){var b=a.$$typeof;switch(b){case q:switch(a=a.type,a){case e:case f:case g:case h:case t:return a;default:switch(a=a&&a.$$typeof,a){case k:case l:case m:case n:case p:return a;default:return b}}case r:return b}}}var q=60103,r=60106,e=60107,g=60108,f=60114, +p=60109,k=60110,l=60112,h=60113,t=60120,n=60115,m=60116,u=60121,v=60122,w=60117,x=60129,y=60131;if("function"===typeof Symbol&&Symbol.for){var c=Symbol.for;q=c("react.element");r=c("react.portal");e=c("react.fragment");g=c("react.strict_mode");f=c("react.profiler");p=c("react.provider");k=c("react.context");l=c("react.forward_ref");h=c("react.suspense");t=c("react.suspense_list");n=c("react.memo");m=c("react.lazy");u=c("react.block");v=c("react.server.block");w=c("react.fundamental");x=c("react.debug_trace_mode"); +y=c("react.legacy_hidden")}b.ContextConsumer=k;b.ContextProvider=p;b.Element=q;b.ForwardRef=l;b.Fragment=e;b.Lazy=m;b.Memo=n;b.Portal=r;b.Profiler=f;b.StrictMode=g;b.Suspense=h;b.isAsyncMode=function(a){return!1};b.isConcurrentMode=function(a){return!1};b.isContextConsumer=function(a){return d(a)===k};b.isContextProvider=function(a){return d(a)===p};b.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===q};b.isForwardRef=function(a){return d(a)===l};b.isFragment=function(a){return d(a)=== +e};b.isLazy=function(a){return d(a)===m};b.isMemo=function(a){return d(a)===n};b.isPortal=function(a){return d(a)===r};b.isProfiler=function(a){return d(a)===f};b.isStrictMode=function(a){return d(a)===g};b.isSuspense=function(a){return d(a)===h};b.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===f||a===x||a===g||a===h||a===t||a===y||"object"===typeof a&&null!==a&&(a.$$typeof===m||a.$$typeof===n||a.$$typeof===p||a.$$typeof===k||a.$$typeof===l||a.$$typeof=== +w||a.$$typeof===u||a[0]===v)?!0:!1};b.typeOf=d}); +})(); diff --git a/node_modules/react-redux/package.json b/node_modules/react-redux/package.json new file mode 100644 index 00000000..ff950cfc --- /dev/null +++ b/node_modules/react-redux/package.json @@ -0,0 +1,102 @@ +{ + "name": "react-redux", + "version": "7.2.8", + "description": "Official React bindings for Redux", + "keywords": [ + "react", + "reactjs", + "redux" + ], + "license": "MIT", + "author": "Dan Abramov (https://github.com/gaearon)", + "homepage": "https://github.com/reduxjs/react-redux", + "repository": "github:reduxjs/react-redux", + "bugs": "https://github.com/reduxjs/react-redux/issues", + "main": "./lib/index.js", + "unpkg": "dist/react-redux.js", + "module": "es/index.js", + "files": [ + "dist", + "lib", + "src", + "es" + ], + "scripts": { + "build:commonjs": "cross-env BABEL_ENV=commonjs babel src --out-dir lib", + "build:es": "babel src --out-dir es", + "build:umd": "cross-env NODE_ENV=development rollup -c -o dist/react-redux.js", + "build:umd:min": "cross-env NODE_ENV=production rollup -c -o dist/react-redux.min.js", + "build": "npm run build:commonjs && npm run build:es && npm run build:umd && npm run build:umd:min", + "clean": "rimraf lib dist es coverage", + "format": "prettier --write \"{src,test}/**/*.{js,ts}\" \"docs/**/*.md\"", + "lint": "eslint src test/utils test/components test/hooks", + "prepare": "npm run clean && npm run build", + "pretest": "npm run lint", + "test": "jest", + "coverage": "codecov" + }, + "peerDependencies": { + "react": "^16.8.3 || ^17 || ^18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + }, + "dependencies": { + "@babel/runtime": "^7.15.4", + "@types/react-redux": "^7.1.20", + "hoist-non-react-statics": "^3.3.2", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-is": "^17.0.2" + }, + "devDependencies": { + "@babel/cli": "^7.15.7", + "@babel/core": "^7.15.8", + "@babel/plugin-proposal-decorators": "^7.15.8", + "@babel/plugin-proposal-object-rest-spread": "^7.15.6", + "@babel/plugin-transform-react-display-name": "^7.15.1", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "@babel/plugin-transform-runtime": "^7.15.8", + "@babel/preset-env": "^7.15.8", + "@rollup/plugin-babel": "^5.3.0", + "@rollup/plugin-commonjs": "^21.0.1", + "@rollup/plugin-node-resolve": "^13.0.6", + "@rollup/plugin-replace": "^3.0.0", + "@testing-library/jest-dom": "^5.14.1", + "@testing-library/jest-native": "^4.0.2", + "@testing-library/react": "^12.1.2", + "@testing-library/react-hooks": "^7.0.2", + "@testing-library/react-native": "^8.0.0", + "babel-eslint": "^10.1.0", + "babel-jest": "^27.3.1", + "codecov": "^3.8.3", + "create-react-class": "^15.7.0", + "cross-env": "^7.0.3", + "es3ify": "^0.2.2", + "eslint": "^7.32.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-react": "^7.26.1", + "glob": "^7.2.0", + "jest": "^27.3.1", + "prettier": "^2.4.1", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-native": "^0.66.1", + "react-test-renderer": "^17.0.2", + "redux": "^4.1.1", + "rimraf": "^3.0.2", + "rollup": "^2.58.3", + "rollup-plugin-terser": "^7.0.2" + }, + "browserify": { + "transform": [ + "loose-envify" + ] + } +} diff --git a/node_modules/react-redux/src/alternate-renderers.js b/node_modules/react-redux/src/alternate-renderers.js new file mode 100644 index 00000000..7c92f478 --- /dev/null +++ b/node_modules/react-redux/src/alternate-renderers.js @@ -0,0 +1,9 @@ +export * from './exports' + +import { getBatch } from './utils/batch' + +// For other renderers besides ReactDOM and React Native, +// use the default noop batch function +const batch = getBatch() + +export { batch } diff --git a/node_modules/react-redux/src/components/Context.js b/node_modules/react-redux/src/components/Context.js new file mode 100644 index 00000000..6c2d32ce --- /dev/null +++ b/node_modules/react-redux/src/components/Context.js @@ -0,0 +1,9 @@ +import React from 'react' + +export const ReactReduxContext = /*#__PURE__*/ React.createContext(null) + +if (process.env.NODE_ENV !== 'production') { + ReactReduxContext.displayName = 'ReactRedux' +} + +export default ReactReduxContext diff --git a/node_modules/react-redux/src/components/Provider.js b/node_modules/react-redux/src/components/Provider.js new file mode 100644 index 00000000..2eb861c6 --- /dev/null +++ b/node_modules/react-redux/src/components/Provider.js @@ -0,0 +1,49 @@ +import React, { useMemo } from 'react' +import PropTypes from 'prop-types' +import { ReactReduxContext } from './Context' +import { createSubscription } from '../utils/Subscription' +import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect' + +function Provider({ store, context, children }) { + const contextValue = useMemo(() => { + const subscription = createSubscription(store) + return { + store, + subscription, + } + }, [store]) + + const previousState = useMemo(() => store.getState(), [store]) + + useIsomorphicLayoutEffect(() => { + const { subscription } = contextValue + subscription.onStateChange = subscription.notifyNestedSubs + subscription.trySubscribe() + + if (previousState !== store.getState()) { + subscription.notifyNestedSubs() + } + return () => { + subscription.tryUnsubscribe() + subscription.onStateChange = null + } + }, [contextValue, previousState]) + + const Context = context || ReactReduxContext + + return {children} +} + +if (process.env.NODE_ENV !== 'production') { + Provider.propTypes = { + store: PropTypes.shape({ + subscribe: PropTypes.func.isRequired, + dispatch: PropTypes.func.isRequired, + getState: PropTypes.func.isRequired, + }), + context: PropTypes.object, + children: PropTypes.any, + } +} + +export default Provider diff --git a/node_modules/react-redux/src/components/connectAdvanced.js b/node_modules/react-redux/src/components/connectAdvanced.js new file mode 100644 index 00000000..65c3da8f --- /dev/null +++ b/node_modules/react-redux/src/components/connectAdvanced.js @@ -0,0 +1,488 @@ +import hoistStatics from 'hoist-non-react-statics' +import React, { useContext, useMemo, useRef, useReducer } from 'react' +import { isValidElementType, isContextConsumer } from 'react-is' +import { createSubscription } from '../utils/Subscription' +import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect' + +import { ReactReduxContext } from './Context' + +// Define some constant arrays just to avoid re-creating these +const EMPTY_ARRAY = [] +const NO_SUBSCRIPTION_ARRAY = [null, null] + +const stringifyComponent = (Comp) => { + try { + return JSON.stringify(Comp) + } catch (err) { + return String(Comp) + } +} + +function storeStateUpdatesReducer(state, action) { + const [, updateCount] = state + return [action.payload, updateCount + 1] +} + +function useIsomorphicLayoutEffectWithArgs( + effectFunc, + effectArgs, + dependencies +) { + useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies) +} + +function captureWrapperProps( + lastWrapperProps, + lastChildProps, + renderIsScheduled, + wrapperProps, + actualChildProps, + childPropsFromStoreUpdate, + notifyNestedSubs +) { + // We want to capture the wrapper props and child props we used for later comparisons + lastWrapperProps.current = wrapperProps + lastChildProps.current = actualChildProps + renderIsScheduled.current = false + + // If the render was from a store update, clear out that reference and cascade the subscriber update + if (childPropsFromStoreUpdate.current) { + childPropsFromStoreUpdate.current = null + notifyNestedSubs() + } +} + +function subscribeUpdates( + shouldHandleStateChanges, + store, + subscription, + childPropsSelector, + lastWrapperProps, + lastChildProps, + renderIsScheduled, + childPropsFromStoreUpdate, + notifyNestedSubs, + forceComponentUpdateDispatch +) { + // If we're not subscribed to the store, nothing to do here + if (!shouldHandleStateChanges) return + + // Capture values for checking if and when this component unmounts + let didUnsubscribe = false + let lastThrownError = null + + // We'll run this callback every time a store subscription update propagates to this component + const checkForUpdates = () => { + if (didUnsubscribe) { + // Don't run stale listeners. + // Redux doesn't guarantee unsubscriptions happen until next dispatch. + return + } + + const latestStoreState = store.getState() + + let newChildProps, error + try { + // Actually run the selector with the most recent store state and wrapper props + // to determine what the child props should be + newChildProps = childPropsSelector( + latestStoreState, + lastWrapperProps.current + ) + } catch (e) { + error = e + lastThrownError = e + } + + if (!error) { + lastThrownError = null + } + + // If the child props haven't changed, nothing to do here - cascade the subscription update + if (newChildProps === lastChildProps.current) { + if (!renderIsScheduled.current) { + notifyNestedSubs() + } + } else { + // Save references to the new child props. Note that we track the "child props from store update" + // as a ref instead of a useState/useReducer because we need a way to determine if that value has + // been processed. If this went into useState/useReducer, we couldn't clear out the value without + // forcing another re-render, which we don't want. + lastChildProps.current = newChildProps + childPropsFromStoreUpdate.current = newChildProps + renderIsScheduled.current = true + + // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render + forceComponentUpdateDispatch({ + type: 'STORE_UPDATED', + payload: { + error, + }, + }) + } + } + + // Actually subscribe to the nearest connected ancestor (or store) + subscription.onStateChange = checkForUpdates + subscription.trySubscribe() + + // Pull data from the store after first render in case the store has + // changed since we began. + checkForUpdates() + + const unsubscribeWrapper = () => { + didUnsubscribe = true + subscription.tryUnsubscribe() + subscription.onStateChange = null + + if (lastThrownError) { + // It's possible that we caught an error due to a bad mapState function, but the + // parent re-rendered without this component and we're about to unmount. + // This shouldn't happen as long as we do top-down subscriptions correctly, but + // if we ever do those wrong, this throw will surface the error in our tests. + // In that case, throw the error from here so it doesn't get lost. + throw lastThrownError + } + } + + return unsubscribeWrapper +} + +const initStateUpdates = () => [null, 0] + +export default function connectAdvanced( + /* + selectorFactory is a func that is responsible for returning the selector function used to + compute new props from state, props, and dispatch. For example: + + export default connectAdvanced((dispatch, options) => (state, props) => ({ + thing: state.things[props.thingId], + saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)), + }))(YourComponent) + + Access to dispatch is provided to the factory so selectorFactories can bind actionCreators + outside of their selector as an optimization. Options passed to connectAdvanced are passed to + the selectorFactory, along with displayName and WrappedComponent, as the second argument. + + Note that selectorFactory is responsible for all caching/memoization of inbound and outbound + props. Do not use connectAdvanced directly without memoizing results between calls to your + selector, otherwise the Connect component will re-render on every state or props change. + */ + selectorFactory, + // options object: + { + // the func used to compute this HOC's displayName from the wrapped component's displayName. + // probably overridden by wrapper functions such as connect() + getDisplayName = (name) => `ConnectAdvanced(${name})`, + + // shown in error messages + // probably overridden by wrapper functions such as connect() + methodName = 'connectAdvanced', + + // REMOVED: if defined, the name of the property passed to the wrapped element indicating the number of + // calls to render. useful for watching in react devtools for unnecessary re-renders. + renderCountProp = undefined, + + // determines whether this HOC subscribes to store changes + shouldHandleStateChanges = true, + + // REMOVED: the key of props/context to get the store + storeKey = 'store', + + // REMOVED: expose the wrapped component via refs + withRef = false, + + // use React's forwardRef to expose a ref of the wrapped component + forwardRef = false, + + // the context consumer to use + context = ReactReduxContext, + + // additional options are passed through to the selectorFactory + ...connectOptions + } = {} +) { + if (process.env.NODE_ENV !== 'production') { + if (renderCountProp !== undefined) { + throw new Error( + `renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension` + ) + } + if (withRef) { + throw new Error( + 'withRef is removed. To access the wrapped instance, use a ref on the connected component' + ) + } + + const customStoreWarningMessage = + 'To use a custom Redux store for specific components, create a custom React context with ' + + "React.createContext(), and pass the context object to React Redux's Provider and specific components" + + ' like: . ' + + 'You may also pass a {context : MyContext} option to connect' + + if (storeKey !== 'store') { + throw new Error( + 'storeKey has been removed and does not do anything. ' + + customStoreWarningMessage + ) + } + } + + const Context = context + + return function wrapWithConnect(WrappedComponent) { + if ( + process.env.NODE_ENV !== 'production' && + !isValidElementType(WrappedComponent) + ) { + throw new Error( + `You must pass a component to the function returned by ` + + `${methodName}. Instead received ${stringifyComponent( + WrappedComponent + )}` + ) + } + + const wrappedComponentName = + WrappedComponent.displayName || WrappedComponent.name || 'Component' + + const displayName = getDisplayName(wrappedComponentName) + + const selectorFactoryOptions = { + ...connectOptions, + getDisplayName, + methodName, + renderCountProp, + shouldHandleStateChanges, + storeKey, + displayName, + wrappedComponentName, + WrappedComponent, + } + + const { pure } = connectOptions + + function createChildSelector(store) { + return selectorFactory(store.dispatch, selectorFactoryOptions) + } + + // If we aren't running in "pure" mode, we don't want to memoize values. + // To avoid conditionally calling hooks, we fall back to a tiny wrapper + // that just executes the given callback immediately. + const usePureOnlyMemo = pure ? useMemo : (callback) => callback() + + function ConnectFunction(props) { + const [propsContext, reactReduxForwardedRef, wrapperProps] = + useMemo(() => { + // Distinguish between actual "data" props that were passed to the wrapper component, + // and values needed to control behavior (forwarded refs, alternate context instances). + // To maintain the wrapperProps object reference, memoize this destructuring. + const { reactReduxForwardedRef, ...wrapperProps } = props + return [props.context, reactReduxForwardedRef, wrapperProps] + }, [props]) + + const ContextToUse = useMemo(() => { + // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext. + // Memoize the check that determines which context instance we should use. + return propsContext && + propsContext.Consumer && + isContextConsumer() + ? propsContext + : Context + }, [propsContext, Context]) + + // Retrieve the store and ancestor subscription via context, if available + const contextValue = useContext(ContextToUse) + + // The store _must_ exist as either a prop or in context. + // We'll check to see if it _looks_ like a Redux store first. + // This allows us to pass through a `store` prop that is just a plain value. + const didStoreComeFromProps = + Boolean(props.store) && + Boolean(props.store.getState) && + Boolean(props.store.dispatch) + const didStoreComeFromContext = + Boolean(contextValue) && Boolean(contextValue.store) + + if ( + process.env.NODE_ENV !== 'production' && + !didStoreComeFromProps && + !didStoreComeFromContext + ) { + throw new Error( + `Could not find "store" in the context of ` + + `"${displayName}". Either wrap the root component in a , ` + + `or pass a custom React context provider to and the corresponding ` + + `React context consumer to ${displayName} in connect options.` + ) + } + + // Based on the previous check, one of these must be true + const store = didStoreComeFromProps ? props.store : contextValue.store + + const childPropsSelector = useMemo(() => { + // The child props selector needs the store reference as an input. + // Re-create this selector whenever the store changes. + return createChildSelector(store) + }, [store]) + + const [subscription, notifyNestedSubs] = useMemo(() => { + if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY + + // This Subscription's source should match where store came from: props vs. context. A component + // connected to the store via props shouldn't use subscription from context, or vice versa. + const subscription = createSubscription( + store, + didStoreComeFromProps ? null : contextValue.subscription + ) + + // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in + // the middle of the notification loop, where `subscription` will then be null. This can + // probably be avoided if Subscription's listeners logic is changed to not call listeners + // that have been unsubscribed in the middle of the notification loop. + const notifyNestedSubs = + subscription.notifyNestedSubs.bind(subscription) + + return [subscription, notifyNestedSubs] + }, [store, didStoreComeFromProps, contextValue]) + + // Determine what {store, subscription} value should be put into nested context, if necessary, + // and memoize that value to avoid unnecessary context updates. + const overriddenContextValue = useMemo(() => { + if (didStoreComeFromProps) { + // This component is directly subscribed to a store from props. + // We don't want descendants reading from this store - pass down whatever + // the existing context value is from the nearest connected ancestor. + return contextValue + } + + // Otherwise, put this component's subscription instance into context, so that + // connected descendants won't update until after this component is done + return { + ...contextValue, + subscription, + } + }, [didStoreComeFromProps, contextValue, subscription]) + + // We need to force this wrapper component to re-render whenever a Redux store update + // causes a change to the calculated child component props (or we caught an error in mapState) + const [[previousStateUpdateResult], forceComponentUpdateDispatch] = + useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates) + + // Propagate any mapState/mapDispatch errors upwards + if (previousStateUpdateResult && previousStateUpdateResult.error) { + throw previousStateUpdateResult.error + } + + // Set up refs to coordinate values between the subscription effect and the render logic + const lastChildProps = useRef() + const lastWrapperProps = useRef(wrapperProps) + const childPropsFromStoreUpdate = useRef() + const renderIsScheduled = useRef(false) + + const actualChildProps = usePureOnlyMemo(() => { + // Tricky logic here: + // - This render may have been triggered by a Redux store update that produced new child props + // - However, we may have gotten new wrapper props after that + // If we have new child props, and the same wrapper props, we know we should use the new child props as-is. + // But, if we have new wrapper props, those might change the child props, so we have to recalculate things. + // So, we'll use the child props from store update only if the wrapper props are the same as last time. + if ( + childPropsFromStoreUpdate.current && + wrapperProps === lastWrapperProps.current + ) { + return childPropsFromStoreUpdate.current + } + + // TODO We're reading the store directly in render() here. Bad idea? + // This will likely cause Bad Things (TM) to happen in Concurrent Mode. + // Note that we do this because on renders _not_ caused by store updates, we need the latest store state + // to determine what the child props should be. + return childPropsSelector(store.getState(), wrapperProps) + }, [store, previousStateUpdateResult, wrapperProps]) + + // We need this to execute synchronously every time we re-render. However, React warns + // about useLayoutEffect in SSR, so we try to detect environment and fall back to + // just useEffect instead to avoid the warning, since neither will run anyway. + useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [ + lastWrapperProps, + lastChildProps, + renderIsScheduled, + wrapperProps, + actualChildProps, + childPropsFromStoreUpdate, + notifyNestedSubs, + ]) + + // Our re-subscribe logic only runs when the store/subscription setup changes + useIsomorphicLayoutEffectWithArgs( + subscribeUpdates, + [ + shouldHandleStateChanges, + store, + subscription, + childPropsSelector, + lastWrapperProps, + lastChildProps, + renderIsScheduled, + childPropsFromStoreUpdate, + notifyNestedSubs, + forceComponentUpdateDispatch, + ], + [store, subscription, childPropsSelector] + ) + + // Now that all that's done, we can finally try to actually render the child component. + // We memoize the elements for the rendered child component as an optimization. + const renderedWrappedComponent = useMemo( + () => ( + + ), + [reactReduxForwardedRef, WrappedComponent, actualChildProps] + ) + + // If React sees the exact same element reference as last time, it bails out of re-rendering + // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate. + const renderedChild = useMemo(() => { + if (shouldHandleStateChanges) { + // If this component is subscribed to store updates, we need to pass its own + // subscription instance down to our descendants. That means rendering the same + // Context instance, and putting a different value into the context. + return ( + + {renderedWrappedComponent} + + ) + } + + return renderedWrappedComponent + }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]) + + return renderedChild + } + + // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed. + const Connect = pure ? React.memo(ConnectFunction) : ConnectFunction + + Connect.WrappedComponent = WrappedComponent + Connect.displayName = ConnectFunction.displayName = displayName + + if (forwardRef) { + const forwarded = React.forwardRef(function forwardConnectRef( + props, + ref + ) { + return + }) + + forwarded.displayName = displayName + forwarded.WrappedComponent = WrappedComponent + return hoistStatics(forwarded, WrappedComponent) + } + + return hoistStatics(Connect, WrappedComponent) + } +} diff --git a/node_modules/react-redux/src/connect/connect.js b/node_modules/react-redux/src/connect/connect.js new file mode 100644 index 00000000..ab3bba25 --- /dev/null +++ b/node_modules/react-redux/src/connect/connect.js @@ -0,0 +1,104 @@ +import connectAdvanced from '../components/connectAdvanced' +import shallowEqual from '../utils/shallowEqual' +import defaultMapDispatchToPropsFactories from './mapDispatchToProps' +import defaultMapStateToPropsFactories from './mapStateToProps' +import defaultMergePropsFactories from './mergeProps' +import defaultSelectorFactory from './selectorFactory' + +/* + connect is a facade over connectAdvanced. It turns its args into a compatible + selectorFactory, which has the signature: + + (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps + + connect passes its args to connectAdvanced as options, which will in turn pass them to + selectorFactory each time a Connect component instance is instantiated or hot reloaded. + + selectorFactory returns a final props selector from its mapStateToProps, + mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps, + mergePropsFactories, and pure args. + + The resulting final props selector is called by the Connect component instance whenever + it receives new props or store state. + */ + +function match(arg, factories, name) { + for (let i = factories.length - 1; i >= 0; i--) { + const result = factories[i](arg) + if (result) return result + } + + return (dispatch, options) => { + throw new Error( + `Invalid value of type ${typeof arg} for ${name} argument when connecting component ${ + options.wrappedComponentName + }.` + ) + } +} + +function strictEqual(a, b) { + return a === b +} + +// createConnect with default args builds the 'official' connect behavior. Calling it with +// different options opens up some testing and extensibility scenarios +export function createConnect({ + connectHOC = connectAdvanced, + mapStateToPropsFactories = defaultMapStateToPropsFactories, + mapDispatchToPropsFactories = defaultMapDispatchToPropsFactories, + mergePropsFactories = defaultMergePropsFactories, + selectorFactory = defaultSelectorFactory, +} = {}) { + return function connect( + mapStateToProps, + mapDispatchToProps, + mergeProps, + { + pure = true, + areStatesEqual = strictEqual, + areOwnPropsEqual = shallowEqual, + areStatePropsEqual = shallowEqual, + areMergedPropsEqual = shallowEqual, + ...extraOptions + } = {} + ) { + const initMapStateToProps = match( + mapStateToProps, + mapStateToPropsFactories, + 'mapStateToProps' + ) + const initMapDispatchToProps = match( + mapDispatchToProps, + mapDispatchToPropsFactories, + 'mapDispatchToProps' + ) + const initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps') + + return connectHOC(selectorFactory, { + // used in error messages + methodName: 'connect', + + // used to compute Connect's displayName from the wrapped component's displayName. + getDisplayName: (name) => `Connect(${name})`, + + // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes + shouldHandleStateChanges: Boolean(mapStateToProps), + + // passed through to selectorFactory + initMapStateToProps, + initMapDispatchToProps, + initMergeProps, + pure, + areStatesEqual, + areOwnPropsEqual, + areStatePropsEqual, + areMergedPropsEqual, + + // any extra options args can override defaults of connect or connectAdvanced + ...extraOptions, + }) + } +} + +export default /*#__PURE__*/ createConnect() diff --git a/node_modules/react-redux/src/connect/mapDispatchToProps.js b/node_modules/react-redux/src/connect/mapDispatchToProps.js new file mode 100644 index 00000000..c5d6a400 --- /dev/null +++ b/node_modules/react-redux/src/connect/mapDispatchToProps.js @@ -0,0 +1,28 @@ +import bindActionCreators from '../utils/bindActionCreators' +import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps' + +export function whenMapDispatchToPropsIsFunction(mapDispatchToProps) { + return typeof mapDispatchToProps === 'function' + ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') + : undefined +} + +export function whenMapDispatchToPropsIsMissing(mapDispatchToProps) { + return !mapDispatchToProps + ? wrapMapToPropsConstant((dispatch) => ({ dispatch })) + : undefined +} + +export function whenMapDispatchToPropsIsObject(mapDispatchToProps) { + return mapDispatchToProps && typeof mapDispatchToProps === 'object' + ? wrapMapToPropsConstant((dispatch) => + bindActionCreators(mapDispatchToProps, dispatch) + ) + : undefined +} + +export default [ + whenMapDispatchToPropsIsFunction, + whenMapDispatchToPropsIsMissing, + whenMapDispatchToPropsIsObject, +] diff --git a/node_modules/react-redux/src/connect/mapStateToProps.js b/node_modules/react-redux/src/connect/mapStateToProps.js new file mode 100644 index 00000000..e3dd021a --- /dev/null +++ b/node_modules/react-redux/src/connect/mapStateToProps.js @@ -0,0 +1,13 @@ +import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps' + +export function whenMapStateToPropsIsFunction(mapStateToProps) { + return typeof mapStateToProps === 'function' + ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') + : undefined +} + +export function whenMapStateToPropsIsMissing(mapStateToProps) { + return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : undefined +} + +export default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing] diff --git a/node_modules/react-redux/src/connect/mergeProps.js b/node_modules/react-redux/src/connect/mergeProps.js new file mode 100644 index 00000000..bf7ef03f --- /dev/null +++ b/node_modules/react-redux/src/connect/mergeProps.js @@ -0,0 +1,44 @@ +import verifyPlainObject from '../utils/verifyPlainObject' + +export function defaultMergeProps(stateProps, dispatchProps, ownProps) { + return { ...ownProps, ...stateProps, ...dispatchProps } +} + +export function wrapMergePropsFunc(mergeProps) { + return function initMergePropsProxy( + dispatch, + { displayName, pure, areMergedPropsEqual } + ) { + let hasRunOnce = false + let mergedProps + + return function mergePropsProxy(stateProps, dispatchProps, ownProps) { + const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps) + + if (hasRunOnce) { + if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) + mergedProps = nextMergedProps + } else { + hasRunOnce = true + mergedProps = nextMergedProps + + if (process.env.NODE_ENV !== 'production') + verifyPlainObject(mergedProps, displayName, 'mergeProps') + } + + return mergedProps + } + } +} + +export function whenMergePropsIsFunction(mergeProps) { + return typeof mergeProps === 'function' + ? wrapMergePropsFunc(mergeProps) + : undefined +} + +export function whenMergePropsIsOmitted(mergeProps) { + return !mergeProps ? () => defaultMergeProps : undefined +} + +export default [whenMergePropsIsFunction, whenMergePropsIsOmitted] diff --git a/node_modules/react-redux/src/connect/selectorFactory.js b/node_modules/react-redux/src/connect/selectorFactory.js new file mode 100644 index 00000000..49f10168 --- /dev/null +++ b/node_modules/react-redux/src/connect/selectorFactory.js @@ -0,0 +1,128 @@ +import verifySubselectors from './verifySubselectors' + +export function impureFinalPropsSelectorFactory( + mapStateToProps, + mapDispatchToProps, + mergeProps, + dispatch +) { + return function impureFinalPropsSelector(state, ownProps) { + return mergeProps( + mapStateToProps(state, ownProps), + mapDispatchToProps(dispatch, ownProps), + ownProps + ) + } +} + +export function pureFinalPropsSelectorFactory( + mapStateToProps, + mapDispatchToProps, + mergeProps, + dispatch, + { areStatesEqual, areOwnPropsEqual, areStatePropsEqual } +) { + let hasRunAtLeastOnce = false + let state + let ownProps + let stateProps + let dispatchProps + let mergedProps + + function handleFirstCall(firstState, firstOwnProps) { + state = firstState + ownProps = firstOwnProps + stateProps = mapStateToProps(state, ownProps) + dispatchProps = mapDispatchToProps(dispatch, ownProps) + mergedProps = mergeProps(stateProps, dispatchProps, ownProps) + hasRunAtLeastOnce = true + return mergedProps + } + + function handleNewPropsAndNewState() { + stateProps = mapStateToProps(state, ownProps) + + if (mapDispatchToProps.dependsOnOwnProps) + dispatchProps = mapDispatchToProps(dispatch, ownProps) + + mergedProps = mergeProps(stateProps, dispatchProps, ownProps) + return mergedProps + } + + function handleNewProps() { + if (mapStateToProps.dependsOnOwnProps) + stateProps = mapStateToProps(state, ownProps) + + if (mapDispatchToProps.dependsOnOwnProps) + dispatchProps = mapDispatchToProps(dispatch, ownProps) + + mergedProps = mergeProps(stateProps, dispatchProps, ownProps) + return mergedProps + } + + function handleNewState() { + const nextStateProps = mapStateToProps(state, ownProps) + const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps) + stateProps = nextStateProps + + if (statePropsChanged) + mergedProps = mergeProps(stateProps, dispatchProps, ownProps) + + return mergedProps + } + + function handleSubsequentCalls(nextState, nextOwnProps) { + const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps) + const stateChanged = !areStatesEqual(nextState, state) + state = nextState + ownProps = nextOwnProps + + if (propsChanged && stateChanged) return handleNewPropsAndNewState() + if (propsChanged) return handleNewProps() + if (stateChanged) return handleNewState() + return mergedProps + } + + return function pureFinalPropsSelector(nextState, nextOwnProps) { + return hasRunAtLeastOnce + ? handleSubsequentCalls(nextState, nextOwnProps) + : handleFirstCall(nextState, nextOwnProps) + } +} + +// TODO: Add more comments + +// If pure is true, the selector returned by selectorFactory will memoize its results, +// allowing connectAdvanced's shouldComponentUpdate to return false if final +// props have not changed. If false, the selector will always return a new +// object and shouldComponentUpdate will always return true. + +export default function finalPropsSelectorFactory( + dispatch, + { initMapStateToProps, initMapDispatchToProps, initMergeProps, ...options } +) { + const mapStateToProps = initMapStateToProps(dispatch, options) + const mapDispatchToProps = initMapDispatchToProps(dispatch, options) + const mergeProps = initMergeProps(dispatch, options) + + if (process.env.NODE_ENV !== 'production') { + verifySubselectors( + mapStateToProps, + mapDispatchToProps, + mergeProps, + options.displayName + ) + } + + const selectorFactory = options.pure + ? pureFinalPropsSelectorFactory + : impureFinalPropsSelectorFactory + + return selectorFactory( + mapStateToProps, + mapDispatchToProps, + mergeProps, + dispatch, + options + ) +} diff --git a/node_modules/react-redux/src/connect/verifySubselectors.js b/node_modules/react-redux/src/connect/verifySubselectors.js new file mode 100644 index 00000000..dee4fc42 --- /dev/null +++ b/node_modules/react-redux/src/connect/verifySubselectors.js @@ -0,0 +1,27 @@ +import warning from '../utils/warning' + +function verify(selector, methodName, displayName) { + if (!selector) { + throw new Error(`Unexpected value for ${methodName} in ${displayName}.`) + } else if ( + methodName === 'mapStateToProps' || + methodName === 'mapDispatchToProps' + ) { + if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) { + warning( + `The selector for ${methodName} of ${displayName} did not specify a value for dependsOnOwnProps.` + ) + } + } +} + +export default function verifySubselectors( + mapStateToProps, + mapDispatchToProps, + mergeProps, + displayName +) { + verify(mapStateToProps, 'mapStateToProps', displayName) + verify(mapDispatchToProps, 'mapDispatchToProps', displayName) + verify(mergeProps, 'mergeProps', displayName) +} diff --git a/node_modules/react-redux/src/connect/wrapMapToProps.js b/node_modules/react-redux/src/connect/wrapMapToProps.js new file mode 100644 index 00000000..547573f1 --- /dev/null +++ b/node_modules/react-redux/src/connect/wrapMapToProps.js @@ -0,0 +1,74 @@ +import verifyPlainObject from '../utils/verifyPlainObject' + +export function wrapMapToPropsConstant(getConstant) { + return function initConstantSelector(dispatch, options) { + const constant = getConstant(dispatch, options) + + function constantSelector() { + return constant + } + constantSelector.dependsOnOwnProps = false + return constantSelector + } +} + +// dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args +// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine +// whether mapToProps needs to be invoked when props have changed. +// +// A length of one signals that mapToProps does not depend on props from the parent component. +// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and +// therefore not reporting its length accurately.. +export function getDependsOnOwnProps(mapToProps) { + return mapToProps.dependsOnOwnProps !== null && + mapToProps.dependsOnOwnProps !== undefined + ? Boolean(mapToProps.dependsOnOwnProps) + : mapToProps.length !== 1 +} + +// Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction, +// this function wraps mapToProps in a proxy function which does several things: +// +// * Detects whether the mapToProps function being called depends on props, which +// is used by selectorFactory to decide if it should reinvoke on props changes. +// +// * On first call, handles mapToProps if returns another function, and treats that +// new function as the true mapToProps for subsequent calls. +// +// * On first call, verifies the first result is a plain object, in order to warn +// the developer that their mapToProps function is not returning a valid result. +// +export function wrapMapToPropsFunc(mapToProps, methodName) { + return function initProxySelector(dispatch, { displayName }) { + const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) { + return proxy.dependsOnOwnProps + ? proxy.mapToProps(stateOrDispatch, ownProps) + : proxy.mapToProps(stateOrDispatch) + } + + // allow detectFactoryAndVerify to get ownProps + proxy.dependsOnOwnProps = true + + proxy.mapToProps = function detectFactoryAndVerify( + stateOrDispatch, + ownProps + ) { + proxy.mapToProps = mapToProps + proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps) + let props = proxy(stateOrDispatch, ownProps) + + if (typeof props === 'function') { + proxy.mapToProps = props + proxy.dependsOnOwnProps = getDependsOnOwnProps(props) + props = proxy(stateOrDispatch, ownProps) + } + + if (process.env.NODE_ENV !== 'production') + verifyPlainObject(props, displayName, methodName) + + return props + } + + return proxy + } +} diff --git a/node_modules/react-redux/src/exports.js b/node_modules/react-redux/src/exports.js new file mode 100644 index 00000000..12f87761 --- /dev/null +++ b/node_modules/react-redux/src/exports.js @@ -0,0 +1,24 @@ +import Provider from './components/Provider' +import connectAdvanced from './components/connectAdvanced' +import { ReactReduxContext } from './components/Context' +import connect from './connect/connect' + +import { useDispatch, createDispatchHook } from './hooks/useDispatch' +import { useSelector, createSelectorHook } from './hooks/useSelector' +import { useStore, createStoreHook } from './hooks/useStore' + +import shallowEqual from './utils/shallowEqual' + +export { + Provider, + connectAdvanced, + ReactReduxContext, + connect, + useDispatch, + createDispatchHook, + useSelector, + createSelectorHook, + useStore, + createStoreHook, + shallowEqual, +} diff --git a/node_modules/react-redux/src/hooks/useDispatch.js b/node_modules/react-redux/src/hooks/useDispatch.js new file mode 100644 index 00000000..f63e8091 --- /dev/null +++ b/node_modules/react-redux/src/hooks/useDispatch.js @@ -0,0 +1,41 @@ +import { ReactReduxContext } from '../components/Context' +import { useStore as useDefaultStore, createStoreHook } from './useStore' + +/** + * Hook factory, which creates a `useDispatch` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useDispatch` hook bound to the specified context. + */ +export function createDispatchHook(context = ReactReduxContext) { + const useStore = + context === ReactReduxContext ? useDefaultStore : createStoreHook(context) + + return function useDispatch() { + const store = useStore() + return store.dispatch + } +} + +/** + * A hook to access the redux `dispatch` function. + * + * @returns {any|function} redux store's `dispatch` function + * + * @example + * + * import React, { useCallback } from 'react' + * import { useDispatch } from 'react-redux' + * + * export const CounterComponent = ({ value }) => { + * const dispatch = useDispatch() + * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), []) + * return ( + *
    + * {value} + * + *
    + * ) + * } + */ +export const useDispatch = /*#__PURE__*/ createDispatchHook() diff --git a/node_modules/react-redux/src/hooks/useReduxContext.js b/node_modules/react-redux/src/hooks/useReduxContext.js new file mode 100644 index 00000000..9fdc5bd7 --- /dev/null +++ b/node_modules/react-redux/src/hooks/useReduxContext.js @@ -0,0 +1,30 @@ +import { useContext } from 'react' +import { ReactReduxContext } from '../components/Context' + +/** + * A hook to access the value of the `ReactReduxContext`. This is a low-level + * hook that you should usually not need to call directly. + * + * @returns {any} the value of the `ReactReduxContext` + * + * @example + * + * import React from 'react' + * import { useReduxContext } from 'react-redux' + * + * export const CounterComponent = ({ value }) => { + * const { store } = useReduxContext() + * return
    {store.getState()}
    + * } + */ +export function useReduxContext() { + const contextValue = useContext(ReactReduxContext) + + if (process.env.NODE_ENV !== 'production' && !contextValue) { + throw new Error( + 'could not find react-redux context value; please ensure the component is wrapped in a ' + ) + } + + return contextValue +} diff --git a/node_modules/react-redux/src/hooks/useSelector.js b/node_modules/react-redux/src/hooks/useSelector.js new file mode 100644 index 00000000..1426490e --- /dev/null +++ b/node_modules/react-redux/src/hooks/useSelector.js @@ -0,0 +1,166 @@ +import { useReducer, useRef, useMemo, useContext, useDebugValue } from 'react' +import { useReduxContext as useDefaultReduxContext } from './useReduxContext' +import { createSubscription } from '../utils/Subscription' +import { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect' +import { ReactReduxContext } from '../components/Context' + +const refEquality = (a, b) => a === b + +function useSelectorWithStoreAndSubscription( + selector, + equalityFn, + store, + contextSub +) { + const [, forceRender] = useReducer((s) => s + 1, 0) + + const subscription = useMemo( + () => createSubscription(store, contextSub), + [store, contextSub] + ) + + const latestSubscriptionCallbackError = useRef() + const latestSelector = useRef() + const latestStoreState = useRef() + const latestSelectedState = useRef() + + const storeState = store.getState() + let selectedState + + try { + if ( + selector !== latestSelector.current || + storeState !== latestStoreState.current || + latestSubscriptionCallbackError.current + ) { + const newSelectedState = selector(storeState) + // ensure latest selected state is reused so that a custom equality function can result in identical references + if ( + latestSelectedState.current === undefined || + !equalityFn(newSelectedState, latestSelectedState.current) + ) { + selectedState = newSelectedState + } else { + selectedState = latestSelectedState.current + } + } else { + selectedState = latestSelectedState.current + } + } catch (err) { + if (latestSubscriptionCallbackError.current) { + err.message += `\nThe error may be correlated with this previous error:\n${latestSubscriptionCallbackError.current.stack}\n\n` + } + + throw err + } + + useIsomorphicLayoutEffect(() => { + latestSelector.current = selector + latestStoreState.current = storeState + latestSelectedState.current = selectedState + latestSubscriptionCallbackError.current = undefined + }) + + useIsomorphicLayoutEffect(() => { + function checkForUpdates() { + try { + const newStoreState = store.getState() + // Avoid calling selector multiple times if the store's state has not changed + if (newStoreState === latestStoreState.current) { + return + } + + const newSelectedState = latestSelector.current(newStoreState) + + if (equalityFn(newSelectedState, latestSelectedState.current)) { + return + } + + latestSelectedState.current = newSelectedState + latestStoreState.current = newStoreState + } catch (err) { + // we ignore all errors here, since when the component + // is re-rendered, the selectors are called again, and + // will throw again, if neither props nor store state + // changed + latestSubscriptionCallbackError.current = err + } + + forceRender() + } + + subscription.onStateChange = checkForUpdates + subscription.trySubscribe() + + checkForUpdates() + + return () => subscription.tryUnsubscribe() + }, [store, subscription]) + + return selectedState +} + +/** + * Hook factory, which creates a `useSelector` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useSelector` hook bound to the specified context. + */ +export function createSelectorHook(context = ReactReduxContext) { + const useReduxContext = + context === ReactReduxContext + ? useDefaultReduxContext + : () => useContext(context) + return function useSelector(selector, equalityFn = refEquality) { + if (process.env.NODE_ENV !== 'production') { + if (!selector) { + throw new Error(`You must pass a selector to useSelector`) + } + if (typeof selector !== 'function') { + throw new Error(`You must pass a function as a selector to useSelector`) + } + if (typeof equalityFn !== 'function') { + throw new Error( + `You must pass a function as an equality function to useSelector` + ) + } + } + const { store, subscription: contextSub } = useReduxContext() + + const selectedState = useSelectorWithStoreAndSubscription( + selector, + equalityFn, + store, + contextSub + ) + + useDebugValue(selectedState) + + return selectedState + } +} + +/** + * A hook to access the redux store's state. This hook takes a selector function + * as an argument. The selector is called with the store state. + * + * This hook takes an optional equality comparison function as the second parameter + * that allows you to customize the way the selected state is compared to determine + * whether the component needs to be re-rendered. + * + * @param {Function} selector the selector function + * @param {Function=} equalityFn the function that will be used to determine equality + * + * @returns {any} the selected state + * + * @example + * + * import React from 'react' + * import { useSelector } from 'react-redux' + * + * export const CounterComponent = () => { + * const counter = useSelector(state => state.counter) + * return
    {counter}
    + * } + */ +export const useSelector = /*#__PURE__*/ createSelectorHook() diff --git a/node_modules/react-redux/src/hooks/useStore.js b/node_modules/react-redux/src/hooks/useStore.js new file mode 100644 index 00000000..ba86675e --- /dev/null +++ b/node_modules/react-redux/src/hooks/useStore.js @@ -0,0 +1,37 @@ +import { useContext } from 'react' +import { ReactReduxContext } from '../components/Context' +import { useReduxContext as useDefaultReduxContext } from './useReduxContext' + +/** + * Hook factory, which creates a `useStore` hook bound to a given context. + * + * @param {React.Context} [context=ReactReduxContext] Context passed to your ``. + * @returns {Function} A `useStore` hook bound to the specified context. + */ +export function createStoreHook(context = ReactReduxContext) { + const useReduxContext = + context === ReactReduxContext + ? useDefaultReduxContext + : () => useContext(context) + return function useStore() { + const { store } = useReduxContext() + return store + } +} + +/** + * A hook to access the redux store. + * + * @returns {any} the redux store + * + * @example + * + * import React from 'react' + * import { useStore } from 'react-redux' + * + * export const ExampleComponent = () => { + * const store = useStore() + * return
    {store.getState()}
    + * } + */ +export const useStore = /*#__PURE__*/ createStoreHook() diff --git a/node_modules/react-redux/src/index.js b/node_modules/react-redux/src/index.js new file mode 100644 index 00000000..cc0da170 --- /dev/null +++ b/node_modules/react-redux/src/index.js @@ -0,0 +1,10 @@ +export * from './exports' + +import { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates' +import { setBatch } from './utils/batch' + +// Enable batched updates in our subscriptions for use +// with standard React renderers (ReactDOM, React Native) +setBatch(batch) + +export { batch } diff --git a/node_modules/react-redux/src/utils/Subscription.js b/node_modules/react-redux/src/utils/Subscription.js new file mode 100644 index 00000000..0e5c7421 --- /dev/null +++ b/node_modules/react-redux/src/utils/Subscription.js @@ -0,0 +1,130 @@ +import { getBatch } from './batch' + +// encapsulates the subscription logic for connecting a component to the redux store, as +// well as nesting subscriptions of descendant components, so that we can ensure the +// ancestor components re-render before descendants + +function createListenerCollection() { + const batch = getBatch() + let first = null + let last = null + + return { + clear() { + first = null + last = null + }, + + notify() { + batch(() => { + let listener = first + while (listener) { + listener.callback() + listener = listener.next + } + }) + }, + + get() { + let listeners = [] + let listener = first + while (listener) { + listeners.push(listener) + listener = listener.next + } + return listeners + }, + + subscribe(callback) { + let isSubscribed = true + + let listener = (last = { + callback, + next: null, + prev: last, + }) + + if (listener.prev) { + listener.prev.next = listener + } else { + first = listener + } + + return function unsubscribe() { + if (!isSubscribed || first === null) return + isSubscribed = false + + if (listener.next) { + listener.next.prev = listener.prev + } else { + last = listener.prev + } + if (listener.prev) { + listener.prev.next = listener.next + } else { + first = listener.next + } + } + }, + } +} + +const nullListeners = { + notify() {}, + get: () => [], +} + +export function createSubscription(store, parentSub) { + let unsubscribe + let listeners = nullListeners + + function addNestedSub(listener) { + trySubscribe() + return listeners.subscribe(listener) + } + + function notifyNestedSubs() { + listeners.notify() + } + + function handleChangeWrapper() { + if (subscription.onStateChange) { + subscription.onStateChange() + } + } + + function isSubscribed() { + return Boolean(unsubscribe) + } + + function trySubscribe() { + if (!unsubscribe) { + unsubscribe = parentSub + ? parentSub.addNestedSub(handleChangeWrapper) + : store.subscribe(handleChangeWrapper) + + listeners = createListenerCollection() + } + } + + function tryUnsubscribe() { + if (unsubscribe) { + unsubscribe() + unsubscribe = undefined + listeners.clear() + listeners = nullListeners + } + } + + const subscription = { + addNestedSub, + notifyNestedSubs, + handleChangeWrapper, + isSubscribed, + trySubscribe, + tryUnsubscribe, + getListeners: () => listeners, + } + + return subscription +} diff --git a/node_modules/react-redux/src/utils/batch.js b/node_modules/react-redux/src/utils/batch.js new file mode 100644 index 00000000..1c5c286f --- /dev/null +++ b/node_modules/react-redux/src/utils/batch.js @@ -0,0 +1,12 @@ +// Default to a dummy "batch" implementation that just runs the callback +function defaultNoopBatch(callback) { + callback() +} + +let batch = defaultNoopBatch + +// Allow injecting another batching function later +export const setBatch = (newBatch) => (batch = newBatch) + +// Supply a getter just to skip dealing with ESM bindings +export const getBatch = () => batch diff --git a/node_modules/react-redux/src/utils/bindActionCreators.js b/node_modules/react-redux/src/utils/bindActionCreators.js new file mode 100644 index 00000000..77bf13db --- /dev/null +++ b/node_modules/react-redux/src/utils/bindActionCreators.js @@ -0,0 +1,10 @@ +export default function bindActionCreators(actionCreators, dispatch) { + const boundActionCreators = {} + for (const key in actionCreators) { + const actionCreator = actionCreators[key] + if (typeof actionCreator === 'function') { + boundActionCreators[key] = (...args) => dispatch(actionCreator(...args)) + } + } + return boundActionCreators +} diff --git a/node_modules/react-redux/src/utils/isPlainObject.js b/node_modules/react-redux/src/utils/isPlainObject.js new file mode 100644 index 00000000..0c74b629 --- /dev/null +++ b/node_modules/react-redux/src/utils/isPlainObject.js @@ -0,0 +1,17 @@ +/** + * @param {any} obj The object to inspect. + * @returns {boolean} True if the argument appears to be a plain object. + */ +export default function isPlainObject(obj) { + if (typeof obj !== 'object' || obj === null) return false + + let proto = Object.getPrototypeOf(obj) + if (proto === null) return true + + let baseProto = proto + while (Object.getPrototypeOf(baseProto) !== null) { + baseProto = Object.getPrototypeOf(baseProto) + } + + return proto === baseProto +} diff --git a/node_modules/react-redux/src/utils/reactBatchedUpdates.js b/node_modules/react-redux/src/utils/reactBatchedUpdates.js new file mode 100644 index 00000000..2d52716b --- /dev/null +++ b/node_modules/react-redux/src/utils/reactBatchedUpdates.js @@ -0,0 +1,2 @@ +/* eslint-disable import/no-unresolved */ +export { unstable_batchedUpdates } from 'react-dom' diff --git a/node_modules/react-redux/src/utils/reactBatchedUpdates.native.js b/node_modules/react-redux/src/utils/reactBatchedUpdates.native.js new file mode 100644 index 00000000..dcc9e07e --- /dev/null +++ b/node_modules/react-redux/src/utils/reactBatchedUpdates.native.js @@ -0,0 +1,4 @@ +/* eslint-disable import/named */ +import { unstable_batchedUpdates } from 'react-native' + +export { unstable_batchedUpdates } diff --git a/node_modules/react-redux/src/utils/shallowEqual.js b/node_modules/react-redux/src/utils/shallowEqual.js new file mode 100644 index 00000000..8af30f72 --- /dev/null +++ b/node_modules/react-redux/src/utils/shallowEqual.js @@ -0,0 +1,36 @@ +function is(x, y) { + if (x === y) { + return x !== 0 || y !== 0 || 1 / x === 1 / y + } else { + return x !== x && y !== y + } +} + +export default function shallowEqual(objA, objB) { + if (is(objA, objB)) return true + + if ( + typeof objA !== 'object' || + objA === null || + typeof objB !== 'object' || + objB === null + ) { + return false + } + + const keysA = Object.keys(objA) + const keysB = Object.keys(objB) + + if (keysA.length !== keysB.length) return false + + for (let i = 0; i < keysA.length; i++) { + if ( + !Object.prototype.hasOwnProperty.call(objB, keysA[i]) || + !is(objA[keysA[i]], objB[keysA[i]]) + ) { + return false + } + } + + return true +} diff --git a/node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.js b/node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.js new file mode 100644 index 00000000..362c21e2 --- /dev/null +++ b/node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.js @@ -0,0 +1,17 @@ +import { useEffect, useLayoutEffect } from 'react' + +// React currently throws a warning when using useLayoutEffect on the server. +// To get around it, we can conditionally useEffect on the server (no-op) and +// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store +// subscription callback always has the selector from the latest render commit +// available, otherwise a store update may happen between render and the effect, +// which may cause missed updates; we also must ensure the store subscription +// is created synchronously, otherwise a store update may occur before the +// subscription is created and an inconsistent state may be observed + +export const useIsomorphicLayoutEffect = + typeof window !== 'undefined' && + typeof window.document !== 'undefined' && + typeof window.document.createElement !== 'undefined' + ? useLayoutEffect + : useEffect diff --git a/node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.native.js b/node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.native.js new file mode 100644 index 00000000..ae5cb369 --- /dev/null +++ b/node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.native.js @@ -0,0 +1,5 @@ +import { useLayoutEffect } from 'react' + +// Under React Native, we know that we always want to use useLayoutEffect + +export const useIsomorphicLayoutEffect = useLayoutEffect diff --git a/node_modules/react-redux/src/utils/verifyPlainObject.js b/node_modules/react-redux/src/utils/verifyPlainObject.js new file mode 100644 index 00000000..c8c58a29 --- /dev/null +++ b/node_modules/react-redux/src/utils/verifyPlainObject.js @@ -0,0 +1,10 @@ +import isPlainObject from './isPlainObject' +import warning from './warning' + +export default function verifyPlainObject(value, displayName, methodName) { + if (!isPlainObject(value)) { + warning( + `${methodName}() in ${displayName} must return a plain object. Instead received ${value}.` + ) + } +} diff --git a/node_modules/react-redux/src/utils/warning.js b/node_modules/react-redux/src/utils/warning.js new file mode 100644 index 00000000..18708392 --- /dev/null +++ b/node_modules/react-redux/src/utils/warning.js @@ -0,0 +1,21 @@ +/** + * Prints a warning in the console if it exists. + * + * @param {String} message The warning message. + * @returns {void} + */ +export default function warning(message) { + /* eslint-disable no-console */ + if (typeof console !== 'undefined' && typeof console.error === 'function') { + console.error(message) + } + /* eslint-enable no-console */ + try { + // This error was thrown as a convenience so that if you enable + // "break on all exceptions" in your console, + // it would pause the execution at this line. + throw new Error(message) + /* eslint-disable no-empty */ + } catch (e) {} + /* eslint-enable no-empty */ +} diff --git a/node_modules/redux/LICENSE.md b/node_modules/redux/LICENSE.md new file mode 100644 index 00000000..55bc8dfb --- /dev/null +++ b/node_modules/redux/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-present Dan Abramov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/redux/README.md b/node_modules/redux/README.md new file mode 100644 index 00000000..5ea9b3d7 --- /dev/null +++ b/node_modules/redux/README.md @@ -0,0 +1,322 @@ +# Redux Logo + +Redux is a predictable state container for JavaScript apps. +(Not to be confused with a WordPress framework – [Redux Framework](https://reduxframework.com/).) + +It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. On top of that, it provides a great developer experience, such as [live code editing combined with a time traveling debugger](https://github.com/reduxjs/redux-devtools). + +You can use Redux together with [React](https://reactjs.org), or with any other view library. +It is tiny (2kB, including dependencies). + +> **Note**: We are currently planning a rewrite of the Redux docs. Please take some time to **[fill out this survey on what content is most important in a docs site](https://docs.google.com/forms/d/e/1FAIpQLSfzIkY3fXZ8PrQKScYMK0YoEgALfAK2qQ0mOj1_ibKv2qDTuQ/viewform)**. Thanks! + +[![build status](https://img.shields.io/travis/reduxjs/redux/master.svg?style=flat-square)](https://travis-ci.org/reduxjs/redux) +[![npm version](https://img.shields.io/npm/v/redux.svg?style=flat-square)](https://www.npmjs.com/package/redux) +[![npm downloads](https://img.shields.io/npm/dm/redux.svg?style=flat-square)](https://www.npmjs.com/package/redux) +[![redux channel on discord](https://img.shields.io/badge/discord-%23redux%20%40%20reactiflux-61dafb.svg?style=flat-square)](https://discord.gg/0ZcbPKXt5bZ6au5t) +[![Changelog #187](https://img.shields.io/badge/changelog-%23187-lightgrey.svg?style=flat-square)](https://changelog.com/187) + +## Learn Redux + +We have a variety of resources available to help you learn Redux, no matter what your background or learning style is. + +### Just the Basics + +If you're brand new to Redux and want to understand the basic concepts, see: + +- The **[Motivation](https://redux.js.org/introduction/motivation)** behind building Redux, the **[Core Concepts](https://redux.js.org/introduction/coreconcepts)**, and the **[Three Principles](https://redux.js.org/introduction/threeprinciples)**. +- The **[basic tutorial in the Redux docs](https://redux.js.org/basics)** +- Redux creator Dan Abramov's **free ["Getting Started with Redux" video series](https://egghead.io/series/getting-started-with-redux)** on Egghead.io +- Redux co-maintainer Mark Erikson's **["Redux Fundamentals" slideshow](http://blog.isquaredsoftware.com/2018/03/presentation-reactathon-redux-fundamentals/)** and **[list of suggested resources for learning Redux](http://blog.isquaredsoftware.com/2017/12/blogged-answers-learn-redux/)** +- If you learn best by looking at code and playing with it, check out our list of **[Redux example applications](https://redux.js.org/introduction/examples)**, available as separate projects in the Redux repo, and also as interactive online examples on CodeSandbox. +- The **[Redux Tutorials](https://github.com/markerikson/react-redux-links/blob/master/redux-tutorials.md)** section of the **[React/Redux links list](https://github.com/markerikson/react-redux-links)**. Here's a top list of our recommended tutorials: + - Dave Ceddia's posts [What Does Redux Do? (and when should you use it?)](https://daveceddia.com/what-does-redux-do/) and [How Redux Works: A Counter-Example](https://daveceddia.com/how-does-redux-work/) are a great intro to the basics of Redux and how to use it with React, as is this post on [React and Redux: An Introduction](http://jakesidsmith.com/blog/post/2017-11-18-redux-and-react-an-introduction/). + - Valentino Gagliardi's post [React Redux Tutorial for Beginners: Learning Redux in 2018](https://www.valentinog.com/blog/react-redux-tutorial-beginners/) is an excellent extended introduction to many aspects of using Redux. + - The CSS Tricks article [Leveling Up with React: Redux](https://css-tricks.com/learning-react-redux/) covers the Redux basics well. + - This [DevGuides: Introduction to Redux](http://devguides.io/redux/) tutorial covers several aspects of Redux, including actions, reducers, usage with React, and middleware. + +### Intermediate Concepts + +Once you've picked up the basics of working with actions, reducers, and the store, you may have questions about topics like working with asynchronous logic and AJAX requests, connecting a UI framework like React to your Redux store, and setting up an application to use Redux: + +- The **["Advanced" docs section](https://redux.js.org/advanced)** covers working with async logic, middleware, routing. +- The Redux docs **["Learning Resources"](https://redux.js.org/introduction/learning-resources)** page points to recommended articles on a variety of Redux-related topics. +- Sophie DeBenedetto's 8-part **[Building a Simple CRUD App with React + Redux](http://www.thegreatcodeadventure.com/building-a-simple-crud-app-with-react-redux-part-1/)** series shows how to put together a basic CRUD app from scratch. + +### Real-World Usage + +Going from a TodoMVC app to a real production application can be a big jump, but we've got plenty of resources to help: + +- Redux creator Dan Abramov's **[free "Building React Applications with Idiomatic Redux" video series](https://egghead.io/courses/building-react-applications-with-idiomatic-redux)** builds on his first video series and covers topics like middleware, routing, and persistence. +- The **[Redux FAQ](https://redux.js.org/faq)** answers many common questions about how to use Redux, and the **["Recipes" docs section](https://redux.js.org/recipes)** has information on handling derived data, testing, structuring reducer logic, and reducing boilerplate. +- Redux co-maintainer Mark Erikson's **["Practical Redux" tutorial series](http://blog.isquaredsoftware.com/series/practical-redux/)** demonstrates real-world intermediate and advanced techniques for working with React and Redux (also available as **[an interactive course on Educative.io](https://www.educative.io/collection/5687753853370368/5707702298738688)**). +- The **[React/Redux links list](https://github.com/markerikson/react-redux-links)** has categorized articles on working with [reducers and selectors](https://github.com/markerikson/react-redux-links/blob/master/redux-reducers-selectors.md), [managing side effects](https://github.com/markerikson/react-redux-links/blob/master/redux-side-effects.md), [Redux architecture and best practices](https://github.com/markerikson/react-redux-links/blob/master/redux-architecture.md), and more. +- Our community has created thousands of Redux-related libraries, addons, and tools. The **["Ecosystem" docs page](https://redux.js.org/introduction/ecosystem)** lists our recommendations, and there's a complete listing available in the **[Redux addons catalog](https://github.com/markerikson/redux-ecosystem-links)**. +- If you're looking to learn from actual application codebases, the addons catalog also has a list of **[purpose-built examples and real-world applications](https://github.com/markerikson/redux-ecosystem-links/blob/master/apps-and-examples.md)**. + +Finally, Mark Erikson is teaching a series of **[Redux workshops through Workshop.me](#redux-workshops)**. Check the [workshop schedule](https://workshop.me/?a=mark) for upcoming dates and locations. + +### Help and Discussion + +The **[#redux channel](https://discord.gg/0ZcbPKXt5bZ6au5t)** of the **[Reactiflux Discord community](http://www.reactiflux.com)** is our official resource for all questions related to learning and using Redux. Reactiflux is a great place to hang out, ask questions, and learn - come join us! + +## Before Proceeding Further + +Redux is a valuable tool for organizing your state, but you should also consider whether it's appropriate for your situation. Don't use Redux just because someone said you should - take some time to understand the potential benefits and tradeoffs of using it. + +Here are some suggestions on when it makes sense to use Redux: + +- You have reasonable amounts of data changing over time +- You need a single source of truth for your state +- You find that keeping all your state in a top-level component is no longer sufficient + +Yes, these guidelines are subjective and vague, but this is for good reason. The point at which you should integrate Redux into your application is different for every user and different for every application. + +> **For more thoughts on how Redux is meant to be used, see:**
    +> +> - **[You Might Not Need Redux](https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367)**
    +> - **[The Tao of Redux, Part 1 - Implementation and Intent](http://blog.isquaredsoftware.com/2017/05/idiomatic-redux-tao-of-redux-part-1/)**
    +> - **[The Tao of Redux, Part 2 - Practice and Philosophy](http://blog.isquaredsoftware.com/2017/05/idiomatic-redux-tao-of-redux-part-2/)** +> - **[Redux FAQ](https://redux.js.org/faq)** + +## Developer Experience + +Dan Abramov (author of Redux) wrote Redux while working on his React Europe talk called [“Hot Reloading with Time Travel”](https://www.youtube.com/watch?v=xsSnOQynTHs). His goal was to create a state management library with a minimal API but completely predictable behavior. Redux makes it possible to implement logging, hot reloading, time travel, universal apps, record and replay, without any buy-in from the developer. + +## Influences + +Redux evolves the ideas of [Flux](http://facebook.github.io/flux/), but avoids its complexity by taking cues from [Elm](https://github.com/evancz/elm-architecture-tutorial/). +Even if you haven't used Flux or Elm, Redux only takes a few minutes to get started with. + +## Installation + +To install the stable version: + +```sh +npm install --save redux +``` + +This assumes you are using [npm](https://www.npmjs.com/) as your package manager. + +If you're not, you can [access these files on unpkg](https://unpkg.com/redux/), download them, or point your package manager to them. + +Most commonly, people consume Redux as a collection of [CommonJS](https://github.com/webpack/docs/wiki/commonjs) modules. These modules are what you get when you import `redux` in a [Webpack](https://webpack.js.org/), [Browserify](http://browserify.org/), or a Node environment. If you like to live on the edge and use [Rollup](https://rollupjs.org), we support that as well. + +If you don't use a module bundler, it's also fine. The `redux` npm package includes precompiled production and development [UMD](https://github.com/umdjs/umd) builds in the [`dist` folder](https://unpkg.com/redux/dist/). They can be used directly without a bundler and are thus compatible with many popular JavaScript module loaders and environments. For example, you can drop a UMD build as a [`