openstack-uicore-foundation 4.1.59 → 4.1.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/lib/components/extra-questions.js +1 -1
  2. package/lib/components/extra-questions.js.map +1 -1
  3. package/lib/components/forms/rsvp-form.js +1 -1
  4. package/lib/components/forms/rsvp-form.js.map +1 -1
  5. package/lib/components/free-text-search.js +1 -1
  6. package/lib/components/free-text-search.js.map +1 -1
  7. package/lib/components/index.js +1 -1
  8. package/lib/components/index.js.map +1 -1
  9. package/lib/components/inputs/checkbox-list.js +1 -1
  10. package/lib/components/inputs/checkbox-list.js.map +1 -1
  11. package/lib/components/inputs/radio-list.js +1 -1
  12. package/lib/components/inputs/radio-list.js.map +1 -1
  13. package/lib/components/raw-html.js +1 -1
  14. package/lib/components/raw-html.js.map +1 -1
  15. package/lib/components/schedule-builder-view.js +1 -1
  16. package/lib/components/schedule-builder-view.js.map +1 -1
  17. package/lib/components/simple-link-list.js +1 -1
  18. package/lib/components/simple-link-list.js.map +1 -1
  19. package/lib/components/table-selectable.js +1 -1
  20. package/lib/components/table-selectable.js.map +1 -1
  21. package/lib/components/table-sortable.js +1 -1
  22. package/lib/components/table-sortable.js.map +1 -1
  23. package/lib/components/table.js +1 -1
  24. package/lib/components/table.js.map +1 -1
  25. package/lib/css/components/extra-questions.css +1 -1
  26. package/lib/css/components/extra-questions.css.map +1 -1
  27. package/lib/css/components/free-text-search.css +1 -1
  28. package/lib/css/components/free-text-search.css.map +1 -1
  29. package/lib/css/components/index.css +1 -1
  30. package/lib/css/components/index.css.map +1 -1
  31. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"components/simple-link-list.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/./src/components/table/TableHeading.js","webpack://openstack-uicore-foundation/./src/components/table/TableRow.js","webpack://openstack-uicore-foundation/./src/components/table/ActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table/Table.js","webpack://openstack-uicore-foundation/./src/components/table/TableCell.js","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-select/lib/Async\"","webpack://openstack-uicore-foundation/external commonjs \"react-select/lib/AsyncCreatable\"","webpack://openstack-uicore-foundation/external commonjs \"react-tooltip\"","webpack://openstack-uicore-foundation/webpack/bootstrap","webpack://openstack-uicore-foundation/webpack/runtime/compat get default export","webpack://openstack-uicore-foundation/webpack/runtime/define property getters","webpack://openstack-uicore-foundation/webpack/runtime/hasOwnProperty shorthand","webpack://openstack-uicore-foundation/webpack/runtime/make namespace object","webpack://openstack-uicore-foundation/./src/components/simple-link-list/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"openstack-uicore-foundation\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"openstack-uicore-foundation\"] = factory();\n\telse\n\t\troot[\"openstack-uicore-foundation\"] = factory();\n})(this, () => {\nreturn ","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\"}) =>\n <span className={className}\n dangerouslySetInnerHTML={{ __html: replaceNewLine ? children?.replace(/\\n/g, '<br />') : children}} />\n\nexport default RawHTML;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nclass TableHeading extends React.Component {\n\n\tconstructor (props) {\n\t\tsuper(props);\n\t\tthis.handleSort = this.handleSort.bind(this);\n\t}\n\n\tgetSortClass() {\n\n\t\tif (!this.props.sortable) return null;\n\n\t\tswitch(this.props.sortDir) {\n\t\t\tcase 1:\n\t\t\t\treturn 'sorting_asc';\n\t\t\tcase -1:\n\t\t\t\treturn 'sorting_desc';\n\t\t\tdefault:\n\t\t\t\treturn this.props.sortable ? 'sorting' : null\n\t\t}\n\t}\n\n\thandleSort(e) {\n\t\te.preventDefault();\n\t\tif(!this.props.hasOwnProperty('onSort') || !this.props.sortable) return;\n\n\t\tthis.props.onSort(\n\t\t\tthis.props.columnIndex,\n\t\t\tthis.props.columnKey,\n\t\t\tthis.props.sortDir ? this.props.sortDir*-1 : 1,\n\t\t\tthis.props.sortFunc\n\t\t);\n\t}\n\n\trender () {\n\t\treturn (\n\t\t\t<th onClick={this.handleSort}\n\t\t\t\tclassName={this.getSortClass()}\n\t\t\t\twidth={this.props.width}\n\t\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</th>\n\t\t);\t\n\t}\n\t\n}\n\nTableHeading.propTypes = {\n\tonSort: PropTypes.func,\n\tsortDir: PropTypes.number,\n\tcolumnIndex: PropTypes.number,\n\tcolumnKey: PropTypes.any,\n\tsortable: PropTypes.bool,\n\tsortFunc: PropTypes.func\n};\n\nexport default TableHeading;","import React from 'react';\n\nexport default class TableRow extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleEdit = this.handleEdit.bind(this);\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleEdit(id, ev) {\n ev.stopPropagation();\n ev.preventDefault();\n\n this.props.actions.edit.onClick(id);\n }\n\n render() {\n let {even, actions, id, children} = this.props;\n let canEdit = (actions.hasOwnProperty('edit') && this.shouldDisplayAction(actions.edit));\n let rowClass = even ? 'even' : 'odd';\n\n if (canEdit) {\n return (\n <tr role=\"row\" className={rowClass + \" can-edit\"} onClick={this.handleEdit.bind(this, id)}>\n {children}\n </tr>\n );\n } else {\n return (\n <tr role=\"row\" className={rowClass}>\n {children}\n </tr>\n );\n }\n }\n};\n\n","import React from 'react';\n\nexport default class ActionsTableCell extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleAction = this.handleAction.bind(this);\n this.shouldDisplayAction = this.shouldDisplayAction.bind(this);\n\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleAction(action, id, ev) {\n ev.stopPropagation();\n ev.preventDefault();\n\n action(id);\n }\n\n render() {\n let {actions, id} = this.props;\n return (\n <td className=\"actions\" key=\"actions\">\n {actions.hasOwnProperty('delete') && this.shouldDisplayAction(actions.delete) &&\n <a href=\"\" data-tip=\"delete\" onClick={this.handleAction.bind(this, actions.delete.onClick, id)} >\n <i className=\"fa fa-trash-o delete-icon\"></i>\n </a>\n }\n {actions.hasOwnProperty('custom') && actions.custom.map(a =>\n this.shouldDisplayAction(a) &&\n <a href=\"\" data-tip={a.tooltip} key={'custom_' + a.name} onClick={this.handleAction.bind(this, a.onClick, id)}>\n {a.icon}\n </a>\n )}\n </td>\n );\n }\n};\n","import React from 'react';\nimport TableHeading from './TableHeading';\nimport TableCell from './TableCell';\nimport TableRow from './TableRow';\nimport ActionsTableCell from './ActionsTableCell';\nimport ReactTooltip from 'react-tooltip'\n\nimport './table.css';\n\nconst defaults = {\n sortFunc: (a,b) => (a < b ? -1 : (a > b ? 1 : 0)),\n sortable: false,\n sortCol: 0,\n sortDir: 1,\n colWidth: ''\n}\n\nconst createRow = (row, columns, actions) => {\n\n var action_buttons = '';\n var cells = columns.map((col,i) => {\n if(col.hasOwnProperty(\"render\"))\n return (\n <TableCell key={'cell_'+i} >\n {col.render(row, row[col.columnKey])}\n </TableCell>\n );\n\n return (\n <TableCell key={'cell_'+i} title={col.hasOwnProperty(\"title\") ? row[col.columnKey] : null}>\n {row[col.columnKey]}\n </TableCell>\n );\n });\n\n if (actions) {\n cells.push(<ActionsTableCell key='actions_cell' id={row['id']} actions={actions} />);\n }\n\n return cells;\n};\n\nconst getSortDir = (columnKey, columnIndex, sortCol, sortDir) => {\n if(columnKey && (columnKey === sortCol)) {\n return sortDir;\n }\n if(sortCol === columnIndex) {\n return sortDir;\n }\n return null\n};\n\nconst Table = (props) => {\n let {options, columns} = props;\n let tableClass = options.hasOwnProperty('className') ? options.className : '';\n tableClass += (options.actions.hasOwnProperty('edit')) ? ' table-hover' : '';\n\n return (\n <div>\n <table className={\"table table-striped dataTable \" + tableClass}>\n <thead>\n <tr>\n {columns.map((col,i) => {\n\n let sortCol = (typeof options.sortCol != 'undefined') ? options.sortCol : defaults.sortCol;\n let sortDir = (typeof options.sortDir != 'undefined') ? options.sortDir : defaults.sortDir;\n let sortFunc = (typeof options.sortFunc != 'undefined') ? options.sortFunc : defaults.sortFunc;\n let sortable = (typeof col.sortable != 'undefined') ? col.sortable : defaults.sortable;\n let colWidth = (typeof col.width != 'undefined') ? col.width : defaults.colWidth;\n\n return (\n <TableHeading\n onSort={props.onSort}\n sortDir={getSortDir(col.columnKey, i, sortCol, sortDir)}\n sortable={sortable}\n sortFunc={sortFunc}\n columnIndex={i}\n columnKey={col.columnKey}\n width={colWidth}\n key={'heading_'+i}\n >\n {col.value}\n </TableHeading>\n );\n })}\n {options.actions &&\n <TableHeading key='actions_heading' >\n {options.actionsHeader || ' '}\n </TableHeading>\n }\n </tr>\n </thead>\n <tbody>\n {columns.length > 0 && props.data.map((row,i) => {\n if(Array.isArray(row) && row.length !== columns.length) {\n console.warn(`Data at row ${i} is ${row.length}. It should be ${columns.length}.`);\n return <tr key={'row_'+i} />\n }\n\n return (\n <TableRow even={i%2 === 0} key={'row_'+i} id={row['id']} actions={options.actions}>\n {createRow(row, columns, options.actions)}\n </TableRow>\n );\n })}\n </tbody>\n </table>\n <ReactTooltip delayShow={10} />\n </div>\n );\n};\n\nexport default Table;\n","import React from 'react';\nimport RawHTML from '../raw-html';\n\nconst TableCell = (props) => {\n let {children} = props;\n\tlet value = '';\n\tif(children) {\n\t if (React.isValidElement(children)) {\n\t value = children;\n } else {\n\t value = <RawHTML>{children.toString()}</RawHTML>\n }\n }\n\n\treturn (\n\t\t<td {...props}>\n {value}\n\t\t</td>\n\t);\n};\n\nexport default TableCell;\n","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"react-select/lib/Async\");","module.exports = require(\"react-select/lib/AsyncCreatable\");","module.exports = require(\"react-tooltip\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Copyright 2018 OpenStack Foundation\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport './simple-link-list.less';\nimport AsyncSelect from 'react-select/lib/Async';\nimport Table from \"../table/Table\";\nimport T from 'i18n-react/dist/i18n-react';\nimport AsyncCreatableSelect from \"react-select/lib/AsyncCreatable\";\n\n\nclass SimpleLinkList extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: ''\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.getOptions = this.getOptions.bind(this);\n this.handleLink = this.handleLink.bind(this);\n this.filterOption = this.filterOption.bind(this);\n this.handleNew = this.handleNew.bind(this);\n this.getNewOptionData = this.getNewOptionData.bind(this);\n this.isValidNewOption = this.isValidNewOption.bind(this);\n }\n\n getOptions(input, callback) {\n let {options} = this.props;\n let defaultOptions = options.hasOwnProperty('defaultOptions') ? options.defaultOptions : undefined;\n\n if (!input && !defaultOptions) {\n return Promise.resolve({ options: [] });\n }\n\n this.props.options.actions.search(input, callback);\n }\n\n handleChange(value) {\n this.setState({value});\n }\n\n handleLink(ev) {\n ev.preventDefault();\n this.props.options.actions.add.onClick(this.state.value);\n this.setState({value: ''});\n }\n\n getNewOptionData(inputValue, optionLabel) {\n return {tag: optionLabel, id:inputValue};\n }\n\n isValidNewOption(inputValue, selectValue, selectOptions) {\n let {options} = this.props;\n let labelKey = options.hasOwnProperty('labelKey') ? options.labelKey : 'label';\n let optionFound = selectOptions.find(op => op[labelKey] == inputValue);\n return (!inputValue || optionFound) ? false : true;\n }\n\n handleNew(value) {\n this.props.options.onCreateTag(value, this.handleChange);\n }\n\n filterOption(candidate, inputValue) {\n let {options, values} = this.props;\n let allowDuplicates = this.props.hasOwnProperty('allowDuplicates');\n let labelKey = options.hasOwnProperty('labelKey') ? options.labelKey : 'label';\n\n if (allowDuplicates) return true;\n\n let optionFound = values.find(val => val[labelKey] === candidate.label);\n\n return !optionFound;\n }\n\n\n render() {\n\n let {options, values, columns} = this.props;\n let disabledAdd = (!this.state.value);\n\n let title = options.hasOwnProperty('title') ? options.title : 'Table';\n let valueKey = options.hasOwnProperty('valueKey') ? options.valueKey : 'value';\n let labelKey = options.hasOwnProperty('labelKey') ? options.labelKey : 'label';\n let allowCreate = options.hasOwnProperty('onCreateTag');\n let defaultOptions = options.hasOwnProperty('defaultOptions') ? options.defaultOptions : undefined;\n\n let tableOptions = {\n className: 'dataTable',\n actions: {\n delete: options.actions.delete\n }\n };\n\n if (options.hasOwnProperty('className')) {\n tableOptions.className = options.className;\n }\n\n if (options.actions.hasOwnProperty('edit')) {\n tableOptions.actions.edit = options.actions.edit;\n }\n\n if (options.actions.hasOwnProperty('custom')) {\n tableOptions.actions.custom = options.actions.custom;\n }\n\n if (options.hasOwnProperty('sortCol')) {\n values = values.sort(\n (a, b) => {\n const itemA = isNaN(a[options.sortCol]) ? a[options.sortCol].toLowerCase() : a[options.sortCol];\n const itemB = isNaN(b[options.sortCol]) ? b[options.sortCol].toLowerCase() : b[options.sortCol];\n return (itemA > itemB ? 1 : (itemA < itemB ? -1 : 0))\n }\n );\n }\n\n\n let AsyncComponent = null;\n\n if (allowCreate) {\n AsyncComponent =\n <AsyncCreatableSelect\n className=\"link-select btn-group text-left\"\n value={this.state.value}\n key={JSON.stringify(values)}\n getOptionValue={option => option[valueKey]}\n getOptionLabel={option => option[labelKey]}\n onChange={this.handleChange}\n loadOptions={this.getOptions}\n filterOption={this.filterOption}\n onCreateOption={this.handleNew}\n getNewOptionData={this.getNewOptionData}\n isValidNewOption={this.isValidNewOption}\n />;\n } else {\n AsyncComponent =\n <AsyncSelect\n className=\"link-select btn-group text-left\"\n value={this.state.value}\n key={JSON.stringify(values)}\n getOptionValue={option => option[valueKey]}\n getOptionLabel={option => option[labelKey]}\n onChange={this.handleChange}\n loadOptions={this.getOptions}\n filterOption={this.filterOption}\n defaultOptions={defaultOptions}\n />;\n }\n\n return (\n <div className=\"row simple-link-list\">\n <div className=\"col-md-4 simple-link-list-title\">\n <h4>{title}</h4>\n </div>\n <div className=\"col-md simple-link-list-buttons\">\n {AsyncComponent}\n <button type=\"button\" className=\"btn btn-default add-button\" onClick={this.handleLink} disabled={disabledAdd}>\n {T.translate(\"general.add\")}\n </button>\n </div>\n <div className=\"col-md-12\">\n <Table\n className=\"dataTable\"\n options={tableOptions}\n data={values}\n columns={columns}\n />\n </div>\n </div>\n );\n\n }\n}\n\nSimpleLinkList.propTypes = {\n values: PropTypes.array.isRequired,\n options: PropTypes.shape({\n title: PropTypes.string,\n sortCol: PropTypes.string,\n valueKey: PropTypes.string.isRequired,\n labelKey: PropTypes.string.isRequired,\n className: PropTypes.string,\n actions: PropTypes.shape({\n search: PropTypes.func.isRequired,\n delete: PropTypes.shape({onClick:PropTypes.func.isRequired}),\n add: PropTypes.shape({onClick:PropTypes.func.isRequired}),\n edit: PropTypes.shape({onClick:PropTypes.func.isRequired}),\n custom: PropTypes.array,\n }).isRequired\n }).isRequired,\n columns: PropTypes.array.isRequired\n}\n\nexport default SimpleLinkList;\n"],"names":["root","factory","exports","module","define","amd","this","children","replaceNewLine","className","dangerouslySetInnerHTML","__html","replace","TableHeading","React","constructor","props","super","handleSort","bind","getSortClass","sortable","sortDir","e","preventDefault","hasOwnProperty","onSort","columnIndex","columnKey","sortFunc","render","onClick","width","propTypes","PropTypes","TableRow","handleEdit","shouldDisplayAction","action","id","display","ev","stopPropagation","actions","edit","even","rowClass","role","ActionsTableCell","handleAction","key","delete","href","custom","map","a","tooltip","name","icon","defaults","b","sortCol","colWidth","getSortDir","options","columns","tableClass","col","i","value","actionsHeader","length","data","row","Array","isArray","console","warn","cells","TableCell","title","push","createRow","delayShow","toString","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","call","r","Symbol","toStringTag","SimpleLinkList","state","handleChange","getOptions","handleLink","filterOption","handleNew","getNewOptionData","isValidNewOption","input","callback","defaultOptions","Promise","resolve","search","setState","add","inputValue","optionLabel","tag","selectValue","selectOptions","labelKey","optionFound","find","op","onCreateTag","candidate","values","allowDuplicates","val","label","disabledAdd","valueKey","allowCreate","tableOptions","sort","itemA","isNaN","toLowerCase","itemB","AsyncComponent","JSON","stringify","getOptionValue","option","getOptionLabel","onChange","loadOptions","onCreateOption","type","disabled","T","isRequired"],"sourceRoot":""}
1
+ {"version":3,"file":"components/simple-link-list.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/./src/components/table/TableHeading.js","webpack://openstack-uicore-foundation/./src/components/table/TableRow.js","webpack://openstack-uicore-foundation/./src/components/table/ActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table/Table.js","webpack://openstack-uicore-foundation/./src/components/table/TableCell.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/extends\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-select/lib/Async\"","webpack://openstack-uicore-foundation/external commonjs \"react-select/lib/AsyncCreatable\"","webpack://openstack-uicore-foundation/external commonjs \"react-tooltip\"","webpack://openstack-uicore-foundation/webpack/bootstrap","webpack://openstack-uicore-foundation/webpack/runtime/compat get default export","webpack://openstack-uicore-foundation/webpack/runtime/define property getters","webpack://openstack-uicore-foundation/webpack/runtime/hasOwnProperty shorthand","webpack://openstack-uicore-foundation/webpack/runtime/make namespace object","webpack://openstack-uicore-foundation/./src/components/simple-link-list/index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"openstack-uicore-foundation\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"openstack-uicore-foundation\"] = factory();\n\telse\n\t\troot[\"openstack-uicore-foundation\"] = factory();\n})(this, () => {\nreturn ","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\", ...rest}) =>\n <span className={className}\n dangerouslySetInnerHTML={{ __html: replaceNewLine ? children?.replace(/\\n/g, '<br />') : children}} {...rest}/>\n\nexport default RawHTML;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nclass TableHeading extends React.Component {\n\n\tconstructor (props) {\n\t\tsuper(props);\n\t\tthis.handleSort = this.handleSort.bind(this);\n\t}\n\n\tgetSortClass() {\n\n\t\tif (!this.props.sortable) return null;\n\n\t\tswitch(this.props.sortDir) {\n\t\t\tcase 1:\n\t\t\t\treturn 'sorting_asc';\n\t\t\tcase -1:\n\t\t\t\treturn 'sorting_desc';\n\t\t\tdefault:\n\t\t\t\treturn this.props.sortable ? 'sorting' : null\n\t\t}\n\t}\n\n\thandleSort(e) {\n\t\te.preventDefault();\n\t\tif(!this.props.hasOwnProperty('onSort') || !this.props.sortable) return;\n\n\t\tthis.props.onSort(\n\t\t\tthis.props.columnIndex,\n\t\t\tthis.props.columnKey,\n\t\t\tthis.props.sortDir ? this.props.sortDir*-1 : 1,\n\t\t\tthis.props.sortFunc\n\t\t);\n\t}\n\n\trender () {\n\t\treturn (\n\t\t\t<th onClick={this.handleSort}\n\t\t\t\tclassName={this.getSortClass()}\n\t\t\t\twidth={this.props.width}\n\t\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</th>\n\t\t);\t\n\t}\n\t\n}\n\nTableHeading.propTypes = {\n\tonSort: PropTypes.func,\n\tsortDir: PropTypes.number,\n\tcolumnIndex: PropTypes.number,\n\tcolumnKey: PropTypes.any,\n\tsortable: PropTypes.bool,\n\tsortFunc: PropTypes.func\n};\n\nexport default TableHeading;","import React from 'react';\n\nexport default class TableRow extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleEdit = this.handleEdit.bind(this);\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleEdit(id, ev) {\n ev.stopPropagation();\n ev.preventDefault();\n\n this.props.actions.edit.onClick(id);\n }\n\n render() {\n let {even, actions, id, children} = this.props;\n let canEdit = (actions.hasOwnProperty('edit') && this.shouldDisplayAction(actions.edit));\n let rowClass = even ? 'even' : 'odd';\n\n if (canEdit) {\n return (\n <tr role=\"row\" className={rowClass + \" can-edit\"} onClick={this.handleEdit.bind(this, id)}>\n {children}\n </tr>\n );\n } else {\n return (\n <tr role=\"row\" className={rowClass}>\n {children}\n </tr>\n );\n }\n }\n};\n\n","import React from 'react';\n\nexport default class ActionsTableCell extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleAction = this.handleAction.bind(this);\n this.shouldDisplayAction = this.shouldDisplayAction.bind(this);\n\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleAction(action, id, ev) {\n ev.stopPropagation();\n ev.preventDefault();\n\n action(id);\n }\n\n render() {\n let {actions, id} = this.props;\n return (\n <td className=\"actions\" key=\"actions\">\n {actions.hasOwnProperty('delete') && this.shouldDisplayAction(actions.delete) &&\n <a href=\"\" data-tip=\"delete\" onClick={this.handleAction.bind(this, actions.delete.onClick, id)} >\n <i className=\"fa fa-trash-o delete-icon\"></i>\n </a>\n }\n {actions.hasOwnProperty('custom') && actions.custom.map(a =>\n this.shouldDisplayAction(a) &&\n <a href=\"\" data-tip={a.tooltip} key={'custom_' + a.name} onClick={this.handleAction.bind(this, a.onClick, id)}>\n {a.icon}\n </a>\n )}\n </td>\n );\n }\n};\n","import React from 'react';\nimport TableHeading from './TableHeading';\nimport TableCell from './TableCell';\nimport TableRow from './TableRow';\nimport ActionsTableCell from './ActionsTableCell';\nimport ReactTooltip from 'react-tooltip'\n\nimport './table.css';\n\nconst defaults = {\n sortFunc: (a,b) => (a < b ? -1 : (a > b ? 1 : 0)),\n sortable: false,\n sortCol: 0,\n sortDir: 1,\n colWidth: ''\n}\n\nconst createRow = (row, columns, actions) => {\n\n var action_buttons = '';\n var cells = columns.map((col,i) => {\n if(col.hasOwnProperty(\"render\"))\n return (\n <TableCell key={'cell_'+i} >\n {col.render(row, row[col.columnKey])}\n </TableCell>\n );\n\n return (\n <TableCell key={'cell_'+i} title={col.hasOwnProperty(\"title\") ? row[col.columnKey] : null}>\n {row[col.columnKey]}\n </TableCell>\n );\n });\n\n if (actions) {\n cells.push(<ActionsTableCell key='actions_cell' id={row['id']} actions={actions} />);\n }\n\n return cells;\n};\n\nconst getSortDir = (columnKey, columnIndex, sortCol, sortDir) => {\n if(columnKey && (columnKey === sortCol)) {\n return sortDir;\n }\n if(sortCol === columnIndex) {\n return sortDir;\n }\n return null\n};\n\nconst Table = (props) => {\n let {options, columns} = props;\n let tableClass = options.hasOwnProperty('className') ? options.className : '';\n tableClass += (options.actions.hasOwnProperty('edit')) ? ' table-hover' : '';\n\n return (\n <div>\n <table className={\"table table-striped dataTable \" + tableClass}>\n <thead>\n <tr>\n {columns.map((col,i) => {\n\n let sortCol = (typeof options.sortCol != 'undefined') ? options.sortCol : defaults.sortCol;\n let sortDir = (typeof options.sortDir != 'undefined') ? options.sortDir : defaults.sortDir;\n let sortFunc = (typeof options.sortFunc != 'undefined') ? options.sortFunc : defaults.sortFunc;\n let sortable = (typeof col.sortable != 'undefined') ? col.sortable : defaults.sortable;\n let colWidth = (typeof col.width != 'undefined') ? col.width : defaults.colWidth;\n\n return (\n <TableHeading\n onSort={props.onSort}\n sortDir={getSortDir(col.columnKey, i, sortCol, sortDir)}\n sortable={sortable}\n sortFunc={sortFunc}\n columnIndex={i}\n columnKey={col.columnKey}\n width={colWidth}\n key={'heading_'+i}\n >\n {col.value}\n </TableHeading>\n );\n })}\n {options.actions &&\n <TableHeading key='actions_heading' >\n {options.actionsHeader || ' '}\n </TableHeading>\n }\n </tr>\n </thead>\n <tbody>\n {columns.length > 0 && props.data.map((row,i) => {\n if(Array.isArray(row) && row.length !== columns.length) {\n console.warn(`Data at row ${i} is ${row.length}. It should be ${columns.length}.`);\n return <tr key={'row_'+i} />\n }\n\n return (\n <TableRow even={i%2 === 0} key={'row_'+i} id={row['id']} actions={options.actions}>\n {createRow(row, columns, options.actions)}\n </TableRow>\n );\n })}\n </tbody>\n </table>\n <ReactTooltip delayShow={10} />\n </div>\n );\n};\n\nexport default Table;\n","import React from 'react';\nimport RawHTML from '../raw-html';\n\nconst TableCell = (props) => {\n let {children} = props;\n\tlet value = '';\n\tif(children) {\n\t if (React.isValidElement(children)) {\n\t value = children;\n } else {\n\t value = <RawHTML>{children.toString()}</RawHTML>\n }\n }\n\n\treturn (\n\t\t<td {...props}>\n {value}\n\t\t</td>\n\t);\n};\n\nexport default TableCell;\n","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"react-select/lib/Async\");","module.exports = require(\"react-select/lib/AsyncCreatable\");","module.exports = require(\"react-tooltip\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Copyright 2018 OpenStack Foundation\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * http://www.apache.org/licenses/LICENSE-2.0\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport './simple-link-list.less';\nimport AsyncSelect from 'react-select/lib/Async';\nimport Table from \"../table/Table\";\nimport T from 'i18n-react/dist/i18n-react';\nimport AsyncCreatableSelect from \"react-select/lib/AsyncCreatable\";\n\n\nclass SimpleLinkList extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: ''\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.getOptions = this.getOptions.bind(this);\n this.handleLink = this.handleLink.bind(this);\n this.filterOption = this.filterOption.bind(this);\n this.handleNew = this.handleNew.bind(this);\n this.getNewOptionData = this.getNewOptionData.bind(this);\n this.isValidNewOption = this.isValidNewOption.bind(this);\n }\n\n getOptions(input, callback) {\n let {options} = this.props;\n let defaultOptions = options.hasOwnProperty('defaultOptions') ? options.defaultOptions : undefined;\n\n if (!input && !defaultOptions) {\n return Promise.resolve({ options: [] });\n }\n\n this.props.options.actions.search(input, callback);\n }\n\n handleChange(value) {\n this.setState({value});\n }\n\n handleLink(ev) {\n ev.preventDefault();\n this.props.options.actions.add.onClick(this.state.value);\n this.setState({value: ''});\n }\n\n getNewOptionData(inputValue, optionLabel) {\n return {tag: optionLabel, id:inputValue};\n }\n\n isValidNewOption(inputValue, selectValue, selectOptions) {\n let {options} = this.props;\n let labelKey = options.hasOwnProperty('labelKey') ? options.labelKey : 'label';\n let optionFound = selectOptions.find(op => op[labelKey] == inputValue);\n return (!inputValue || optionFound) ? false : true;\n }\n\n handleNew(value) {\n this.props.options.onCreateTag(value, this.handleChange);\n }\n\n filterOption(candidate, inputValue) {\n let {options, values} = this.props;\n let allowDuplicates = this.props.hasOwnProperty('allowDuplicates');\n let labelKey = options.hasOwnProperty('labelKey') ? options.labelKey : 'label';\n\n if (allowDuplicates) return true;\n\n let optionFound = values.find(val => val[labelKey] === candidate.label);\n\n return !optionFound;\n }\n\n\n render() {\n\n let {options, values, columns} = this.props;\n let disabledAdd = (!this.state.value);\n\n let title = options.hasOwnProperty('title') ? options.title : 'Table';\n let valueKey = options.hasOwnProperty('valueKey') ? options.valueKey : 'value';\n let labelKey = options.hasOwnProperty('labelKey') ? options.labelKey : 'label';\n let allowCreate = options.hasOwnProperty('onCreateTag');\n let defaultOptions = options.hasOwnProperty('defaultOptions') ? options.defaultOptions : undefined;\n\n let tableOptions = {\n className: 'dataTable',\n actions: {\n delete: options.actions.delete\n }\n };\n\n if (options.hasOwnProperty('className')) {\n tableOptions.className = options.className;\n }\n\n if (options.actions.hasOwnProperty('edit')) {\n tableOptions.actions.edit = options.actions.edit;\n }\n\n if (options.actions.hasOwnProperty('custom')) {\n tableOptions.actions.custom = options.actions.custom;\n }\n\n if (options.hasOwnProperty('sortCol')) {\n values = values.sort(\n (a, b) => {\n const itemA = isNaN(a[options.sortCol]) ? a[options.sortCol].toLowerCase() : a[options.sortCol];\n const itemB = isNaN(b[options.sortCol]) ? b[options.sortCol].toLowerCase() : b[options.sortCol];\n return (itemA > itemB ? 1 : (itemA < itemB ? -1 : 0))\n }\n );\n }\n\n\n let AsyncComponent = null;\n\n if (allowCreate) {\n AsyncComponent =\n <AsyncCreatableSelect\n className=\"link-select btn-group text-left\"\n value={this.state.value}\n key={JSON.stringify(values)}\n getOptionValue={option => option[valueKey]}\n getOptionLabel={option => option[labelKey]}\n onChange={this.handleChange}\n loadOptions={this.getOptions}\n filterOption={this.filterOption}\n onCreateOption={this.handleNew}\n getNewOptionData={this.getNewOptionData}\n isValidNewOption={this.isValidNewOption}\n />;\n } else {\n AsyncComponent =\n <AsyncSelect\n className=\"link-select btn-group text-left\"\n value={this.state.value}\n key={JSON.stringify(values)}\n getOptionValue={option => option[valueKey]}\n getOptionLabel={option => option[labelKey]}\n onChange={this.handleChange}\n loadOptions={this.getOptions}\n filterOption={this.filterOption}\n defaultOptions={defaultOptions}\n />;\n }\n\n return (\n <div className=\"row simple-link-list\">\n <div className=\"col-md-4 simple-link-list-title\">\n <h4>{title}</h4>\n </div>\n <div className=\"col-md simple-link-list-buttons\">\n {AsyncComponent}\n <button type=\"button\" className=\"btn btn-default add-button\" onClick={this.handleLink} disabled={disabledAdd}>\n {T.translate(\"general.add\")}\n </button>\n </div>\n <div className=\"col-md-12\">\n <Table\n className=\"dataTable\"\n options={tableOptions}\n data={values}\n columns={columns}\n />\n </div>\n </div>\n );\n\n }\n}\n\nSimpleLinkList.propTypes = {\n values: PropTypes.array.isRequired,\n options: PropTypes.shape({\n title: PropTypes.string,\n sortCol: PropTypes.string,\n valueKey: PropTypes.string.isRequired,\n labelKey: PropTypes.string.isRequired,\n className: PropTypes.string,\n actions: PropTypes.shape({\n search: PropTypes.func.isRequired,\n delete: PropTypes.shape({onClick:PropTypes.func.isRequired}),\n add: PropTypes.shape({onClick:PropTypes.func.isRequired}),\n edit: PropTypes.shape({onClick:PropTypes.func.isRequired}),\n custom: PropTypes.array,\n }).isRequired\n }).isRequired,\n columns: PropTypes.array.isRequired\n}\n\nexport default SimpleLinkList;\n"],"names":["root","factory","exports","module","define","amd","this","children","replaceNewLine","className","rest","dangerouslySetInnerHTML","__html","replace","TableHeading","React","constructor","props","super","handleSort","bind","getSortClass","sortable","sortDir","e","preventDefault","hasOwnProperty","onSort","columnIndex","columnKey","sortFunc","render","onClick","width","propTypes","PropTypes","TableRow","handleEdit","shouldDisplayAction","action","id","display","ev","stopPropagation","actions","edit","even","rowClass","role","ActionsTableCell","handleAction","key","delete","href","custom","map","a","tooltip","name","icon","defaults","b","sortCol","colWidth","getSortDir","options","columns","tableClass","col","i","value","actionsHeader","length","data","row","Array","isArray","console","warn","cells","TableCell","title","push","createRow","delayShow","toString","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","definition","o","Object","defineProperty","enumerable","get","obj","prop","prototype","call","r","Symbol","toStringTag","SimpleLinkList","state","handleChange","getOptions","handleLink","filterOption","handleNew","getNewOptionData","isValidNewOption","input","callback","defaultOptions","Promise","resolve","search","setState","add","inputValue","optionLabel","tag","selectValue","selectOptions","labelKey","optionFound","find","op","onCreateTag","candidate","values","allowDuplicates","val","label","disabledAdd","valueKey","allowCreate","tableOptions","sort","itemA","isNaN","toLowerCase","itemB","AsyncComponent","JSON","stringify","getOptionValue","option","getOptionLabel","onChange","loadOptions","onCreateOption","type","disabled","T","isRequired"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={418:(e,t,n)=>{n.d(t,{default:()=>s});var r=n(6689),o=n.n(r);const s=({children:e,replaceNewLine:t=!1,className:n=""})=>o().createElement("span",{className:n,dangerouslySetInnerHTML:{__html:t?null==e?void 0:e.replace(/\n/g,"<br />"):e}})},580:e=>{e.exports=require("prop-types")},6689:e=>{e.exports=require("react")},2076:e=>{e.exports=require("react-tooltip")}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}(()=>{n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t}})(),(()=>{n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}})(),(()=>{n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var r={};return(()=>{n.r(r),n.d(r,{default:()=>f});var e=n(6689),t=n.n(e),o=n(580),s=n.n(o);class l extends t().Component{constructor(e){super(e),this.handleSort=this.handleSort.bind(this)}getSortClass(){if(!this.props.sortable)return null;switch(this.props.sortDir){case 1:return"sorting_asc";case-1:return"sorting_desc";default:return this.props.sortable?"sorting":null}}handleSort(e){e.preventDefault(),this.props.hasOwnProperty("onSort")&&this.props.sortable&&this.props.onSort(this.props.columnIndex,this.props.columnKey,this.props.sortDir?-1*this.props.sortDir:1,this.props.sortFunc)}render(){return t().createElement("th",{onClick:this.handleSort,className:this.getSortClass(),width:this.props.width},this.props.children)}}l.propTypes={onSort:s().func,sortDir:s().number,columnIndex:s().number,columnKey:s().any,sortable:s().bool,sortFunc:s().func};const i=l;var a=n(418);const c=e=>{let{children:n}=e,r="";return n&&(r=t().isValidElement(n)?n:t().createElement(a.default,null,n.toString())),t().createElement("td",e,r)};class d extends t().Component{constructor(e){super(e),this.handleEdit=this.handleEdit.bind(this),this.handleSelect=this.handleSelect.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleEdit(e,t){"checkbox"!==t.target.type&&(t.stopPropagation(),t.preventDefault(),this.props.actions.edit.onClick(e))}handleSelect(e,t){this.props.actions.edit.onSelected(e,t.target.checked)}render(){let{even:e,actions:n,id:r,children:o,checked:s}=this.props,l=e?"even":"odd";return n.hasOwnProperty("edit")&&this.shouldDisplayAction(n.edit)?t().createElement("tr",{role:"row",className:l+" can-edit",onClick:this.handleEdit.bind(this,r)},t().createElement("td",{key:r+"_select"},t().createElement("input",{type:"checkbox",id:r+"_select",name:r+"_select",checked:s,onChange:this.handleSelect.bind(this,r)})),o):t().createElement("tr",{role:"row",className:l},t().createElement("td",{key:r+"_select"},t().createElement("input",{type:"checkbox",id:r+"_select",name:r+"_select",checked:s,onChange:this.handleSelect.bind(this,r)})),o)}}class h extends t().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.shouldDisplayAction=this.shouldDisplayAction.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleAction(e,t,n){n.stopPropagation(),n.preventDefault(),e(t)}render(){let{actions:e,id:n}=this.props;return t().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&t().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,n)},t().createElement("i",{className:"fa fa-trash-o delete-icon"})),e.hasOwnProperty("custom")&&e.custom.map((e=>this.shouldDisplayAction(e)&&t().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,n)},e.icon))))}}var p=n(2076),u=n.n(p);const m={sortFunc:(e,t)=>e<t?-1:e>t?1:0,sortable:!1,sortCol:0,sortDir:1,colWidth:""},y=(e,t,n,r)=>e&&e===n||n===t?r:null;class b extends t().Component{constructor(e){super(e)}render(){let{options:e,columns:n}=this.props,r=e.hasOwnProperty("className")?e.className:"";return r+=e.actions.hasOwnProperty("edit")?" table-hover":"",t().createElement("div",null,t().createElement("table",{className:"table table-striped dataTable "+r},t().createElement("thead",null,t().createElement("tr",null,t().createElement("th",null,t().createElement("input",{type:"checkbox",id:"select_all",name:"select_all",onChange:e.actions.edit.onSelectedAll,checked:e.selectedAll})),n.map(((n,r)=>{let o=void 0!==e.sortCol?e.sortCol:m.sortCol,s=void 0!==e.sortDir?e.sortDir:m.sortDir,l=void 0!==e.sortFunc?e.sortFunc:m.sortFunc,a=void 0!==n.sortable?n.sortable:m.sortable,c=void 0!==n.width?n.width:m.colWidth;return t().createElement(i,{onSort:this.props.onSort,sortDir:y(n.columnKey,r,o,s),sortable:a,sortFunc:l,columnIndex:r,columnKey:n.columnKey,width:c,key:"heading_"+r},n.value)})),e.actions&&t().createElement(i,{key:"actions_heading"},e.actionsHeader||" "))),t().createElement("tbody",null,n.length>0&&this.props.data.map(((r,o)=>Array.isArray(r)&&r.length!==n.length?(console.warn(`Data at row ${o} is ${r.length}. It should be ${n.length}.`),t().createElement("tr",{key:"row_"+o})):t().createElement(d,{checked:r.checked,even:o%2==0,key:"row_"+r.id,id:r.id,actions:e.actions},((e,n,r)=>{var o=n.map(((n,r)=>n.hasOwnProperty("render")?t().createElement(c,{key:e.id+"_field"+r,name:n.columnKey,id:e.id},n.render(e,e[n.columnKey])):t().createElement(c,{key:e.id+"_field"+r,name:n.columnKey,id:e.id},e[n.columnKey])));return r&&o.push(t().createElement(h,{key:"actions_cell",id:e.id,actions:r})),o})(r,n,e.actions)))))),t().createElement(u(),{delayShow:10}))}}const f=b})(),r})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={418:(e,t,r)=>{r.d(t,{default:()=>d});var n=r(8213),o=r.n(n),s=r(3838),l=r.n(s),i=r(6689),a=r.n(i);const c=["children","replaceNewLine","className"],d=e=>{let{children:t,replaceNewLine:r=!1,className:n=""}=e,s=l()(e,c);return a().createElement("span",o()({className:n,dangerouslySetInnerHTML:{__html:r?null==t?void 0:t.replace(/\n/g,"<br />"):t}},s))}},8213:e=>{e.exports=require("@babel/runtime/helpers/extends")},3838:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},580:e=>{e.exports=require("prop-types")},6689:e=>{e.exports=require("react")},2076:e=>{e.exports=require("react-tooltip")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var n={};return(()=>{r.r(n),r.d(n,{default:()=>f});var e=r(6689),t=r.n(e),o=r(580),s=r.n(o);class l extends t().Component{constructor(e){super(e),this.handleSort=this.handleSort.bind(this)}getSortClass(){if(!this.props.sortable)return null;switch(this.props.sortDir){case 1:return"sorting_asc";case-1:return"sorting_desc";default:return this.props.sortable?"sorting":null}}handleSort(e){e.preventDefault(),this.props.hasOwnProperty("onSort")&&this.props.sortable&&this.props.onSort(this.props.columnIndex,this.props.columnKey,this.props.sortDir?-1*this.props.sortDir:1,this.props.sortFunc)}render(){return t().createElement("th",{onClick:this.handleSort,className:this.getSortClass(),width:this.props.width},this.props.children)}}l.propTypes={onSort:s().func,sortDir:s().number,columnIndex:s().number,columnKey:s().any,sortable:s().bool,sortFunc:s().func};const i=l;var a=r(418);const c=e=>{let{children:r}=e,n="";return r&&(n=t().isValidElement(r)?r:t().createElement(a.default,null,r.toString())),t().createElement("td",e,n)};class d extends t().Component{constructor(e){super(e),this.handleEdit=this.handleEdit.bind(this),this.handleSelect=this.handleSelect.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleEdit(e,t){"checkbox"!==t.target.type&&(t.stopPropagation(),t.preventDefault(),this.props.actions.edit.onClick(e))}handleSelect(e,t){this.props.actions.edit.onSelected(e,t.target.checked)}render(){let{even:e,actions:r,id:n,children:o,checked:s}=this.props,l=e?"even":"odd";return r.hasOwnProperty("edit")&&this.shouldDisplayAction(r.edit)?t().createElement("tr",{role:"row",className:l+" can-edit",onClick:this.handleEdit.bind(this,n)},t().createElement("td",{key:n+"_select"},t().createElement("input",{type:"checkbox",id:n+"_select",name:n+"_select",checked:s,onChange:this.handleSelect.bind(this,n)})),o):t().createElement("tr",{role:"row",className:l},t().createElement("td",{key:n+"_select"},t().createElement("input",{type:"checkbox",id:n+"_select",name:n+"_select",checked:s,onChange:this.handleSelect.bind(this,n)})),o)}}class p extends t().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.shouldDisplayAction=this.shouldDisplayAction.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleAction(e,t,r){r.stopPropagation(),r.preventDefault(),e(t)}render(){let{actions:e,id:r}=this.props;return t().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&t().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,r)},t().createElement("i",{className:"fa fa-trash-o delete-icon"})),e.hasOwnProperty("custom")&&e.custom.map((e=>this.shouldDisplayAction(e)&&t().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,r)},e.icon))))}}var h=r(2076),u=r.n(h);const m={sortFunc:(e,t)=>e<t?-1:e>t?1:0,sortable:!1,sortCol:0,sortDir:1,colWidth:""},y=(e,t,r,n)=>e&&e===r||r===t?n:null;class b extends t().Component{constructor(e){super(e)}render(){let{options:e,columns:r}=this.props,n=e.hasOwnProperty("className")?e.className:"";return n+=e.actions.hasOwnProperty("edit")?" table-hover":"",t().createElement("div",null,t().createElement("table",{className:"table table-striped dataTable "+n},t().createElement("thead",null,t().createElement("tr",null,t().createElement("th",null,t().createElement("input",{type:"checkbox",id:"select_all",name:"select_all",onChange:e.actions.edit.onSelectedAll,checked:e.selectedAll})),r.map(((r,n)=>{let o=void 0!==e.sortCol?e.sortCol:m.sortCol,s=void 0!==e.sortDir?e.sortDir:m.sortDir,l=void 0!==e.sortFunc?e.sortFunc:m.sortFunc,a=void 0!==r.sortable?r.sortable:m.sortable,c=void 0!==r.width?r.width:m.colWidth;return t().createElement(i,{onSort:this.props.onSort,sortDir:y(r.columnKey,n,o,s),sortable:a,sortFunc:l,columnIndex:n,columnKey:r.columnKey,width:c,key:"heading_"+n},r.value)})),e.actions&&t().createElement(i,{key:"actions_heading"},e.actionsHeader||" "))),t().createElement("tbody",null,r.length>0&&this.props.data.map(((n,o)=>Array.isArray(n)&&n.length!==r.length?(console.warn(`Data at row ${o} is ${n.length}. It should be ${r.length}.`),t().createElement("tr",{key:"row_"+o})):t().createElement(d,{checked:n.checked,even:o%2==0,key:"row_"+n.id,id:n.id,actions:e.actions},((e,r,n)=>{var o=r.map(((r,n)=>r.hasOwnProperty("render")?t().createElement(c,{key:e.id+"_field"+n,name:r.columnKey,id:e.id},r.render(e,e[r.columnKey])):t().createElement(c,{key:e.id+"_field"+n,name:r.columnKey,id:e.id},e[r.columnKey])));return n&&o.push(t().createElement(p,{key:"actions_cell",id:e.id,actions:n})),o})(n,r,e.actions)))))),t().createElement(u(),{delayShow:10}))}}const f=b})(),n})()));
2
2
  //# sourceMappingURL=table-selectable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/table-selectable.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-tooltip\"","webpack://openstack-uicore-foundation/webpack/bootstrap","webpack://openstack-uicore-foundation/webpack/runtime/compat get default export","webpack://openstack-uicore-foundation/webpack/runtime/define property getters","webpack://openstack-uicore-foundation/webpack/runtime/hasOwnProperty shorthand","webpack://openstack-uicore-foundation/webpack/runtime/make namespace object","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTableHeading.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTableRow.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTable.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"openstack-uicore-foundation\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"openstack-uicore-foundation\"] = factory();\n\telse\n\t\troot[\"openstack-uicore-foundation\"] = factory();\n})(this, () => {\nreturn ","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\"}) =>\n <span className={className}\n dangerouslySetInnerHTML={{ __html: replaceNewLine ? children?.replace(/\\n/g, '<br />') : children}} />\n\nexport default RawHTML;","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"react-tooltip\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nclass SelectableTableHeading extends React.Component {\n\n\tconstructor (props) {\n\t\tsuper(props);\n\t\tthis.handleSort = this.handleSort.bind(this);\n\t}\n\n\tgetSortClass() {\n\n\t\tif (!this.props.sortable) return null;\n\n\t\tswitch(this.props.sortDir) {\n\t\t\tcase 1:\n\t\t\t\treturn 'sorting_asc';\n\t\t\tcase -1:\n\t\t\t\treturn 'sorting_desc';\n\t\t\tdefault:\n\t\t\t\treturn this.props.sortable ? 'sorting' : null\n\t\t}\n\t}\n\n\thandleSort(e) {\n\t\te.preventDefault();\n\t\tif(!this.props.hasOwnProperty('onSort') || !this.props.sortable) return;\n\n\t\tthis.props.onSort(\n\t\t\tthis.props.columnIndex,\n\t\t\tthis.props.columnKey,\n\t\t\tthis.props.sortDir ? this.props.sortDir*-1 : 1,\n\t\t\tthis.props.sortFunc\n\t\t);\n\t}\n\n\trender () {\n\t\treturn (\n\t\t\t<th onClick={this.handleSort}\n\t\t\t\tclassName={this.getSortClass()}\n\t\t\t\twidth={this.props.width}\n\t\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</th>\n\t\t);\t\n\t}\n\t\n}\n\nSelectableTableHeading.propTypes = {\n\tonSort: PropTypes.func,\n\tsortDir: PropTypes.number,\n\tcolumnIndex: PropTypes.number,\n\tcolumnKey: PropTypes.any,\n\tsortable: PropTypes.bool,\n\tsortFunc: PropTypes.func\n};\n\nexport default SelectableTableHeading;","import React from 'react';\nimport RawHTML from '../raw-html';\n\nconst SelectableTableCell = (props) => {\n let {children} = props;\n\tlet value = '';\n\tif(children) {\n\t if (React.isValidElement(children)) {\n\t value = children;\n } else {\n\t value = <RawHTML>{children.toString()}</RawHTML>\n }\n }\n\n\treturn (\n\t\t<td {...props}>\n {value}\n\t\t</td>\n\t);\n};\n\nexport default SelectableTableCell;\n","import React from 'react';\n\nexport default class SelectableTableRow extends React.Component {\n\n constructor(props) {\n super(props);\n this.handleEdit = this.handleEdit.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleEdit(id, ev) {\n // by pass\n if(ev.target.type === \"checkbox\")\n return;\n ev.stopPropagation();\n ev.preventDefault();\n this.props.actions.edit.onClick(id);\n }\n\n handleSelect(id, ev) {\n this.props.actions.edit.onSelected(id, ev.target.checked);\n }\n\n render() {\n\n let {even, actions, id, children, checked} = this.props;\n let canEdit = (actions.hasOwnProperty('edit') && this.shouldDisplayAction(actions.edit));\n let rowClass = even ? 'even' : 'odd';\n\n if (canEdit) {\n return (\n <tr role=\"row\" className={rowClass + \" can-edit\"} onClick={this.handleEdit.bind(this, id)}>\n <td key={id + '_select'}>\n <input\n type=\"checkbox\"\n id={id + '_select'}\n name={id + '_select'}\n checked={checked}\n onChange={this.handleSelect.bind(this, id)}\n />\n </td>\n {children}\n </tr>\n );\n }\n\n return (\n <tr role=\"row\" className={rowClass}>\n <td key={id + '_select'} >\n <input\n type=\"checkbox\"\n id={id + '_select'}\n name={id + '_select'}\n checked={checked}\n onChange={this.handleSelect.bind(this, id)}\n />\n </td>\n {children}\n </tr>\n );\n\n }\n};\n\n","import React from 'react';\n\nexport default class SelectableActionsTableCell extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleAction = this.handleAction.bind(this);\n this.shouldDisplayAction = this.shouldDisplayAction.bind(this);\n\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleAction(action, id, ev) {\n ev.stopPropagation();\n ev.preventDefault();\n\n action(id);\n }\n\n render() {\n let {actions, id} = this.props;\n return (\n <td className=\"actions\" key=\"actions\">\n {actions.hasOwnProperty('delete') && this.shouldDisplayAction(actions.delete) &&\n <a href=\"\" data-tip=\"delete\" onClick={this.handleAction.bind(this, actions.delete.onClick, id)} >\n <i className=\"fa fa-trash-o delete-icon\"></i>\n </a>\n }\n {actions.hasOwnProperty('custom') && actions.custom.map(a =>\n this.shouldDisplayAction(a) &&\n <a href=\"\" data-tip={a.tooltip} key={'custom_' + a.name} onClick={this.handleAction.bind(this, a.onClick, id)}>\n {a.icon}\n </a>\n )}\n </td>\n );\n }\n};\n","import React from 'react';\nimport SelectableTableHeading from './SelectableTableHeading';\nimport SelectableTableCell from './SelectableTableCell';\nimport SelectableTableRow from './SelectableTableRow';\nimport SelectableActionsTableCell from './SelectableActionsTableCell';\nimport ReactTooltip from 'react-tooltip'\nimport './selectable-table.css';\n\nconst defaults = {\n sortFunc: (a,b) => (a < b ? -1 : (a > b ? 1 : 0)),\n sortable: false,\n sortCol: 0,\n sortDir: 1,\n colWidth: ''\n}\n\nconst createRow = (row, columns, actions) => {\n\n var action_buttons = '';\n var cells = columns.map((col,i) => {\n if(col.hasOwnProperty(\"render\"))\n return (\n <SelectableTableCell key={row['id'] + '_field' + i} name={col.columnKey} id={row.id} >\n {col.render(row, row[col.columnKey])}\n </SelectableTableCell>\n );\n\n return (\n <SelectableTableCell key={row['id'] + '_field' + i} name={col.columnKey} id={row.id}>\n {row[col.columnKey]}\n </SelectableTableCell>\n );\n });\n\n if (actions) {\n cells.push(<SelectableActionsTableCell key='actions_cell' id={row['id']} actions={actions} />);\n }\n\n return cells;\n};\n\nconst getSortDir = (columnKey, columnIndex, sortCol, sortDir) => {\n if(columnKey && (columnKey === sortCol)) {\n return sortDir;\n }\n if(sortCol === columnIndex) {\n return sortDir;\n }\n return null\n};\n\n\nclass SelectableTable extends React.Component {\n\n constructor(props) {\n super(props);\n }\n\n render() {\n let {options, columns} = this.props;\n let tableClass = options.hasOwnProperty('className') ? options.className : '';\n tableClass += (options.actions.hasOwnProperty('edit')) ? ' table-hover' : '';\n\n return (\n <div>\n <table className={\"table table-striped dataTable \" + tableClass}>\n <thead>\n <tr>\n <th>\n <input type=\"checkbox\" id=\"select_all\"\n name=\"select_all\"\n onChange={options.actions.edit.onSelectedAll}\n checked={options.selectedAll}/>\n </th>\n {columns.map((col,i) => {\n\n let sortCol = (typeof options.sortCol != 'undefined') ? options.sortCol : defaults.sortCol;\n let sortDir = (typeof options.sortDir != 'undefined') ? options.sortDir : defaults.sortDir;\n let sortFunc = (typeof options.sortFunc != 'undefined') ? options.sortFunc : defaults.sortFunc;\n let sortable = (typeof col.sortable != 'undefined') ? col.sortable : defaults.sortable;\n let colWidth = (typeof col.width != 'undefined') ? col.width : defaults.colWidth;\n\n return (\n <SelectableTableHeading\n onSort={this.props.onSort}\n sortDir={getSortDir(col.columnKey, i, sortCol, sortDir)}\n sortable={sortable}\n sortFunc={sortFunc}\n columnIndex={i}\n columnKey={col.columnKey}\n width={colWidth}\n key={'heading_'+i}\n >\n {col.value}\n </SelectableTableHeading>\n );\n })}\n {options.actions &&\n <SelectableTableHeading key='actions_heading' >\n {options.actionsHeader || ' '}\n </SelectableTableHeading>\n }\n </tr>\n </thead>\n <tbody>\n {columns.length > 0 && this.props.data.map((row,i) => {\n if(Array.isArray(row) && row.length !== columns.length) {\n console.warn(`Data at row ${i} is ${row.length}. It should be ${columns.length}.`);\n return <tr key={'row_'+i} />\n }\n\n return (\n <SelectableTableRow checked={row.checked} even={i%2 === 0} key={'row_'+row['id']} id={row['id']} actions={options.actions}>\n {createRow(row, columns, options.actions)}\n </SelectableTableRow>\n );\n })}\n </tbody>\n </table>\n <ReactTooltip delayShow={10} />\n </div>\n );\n }\n}\n\n\nexport default SelectableTable;\n"],"names":["root","factory","exports","module","define","amd","this","children","replaceNewLine","className","dangerouslySetInnerHTML","__html","replace","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","SelectableTableHeading","React","constructor","props","super","handleSort","bind","getSortClass","sortable","sortDir","e","preventDefault","onSort","columnIndex","columnKey","sortFunc","render","onClick","width","propTypes","PropTypes","toString","SelectableTableRow","handleEdit","handleSelect","shouldDisplayAction","action","id","display","ev","target","type","stopPropagation","actions","edit","onSelected","checked","even","rowClass","role","name","onChange","SelectableActionsTableCell","handleAction","delete","href","custom","map","tooltip","icon","defaults","b","sortCol","colWidth","getSortDir","SelectableTable","options","columns","tableClass","onSelectedAll","selectedAll","col","i","actionsHeader","length","data","row","Array","isArray","console","warn","cells","push","createRow","delayShow"],"sourceRoot":""}
1
+ {"version":3,"file":"components/table-selectable.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/extends\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-tooltip\"","webpack://openstack-uicore-foundation/webpack/bootstrap","webpack://openstack-uicore-foundation/webpack/runtime/compat get default export","webpack://openstack-uicore-foundation/webpack/runtime/define property getters","webpack://openstack-uicore-foundation/webpack/runtime/hasOwnProperty shorthand","webpack://openstack-uicore-foundation/webpack/runtime/make namespace object","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTableHeading.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTableRow.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-selectable/SelectableTable.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"openstack-uicore-foundation\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"openstack-uicore-foundation\"] = factory();\n\telse\n\t\troot[\"openstack-uicore-foundation\"] = factory();\n})(this, () => {\nreturn ","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\", ...rest}) =>\n <span className={className}\n dangerouslySetInnerHTML={{ __html: replaceNewLine ? children?.replace(/\\n/g, '<br />') : children}} {...rest}/>\n\nexport default RawHTML;","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"react-tooltip\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import React from 'react';\nimport PropTypes from 'prop-types';\n\nclass SelectableTableHeading extends React.Component {\n\n\tconstructor (props) {\n\t\tsuper(props);\n\t\tthis.handleSort = this.handleSort.bind(this);\n\t}\n\n\tgetSortClass() {\n\n\t\tif (!this.props.sortable) return null;\n\n\t\tswitch(this.props.sortDir) {\n\t\t\tcase 1:\n\t\t\t\treturn 'sorting_asc';\n\t\t\tcase -1:\n\t\t\t\treturn 'sorting_desc';\n\t\t\tdefault:\n\t\t\t\treturn this.props.sortable ? 'sorting' : null\n\t\t}\n\t}\n\n\thandleSort(e) {\n\t\te.preventDefault();\n\t\tif(!this.props.hasOwnProperty('onSort') || !this.props.sortable) return;\n\n\t\tthis.props.onSort(\n\t\t\tthis.props.columnIndex,\n\t\t\tthis.props.columnKey,\n\t\t\tthis.props.sortDir ? this.props.sortDir*-1 : 1,\n\t\t\tthis.props.sortFunc\n\t\t);\n\t}\n\n\trender () {\n\t\treturn (\n\t\t\t<th onClick={this.handleSort}\n\t\t\t\tclassName={this.getSortClass()}\n\t\t\t\twidth={this.props.width}\n\t\t\t\t>\n\t\t\t\t{this.props.children}\n\t\t\t</th>\n\t\t);\t\n\t}\n\t\n}\n\nSelectableTableHeading.propTypes = {\n\tonSort: PropTypes.func,\n\tsortDir: PropTypes.number,\n\tcolumnIndex: PropTypes.number,\n\tcolumnKey: PropTypes.any,\n\tsortable: PropTypes.bool,\n\tsortFunc: PropTypes.func\n};\n\nexport default SelectableTableHeading;","import React from 'react';\nimport RawHTML from '../raw-html';\n\nconst SelectableTableCell = (props) => {\n let {children} = props;\n\tlet value = '';\n\tif(children) {\n\t if (React.isValidElement(children)) {\n\t value = children;\n } else {\n\t value = <RawHTML>{children.toString()}</RawHTML>\n }\n }\n\n\treturn (\n\t\t<td {...props}>\n {value}\n\t\t</td>\n\t);\n};\n\nexport default SelectableTableCell;\n","import React from 'react';\n\nexport default class SelectableTableRow extends React.Component {\n\n constructor(props) {\n super(props);\n this.handleEdit = this.handleEdit.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleEdit(id, ev) {\n // by pass\n if(ev.target.type === \"checkbox\")\n return;\n ev.stopPropagation();\n ev.preventDefault();\n this.props.actions.edit.onClick(id);\n }\n\n handleSelect(id, ev) {\n this.props.actions.edit.onSelected(id, ev.target.checked);\n }\n\n render() {\n\n let {even, actions, id, children, checked} = this.props;\n let canEdit = (actions.hasOwnProperty('edit') && this.shouldDisplayAction(actions.edit));\n let rowClass = even ? 'even' : 'odd';\n\n if (canEdit) {\n return (\n <tr role=\"row\" className={rowClass + \" can-edit\"} onClick={this.handleEdit.bind(this, id)}>\n <td key={id + '_select'}>\n <input\n type=\"checkbox\"\n id={id + '_select'}\n name={id + '_select'}\n checked={checked}\n onChange={this.handleSelect.bind(this, id)}\n />\n </td>\n {children}\n </tr>\n );\n }\n\n return (\n <tr role=\"row\" className={rowClass}>\n <td key={id + '_select'} >\n <input\n type=\"checkbox\"\n id={id + '_select'}\n name={id + '_select'}\n checked={checked}\n onChange={this.handleSelect.bind(this, id)}\n />\n </td>\n {children}\n </tr>\n );\n\n }\n};\n\n","import React from 'react';\n\nexport default class SelectableActionsTableCell extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleAction = this.handleAction.bind(this);\n this.shouldDisplayAction = this.shouldDisplayAction.bind(this);\n\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleAction(action, id, ev) {\n ev.stopPropagation();\n ev.preventDefault();\n\n action(id);\n }\n\n render() {\n let {actions, id} = this.props;\n return (\n <td className=\"actions\" key=\"actions\">\n {actions.hasOwnProperty('delete') && this.shouldDisplayAction(actions.delete) &&\n <a href=\"\" data-tip=\"delete\" onClick={this.handleAction.bind(this, actions.delete.onClick, id)} >\n <i className=\"fa fa-trash-o delete-icon\"></i>\n </a>\n }\n {actions.hasOwnProperty('custom') && actions.custom.map(a =>\n this.shouldDisplayAction(a) &&\n <a href=\"\" data-tip={a.tooltip} key={'custom_' + a.name} onClick={this.handleAction.bind(this, a.onClick, id)}>\n {a.icon}\n </a>\n )}\n </td>\n );\n }\n};\n","import React from 'react';\nimport SelectableTableHeading from './SelectableTableHeading';\nimport SelectableTableCell from './SelectableTableCell';\nimport SelectableTableRow from './SelectableTableRow';\nimport SelectableActionsTableCell from './SelectableActionsTableCell';\nimport ReactTooltip from 'react-tooltip'\nimport './selectable-table.css';\n\nconst defaults = {\n sortFunc: (a,b) => (a < b ? -1 : (a > b ? 1 : 0)),\n sortable: false,\n sortCol: 0,\n sortDir: 1,\n colWidth: ''\n}\n\nconst createRow = (row, columns, actions) => {\n\n var action_buttons = '';\n var cells = columns.map((col,i) => {\n if(col.hasOwnProperty(\"render\"))\n return (\n <SelectableTableCell key={row['id'] + '_field' + i} name={col.columnKey} id={row.id} >\n {col.render(row, row[col.columnKey])}\n </SelectableTableCell>\n );\n\n return (\n <SelectableTableCell key={row['id'] + '_field' + i} name={col.columnKey} id={row.id}>\n {row[col.columnKey]}\n </SelectableTableCell>\n );\n });\n\n if (actions) {\n cells.push(<SelectableActionsTableCell key='actions_cell' id={row['id']} actions={actions} />);\n }\n\n return cells;\n};\n\nconst getSortDir = (columnKey, columnIndex, sortCol, sortDir) => {\n if(columnKey && (columnKey === sortCol)) {\n return sortDir;\n }\n if(sortCol === columnIndex) {\n return sortDir;\n }\n return null\n};\n\n\nclass SelectableTable extends React.Component {\n\n constructor(props) {\n super(props);\n }\n\n render() {\n let {options, columns} = this.props;\n let tableClass = options.hasOwnProperty('className') ? options.className : '';\n tableClass += (options.actions.hasOwnProperty('edit')) ? ' table-hover' : '';\n\n return (\n <div>\n <table className={\"table table-striped dataTable \" + tableClass}>\n <thead>\n <tr>\n <th>\n <input type=\"checkbox\" id=\"select_all\"\n name=\"select_all\"\n onChange={options.actions.edit.onSelectedAll}\n checked={options.selectedAll}/>\n </th>\n {columns.map((col,i) => {\n\n let sortCol = (typeof options.sortCol != 'undefined') ? options.sortCol : defaults.sortCol;\n let sortDir = (typeof options.sortDir != 'undefined') ? options.sortDir : defaults.sortDir;\n let sortFunc = (typeof options.sortFunc != 'undefined') ? options.sortFunc : defaults.sortFunc;\n let sortable = (typeof col.sortable != 'undefined') ? col.sortable : defaults.sortable;\n let colWidth = (typeof col.width != 'undefined') ? col.width : defaults.colWidth;\n\n return (\n <SelectableTableHeading\n onSort={this.props.onSort}\n sortDir={getSortDir(col.columnKey, i, sortCol, sortDir)}\n sortable={sortable}\n sortFunc={sortFunc}\n columnIndex={i}\n columnKey={col.columnKey}\n width={colWidth}\n key={'heading_'+i}\n >\n {col.value}\n </SelectableTableHeading>\n );\n })}\n {options.actions &&\n <SelectableTableHeading key='actions_heading' >\n {options.actionsHeader || ' '}\n </SelectableTableHeading>\n }\n </tr>\n </thead>\n <tbody>\n {columns.length > 0 && this.props.data.map((row,i) => {\n if(Array.isArray(row) && row.length !== columns.length) {\n console.warn(`Data at row ${i} is ${row.length}. It should be ${columns.length}.`);\n return <tr key={'row_'+i} />\n }\n\n return (\n <SelectableTableRow checked={row.checked} even={i%2 === 0} key={'row_'+row['id']} id={row['id']} actions={options.actions}>\n {createRow(row, columns, options.actions)}\n </SelectableTableRow>\n );\n })}\n </tbody>\n </table>\n <ReactTooltip delayShow={10} />\n </div>\n );\n }\n}\n\n\nexport default SelectableTable;\n"],"names":["root","factory","exports","module","define","amd","this","children","replaceNewLine","className","rest","dangerouslySetInnerHTML","__html","replace","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","SelectableTableHeading","React","constructor","props","super","handleSort","bind","getSortClass","sortable","sortDir","e","preventDefault","onSort","columnIndex","columnKey","sortFunc","render","onClick","width","propTypes","PropTypes","toString","SelectableTableRow","handleEdit","handleSelect","shouldDisplayAction","action","id","display","ev","target","type","stopPropagation","actions","edit","onSelected","checked","even","rowClass","role","name","onChange","SelectableActionsTableCell","handleAction","delete","href","custom","map","tooltip","icon","defaults","b","sortCol","colWidth","getSortDir","SelectableTable","options","columns","tableClass","onSelectedAll","selectedAll","col","i","actionsHeader","length","data","row","Array","isArray","console","warn","cells","push","createRow","delayShow"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={418:(e,t,r)=>{r.d(t,{default:()=>l});var n=r(6689),o=r.n(n);const l=({children:e,replaceNewLine:t=!1,className:r=""})=>o().createElement("span",{className:r,dangerouslySetInnerHTML:{__html:t?null==e?void 0:e.replace(/\n/g,"<br />"):e}})},4391:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(6689),o=r.n(n),l=r(418);const i=e=>{let{children:t}=e,r="";return t&&(r=o().isValidElement(t)?t:o().createElement(l.default,null,t.toString())),o().createElement("td",e,r)}},8779:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},6517:e=>{e.exports=require("lodash")},580:e=>{e.exports=require("prop-types")},6689:e=>{e.exports=require("react")},7964:e=>{e.exports=require("react-dnd")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var l=t[n]={exports:{}};return e[n](l,l.exports,r),l.exports}(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var n={};return(()=>{r.r(n),r.d(n,{default:()=>C});var e=r(8779),t=r.n(e),o=r(6689),l=r.n(o),i=r(580),a=r.n(i);const c=require("immutability-helper");var s=r.n(c),d=r(7964);const u=require("react-dnd-html5-backend");class p extends l().Component{constructor(e){super(e)}render(){return l().createElement("th",{width:this.props.width},this.props.children)}}const m=p;class y extends l().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleAction(e,t,r){r.stopPropagation(),r.preventDefault(),e(t)}render(){let{actions:e,id:t}=this.props;return l().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("edit")&&this.shouldDisplayAction(e.edit)&&l().createElement("a",{href:"","data-tip":"edit",onClick:this.handleAction.bind(this,e.edit.onClick,t)},l().createElement("i",{className:"fa fa-pencil-square-o"})),e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&l().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,t)},l().createElement("i",{className:"fa fa-trash-o delete-icon"})),"custom"in e&&e.custom.map((e=>this.shouldDisplayAction(e,t)&&l().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,t)},e.icon))))}}function h(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function f(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?h(Object(n),!0).forEach((function(r){t()(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const b=({text:e,even:t,id:r,index:n,moveCard:i,dropItem:a,children:c,findRow:s})=>{const u=s(r).index,p=(0,o.useRef)(null),[{handlerId:m},y]=(0,d.useDrop)({accept:"row",collect:e=>({handlerId:e.getHandlerId()}),hover(e,t){var r;if(!p.current)return;const o=e.index,l=n;if(o===l)return;const a=null===(r=p.current)||void 0===r?void 0:r.getBoundingClientRect(),c=(a.bottom-a.top)/2,s=t.getClientOffset().y-a.top;o<l&&s<c||o>l&&s>c||(i(o,l),e.index=l)}}),[{isDragging:h},b]=(0,d.useDrag)({type:"row",item:()=>({id:r,index:n}),end:(e,t)=>{const{id:r,index:n}=e;return t.didDrop()?a(r,n+1):i(n,u)},collect:e=>({isDragging:e.isDragging()})}),v=h?0:1;return b(y(p)),l().createElement("tr",{id:r,ref:p,role:"row",className:t?"even":"odd",style:f(f({},{border:"1px dashed gray",padding:"0.5rem 1rem",marginBottom:".5rem",backgroundColor:"white",cursor:"move"}),{},{opacity:v})},c)};b.propTypes={index:a().number.isRequired,id:a().any.isRequired,moveCard:a().func.isRequired};const v=b;var g=r(4656),O=r.n(g),w=r(4391),k=r(6517),E=r.n(k);function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}const P="",j=({data:e,options:r,columns:n,dropCallback:i,orderField:a,idField:c})=>{var p,h,f,b;const[g,k]=(0,o.useState)(e),[j,C]=(0,o.useState)({});(0,o.useEffect)((()=>{k(e)}),[e]);const D=(e,t,r,n)=>l().createElement(v,{even:n%2==0,key:e.id,index:n,id:e.id,moveCard:N,findRow:_,dropItem:A},((e,t,r)=>{let n=t.map(((t,r)=>t.hasOwnProperty("render")?l().createElement(w.Z,{key:"cell_"+r,title:t.hasOwnProperty("title")?e[t.columnKey]:null},t.render(e,e[t.columnKey])):l().createElement(w.Z,{key:"cell_"+r,title:t.hasOwnProperty("title")?e[t.columnKey]:null},e[t.columnKey])));return r&&n.push(l().createElement(y,{key:"actions",id:e.id,actions:r})),n})(e,t,r.actions)),q=e=>(e.sort((function(e,t){const r=e[a],n=t[a];return r<n?-1:r>n?1:0})),e),_=(0,o.useCallback)((e=>{const t=g.filter((t=>t[c]===e))[0];return{row:t,index:g.indexOf(t)}}),[g]),N=(0,o.useCallback)(((e,t)=>{k((r=>{r=s()(r,{$splice:[[e,1],[t,0,r[e]]]});for(let e in r)r[e][a]=parseInt(e)+1;return q(r)}))}),[g,k]),A=(e,t)=>{const r=q(g);k(r),i(r,e,t)};let R=r.hasOwnProperty("className")?r.className:"",S=(null==r||null===(p=r.actions)||void 0===p||null===(h=p.save)||void 0===h?void 0:h.onClick)&&null!==(null==r||null===(f=r.actions)||void 0===f||null===(b=f.save)||void 0===b?void 0:b.onClick);return l().createElement("div",{className:"sortable-table-box"},l().createElement("i",null,O().translate("general.drag_and_drop")),l().createElement("table",{className:"table table-striped table-hover sortableTable "+R},l().createElement("thead",null,l().createElement("tr",null,n.map(((e,t)=>{let r=e.width?e.width:P;return l().createElement(m,{width:r,key:t},e.value)})),r.actions&&!E().isEmpty(r.actions)&&l().createElement(m,{key:"actions"},"Actions"))),l().createElement("tbody",null,n.length>0&&g.map(((e,t)=>Array.isArray(e)&&e.length!==n.length?(console.warn(`Data at row ${t} is ${e.length}. It should be ${n.length}.`),l().createElement("tr",null)):l().createElement(d.DndProvider,{backend:u.HTML5Backend,key:t},D(e,n,r,t))))),S&&l().createElement("tfoot",null,l().createElement("tr",null,((e,t,r,n)=>{let o=e.map(((e,r)=>{let o=void 0!==t[e.columnKey]?t[e.columnKey]:"";return"checkbox"===(null==e?void 0:e.input)?l().createElement("td",{key:"new_row_"+r,className:"checkbox-cell"},l().createElement("input",{type:"checkbox",id:"new_"+e.columnKey,name:e.columnKey,onChange:n,checked:o,title:null==e?void 0:e.value})):l().createElement("td",{key:"new_row_"+r},l().createElement("input",{className:"form-control",id:"new_"+e.columnKey,name:e.columnKey,placeholder:null==e?void 0:e.value,onChange:n,value:o}))}));return o.push(l().createElement("td",{key:"add_new"},l().createElement("button",{className:"btn btn-default",onClick:r}," Add"))),o})(n,j,(e=>{var t,n;e.preventDefault(),null==r||null===(t=r.actions)||void 0===t||null===(n=t.save)||void 0===n||n.onClick(j),C({})}),(e=>{let r=e.target,n=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?x(Object(n),!0).forEach((function(r){t()(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},j),{name:o,value:l}=r;"checkbox"===r.type&&(l=r.checked),n[o]=l,C(n)}))))))};j.defaultProps={idField:"id"},j.propTypes={data:a().array.isRequired,options:a().shape({className:a().string,actions:a().object}).isRequired,columns:a().arrayOf(a().shape({columnKey:a().string.isRequired,value:a().any.isRequired,input:a().string,render:a().func})).isRequired,dropCallback:a().func.isRequired,orderField:a().string.isRequired,idField:a().string};const C=j})(),n})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={418:(e,t,r)=>{r.d(t,{default:()=>d});var n=r(8213),o=r.n(n),l=r(3838),i=r.n(l),a=r(6689),c=r.n(a);const s=["children","replaceNewLine","className"],d=e=>{let{children:t,replaceNewLine:r=!1,className:n=""}=e,l=i()(e,s);return c().createElement("span",o()({className:n,dangerouslySetInnerHTML:{__html:r?null==t?void 0:t.replace(/\n/g,"<br />"):t}},l))}},4391:(e,t,r)=>{r.d(t,{Z:()=>i});var n=r(6689),o=r.n(n),l=r(418);const i=e=>{let{children:t}=e,r="";return t&&(r=o().isValidElement(t)?t:o().createElement(l.default,null,t.toString())),o().createElement("td",e,r)}},8779:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},8213:e=>{e.exports=require("@babel/runtime/helpers/extends")},3838:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},6517:e=>{e.exports=require("lodash")},580:e=>{e.exports=require("prop-types")},6689:e=>{e.exports=require("react")},7964:e=>{e.exports=require("react-dnd")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var l=t[n]={exports:{}};return e[n](l,l.exports,r),l.exports}(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var n={};return(()=>{r.r(n),r.d(n,{default:()=>C});var e=r(8779),t=r.n(e),o=r(6689),l=r.n(o),i=r(580),a=r.n(i);const c=require("immutability-helper");var s=r.n(c),d=r(7964);const u=require("react-dnd-html5-backend");class p extends l().Component{constructor(e){super(e)}render(){return l().createElement("th",{width:this.props.width},this.props.children)}}const m=p;class h extends l().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleAction(e,t,r){r.stopPropagation(),r.preventDefault(),e(t)}render(){let{actions:e,id:t}=this.props;return l().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("edit")&&this.shouldDisplayAction(e.edit)&&l().createElement("a",{href:"","data-tip":"edit",onClick:this.handleAction.bind(this,e.edit.onClick,t)},l().createElement("i",{className:"fa fa-pencil-square-o"})),e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&l().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,t)},l().createElement("i",{className:"fa fa-trash-o delete-icon"})),"custom"in e&&e.custom.map((e=>this.shouldDisplayAction(e,t)&&l().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,t)},e.icon))))}}function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function b(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?y(Object(n),!0).forEach((function(r){t()(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const f=({text:e,even:t,id:r,index:n,moveCard:i,dropItem:a,children:c,findRow:s})=>{const u=s(r).index,p=(0,o.useRef)(null),[{handlerId:m},h]=(0,d.useDrop)({accept:"row",collect:e=>({handlerId:e.getHandlerId()}),hover(e,t){var r;if(!p.current)return;const o=e.index,l=n;if(o===l)return;const a=null===(r=p.current)||void 0===r?void 0:r.getBoundingClientRect(),c=(a.bottom-a.top)/2,s=t.getClientOffset().y-a.top;o<l&&s<c||o>l&&s>c||(i(o,l),e.index=l)}}),[{isDragging:y},f]=(0,d.useDrag)({type:"row",item:()=>({id:r,index:n}),end:(e,t)=>{const{id:r,index:n}=e;return t.didDrop()?a(r,n+1):i(n,u)},collect:e=>({isDragging:e.isDragging()})}),v=y?0:1;return f(h(p)),l().createElement("tr",{id:r,ref:p,role:"row",className:t?"even":"odd",style:b(b({},{border:"1px dashed gray",padding:"0.5rem 1rem",marginBottom:".5rem",backgroundColor:"white",cursor:"move"}),{},{opacity:v})},c)};f.propTypes={index:a().number.isRequired,id:a().any.isRequired,moveCard:a().func.isRequired};const v=f;var g=r(4656),O=r.n(g),w=r(4391),k=r(6517),E=r.n(k);function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}const P="",j=({data:e,options:r,columns:n,dropCallback:i,orderField:a,idField:c})=>{var p,y,b,f;const[g,k]=(0,o.useState)(e),[j,C]=(0,o.useState)({});(0,o.useEffect)((()=>{k(e)}),[e]);const D=(e,t,r,n)=>l().createElement(v,{even:n%2==0,key:e.id,index:n,id:e.id,moveCard:N,findRow:_,dropItem:A},((e,t,r)=>{let n=t.map(((t,r)=>t.hasOwnProperty("render")?l().createElement(w.Z,{key:"cell_"+r,title:t.hasOwnProperty("title")?e[t.columnKey]:null},t.render(e,e[t.columnKey])):l().createElement(w.Z,{key:"cell_"+r,title:t.hasOwnProperty("title")?e[t.columnKey]:null},e[t.columnKey])));return r&&n.push(l().createElement(h,{key:"actions",id:e.id,actions:r})),n})(e,t,r.actions)),q=e=>(e.sort((function(e,t){const r=e[a],n=t[a];return r<n?-1:r>n?1:0})),e),_=(0,o.useCallback)((e=>{const t=g.filter((t=>t[c]===e))[0];return{row:t,index:g.indexOf(t)}}),[g]),N=(0,o.useCallback)(((e,t)=>{k((r=>{r=s()(r,{$splice:[[e,1],[t,0,r[e]]]});for(let e in r)r[e][a]=parseInt(e)+1;return q(r)}))}),[g,k]),A=(e,t)=>{const r=q(g);k(r),i(r,e,t)};let R=r.hasOwnProperty("className")?r.className:"",S=(null==r||null===(p=r.actions)||void 0===p||null===(y=p.save)||void 0===y?void 0:y.onClick)&&null!==(null==r||null===(b=r.actions)||void 0===b||null===(f=b.save)||void 0===f?void 0:f.onClick);return l().createElement("div",{className:"sortable-table-box"},l().createElement("i",null,O().translate("general.drag_and_drop")),l().createElement("table",{className:"table table-striped table-hover sortableTable "+R},l().createElement("thead",null,l().createElement("tr",null,n.map(((e,t)=>{let r=e.width?e.width:P;return l().createElement(m,{width:r,key:t},e.value)})),r.actions&&!E().isEmpty(r.actions)&&l().createElement(m,{key:"actions"},"Actions"))),l().createElement("tbody",null,n.length>0&&g.map(((e,t)=>Array.isArray(e)&&e.length!==n.length?(console.warn(`Data at row ${t} is ${e.length}. It should be ${n.length}.`),l().createElement("tr",null)):l().createElement(d.DndProvider,{backend:u.HTML5Backend,key:t},D(e,n,r,t))))),S&&l().createElement("tfoot",null,l().createElement("tr",null,((e,t,r,n)=>{let o=e.map(((e,r)=>{let o=void 0!==t[e.columnKey]?t[e.columnKey]:"";return"checkbox"===(null==e?void 0:e.input)?l().createElement("td",{key:"new_row_"+r,className:"checkbox-cell"},l().createElement("input",{type:"checkbox",id:"new_"+e.columnKey,name:e.columnKey,onChange:n,checked:o,title:null==e?void 0:e.value})):l().createElement("td",{key:"new_row_"+r},l().createElement("input",{className:"form-control",id:"new_"+e.columnKey,name:e.columnKey,placeholder:null==e?void 0:e.value,onChange:n,value:o}))}));return o.push(l().createElement("td",{key:"add_new"},l().createElement("button",{className:"btn btn-default",onClick:r}," Add"))),o})(n,j,(e=>{var t,n;e.preventDefault(),null==r||null===(t=r.actions)||void 0===t||null===(n=t.save)||void 0===n||n.onClick(j),C({})}),(e=>{let r=e.target,n=function(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?x(Object(n),!0).forEach((function(r){t()(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},j),{name:o,value:l}=r;"checkbox"===r.type&&(l=r.checked),n[o]=l,C(n)}))))))};j.defaultProps={idField:"id"},j.propTypes={data:a().array.isRequired,options:a().shape({className:a().string,actions:a().object}).isRequired,columns:a().arrayOf(a().shape({columnKey:a().string.isRequired,value:a().any.isRequired,input:a().string,render:a().func})).isRequired,dropCallback:a().func.isRequired,orderField:a().string.isRequired,idField:a().string};const C=j})(),n})()));
2
2
  //# sourceMappingURL=table-sortable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components/table-sortable.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,8BAA+B,GAAIH,GAChB,iBAAZC,QACdA,QAAQ,+BAAiCD,IAEzCD,EAAK,+BAAiCC,GACvC,CATD,CASGK,MAAM,I,sFCPT,MAIA,EAJgB,EAAEC,WAAUC,kBAAiB,EAAOC,YAAY,MAC5D,0BAAMA,UAAWA,EACXC,wBAAyB,CAAEC,OAAQH,EAAiBD,aAAH,EAAGA,EAAUK,QAAQ,MAAO,UAAYL,I,kECDnG,MAkBA,EAlBmBM,IACf,IAAI,SAACN,GAAYM,EAChBC,EAAQ,GASZ,OARGP,IAEKO,EADAC,IAAAA,eAAqBR,GACbA,EAEA,kBAAC,UAAD,KAAUA,EAASS,aAKlC,uBAAQH,EACGC,EAFZ,C,WCdDX,EAAOD,QAAUe,QAAQ,wC,WCAzBd,EAAOD,QAAUe,QAAQ,6B,WCAzBd,EAAOD,QAAUe,QAAQ,S,UCAzBd,EAAOD,QAAUe,QAAQ,a,WCAzBd,EAAOD,QAAUe,QAAQ,Q,WCAzBd,EAAOD,QAAUe,QAAQ,Y,GCCrBC,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAanB,QAGrB,IAAIC,EAASe,EAAyBE,GAAY,CAGjDlB,QAAS,CAAC,GAOX,OAHAqB,EAAoBH,GAAUjB,EAAQA,EAAOD,QAASiB,GAG/ChB,EAAOD,OACf,C,MCrBAiB,EAAoBK,EAAKrB,IACxB,IAAIsB,EAAStB,GAAUA,EAAOuB,WAC7B,IAAOvB,EAAiB,QACxB,IAAM,EAEP,OADAgB,EAAoBQ,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,C,WCLdN,EAAoBQ,EAAI,CAACzB,EAAS2B,KACjC,IAAI,IAAIC,KAAOD,EACXV,EAAoBY,EAAEF,EAAYC,KAASX,EAAoBY,EAAE7B,EAAS4B,IAC5EE,OAAOC,eAAe/B,EAAS4B,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,IAE1E,C,WCNDX,EAAoBY,EAAI,CAACK,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,E,WCClFlB,EAAoBsB,EAAKvC,IACH,oBAAXwC,QAA0BA,OAAOC,aAC1CX,OAAOC,eAAe/B,EAASwC,OAAOC,YAAa,CAAE7B,MAAO,WAE7DkB,OAAOC,eAAe/B,EAAS,aAAc,CAAEY,OAAO,GAAO,C,oHCL9D,MAAM,EAA+BG,QAAQ,uB,uBCA7C,MAAM,EAA+BA,QAAQ,2BCE7C,MAAM2B,UAA6B7B,IAAAA,UAElC8B,YAAahC,GACZiC,MAAMjC,EACN,CAEDkC,SACC,OACC,wBAAIC,MAAO1C,KAAKO,MAAMmC,OACpB1C,KAAKO,MAAMN,SAGd,EAIF,UChBe,MAAM0C,UAAiClC,IAAAA,UAElD8B,YAAYhC,GACRiC,MAAMjC,GAENP,KAAK4C,aAAe5C,KAAK4C,aAAaC,KAAK7C,KAE9C,CAED8C,oBAAoBC,GAChB,IAAI,GAACC,GAAMhD,KAAKO,MAEhB,OAAKwC,EAAOd,eAAe,YAGhBc,EAAOE,QAAQD,EAE7B,CAEDJ,aAAaG,EAAQC,EAAIE,GACrBA,EAAGC,kBACHD,EAAGE,iBAEHL,EAAOC,EACV,CAEDP,SACI,IAAI,QAACY,EAAD,GAAUL,GAAMhD,KAAKO,MACzB,OACI,wBAAIJ,UAAU,UAAUqB,IAAI,WACvB6B,EAAQpB,eAAe,SAAWjC,KAAK8C,oBAAoBO,EAAQC,OACpE,uBAAGC,KAAK,GAAG,WAAS,OAAOC,QAASxD,KAAK4C,aAAaC,KAAK7C,KAAMqD,EAAQC,KAAKE,QAASR,IACnF,uBAAG7C,UAAU,2BAGhBkD,EAAQpB,eAAe,WAAajC,KAAK8C,oBAAoBO,EAAQI,SACtE,uBAAGF,KAAK,GAAG,WAAS,SAASC,QAASxD,KAAK4C,aAAaC,KAAK7C,KAAMqD,EAAQI,OAAOD,QAASR,IACvF,uBAAG7C,UAAU,+BAGhB,WAAYkD,GAAWA,EAAQK,OAAOC,KAAIrC,GACvCtB,KAAK8C,oBAAoBxB,EAAG0B,IAC5B,uBAAGO,KAAK,GAAG,WAAUjC,EAAEsC,QAASpC,IAAK,UAAYF,EAAEuC,KAAML,QAASxD,KAAK4C,aAAaC,KAAK7C,KAAMsB,EAAEkC,QAASR,IACrG1B,EAAEwC,QAKtB,E,ikBC9CL,MAAMC,EAAmB,EAAGC,OAAMC,OAAMjB,KAAIkB,QAAOC,WAAUC,WAAUnE,WAAUoE,cAC7E,MAAMC,EAAgBD,EAAQrB,GAAIkB,MAU5BK,GAASC,EAAAA,EAAAA,QAAO,QACf,UAAEC,GAAaC,IAAQC,EAAAA,EAAAA,SAAQ,CAClCC,OAAQ,MACRC,QAAQC,IACG,CACHL,UAAWK,EAAQC,iBAG3BC,MAAMC,EAAMH,GAAS,MACjB,IAAKP,EAAOW,QACR,OAEJ,MAAMC,EAAYF,EAAKf,MACjBkB,EAAalB,EAEnB,GAAIiB,IAAcC,EACd,OAGJ,MAAMC,EAAiB,UAAGd,EAAOW,eAAV,aAAG,EAAgBI,wBAEpCC,GAAgBF,EAAkBG,OAASH,EAAkBI,KAAO,EAIpEC,EAFeZ,EAAQa,kBAEKC,EAAIP,EAAkBI,IAKpDN,EAAYC,GAAcM,EAAeH,GAIzCJ,EAAYC,GAAcM,EAAeH,IAI7CpB,EAASgB,EAAWC,GAKpBH,EAAKf,MAAQkB,EAChB,MAEE,WAAES,GAAcC,IAAQC,EAAAA,EAAAA,SAAQ,CACnCC,KAAM,MACNf,KAAM,KACK,CAAEjC,KAAIkB,UAEjB+B,IAAI,CAACC,EAAOpB,KACR,MAAQ9B,GAAImD,EAAN,MAAiBjC,GAAUgC,EAEjC,OADgBpB,EAAQsB,UAEbhC,EAAS+B,EAAWjC,EAAQ,GAEhCC,EAASD,EAAOI,EAAvB,EAEJO,QAAUC,IAAD,CACLe,WAAYf,EAAQe,iBAItBQ,EAAUR,EAAa,EAAI,EAIjC,OAFAC,EAAKpB,EAAKH,IAGN,wBAAIvB,GAAIA,EAAIsD,IAAK/B,EAAQgC,KAAK,MAAMpG,UAAW8D,EAAO,OAAS,MAAOuC,MAAK,OA7EjE,CACVC,OAAQ,kBACRC,QAAS,cACTC,aAAc,QACdC,gBAAiB,QACjBC,OAAQ,SAwEmE,IAAcR,aACpFpG,EAFT,EAOJ8D,EAAiB+C,UAAY,CACzB5C,MAAO6C,IAAAA,OAAAA,WACP/D,GAAI+D,IAAAA,IAAAA,WACJ5C,SAAU4C,IAAAA,KAAAA,YAGd,U,kRCnFA,MAAMC,EACQ,GAmERC,EAAgB,EAAEC,OAAMC,UAASC,UAASC,eAAcC,aAAYC,cAAa,YAEnF,MAAOC,EAAMC,IAAWC,EAAAA,EAAAA,UAASR,IAC1BS,EAAQC,IAAaF,EAAAA,EAAAA,UAAS,CAAC,IAEtCG,EAAAA,EAAAA,YAAU,KACNJ,EAAQP,EAAR,GACD,CAACA,IAGJ,MAAMY,EAAY,CAACC,EAAKX,EAASD,EAASjD,IAElC,kBAAC,EAAD,CAAkBD,KAAMC,EAAQ,GAAM,EAAG1C,IAAKuG,EAAI/E,GAAIkB,MAAOA,EAAOlB,GAAI+E,EAAI/E,GAC1DmB,SAAU6D,EACV3D,QAASA,EACTD,SAAU6D,GA/EtB,EAACF,EAAKX,EAAS/D,KAE7B,IAAI6E,EAAQd,EAAQzD,KAAI,CAACwE,EAAKC,IACtBD,EAAIlG,eAAe,UAEf,kBAACoG,EAAA,EAAD,CAAW7G,IAAK,QAAU4G,EAAGE,MAAOH,EAAIlG,eAAe,SAAW8F,EAAII,EAAII,WAAa,MAClFJ,EAAI1F,OAAOsF,EAAKA,EAAII,EAAII,aAKjC,kBAACF,EAAA,EAAD,CAAW7G,IAAK,QAAU4G,EAAGE,MAAOH,EAAIlG,eAAe,SAAW8F,EAAII,EAAII,WAAa,MAClFR,EAAII,EAAII,cASrB,OAJIlF,GACA6E,EAAMM,KAAK,kBAAC7F,EAAD,CAA0BnB,IAAI,UAAUwB,GAAI+E,EAAG,GAAQ1E,QAASA,KAGxE6E,CAAP,EA2DaO,CAAUV,EAAKX,EAASD,EAAQ9D,UAWvCqF,EAAYC,IACdA,EAAUC,MAAK,SAAUtH,EAAGuH,GACxB,MAAMC,EAAIxH,EAAEgG,GACN1B,EAAIiD,EAAEvB,GACZ,OAASwB,EAAIlD,GAAM,EAAMkD,EAAIlD,EAAK,EAAI,CACzC,IACM+C,GAGLtE,GAAU0E,EAAAA,EAAAA,cACX/F,IACG,MAAM+E,EAAMP,EAAKwB,QAAQ7G,GAAMA,EAAEoF,KAAavE,IAAI,GAClD,MAAO,CACH+E,MACA7D,MAAOsD,EAAKyB,QAAQlB,GAFxB,GAKJ,CAACP,IAGCQ,GAAUe,EAAAA,EAAAA,cACZ,CAAC5D,EAAWC,KAERqC,GAASyB,IAELA,EAAWC,IAAOD,EAAU,CACxBE,QAAS,CACL,CAACjE,EAAW,GACZ,CAACC,EAAY,EAAG8D,EAAS/D,OAIjC,IAAK,IAAIiD,KAAKc,EACVA,EAASd,GAAGd,GAAc+B,SAASjB,GAAK,EAG5C,OAAOM,EAASQ,EAAhB,GAbJ,GAgBJ,CAAC1B,EAAMC,IAGLQ,EAAa,CAACjF,EAAIsG,KACpB,MAAMC,EAAab,EAASlB,GAC5BC,EAAQ8B,GACRlC,EAAakC,EAAYvG,EAAIsG,EAA7B,EAeJ,IAAIE,EAAarC,EAAQlF,eAAe,aAAekF,EAAQhH,UAAY,GACvEsJ,GAAqBtC,SAAA,UAAAA,EAAS9D,eAAT,mBAAkBqG,YAAlB,eAAwBlG,UAA+C,QAApC2D,SAAA,UAAAA,EAAS9D,eAAT,mBAAkBqG,YAAlB,eAAwBlG,SAEpF,OACI,yBAAKrD,UAAU,sBACX,2BAAIwJ,IAAAA,UAAY,0BAChB,2BAAOxJ,UAAW,iDAAmDqJ,GACjE,+BACA,4BACKpC,EAAQzD,KAAI,CAACwE,EAAKC,KACf,IAAIwB,EAAYzB,EAAIzF,MAASyF,EAAIzF,MAAQsE,EACzC,OACI,kBAAC,EAAD,CAAsBtE,MAAOkH,EAAUpI,IAAK4G,GACvCD,EAAI3H,MAFb,IAMH2G,EAAQ9D,UAAYwG,IAAAA,QAAU1C,EAAQ9D,UACnC,kBAAC,EAAD,CAAsB7B,IAAI,WAA1B,aAMR,+BACC4F,EAAQ0C,OAAS,GAAKtC,EAAK7D,KAAI,CAACoE,EAAKK,IAC9B2B,MAAMC,QAAQjC,IAAQA,EAAI+B,SAAW1C,EAAQ0C,QAC7CG,QAAQC,KAAM,eAAc9B,QAAQL,EAAI+B,wBAAwB1C,EAAQ0C,WACjE,8BAGP,kBAAC,EAAAK,YAAD,CAAaC,QAASC,EAAAA,aAAc7I,IAAK4G,GACpCN,EAAUC,EAAKX,EAASD,EAASiB,OAK7CqB,GACG,+BACA,4BArKC,EAACrC,EAASkD,EAASC,EAAQC,KAE5C,IAAItC,EAAQd,EAAQzD,KAAI,CAACwE,EAAKC,KAC1B,IAAIqC,OAAgD,IAA3BH,EAAQnC,EAAII,WAA8B+B,EAAQnC,EAAII,WAAa,GAE5F,MAAmB,cAAfJ,aAAA,EAAAA,EAAKuC,OAED,wBAAIlJ,IAAK,WAAa4G,EAAGjI,UAAU,iBAC/B,2BAAO6F,KAAK,WACLhD,GAAI,OAASmF,EAAII,UACjB1E,KAAMsE,EAAII,UACVoC,SAAUH,EACVI,QAASH,EACTnC,MAAOH,aAAF,EAAEA,EAAK3H,SAKvB,wBAAIgB,IAAK,WAAa4G,GAClB,2BACIjI,UAAU,eACV6C,GAAI,OAASmF,EAAII,UACjB1E,KAAMsE,EAAII,UACVsC,YAAa1C,aAAF,EAAEA,EAAK3H,MAClBmK,SAAUH,EACVhK,MAAOiK,IARnB,IAmBR,OANAvC,EAAMM,KACF,wBAAIhH,IAAI,WACJ,4BAAQrB,UAAU,kBAAkBqD,QAAS+G,GAA7C,UAIDrC,CAAP,EAkIqB4C,CAAa1D,EAASO,GA1GvBzE,IAAO,QACvBA,EAAGE,iBACH+D,SAAA,UAAAA,EAAS9D,eAAT,mBAAkBqG,YAAlB,SAAwBlG,QAAQmE,GAChCC,EAAU,CAAC,EAAX,IAmDqB1E,IACrB,IAAI6H,EAAQ7H,EAAG8H,OACXC,E,iWAAY,IAAItD,IAChB,KAAC9D,EAAD,MAAOrD,GAASuK,EAED,aAAfA,EAAM/E,OACNxF,EAAQuK,EAAMH,SAElBK,EAAUpH,GAAQrD,EAClBoH,EAAUqD,EAAV,OAMJ,EA8CJhE,EAAciE,aAAe,CACzB3D,QAAS,MAGbN,EAAcH,UAAY,CACtBI,KAAMH,IAAAA,MAAAA,WACNI,QAASJ,IAAAA,MAAgB,CACrB5G,UAAW4G,IAAAA,OACX1D,QAAS0D,IAAAA,SACVoE,WACH/D,QAASL,IAAAA,QAAkBA,IAAAA,MAAgB,CACvCwB,UAAWxB,IAAAA,OAAAA,WACXvG,MAAOuG,IAAAA,IAAAA,WACP2D,MAAO3D,IAAAA,OACPtE,OAAQsE,IAAAA,QACRoE,WACJ9D,aAAcN,IAAAA,KAAAA,WACdO,WAAYP,IAAAA,OAAAA,WACZQ,QAASR,IAAAA,QAGb,S","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/./src/components/table/TableCell.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"lodash\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-dnd\"","webpack://openstack-uicore-foundation/webpack/bootstrap","webpack://openstack-uicore-foundation/webpack/runtime/compat get default export","webpack://openstack-uicore-foundation/webpack/runtime/define property getters","webpack://openstack-uicore-foundation/webpack/runtime/hasOwnProperty shorthand","webpack://openstack-uicore-foundation/webpack/runtime/make namespace object","webpack://openstack-uicore-foundation/external commonjs \"immutability-helper\"","webpack://openstack-uicore-foundation/external commonjs \"react-dnd-html5-backend\"","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableTableHeading.js","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableTableRow.js","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableTable.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"openstack-uicore-foundation\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"openstack-uicore-foundation\"] = factory();\n\telse\n\t\troot[\"openstack-uicore-foundation\"] = factory();\n})(this, () => {\nreturn ","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\"}) =>\n <span className={className}\n dangerouslySetInnerHTML={{ __html: replaceNewLine ? children?.replace(/\\n/g, '<br />') : children}} />\n\nexport default RawHTML;","import React from 'react';\nimport RawHTML from '../raw-html';\n\nconst TableCell = (props) => {\n let {children} = props;\n\tlet value = '';\n\tif(children) {\n\t if (React.isValidElement(children)) {\n\t value = children;\n } else {\n\t value = <RawHTML>{children.toString()}</RawHTML>\n }\n }\n\n\treturn (\n\t\t<td {...props}>\n {value}\n\t\t</td>\n\t);\n};\n\nexport default TableCell;\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"lodash\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"react-dnd\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutability-helper\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dnd-html5-backend\");","import React from 'react';\n\nclass SortableTableHeading extends React.Component {\n\n\tconstructor (props) {\n\t\tsuper(props);\n\t}\n\n\trender () {\n\t\treturn (\n\t\t\t<th width={this.props.width}>\n\t\t\t\t{this.props.children}\n\t\t\t</th>\n\t\t);\t\n\t}\n\t\n}\n\nexport default SortableTableHeading;","import React from 'react';\n\nexport default class SortableActionsTableCell extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleAction = this.handleAction.bind(this);\n\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleAction(action, id, ev) {\n ev.stopPropagation();\n ev.preventDefault();\n\n action(id);\n }\n\n render() {\n let {actions, id} = this.props;\n return (\n <td className=\"actions\" key=\"actions\">\n {actions.hasOwnProperty('edit') && this.shouldDisplayAction(actions.edit) &&\n <a href=\"\" data-tip=\"edit\" onClick={this.handleAction.bind(this, actions.edit.onClick, id)} >\n <i className=\"fa fa-pencil-square-o\"></i>\n </a>\n }\n {actions.hasOwnProperty('delete') && this.shouldDisplayAction(actions.delete) &&\n <a href=\"\" data-tip=\"delete\" onClick={this.handleAction.bind(this, actions.delete.onClick, id)} >\n <i className=\"fa fa-trash-o delete-icon\"></i>\n </a>\n }\n {'custom' in actions && actions.custom.map(a =>\n this.shouldDisplayAction(a, id) &&\n <a href=\"\" data-tip={a.tooltip} key={'custom_' + a.name} onClick={this.handleAction.bind(this, a.onClick, id)}>\n {a.icon}\n </a>\n )}\n </td>\n );\n }\n};\n","import React, { useRef } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\nimport PropTypes from 'prop-types';\n\nconst SortableTableRow = ({ text, even, id, index, moveCard, dropItem, children, findRow }) => {\n const originalIndex = findRow(id).index;\n\n const style = {\n border: '1px dashed gray',\n padding: '0.5rem 1rem',\n marginBottom: '.5rem',\n backgroundColor: 'white',\n cursor: 'move',\n };\n\n const refRow = useRef(null);\n const [{ handlerId }, drop] = useDrop({\n accept: 'row',\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n };\n },\n hover(item, monitor) {\n if (!refRow.current) {\n return;\n }\n const dragIndex = item.index;\n const hoverIndex = index;\n // Don't replace items with themselves\n if (dragIndex === hoverIndex) {\n return;\n }\n // Determine rectangle on screen\n const hoverBoundingRect = refRow.current?.getBoundingClientRect();\n // Get vertical middle\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n // Determine mouse position\n const clientOffset = monitor.getClientOffset();\n // Get pixels to the top\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n // Only perform the move when the mouse has crossed half of the items height\n // When dragging downwards, only move when the cursor is below 50%\n // When dragging upwards, only move when the cursor is above 50%\n // Dragging downwards\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n // Dragging upwards\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n // Time to actually perform the action\n moveCard(dragIndex, hoverIndex);\n // Note: we're mutating the monitor item here!\n // Generally it's better to avoid mutations,\n // but it's good here for the sake of performance\n // to avoid expensive index searches.\n item.index = hoverIndex;\n },\n });\n const [{ isDragging }, drag] = useDrag({\n type: 'row',\n item: () => {\n return { id, index };\n },\n end:(_item, monitor) => {\n const { id: droppedId, index } = _item;\n const didDrop = monitor.didDrop()\n if(didDrop)\n return dropItem(droppedId, index + 1)\n // rollback\n return moveCard(index, originalIndex);\n },\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const opacity = isDragging ? 0 : 1;\n\n drag(drop(refRow));\n\n return (\n <tr id={id} ref={refRow} role=\"row\" className={even ? 'even' : 'odd'} style={{ ...style, opacity }}>\n {children}\n </tr>\n );\n}\n\nSortableTableRow.propTypes = {\n index: PropTypes.number.isRequired,\n id: PropTypes.any.isRequired,\n moveCard: PropTypes.func.isRequired,\n};\n\nexport default SortableTableRow;\n\n","import React, {useEffect, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport update from 'immutability-helper';\nimport {DndProvider} from 'react-dnd'\nimport {HTML5Backend} from 'react-dnd-html5-backend'\nimport SortableTableHeading from './SortableTableHeading';\nimport SortableActionsTableCell from './SortableActionsTableCell';\nimport SortableTableRow from './SortableTableRow';\nimport T from 'i18n-react/dist/i18n-react';\nimport './table-sortable.css';\nimport TableCell from \"../table/TableCell\";\nimport _ from 'lodash';\n\nconst defaults = {\n colWidth: ''\n}\n\nconst createRow = (row, columns, actions) => {\n\n let cells = columns.map((col, i) => {\n if (col.hasOwnProperty(\"render\"))\n return (\n <TableCell key={'cell_' + i} title={col.hasOwnProperty(\"title\") ? row[col.columnKey] : null}>\n {col.render(row, row[col.columnKey])}\n </TableCell>\n );\n\n return (\n <TableCell key={'cell_' + i} title={col.hasOwnProperty(\"title\") ? row[col.columnKey] : null}>\n {row[col.columnKey]}\n </TableCell>\n );\n });\n\n if (actions) {\n cells.push(<SortableActionsTableCell key='actions' id={row['id']} actions={actions}/>);\n }\n\n return cells;\n};\n\n\nconst renderNewRow = (columns, new_row, addNew, handleChange) => {\n\n let cells = columns.map((col, i) => {\n let cell_value = (typeof new_row[col.columnKey] !== 'undefined') ? new_row[col.columnKey] : '';\n\n if (col?.input === \"checkbox\")\n return (\n <td key={'new_row_' + i} className=\"checkbox-cell\">\n <input type=\"checkbox\"\n id={'new_' + col.columnKey}\n name={col.columnKey}\n onChange={handleChange}\n checked={cell_value}\n title={col?.value}\n />\n </td>);\n else\n return (\n <td key={'new_row_' + i}>\n <input\n className=\"form-control\"\n id={'new_' + col.columnKey}\n name={col.columnKey}\n placeholder={col?.value}\n onChange={handleChange}\n value={cell_value}/>\n </td>);\n\n });\n\n cells.push(\n <td key='add_new'>\n <button className=\"btn btn-default\" onClick={addNew}> Add</button>\n </td>\n );\n\n return cells;\n};\n\nconst SortableTable = ({data, options, columns, dropCallback, orderField, idField}) => {\n\n const [rows, setRows] = useState(data);\n const [newRow, setNewRow] = useState({});\n\n useEffect(() => {\n setRows(data);\n }, [data])\n\n\n const renderRow = (row, columns, options, index) => {\n return (\n <SortableTableRow even={index % 2 === 0} key={row.id} index={index} id={row.id}\n moveCard={moveRow}\n findRow={findRow}\n dropItem={onDropItem}>\n {createRow(row, columns, options.actions)}\n </SortableTableRow>\n )\n };\n\n const saveNewRow = (ev) => {\n ev.preventDefault();\n options?.actions?.save?.onClick(newRow);\n setNewRow({});\n }\n\n const sortRows = (rows2Sort) => {\n rows2Sort.sort(function (a, b) {\n const x = a[orderField];\n const y = b[orderField];\n return ((x < y) ? -1 : ((x > y) ? 1 : 0));\n });\n return rows2Sort;\n }\n\n const findRow = useCallback(\n (id) => {\n const row = rows.filter((r) => r[idField] === id)[0]\n return {\n row,\n index: rows.indexOf(row),\n }\n },\n [rows],\n )\n\n const moveRow = useCallback(\n (dragIndex, hoverIndex) => {\n\n setRows((prevRows) => {\n\n prevRows = update(prevRows, {\n $splice: [\n [dragIndex, 1],\n [hoverIndex, 0, prevRows[dragIndex]],\n ],\n });\n\n for (let i in prevRows) {\n prevRows[i][orderField] = parseInt(i) + 1;\n }\n\n return sortRows(prevRows)\n });\n },\n [rows, setRows],\n )\n\n const onDropItem = (id, newOrder) => {\n const sortedRows = sortRows(rows);\n setRows(sortedRows);\n dropCallback(sortedRows, id, newOrder)\n }\n\n const handleNewChange = (ev) => {\n let field = ev.target;\n let newRowTmp = {...newRow};\n let {name, value} = field;\n\n if (field.type === 'checkbox') {\n value = field.checked;\n }\n newRowTmp[name] = value;\n setNewRow(newRowTmp);\n }\n\n let tableClass = options.hasOwnProperty('className') ? options.className : '';\n let shouldRenderNewRow = options?.actions?.save?.onClick && options?.actions?.save?.onClick !== null;\n\n return (\n <div className=\"sortable-table-box\">\n <i>{T.translate(\"general.drag_and_drop\")}</i>\n <table className={\"table table-striped table-hover sortableTable \" + tableClass}>\n <thead>\n <tr>\n {columns.map((col, i) => {\n let colWidth = (col.width) ? col.width : defaults.colWidth;\n return (\n <SortableTableHeading width={colWidth} key={i}>\n {col.value}\n </SortableTableHeading>\n );\n })}\n {options.actions && !_.isEmpty(options.actions) &&\n <SortableTableHeading key='actions'>\n Actions\n </SortableTableHeading>\n }\n </tr>\n </thead>\n <tbody>\n {columns.length > 0 && rows.map((row, i) => {\n if (Array.isArray(row) && row.length !== columns.length) {\n console.warn(`Data at row ${i} is ${row.length}. It should be ${columns.length}.`);\n return <tr/>\n }\n return (\n <DndProvider backend={HTML5Backend} key={i}>\n {renderRow(row, columns, options, i)}\n </DndProvider>\n );\n })}\n </tbody>\n {shouldRenderNewRow &&\n <tfoot>\n <tr>\n {renderNewRow(columns, newRow, saveNewRow, handleNewChange)}\n </tr>\n </tfoot>\n }\n </table>\n </div>\n );\n};\n\nSortableTable.defaultProps = {\n idField: 'id',\n}\n\nSortableTable.propTypes = {\n data: PropTypes.array.isRequired,\n options: PropTypes.shape({\n className: PropTypes.string,\n actions: PropTypes.object\n }).isRequired,\n columns: PropTypes.arrayOf(PropTypes.shape({\n columnKey: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n input: PropTypes.string,\n render: PropTypes.func,\n })).isRequired,\n dropCallback: PropTypes.func.isRequired,\n orderField: PropTypes.string.isRequired,\n idField: PropTypes.string,\n}\n\nexport default SortableTable;\n"],"names":["root","factory","exports","module","define","amd","this","children","replaceNewLine","className","dangerouslySetInnerHTML","__html","replace","props","value","React","toString","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","SortableTableHeading","constructor","super","render","width","SortableActionsTableCell","handleAction","bind","shouldDisplayAction","action","id","display","ev","stopPropagation","preventDefault","actions","edit","href","onClick","delete","custom","map","tooltip","name","icon","SortableTableRow","text","even","index","moveCard","dropItem","findRow","originalIndex","refRow","useRef","handlerId","drop","useDrop","accept","collect","monitor","getHandlerId","hover","item","current","dragIndex","hoverIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","bottom","top","hoverClientY","getClientOffset","y","isDragging","drag","useDrag","type","end","_item","droppedId","didDrop","opacity","ref","role","style","border","padding","marginBottom","backgroundColor","cursor","propTypes","PropTypes","defaults","SortableTable","data","options","columns","dropCallback","orderField","idField","rows","setRows","useState","newRow","setNewRow","useEffect","renderRow","row","moveRow","onDropItem","cells","col","i","TableCell","title","columnKey","push","createRow","sortRows","rows2Sort","sort","b","x","useCallback","filter","indexOf","prevRows","update","$splice","parseInt","newOrder","sortedRows","tableClass","shouldRenderNewRow","save","T","colWidth","_","length","Array","isArray","console","warn","DndProvider","backend","HTML5Backend","new_row","addNew","handleChange","cell_value","input","onChange","checked","placeholder","renderNewRow","field","target","newRowTmp","defaultProps","isRequired"],"sourceRoot":""}
1
+ {"version":3,"file":"components/table-sortable.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/components/raw-html/index.js","webpack://openstack-uicore-foundation/./src/components/table/TableCell.js","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/defineProperty\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/extends\"","webpack://openstack-uicore-foundation/external commonjs \"@babel/runtime/helpers/objectWithoutProperties\"","webpack://openstack-uicore-foundation/external commonjs \"i18n-react/dist/i18n-react\"","webpack://openstack-uicore-foundation/external commonjs \"lodash\"","webpack://openstack-uicore-foundation/external commonjs \"prop-types\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-dnd\"","webpack://openstack-uicore-foundation/webpack/bootstrap","webpack://openstack-uicore-foundation/webpack/runtime/compat get default export","webpack://openstack-uicore-foundation/webpack/runtime/define property getters","webpack://openstack-uicore-foundation/webpack/runtime/hasOwnProperty shorthand","webpack://openstack-uicore-foundation/webpack/runtime/make namespace object","webpack://openstack-uicore-foundation/external commonjs \"immutability-helper\"","webpack://openstack-uicore-foundation/external commonjs \"react-dnd-html5-backend\"","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableTableHeading.js","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableTableRow.js","webpack://openstack-uicore-foundation/./src/components/table-sortable/SortableTable.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"openstack-uicore-foundation\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"openstack-uicore-foundation\"] = factory();\n\telse\n\t\troot[\"openstack-uicore-foundation\"] = factory();\n})(this, () => {\nreturn ","import React from 'react';\n\nconst RawHTML = ({children, replaceNewLine = false, className = \"\", ...rest}) =>\n <span className={className}\n dangerouslySetInnerHTML={{ __html: replaceNewLine ? children?.replace(/\\n/g, '<br />') : children}} {...rest}/>\n\nexport default RawHTML;","import React from 'react';\nimport RawHTML from '../raw-html';\n\nconst TableCell = (props) => {\n let {children} = props;\n\tlet value = '';\n\tif(children) {\n\t if (React.isValidElement(children)) {\n\t value = children;\n } else {\n\t value = <RawHTML>{children.toString()}</RawHTML>\n }\n }\n\n\treturn (\n\t\t<td {...props}>\n {value}\n\t\t</td>\n\t);\n};\n\nexport default TableCell;\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"lodash\");","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"react-dnd\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"immutability-helper\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react-dnd-html5-backend\");","import React from 'react';\n\nclass SortableTableHeading extends React.Component {\n\n\tconstructor (props) {\n\t\tsuper(props);\n\t}\n\n\trender () {\n\t\treturn (\n\t\t\t<th width={this.props.width}>\n\t\t\t\t{this.props.children}\n\t\t\t</th>\n\t\t);\t\n\t}\n\t\n}\n\nexport default SortableTableHeading;","import React from 'react';\n\nexport default class SortableActionsTableCell extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.handleAction = this.handleAction.bind(this);\n\n }\n\n shouldDisplayAction(action) {\n let {id} = this.props;\n\n if (!action.hasOwnProperty('display')) {\n return true;\n } else {\n return action.display(id);\n }\n }\n\n handleAction(action, id, ev) {\n ev.stopPropagation();\n ev.preventDefault();\n\n action(id);\n }\n\n render() {\n let {actions, id} = this.props;\n return (\n <td className=\"actions\" key=\"actions\">\n {actions.hasOwnProperty('edit') && this.shouldDisplayAction(actions.edit) &&\n <a href=\"\" data-tip=\"edit\" onClick={this.handleAction.bind(this, actions.edit.onClick, id)} >\n <i className=\"fa fa-pencil-square-o\"></i>\n </a>\n }\n {actions.hasOwnProperty('delete') && this.shouldDisplayAction(actions.delete) &&\n <a href=\"\" data-tip=\"delete\" onClick={this.handleAction.bind(this, actions.delete.onClick, id)} >\n <i className=\"fa fa-trash-o delete-icon\"></i>\n </a>\n }\n {'custom' in actions && actions.custom.map(a =>\n this.shouldDisplayAction(a, id) &&\n <a href=\"\" data-tip={a.tooltip} key={'custom_' + a.name} onClick={this.handleAction.bind(this, a.onClick, id)}>\n {a.icon}\n </a>\n )}\n </td>\n );\n }\n};\n","import React, { useRef } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\nimport PropTypes from 'prop-types';\n\nconst SortableTableRow = ({ text, even, id, index, moveCard, dropItem, children, findRow }) => {\n const originalIndex = findRow(id).index;\n\n const style = {\n border: '1px dashed gray',\n padding: '0.5rem 1rem',\n marginBottom: '.5rem',\n backgroundColor: 'white',\n cursor: 'move',\n };\n\n const refRow = useRef(null);\n const [{ handlerId }, drop] = useDrop({\n accept: 'row',\n collect(monitor) {\n return {\n handlerId: monitor.getHandlerId(),\n };\n },\n hover(item, monitor) {\n if (!refRow.current) {\n return;\n }\n const dragIndex = item.index;\n const hoverIndex = index;\n // Don't replace items with themselves\n if (dragIndex === hoverIndex) {\n return;\n }\n // Determine rectangle on screen\n const hoverBoundingRect = refRow.current?.getBoundingClientRect();\n // Get vertical middle\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n // Determine mouse position\n const clientOffset = monitor.getClientOffset();\n // Get pixels to the top\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\n // Only perform the move when the mouse has crossed half of the items height\n // When dragging downwards, only move when the cursor is below 50%\n // When dragging upwards, only move when the cursor is above 50%\n // Dragging downwards\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n return;\n }\n // Dragging upwards\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n // Time to actually perform the action\n moveCard(dragIndex, hoverIndex);\n // Note: we're mutating the monitor item here!\n // Generally it's better to avoid mutations,\n // but it's good here for the sake of performance\n // to avoid expensive index searches.\n item.index = hoverIndex;\n },\n });\n const [{ isDragging }, drag] = useDrag({\n type: 'row',\n item: () => {\n return { id, index };\n },\n end:(_item, monitor) => {\n const { id: droppedId, index } = _item;\n const didDrop = monitor.didDrop()\n if(didDrop)\n return dropItem(droppedId, index + 1)\n // rollback\n return moveCard(index, originalIndex);\n },\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const opacity = isDragging ? 0 : 1;\n\n drag(drop(refRow));\n\n return (\n <tr id={id} ref={refRow} role=\"row\" className={even ? 'even' : 'odd'} style={{ ...style, opacity }}>\n {children}\n </tr>\n );\n}\n\nSortableTableRow.propTypes = {\n index: PropTypes.number.isRequired,\n id: PropTypes.any.isRequired,\n moveCard: PropTypes.func.isRequired,\n};\n\nexport default SortableTableRow;\n\n","import React, {useEffect, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport update from 'immutability-helper';\nimport {DndProvider} from 'react-dnd'\nimport {HTML5Backend} from 'react-dnd-html5-backend'\nimport SortableTableHeading from './SortableTableHeading';\nimport SortableActionsTableCell from './SortableActionsTableCell';\nimport SortableTableRow from './SortableTableRow';\nimport T from 'i18n-react/dist/i18n-react';\nimport './table-sortable.css';\nimport TableCell from \"../table/TableCell\";\nimport _ from 'lodash';\n\nconst defaults = {\n colWidth: ''\n}\n\nconst createRow = (row, columns, actions) => {\n\n let cells = columns.map((col, i) => {\n if (col.hasOwnProperty(\"render\"))\n return (\n <TableCell key={'cell_' + i} title={col.hasOwnProperty(\"title\") ? row[col.columnKey] : null}>\n {col.render(row, row[col.columnKey])}\n </TableCell>\n );\n\n return (\n <TableCell key={'cell_' + i} title={col.hasOwnProperty(\"title\") ? row[col.columnKey] : null}>\n {row[col.columnKey]}\n </TableCell>\n );\n });\n\n if (actions) {\n cells.push(<SortableActionsTableCell key='actions' id={row['id']} actions={actions}/>);\n }\n\n return cells;\n};\n\n\nconst renderNewRow = (columns, new_row, addNew, handleChange) => {\n\n let cells = columns.map((col, i) => {\n let cell_value = (typeof new_row[col.columnKey] !== 'undefined') ? new_row[col.columnKey] : '';\n\n if (col?.input === \"checkbox\")\n return (\n <td key={'new_row_' + i} className=\"checkbox-cell\">\n <input type=\"checkbox\"\n id={'new_' + col.columnKey}\n name={col.columnKey}\n onChange={handleChange}\n checked={cell_value}\n title={col?.value}\n />\n </td>);\n else\n return (\n <td key={'new_row_' + i}>\n <input\n className=\"form-control\"\n id={'new_' + col.columnKey}\n name={col.columnKey}\n placeholder={col?.value}\n onChange={handleChange}\n value={cell_value}/>\n </td>);\n\n });\n\n cells.push(\n <td key='add_new'>\n <button className=\"btn btn-default\" onClick={addNew}> Add</button>\n </td>\n );\n\n return cells;\n};\n\nconst SortableTable = ({data, options, columns, dropCallback, orderField, idField}) => {\n\n const [rows, setRows] = useState(data);\n const [newRow, setNewRow] = useState({});\n\n useEffect(() => {\n setRows(data);\n }, [data])\n\n\n const renderRow = (row, columns, options, index) => {\n return (\n <SortableTableRow even={index % 2 === 0} key={row.id} index={index} id={row.id}\n moveCard={moveRow}\n findRow={findRow}\n dropItem={onDropItem}>\n {createRow(row, columns, options.actions)}\n </SortableTableRow>\n )\n };\n\n const saveNewRow = (ev) => {\n ev.preventDefault();\n options?.actions?.save?.onClick(newRow);\n setNewRow({});\n }\n\n const sortRows = (rows2Sort) => {\n rows2Sort.sort(function (a, b) {\n const x = a[orderField];\n const y = b[orderField];\n return ((x < y) ? -1 : ((x > y) ? 1 : 0));\n });\n return rows2Sort;\n }\n\n const findRow = useCallback(\n (id) => {\n const row = rows.filter((r) => r[idField] === id)[0]\n return {\n row,\n index: rows.indexOf(row),\n }\n },\n [rows],\n )\n\n const moveRow = useCallback(\n (dragIndex, hoverIndex) => {\n\n setRows((prevRows) => {\n\n prevRows = update(prevRows, {\n $splice: [\n [dragIndex, 1],\n [hoverIndex, 0, prevRows[dragIndex]],\n ],\n });\n\n for (let i in prevRows) {\n prevRows[i][orderField] = parseInt(i) + 1;\n }\n\n return sortRows(prevRows)\n });\n },\n [rows, setRows],\n )\n\n const onDropItem = (id, newOrder) => {\n const sortedRows = sortRows(rows);\n setRows(sortedRows);\n dropCallback(sortedRows, id, newOrder)\n }\n\n const handleNewChange = (ev) => {\n let field = ev.target;\n let newRowTmp = {...newRow};\n let {name, value} = field;\n\n if (field.type === 'checkbox') {\n value = field.checked;\n }\n newRowTmp[name] = value;\n setNewRow(newRowTmp);\n }\n\n let tableClass = options.hasOwnProperty('className') ? options.className : '';\n let shouldRenderNewRow = options?.actions?.save?.onClick && options?.actions?.save?.onClick !== null;\n\n return (\n <div className=\"sortable-table-box\">\n <i>{T.translate(\"general.drag_and_drop\")}</i>\n <table className={\"table table-striped table-hover sortableTable \" + tableClass}>\n <thead>\n <tr>\n {columns.map((col, i) => {\n let colWidth = (col.width) ? col.width : defaults.colWidth;\n return (\n <SortableTableHeading width={colWidth} key={i}>\n {col.value}\n </SortableTableHeading>\n );\n })}\n {options.actions && !_.isEmpty(options.actions) &&\n <SortableTableHeading key='actions'>\n Actions\n </SortableTableHeading>\n }\n </tr>\n </thead>\n <tbody>\n {columns.length > 0 && rows.map((row, i) => {\n if (Array.isArray(row) && row.length !== columns.length) {\n console.warn(`Data at row ${i} is ${row.length}. It should be ${columns.length}.`);\n return <tr/>\n }\n return (\n <DndProvider backend={HTML5Backend} key={i}>\n {renderRow(row, columns, options, i)}\n </DndProvider>\n );\n })}\n </tbody>\n {shouldRenderNewRow &&\n <tfoot>\n <tr>\n {renderNewRow(columns, newRow, saveNewRow, handleNewChange)}\n </tr>\n </tfoot>\n }\n </table>\n </div>\n );\n};\n\nSortableTable.defaultProps = {\n idField: 'id',\n}\n\nSortableTable.propTypes = {\n data: PropTypes.array.isRequired,\n options: PropTypes.shape({\n className: PropTypes.string,\n actions: PropTypes.object\n }).isRequired,\n columns: PropTypes.arrayOf(PropTypes.shape({\n columnKey: PropTypes.string.isRequired,\n value: PropTypes.any.isRequired,\n input: PropTypes.string,\n render: PropTypes.func,\n })).isRequired,\n dropCallback: PropTypes.func.isRequired,\n orderField: PropTypes.string.isRequired,\n idField: PropTypes.string,\n}\n\nexport default SortableTable;\n"],"names":["root","factory","exports","module","define","amd","this","children","replaceNewLine","className","rest","dangerouslySetInnerHTML","__html","replace","props","value","React","toString","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","SortableTableHeading","constructor","super","render","width","SortableActionsTableCell","handleAction","bind","shouldDisplayAction","action","id","display","ev","stopPropagation","preventDefault","actions","edit","href","onClick","delete","custom","map","tooltip","name","icon","SortableTableRow","text","even","index","moveCard","dropItem","findRow","originalIndex","refRow","useRef","handlerId","drop","useDrop","accept","collect","monitor","getHandlerId","hover","item","current","dragIndex","hoverIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","bottom","top","hoverClientY","getClientOffset","y","isDragging","drag","useDrag","type","end","_item","droppedId","didDrop","opacity","ref","role","style","border","padding","marginBottom","backgroundColor","cursor","propTypes","PropTypes","defaults","SortableTable","data","options","columns","dropCallback","orderField","idField","rows","setRows","useState","newRow","setNewRow","useEffect","renderRow","row","moveRow","onDropItem","cells","col","i","TableCell","title","columnKey","push","createRow","sortRows","rows2Sort","sort","b","x","useCallback","filter","indexOf","prevRows","update","$splice","parseInt","newOrder","sortedRows","tableClass","shouldRenderNewRow","save","T","colWidth","_","length","Array","isArray","console","warn","DndProvider","backend","HTML5Backend","new_row","addNew","handleChange","cell_value","input","onChange","checked","placeholder","renderNewRow","field","target","newRowTmp","defaultProps","isRequired"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={418:(e,t,r)=>{r.d(t,{default:()=>s});var o=r(6689),n=r.n(o);const s=({children:e,replaceNewLine:t=!1,className:r=""})=>n().createElement("span",{className:r,dangerouslySetInnerHTML:{__html:t?null==e?void 0:e.replace(/\n/g,"<br />"):e}})},4391:(e,t,r)=>{r.d(t,{Z:()=>l});var o=r(6689),n=r.n(o),s=r(418);const l=e=>{let{children:t}=e,r="";return t&&(r=n().isValidElement(t)?t:n().createElement(s.default,null,t.toString())),n().createElement("td",e,r)}},580:e=>{e.exports=require("prop-types")},6689:e=>{e.exports=require("react")},2076:e=>{e.exports=require("react-tooltip")}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,r),s.exports}(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var o={};return(()=>{r.r(o),r.d(o,{default:()=>y});var e=r(6689),t=r.n(e),n=r(580),s=r.n(n);class l extends t().Component{constructor(e){super(e),this.handleSort=this.handleSort.bind(this)}getSortClass(){if(!this.props.sortable)return null;switch(this.props.sortDir){case 1:return"sorting_asc";case-1:return"sorting_desc";default:return this.props.sortable?"sorting":null}}handleSort(e){e.preventDefault(),this.props.hasOwnProperty("onSort")&&this.props.sortable&&this.props.onSort(this.props.columnIndex,this.props.columnKey,this.props.sortDir?-1*this.props.sortDir:1,this.props.sortFunc)}render(){return t().createElement("th",{onClick:this.handleSort,className:this.getSortClass(),width:this.props.width},this.props.children)}}l.propTypes={onSort:s().func,sortDir:s().number,columnIndex:s().number,columnKey:s().any,sortable:s().bool,sortFunc:s().func};const a=l;var i=r(4391);class c extends t().Component{constructor(e){super(e),this.handleEdit=this.handleEdit.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleEdit(e,t){t.stopPropagation(),t.preventDefault(),this.props.actions.edit.onClick(e)}render(){let{even:e,actions:r,id:o,children:n}=this.props,s=e?"even":"odd";return r.hasOwnProperty("edit")&&this.shouldDisplayAction(r.edit)?t().createElement("tr",{role:"row",className:s+" can-edit",onClick:this.handleEdit.bind(this,o)},n):t().createElement("tr",{role:"row",className:s},n)}}class d extends t().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.shouldDisplayAction=this.shouldDisplayAction.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleAction(e,t,r){r.stopPropagation(),r.preventDefault(),e(t)}render(){let{actions:e,id:r}=this.props;return t().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&t().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,r)},t().createElement("i",{className:"fa fa-trash-o delete-icon"})),e.hasOwnProperty("custom")&&e.custom.map((e=>this.shouldDisplayAction(e)&&t().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,r)},e.icon))))}}var p=r(2076),h=r.n(p);const u={sortFunc:(e,t)=>e<t?-1:e>t?1:0,sortable:!1,sortCol:0,sortDir:1,colWidth:""},m=(e,t,r,o)=>e&&e===r||r===t?o:null,y=e=>{let{options:r,columns:o}=e,n=r.hasOwnProperty("className")?r.className:"";return n+=r.actions.hasOwnProperty("edit")?" table-hover":"",t().createElement("div",null,t().createElement("table",{className:"table table-striped dataTable "+n},t().createElement("thead",null,t().createElement("tr",null,o.map(((o,n)=>{let s=void 0!==r.sortCol?r.sortCol:u.sortCol,l=void 0!==r.sortDir?r.sortDir:u.sortDir,i=void 0!==r.sortFunc?r.sortFunc:u.sortFunc,c=void 0!==o.sortable?o.sortable:u.sortable,d=void 0!==o.width?o.width:u.colWidth;return t().createElement(a,{onSort:e.onSort,sortDir:m(o.columnKey,n,s,l),sortable:c,sortFunc:i,columnIndex:n,columnKey:o.columnKey,width:d,key:"heading_"+n},o.value)})),r.actions&&t().createElement(a,{key:"actions_heading"},r.actionsHeader||" "))),t().createElement("tbody",null,o.length>0&&e.data.map(((e,n)=>Array.isArray(e)&&e.length!==o.length?(console.warn(`Data at row ${n} is ${e.length}. It should be ${o.length}.`),t().createElement("tr",{key:"row_"+n})):t().createElement(c,{even:n%2==0,key:"row_"+n,id:e.id,actions:r.actions},((e,r,o)=>{var n=r.map(((r,o)=>r.hasOwnProperty("render")?t().createElement(i.Z,{key:"cell_"+o},r.render(e,e[r.columnKey])):t().createElement(i.Z,{key:"cell_"+o,title:r.hasOwnProperty("title")?e[r.columnKey]:null},e[r.columnKey])));return o&&n.push(t().createElement(d,{key:"actions_cell",id:e.id,actions:o})),n})(e,o,r.actions)))))),t().createElement(h(),{delayShow:10}))}})(),o})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],t):"object"==typeof exports?exports["openstack-uicore-foundation"]=t():e["openstack-uicore-foundation"]=t()}(this,(()=>(()=>{"use strict";var e={418:(e,t,r)=>{r.d(t,{default:()=>d});var o=r(8213),n=r.n(o),s=r(3838),l=r.n(s),a=r(6689),i=r.n(a);const c=["children","replaceNewLine","className"],d=e=>{let{children:t,replaceNewLine:r=!1,className:o=""}=e,s=l()(e,c);return i().createElement("span",n()({className:o,dangerouslySetInnerHTML:{__html:r?null==t?void 0:t.replace(/\n/g,"<br />"):t}},s))}},4391:(e,t,r)=>{r.d(t,{Z:()=>l});var o=r(6689),n=r.n(o),s=r(418);const l=e=>{let{children:t}=e,r="";return t&&(r=n().isValidElement(t)?t:n().createElement(s.default,null,t.toString())),n().createElement("td",e,r)}},8213:e=>{e.exports=require("@babel/runtime/helpers/extends")},3838:e=>{e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},580:e=>{e.exports=require("prop-types")},6689:e=>{e.exports=require("react")},2076:e=>{e.exports=require("react-tooltip")}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,r),s.exports}(()=>{r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t}})(),(()=>{r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}})(),(()=>{r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var o={};return(()=>{r.r(o),r.d(o,{default:()=>y});var e=r(6689),t=r.n(e),n=r(580),s=r.n(n);class l extends t().Component{constructor(e){super(e),this.handleSort=this.handleSort.bind(this)}getSortClass(){if(!this.props.sortable)return null;switch(this.props.sortDir){case 1:return"sorting_asc";case-1:return"sorting_desc";default:return this.props.sortable?"sorting":null}}handleSort(e){e.preventDefault(),this.props.hasOwnProperty("onSort")&&this.props.sortable&&this.props.onSort(this.props.columnIndex,this.props.columnKey,this.props.sortDir?-1*this.props.sortDir:1,this.props.sortFunc)}render(){return t().createElement("th",{onClick:this.handleSort,className:this.getSortClass(),width:this.props.width},this.props.children)}}l.propTypes={onSort:s().func,sortDir:s().number,columnIndex:s().number,columnKey:s().any,sortable:s().bool,sortFunc:s().func};const a=l;var i=r(4391);class c extends t().Component{constructor(e){super(e),this.handleEdit=this.handleEdit.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleEdit(e,t){t.stopPropagation(),t.preventDefault(),this.props.actions.edit.onClick(e)}render(){let{even:e,actions:r,id:o,children:n}=this.props,s=e?"even":"odd";return r.hasOwnProperty("edit")&&this.shouldDisplayAction(r.edit)?t().createElement("tr",{role:"row",className:s+" can-edit",onClick:this.handleEdit.bind(this,o)},n):t().createElement("tr",{role:"row",className:s},n)}}class d extends t().Component{constructor(e){super(e),this.handleAction=this.handleAction.bind(this),this.shouldDisplayAction=this.shouldDisplayAction.bind(this)}shouldDisplayAction(e){let{id:t}=this.props;return!e.hasOwnProperty("display")||e.display(t)}handleAction(e,t,r){r.stopPropagation(),r.preventDefault(),e(t)}render(){let{actions:e,id:r}=this.props;return t().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&t().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,r)},t().createElement("i",{className:"fa fa-trash-o delete-icon"})),e.hasOwnProperty("custom")&&e.custom.map((e=>this.shouldDisplayAction(e)&&t().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,r)},e.icon))))}}var p=r(2076),h=r.n(p);const u={sortFunc:(e,t)=>e<t?-1:e>t?1:0,sortable:!1,sortCol:0,sortDir:1,colWidth:""},m=(e,t,r,o)=>e&&e===r||r===t?o:null,y=e=>{let{options:r,columns:o}=e,n=r.hasOwnProperty("className")?r.className:"";return n+=r.actions.hasOwnProperty("edit")?" table-hover":"",t().createElement("div",null,t().createElement("table",{className:"table table-striped dataTable "+n},t().createElement("thead",null,t().createElement("tr",null,o.map(((o,n)=>{let s=void 0!==r.sortCol?r.sortCol:u.sortCol,l=void 0!==r.sortDir?r.sortDir:u.sortDir,i=void 0!==r.sortFunc?r.sortFunc:u.sortFunc,c=void 0!==o.sortable?o.sortable:u.sortable,d=void 0!==o.width?o.width:u.colWidth;return t().createElement(a,{onSort:e.onSort,sortDir:m(o.columnKey,n,s,l),sortable:c,sortFunc:i,columnIndex:n,columnKey:o.columnKey,width:d,key:"heading_"+n},o.value)})),r.actions&&t().createElement(a,{key:"actions_heading"},r.actionsHeader||" "))),t().createElement("tbody",null,o.length>0&&e.data.map(((e,n)=>Array.isArray(e)&&e.length!==o.length?(console.warn(`Data at row ${n} is ${e.length}. It should be ${o.length}.`),t().createElement("tr",{key:"row_"+n})):t().createElement(c,{even:n%2==0,key:"row_"+n,id:e.id,actions:r.actions},((e,r,o)=>{var n=r.map(((r,o)=>r.hasOwnProperty("render")?t().createElement(i.Z,{key:"cell_"+o},r.render(e,e[r.columnKey])):t().createElement(i.Z,{key:"cell_"+o,title:r.hasOwnProperty("title")?e[r.columnKey]:null},e[r.columnKey])));return o&&n.push(t().createElement(d,{key:"actions_cell",id:e.id,actions:o})),n})(e,o,r.actions)))))),t().createElement(h(),{delayShow:10}))}})(),o})()));
2
2
  //# sourceMappingURL=table.js.map