react-kiwi-dropdown
Version:
| Name | Type | Description | | --------------------------- | -------------------- | ----------- | | options | array | | selectedOption | string | | onCha
1 lines • 11.9 kB
JSON
{"ast":null,"code":"import _taggedTemplateLiteral from \"/Users/kimvigren/Documents/git/react-kiwi-dropdown/test/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral\";\nimport _slicedToArray from \"/Users/kimvigren/Documents/git/react-kiwi-dropdown/test/node_modules/@babel/runtime/helpers/esm/slicedToArray\";\nvar _jsxFileName = \"/Users/kimvigren/Documents/git/react-kiwi-dropdown/test/src/examples/MultiSelect/MultiSelect.js\";\n\nfunction _templateObject4() {\n const data = _taggedTemplateLiteral([\"\\n .KIWI-button-indicator {\\n &.selected {\\n background: #f0fedf;\\n }\\n }\\n\\n .KIWI-option {\\n font-size: 40px;\\n\\n &:focus,\\n &:active {\\n outline: none;\\n }\\n\\n &.selected {\\n background: #f0fedf;\\n }\\n\\n &:hover {\\n background: #ddd;\\n }\\n }\\n\"]);\n\n _templateObject4 = function () {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject3() {\n const data = _taggedTemplateLiteral([\"\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n height: 80px;\\n width: 80px;\\n font-size: 50px;\\n margin: 5px;\\n border-radius: 50%;\\n\"]);\n\n _templateObject3 = function () {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject2() {\n const data = _taggedTemplateLiteral([\"\\n flex: 1;\\n display: flex;\\n flex-wrap: wrap;\\n list-style: none;\\n margin: 0;\\n padding: 0%;\\n\"]);\n\n _templateObject2 = function () {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n const data = _taggedTemplateLiteral([\"\\n display: flex;\\n\\n aside {\\n flex: 1;\\n }\\n\"]);\n\n _templateObject = function () {\n return data;\n };\n\n return data;\n}\n\nimport React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { code } from './code';\nimport Dropdown from 'react-kiwi-dropdown';\nconst options = [{\n value: 'kiwi',\n content: '🥝'\n}, {\n value: 'banana',\n content: '🍌'\n}, {\n value: 'pineapple',\n content: '🍍'\n}];\nconst fruitBaskets = [{\n type: 'kiwi',\n text: '🥝'\n}, {\n type: 'banana',\n text: '🍌'\n}, {\n type: 'pineapple',\n text: '🍍'\n}, {\n type: 'kiwi',\n text: '🥝'\n}, {\n type: 'banana',\n text: '🍌'\n}, {\n type: 'pineapple',\n text: '🍍'\n}];\n\nfunction MultiSelect() {\n const _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n showCode = _useState2[0],\n setShowCode = _useState2[1];\n\n const _useState3 = useState([]),\n _useState4 = _slicedToArray(_useState3, 2),\n selectedOption = _useState4[0],\n setSelectedOption = _useState4[1];\n\n const onChange = option => {\n if (!option) {\n setSelectedOption([]);\n return;\n }\n\n if (selectedOption.includes(option.value)) {\n const newOptions = selectedOption.filter(oldOption => oldOption !== option.value);\n setSelectedOption(newOptions);\n } else {\n setSelectedOption([...selectedOption, option.value]);\n }\n };\n\n return React.createElement(\"article\", {\n style: {\n marginBottom: '80px'\n },\n __source: {\n fileName: _jsxFileName,\n lineNumber: 42\n },\n __self: this\n }, React.createElement(\"h2\", {\n __source: {\n fileName: _jsxFileName,\n lineNumber: 43\n },\n __self: this\n }, \"Multi-select\"), React.createElement(Preview, {\n __source: {\n fileName: _jsxFileName,\n lineNumber: 45\n },\n __self: this\n }, React.createElement(\"aside\", {\n __source: {\n fileName: _jsxFileName,\n lineNumber: 46\n },\n __self: this\n }, React.createElement(StyledDropdown, {\n options: options,\n onChange: onChange,\n resetValue: null,\n buttonIndicator: true,\n selectedOption: selectedOption,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 47\n },\n __self: this\n })), React.createElement(BasketList, {\n __source: {\n fileName: _jsxFileName,\n lineNumber: 56\n },\n __self: this\n }, fruitBaskets.map((basket, i) => React.createElement(Basket, {\n key: i,\n style: {\n background: selectedOption.includes(basket.type) ? '#f0fedf' : '#ddd'\n },\n __source: {\n fileName: _jsxFileName,\n lineNumber: 58\n },\n __self: this\n }, basket.text)))), React.createElement(\"div\", {\n style: {\n fontSize: '20px',\n fontWeight: 'bold',\n color: '#88C747'\n },\n onClick: () => setShowCode(showCode => !showCode),\n __source: {\n fileName: _jsxFileName,\n lineNumber: 71\n },\n __self: this\n }, \"Show code\"), React.createElement(\"div\", {\n style: {\n display: showCode ? 'block' : 'none'\n },\n __source: {\n fileName: _jsxFileName,\n lineNumber: 77\n },\n __self: this\n }, React.createElement(\"pre\", {\n __source: {\n fileName: _jsxFileName,\n lineNumber: 78\n },\n __self: this\n }, React.createElement(\"code\", {\n className: \"language-javascript\",\n __source: {\n fileName: _jsxFileName,\n lineNumber: 79\n },\n __self: this\n }, code))));\n}\n\nexport default MultiSelect;\nconst Preview = styled.div(_templateObject());\nconst BasketList = styled.ul(_templateObject2());\nconst Basket = styled.li(_templateObject3());\nconst StyledDropdown = styled(Dropdown)(_templateObject4());","map":{"version":3,"sources":["/Users/kimvigren/Documents/git/react-kiwi-dropdown/test/src/examples/MultiSelect/MultiSelect.js"],"names":["React","useState","styled","code","Dropdown","options","value","content","fruitBaskets","type","text","MultiSelect","showCode","setShowCode","selectedOption","setSelectedOption","onChange","option","includes","newOptions","filter","oldOption","marginBottom","map","basket","i","background","fontSize","fontWeight","color","display","Preview","div","BasketList","ul","Basket","li","StyledDropdown"],"mappings":"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","sourcesContent":["import React, { useState } from 'react'\nimport styled from 'styled-components'\nimport { code } from './code'\nimport Dropdown from 'react-kiwi-dropdown'\n\nconst options = [\n { value: 'kiwi', content: '🥝' },\n { value: 'banana', content: '🍌' },\n { value: 'pineapple', content: '🍍' }\n]\n\nconst fruitBaskets = [\n { type: 'kiwi', text: '🥝' },\n { type: 'banana', text: '🍌' },\n { type: 'pineapple', text: '🍍' },\n { type: 'kiwi', text: '🥝' },\n { type: 'banana', text: '🍌' },\n { type: 'pineapple', text: '🍍' }\n]\n\nfunction MultiSelect() {\n const [showCode, setShowCode] = useState(false)\n const [selectedOption, setSelectedOption] = useState([])\n\n const onChange = option => {\n if (!option) {\n setSelectedOption([])\n return\n }\n\n if (selectedOption.includes(option.value)) {\n const newOptions = selectedOption.filter(\n oldOption => oldOption !== option.value\n )\n setSelectedOption(newOptions)\n } else {\n setSelectedOption([...selectedOption, option.value])\n }\n }\n\n return (\n <article style={{ marginBottom: '80px' }}>\n <h2>Multi-select</h2>\n\n <Preview>\n <aside>\n <StyledDropdown\n options={options}\n onChange={onChange}\n resetValue={null}\n buttonIndicator\n selectedOption={selectedOption}\n />\n </aside>\n\n <BasketList>\n {fruitBaskets.map((basket, i) => (\n <Basket\n key={i}\n style={{\n background: selectedOption.includes(basket.type)\n ? '#f0fedf'\n : '#ddd'\n }}\n >\n {basket.text}\n </Basket>\n ))}\n </BasketList>\n </Preview>\n <div\n style={{ fontSize: '20px', fontWeight: 'bold', color: '#88C747' }}\n onClick={() => setShowCode(showCode => !showCode)}\n >\n Show code\n </div>\n <div style={{ display: showCode ? 'block' : 'none' }}>\n <pre>\n <code className=\"language-javascript\">{code}</code>\n </pre>\n </div>\n </article>\n )\n}\n\nexport default MultiSelect\n\nconst Preview = styled.div`\n display: flex;\n\n aside {\n flex: 1;\n }\n`\n\nconst BasketList = styled.ul`\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n list-style: none;\n margin: 0;\n padding: 0%;\n`\n\nconst Basket = styled.li`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 80px;\n width: 80px;\n font-size: 50px;\n margin: 5px;\n border-radius: 50%;\n`\n\nconst StyledDropdown = styled(Dropdown)`\n .KIWI-button-indicator {\n &.selected {\n background: #f0fedf;\n }\n }\n\n .KIWI-option {\n font-size: 40px;\n\n &:focus,\n &:active {\n outline: none;\n }\n\n &.selected {\n background: #f0fedf;\n }\n\n &:hover {\n background: #ddd;\n }\n }\n`\n"]},"metadata":{},"sourceType":"module"}