openstack-uicore-foundation 4.1.93 → 4.1.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/index.js +1 -1
- package/lib/components/index.js.map +1 -1
- package/lib/components/inputs/editor-input.js +1 -1
- package/lib/components/inputs/editor-input.js.map +1 -1
- package/lib/components/simple-link-list.js +1 -1
- package/lib/components/simple-link-list.js.map +1 -1
- package/lib/components/table-editable.js +1 -1
- package/lib/components/table-editable.js.map +1 -1
- package/lib/components/table-selectable.js +1 -1
- package/lib/components/table-selectable.js.map +1 -1
- package/lib/components/table.js +1 -1
- package/lib/components/table.js.map +1 -1
- package/package.json +2 -4
|
@@ -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={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")},6689:e=>{e.exports=require("react")},9231:e=>{e.exports=require("react-rte")}},t={};function 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={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")},6689:e=>{e.exports=require("react")},9231:e=>{e.exports=require("react-rte")}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.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:()=>h});var e=r(8213),t=r.n(e),o=r(3838),i=r.n(o),l=r(8779),a=r.n(l),s=r(6689),u=r.n(s);const c=["onChange","value","error","className","id","maxLength"];function p(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 d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){a()(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}class h extends u().Component{constructor(e){var t;if(super(e),this.RichTextEditor=null,this.getTextAlignClassName=null,this.getTextAlignStyles=null,"undefined"!=typeof window){const{default:e,getTextAlignClassName:t,getTextAlignStyles:n}=r(9231);this.RichTextEditor=e,this.getTextAlignClassName=t,this.getTextAlignStyles=n}this.state={editorValue:null===(t=this.RichTextEditor)||void 0===t?void 0:t.createEmptyValue(),currentValue:null},this.handleChange=this.handleChange.bind(this)}static getDerivedStateFromProps(e,t){const{value:n}=e,{editorValue:o,currentValue:i}=t;if(null!=i&&n===i)return t;let l=o.setContentFromString(n,"html");if("undefined"!=typeof window){const{getTextAlignBlockMetadata:e}=r(9231);l=o.setContentFromString(n,"html",{customBlockFn:e})}return d(d({},t),{},{editorValue:l,currentValue:n})}handleChange(e){let t=this.state.editorValue;if(this.setState({editorValue:e}),(t?t.getEditorState().getCurrentContent():null)!==e.getEditorState().getCurrentContent()){let t=e.toString("html",{blockStyleFn:this.getTextAlignStyles});if(t="<p><br></p>"===t?"":t,this.setState({currentValue:t}),t!==this.props.value){let e={target:{id:this.props.id,value:t,type:"texteditor"}};this.props.onChange(e)}}}render(){const e=this.props,{onChange:r,value:n,error:o,className:l,id:a,maxLength:s}=e,p=i()(e,c),{currentValue:d,editorValue:h}=this.state,g=this.props.hasOwnProperty("error")&&""!==o,f=s-d.length;return u().createElement("div",{className:"editor-input"},this.RichTextEditor&&u().createElement(this.RichTextEditor,t()({id:a,className:l+" "+(g?"error":""),value:h,onChange:this.handleChange,blockStyleFn:this.getTextAlignClassName},p)),!!s&&u().createElement("p",null,u().createElement("i",null,"characters left: ",f)),g&&u().createElement("p",{className:"error-label"},o))}}})(),n})()));
|
|
2
2
|
//# sourceMappingURL=editor-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/inputs/editor-input.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","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 \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-rte\"","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/inputs/editor-input/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 ","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"react\");","module.exports = require(\"react-rte\");","// 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 2017 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';\n\nimport './editor-input.less';\n\nexport default class TextEditor extends React.Component {\n\n constructor(props) {\n super(props);\n this.RichTextEditor = null;\n\n // this is done bc due SSR issues\n // @see https://github.com/sstur/react-rte/issues/373\n if (typeof window !== 'undefined') {\n this.RichTextEditor = require('react-rte').default;\n }\n\n this.state = {\n editorValue: this.RichTextEditor?.createEmptyValue(),\n currentValue: null\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n static getDerivedStateFromProps(props, state) {\n const {value} = props;\n const {editorValue, currentValue} = state;\n\n if (currentValue != null) {\n if (value === currentValue) {\n return state;\n }\n }\n\n return {...state, editorValue: editorValue.setContentFromString(value, 'html'), currentValue: value}\n }\n\n handleChange(editorValue) {\n let oldEditorValue = this.state.editorValue;\n\n this.setState({editorValue});\n\n let oldContentState = oldEditorValue ? oldEditorValue.getEditorState().getCurrentContent() : null;\n let newContentState = editorValue.getEditorState().getCurrentContent();\n\n if (oldContentState !== newContentState) {\n let stringValue = editorValue.toString('html');\n stringValue = stringValue === '<p><br></p>' ? '' : stringValue;\n\n this.setState({currentValue: stringValue});\n\n if (stringValue !== this.props.value) {\n let ev = {target: {\n id: this.props.id,\n value: stringValue,\n type: 'texteditor'\n }};\n\n this.props.onChange(ev);\n }\n }\n }\n\n render() {\n const {onChange, value, error, className, id, maxLength, ...rest} = this.props;\n const {currentValue, editorValue} = this.state;\n const has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n const charCountLeft = maxLength - currentValue.length;\n\n return (\n <div className='editor-input'>\n {this.RichTextEditor &&\n <this.RichTextEditor\n id={id}\n className={className + ' ' + (has_error ? 'error' : '')}\n value={editorValue}\n onChange={this.handleChange}\n {...rest}\n />\n }\n {!!maxLength &&\n <p><i>characters left: {charCountLeft}</i></p>\n }\n {has_error &&\n <p className=\"error-label\">{error}</p>\n }\n </div>\n );\n\n }\n}\n"],"names":["root","factory","exports","module","define","amd","this","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","TextEditor","React","constructor","props","super","RichTextEditor","window","state","editorValue","createEmptyValue","currentValue","handleChange","bind","setContentFromString","oldEditorValue","setState","getEditorState","getCurrentContent","stringValue","toString","ev","target","id","type","onChange","render","error","className","maxLength","rest","has_error","charCountLeft","length"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"components/inputs/editor-input.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","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 \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-rte\"","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/inputs/editor-input/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 ","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/objectWithoutProperties\");","module.exports = require(\"react\");","module.exports = require(\"react-rte\");","// 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 2017 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';\n\nimport './editor-input.less';\n\nexport default class TextEditor extends React.Component {\n\n constructor(props) {\n super(props);\n this.RichTextEditor = null;\n this.getTextAlignClassName = null;\n this.getTextAlignStyles = null;\n\n // this is done bc due SSR issues\n // @see https://github.com/sstur/react-rte/issues/373\n if (typeof window !== 'undefined') {\n const { default: RichTextEditor, getTextAlignClassName, getTextAlignStyles } = require('react-rte');\n this.RichTextEditor = RichTextEditor;\n this.getTextAlignClassName = getTextAlignClassName;\n this.getTextAlignStyles = getTextAlignStyles;\n }\n\n this.state = {\n editorValue: this.RichTextEditor?.createEmptyValue(),\n currentValue: null\n };\n\n this.handleChange = this.handleChange.bind(this);\n }\n\n static getDerivedStateFromProps(props, state) {\n const {value} = props;\n const {editorValue, currentValue} = state;\n\n if (currentValue != null) {\n if (value === currentValue) {\n return state;\n }\n } \n\n let newEditorValue = editorValue.setContentFromString(value, 'html');\n\n // this is done bc due SSR issues\n // @see https://github.com/sstur/react-rte/issues/373\n if (typeof window !== 'undefined') {\n const { getTextAlignBlockMetadata } = require('react-rte');\n newEditorValue = editorValue.setContentFromString(\n value, \n 'html',\n {\n customBlockFn: getTextAlignBlockMetadata,\n }\n );\n }\n\n return {...state, editorValue: newEditorValue, currentValue: value}\n }\n\n handleChange(editorValue) {\n let oldEditorValue = this.state.editorValue;\n\n this.setState({editorValue});\n\n let oldContentState = oldEditorValue ? oldEditorValue.getEditorState().getCurrentContent() : null;\n let newContentState = editorValue.getEditorState().getCurrentContent();\n\n if (oldContentState !== newContentState) {\n let stringValue = editorValue.toString( \n 'html',\n {\n blockStyleFn: this.getTextAlignStyles,\n }\n )\n stringValue = stringValue === '<p><br></p>' ? '' : stringValue;\n\n this.setState({currentValue: stringValue});\n\n if (stringValue !== this.props.value) {\n let ev = {target: {\n id: this.props.id,\n value: stringValue,\n type: 'texteditor'\n }};\n\n this.props.onChange(ev);\n }\n }\n }\n\n render() {\n const {onChange, value, error, className, id, maxLength, ...rest} = this.props;\n const {currentValue, editorValue} = this.state;\n const has_error = ( this.props.hasOwnProperty('error') && error !== '' );\n const charCountLeft = maxLength - currentValue.length;\n\n return (\n <div className='editor-input'>\n {this.RichTextEditor &&\n <this.RichTextEditor\n id={id}\n className={className + ' ' + (has_error ? 'error' : '')}\n value={editorValue}\n onChange={this.handleChange}\n blockStyleFn={this.getTextAlignClassName}\n {...rest}\n />\n }\n {!!maxLength &&\n <p><i>characters left: {charCountLeft}</i></p>\n }\n {has_error &&\n <p className=\"error-label\">{error}</p>\n }\n </div>\n );\n\n }\n}\n"],"names":["root","factory","exports","module","define","amd","this","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","TextEditor","React","constructor","props","super","RichTextEditor","getTextAlignClassName","getTextAlignStyles","window","default","state","editorValue","createEmptyValue","currentValue","handleChange","bind","newEditorValue","setContentFromString","getTextAlignBlockMetadata","customBlockFn","oldEditorValue","setState","getEditorState","getCurrentContent","stringValue","toString","blockStyleFn","ev","target","id","type","onChange","render","error","className","maxLength","rest","has_error","charCountLeft","length"],"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,s)=>{s.d(t,{default:()=>d});var n=s(8213),o=s.n(n),i=s(3838),r=s.n(i),a=s(6689),l=s.n(a);const c=["children","replaceNewLine","className"],d=e=>{let{children:t,replaceNewLine:s=!1,className:n=""}=e,i=r()(e,c);return l().createElement("span",o()({className:n,dangerouslySetInnerHTML:{__html:s?null==t?void 0:t.replace(/\n/g,"<br />"):t}},i))}},1860:(e,t,s)=>{s.d(t,{default:()=>
|
|
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,s)=>{s.d(t,{default:()=>d});var n=s(8213),o=s.n(n),i=s(3838),r=s.n(i),a=s(6689),l=s.n(a);const c=["children","replaceNewLine","className"],d=e=>{let{children:t,replaceNewLine:s=!1,className:n=""}=e,i=r()(e,c);return l().createElement("span",o()({className:n,dangerouslySetInnerHTML:{__html:s?null==t?void 0:t.replace(/\n/g,"<br />"):t}},i))}},1860:(e,t,s)=>{s.d(t,{default:()=>y});var n=s(6689),o=s.n(n),i=s(580),r=s.n(i);class a extends o().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 o().createElement("th",{onClick:this.handleSort,className:this.getSortClass(),width:this.props.width},this.props.children)}}a.propTypes={onSort:r().func,sortDir:r().number,columnIndex:r().number,columnKey:r().any,sortable:r().bool,sortFunc:r().func};const l=a;var c=s(4391);class d extends o().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:t,id:s,children:n}=this.props,i=e?"even":"odd";return(null==t?void 0:t.edit)&&this.shouldDisplayAction(t.edit)?o().createElement("tr",{role:"row",className:i+" can-edit",onClick:this.handleEdit.bind(this,s)},n):o().createElement("tr",{role:"row",className:i},n)}}class p extends o().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,s){s.stopPropagation(),s.preventDefault(),e(t)}render(){let{actions:e,id:t}=this.props;return o().createElement("td",{className:"actions",key:"actions"},e.hasOwnProperty("delete")&&this.shouldDisplayAction(e.delete)&&o().createElement("a",{href:"","data-tip":"delete",onClick:this.handleAction.bind(this,e.delete.onClick,t)},o().createElement("i",{className:"fa fa-trash-o delete-icon"})),e.hasOwnProperty("custom")&&e.custom.map((e=>this.shouldDisplayAction(e)&&o().createElement("a",{href:"","data-tip":e.tooltip,key:"custom_"+e.name,onClick:this.handleAction.bind(this,e.onClick,t)},e.icon))))}}var h=s(2076);const u={sortFunc:(e,t)=>e<t?-1:e>t?1:0,sortable:!1,sortCol:0,sortDir:1,colWidth:""},m=(e,t,s,n)=>e&&e===s||s===t?n:null,y=e=>{var t;let{options:s,columns:n}=e,i=s.hasOwnProperty("className")?s.className:"";return i+=null!==(t=s.actions)&&void 0!==t&&t.edit?" table-hover":"",o().createElement("div",null,o().createElement("table",{className:"table table-striped dataTable "+i},o().createElement("thead",null,o().createElement("tr",null,n.map(((t,n)=>{let i=void 0!==s.sortCol?s.sortCol:u.sortCol,r=void 0!==s.sortDir?s.sortDir:u.sortDir,a=void 0!==s.sortFunc?s.sortFunc:u.sortFunc,c=void 0!==t.sortable?t.sortable:u.sortable,d=void 0!==t.width?t.width:u.colWidth;return o().createElement(l,{onSort:e.onSort,sortDir:m(t.columnKey,n,i,r),sortable:c,sortFunc:a,columnIndex:n,columnKey:t.columnKey,width:d,key:"heading_"+n},t.value)})),s.actions&&o().createElement(l,{key:"actions_heading"},s.actionsHeader||" "))),o().createElement("tbody",null,n.length>0&&e.data.map(((e,t)=>Array.isArray(e)&&e.length!==n.length?(console.warn(`Data at row ${t} is ${e.length}. It should be ${n.length}.`),o().createElement("tr",{key:"row_"+t})):o().createElement(d,{even:t%2==0,key:"row_"+t,id:e.id,actions:s.actions},((e,t,s)=>{const n=t.map(((t,s)=>{const n=(null==t?void 0:t.styles)||{};return t.hasOwnProperty("render")?o().createElement(c.Z,{key:"cell_"+s,style:n},t.render(e,e[t.columnKey])):o().createElement(c.Z,{key:"cell_"+s,title:t.hasOwnProperty("title")?e[t.columnKey]:null,style:n},e[t.columnKey])}));return s&&n.push(o().createElement(p,{key:"actions_cell",id:e.id,actions:s})),n})(e,n,s.actions)))))),o().createElement(h.Tooltip,{delayShow:10}))}},4391:(e,t,s)=>{s.d(t,{Z:()=>r});var n=s(6689),o=s.n(n),i=s(418);const r=e=>{let{children:t}=e,s="";return t&&(s=o().isValidElement(t)?t:o().createElement(i.default,null,t.toString())),o().createElement("td",e,s)}},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")},580:e=>{e.exports=require("prop-types")},6689:e=>{e.exports=require("react")},9953:e=>{e.exports=require("react-select/lib/Async")},9503:e=>{e.exports=require("react-select/lib/AsyncCreatable")},2076:e=>{e.exports=require("react-tooltip")}},t={};function s(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,s),i.exports}(()=>{s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t}})(),(()=>{s.d=(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}})(),(()=>{s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var n={};return(()=>{s.r(n),s.d(n,{default:()=>m});var e=s(6689),t=s.n(e),o=s(580),i=s.n(o),r=s(9953),a=s.n(r),l=s(1860),c=s(4656),d=s.n(c),p=s(9503),h=s.n(p);class u extends t().Component{constructor(e){super(e),this.state={value:""},this.handleChange=this.handleChange.bind(this),this.getOptions=this.getOptions.bind(this),this.handleLink=this.handleLink.bind(this),this.filterOption=this.filterOption.bind(this),this.handleNew=this.handleNew.bind(this),this.getNewOptionData=this.getNewOptionData.bind(this),this.isValidNewOption=this.isValidNewOption.bind(this)}getOptions(e,t){let{options:s}=this.props,n=s.hasOwnProperty("defaultOptions")?s.defaultOptions:void 0;if(!e&&!n)return Promise.resolve({options:[]});this.props.options.actions.search(e,t)}handleChange(e){this.setState({value:e})}handleLink(e){e.preventDefault(),this.props.options.actions.add.onClick(this.state.value),this.setState({value:""})}getNewOptionData(e,t){return{tag:t,id:e}}isValidNewOption(e,t,s){let{options:n}=this.props,o=n.hasOwnProperty("labelKey")?n.labelKey:"label",i=s.find((t=>t[o]==e));return!(!e||i)}handleNew(e){this.props.options.onCreateTag(e,this.handleChange)}filterOption(e,t){let{options:s,values:n}=this.props,o=this.props.hasOwnProperty("allowDuplicates"),i=s.hasOwnProperty("labelKey")?s.labelKey:"label";return!!o||!n.find((t=>t[i]===e.label))}render(){let{options:e,values:s,columns:n}=this.props,o=!this.state.value,i=e.hasOwnProperty("title")?e.title:"Table",r=e.hasOwnProperty("valueKey")?e.valueKey:"value",c=e.hasOwnProperty("labelKey")?e.labelKey:"label",p=e.hasOwnProperty("onCreateTag"),u=e.hasOwnProperty("defaultOptions")?e.defaultOptions:void 0,m={className:"dataTable",actions:{delete:e.actions.delete}};e.hasOwnProperty("className")&&(m.className=e.className),e.actions.hasOwnProperty("edit")&&(m.actions.edit=e.actions.edit),e.actions.hasOwnProperty("custom")&&(m.actions.custom=e.actions.custom),e.hasOwnProperty("sortCol")&&(s=s.sort(((t,s)=>{const n=isNaN(t[e.sortCol])?t[e.sortCol].toLowerCase():t[e.sortCol],o=isNaN(s[e.sortCol])?s[e.sortCol].toLowerCase():s[e.sortCol];return n>o?1:n<o?-1:0})));let y=null;return y=p?t().createElement(h(),{className:"link-select btn-group text-left",value:this.state.value,key:JSON.stringify(s),getOptionValue:e=>e[r],getOptionLabel:e=>e[c],onChange:this.handleChange,loadOptions:this.getOptions,filterOption:this.filterOption,onCreateOption:this.handleNew,getNewOptionData:this.getNewOptionData,isValidNewOption:this.isValidNewOption}):t().createElement(a(),{className:"link-select btn-group text-left",value:this.state.value,key:JSON.stringify(s),getOptionValue:e=>e[r],getOptionLabel:e=>e[c],onChange:this.handleChange,loadOptions:this.getOptions,filterOption:this.filterOption,defaultOptions:u}),t().createElement("div",{className:"row simple-link-list"},t().createElement("div",{className:"col-md-4 simple-link-list-title"},t().createElement("h4",null,i)),t().createElement("div",{className:"col-md simple-link-list-buttons"},y,t().createElement("button",{type:"button",className:"btn btn-default add-button",onClick:this.handleLink,disabled:o},d().translate("general.add"))),t().createElement("div",{className:"col-md-12"},t().createElement(l.default,{className:"dataTable",options:m,data:s,columns:n})))}}u.propTypes={values:i().array.isRequired,options:i().shape({title:i().string,sortCol:i().string,valueKey:i().string.isRequired,labelKey:i().string.isRequired,className:i().string,actions:i().shape({search:i().func.isRequired,delete:i().shape({onClick:i().func.isRequired}),add:i().shape({onClick:i().func.isRequired}),edit:i().shape({onClick:i().func.isRequired}),custom:i().array}).isRequired}).isRequired,columns:i().array.isRequired};const m=u})(),n})()));
|
|
2
2
|
//# sourceMappingURL=simple-link-list.js.map
|
|
@@ -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 \"@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?.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.less';\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 const cells = columns.map((col,i) => {\n const colStyles = col?.styles || {};\n\n if(col.hasOwnProperty(\"render\"))\n return (\n <TableCell key={'cell_'+i} style={colStyles} >\n {col.render(row, row[col.columnKey])}\n </TableCell>\n );\n\n return (\n <TableCell\n key={'cell_'+i}\n title={col.hasOwnProperty(\"title\") ? row[col.columnKey] : null}\n style={colStyles}\n >\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?.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","colStyles","styles","TableCell","style","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?.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 { Tooltip } from 'react-tooltip';\n\nimport './table.less';\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 const cells = columns.map((col,i) => {\n const colStyles = col?.styles || {};\n\n if(col.hasOwnProperty(\"render\"))\n return (\n <TableCell key={'cell_'+i} style={colStyles} >\n {col.render(row, row[col.columnKey])}\n </TableCell>\n );\n\n return (\n <TableCell\n key={'cell_'+i}\n title={col.hasOwnProperty(\"title\") ? row[col.columnKey] : null}\n style={colStyles}\n >\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?.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 <Tooltip 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","colStyles","styles","TableCell","style","title","push","createRow","Tooltip","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={6793:(e,t,n)=>{n.d(t,{shallowEqual:()=>a});n(8362),n(6530);const a=(e,t)=>{const n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(let a of n)if(e[a]!==t[a])return!1;return!0}},8779:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},8362:e=>{e.exports=require("moment-timezone")},6689:e=>{e.exports=require("react")},2076:e=>{e.exports=require("react-tooltip")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var s=t[a]={exports:{}};return e[a](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 a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}})(),(()=>{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 a={};return(()=>{n.r(a),n.d(a,{default:()=>
|
|
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={6793:(e,t,n)=>{n.d(t,{shallowEqual:()=>a});n(8362),n(6530);const a=(e,t)=>{const n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(let a of n)if(e[a]!==t[a])return!1;return!0}},8779:e=>{e.exports=require("@babel/runtime/helpers/defineProperty")},4656:e=>{e.exports=require("i18n-react/dist/i18n-react")},8362:e=>{e.exports=require("moment-timezone")},6689:e=>{e.exports=require("react")},2076:e=>{e.exports=require("react-tooltip")},271:e=>{e.exports=require("sweetalert2")},6530:e=>{e.exports=require("urijs")}},t={};function n(a){var r=t[a];if(void 0!==r)return r.exports;var s=t[a]={exports:{}};return e[a](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 a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}})(),(()=>{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 a={};return(()=>{n.r(a),n.d(a,{default:()=>y});var e=n(8779),t=n.n(e),r=n(6689),s=n.n(r);class i extends s().Component{constructor(e){super(e)}render(){return s().createElement("th",{width:this.props.width},this.props.children)}}const o=i,l=e=>e.is_edit?s().createElement("td",null,!e.shouldUseTextArea&&s().createElement("input",{type:"text",className:"form-control",defaultValue:e.children,name:e.name,id:e.id,onChange:e.handleChange}),e.shouldUseTextArea&&s().createElement("textarea",{className:"form-control",defaultValue:e.children,name:e.name,id:e.id,onChange:e.handleChange})):s().createElement("td",null,e.children);class c extends s().Component{constructor(e){super(e),this.state={is_editing:!1}}onDelete(e,t){t.preventDefault(),t.stopPropagation(),this.props.actions.delete(e)}onSave(e,t){t.preventDefault(),t.stopPropagation(),this.setState({is_editing:!1}),this.props.actions.save(e)}onEdit(e,t){t.preventDefault(),t.stopPropagation(),this.setState({is_editing:!0}),this.props.actions.edit(e)}onCancel(e,t){t.preventDefault(),t.stopPropagation(),this.setState({is_editing:!1}),this.props.actions.cancel(e)}render(){let{actions:e,id:t}=this.props;return this.state.is_editing?s().createElement("td",{className:"actions"},s().createElement("a",{href:"",onClick:this.onSave.bind(this,t),"data-tip":"save"},s().createElement("i",{className:"fa fa-floppy-o"})),s().createElement("a",{href:"",onClick:this.onCancel.bind(this,t),"data-tip":"cancel"},s().createElement("i",{className:"fa fa-times"}))):s().createElement("td",{className:"actions"},"edit"in e&&s().createElement("a",{href:"",onClick:this.onEdit.bind(this,t),"data-tip":"edit"},s().createElement("i",{className:"fa fa-pencil-square-o"})),"delete"in e&&s().createElement("a",{href:"",onClick:this.onDelete.bind(this,t),"data-tip":"delete"},s().createElement("i",{className:"fa fa-trash-o delete-icon"})))}}class d extends s().Component{render(){const{children:e,even:t,id:n}=this.props;return s().createElement("tr",{id:n,role:"row",className:t?"even":"odd"},e)}}var h=n(271),p=n.n(h),u=n(4656),m=n.n(u),w=n(2076),f=n(6793);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}const g="";class y extends s().Component{constructor(e){var t,n;super(e),this.state={rows:e.data,new_row:{}},this.onSave=null===(t=e.options.actions)||void 0===t||null===(n=t.save)||void 0===n?void 0:n.onClick,this.actions=e.options.actions||{},this.actions.edit=this.editRow.bind(this),this.actions.save=this.saveRow.bind(this),this.actions.delete=this.deleteClick.bind(this),this.actions.handleChange=this.onChangeCell.bind(this),this.actions.cancel=this.editRowCancel.bind(this),this.saveNewRow=this.saveNewRow.bind(this),this.handleNewChange=this.onChangeNewCell.bind(this)}componentDidUpdate(e,t,n){(0,f.shallowEqual)(this.props.data,e.data)||this.setState({rows:this.props.data})}saveRow(e,t){const{rows:n}=this.state;let a=n.find((t=>t.id==e));a.is_edit=!1,this.editing_row=null,this.setState({rows:n}),this.onSave(a)}deleteClick(e){var t,n;let a=null===(t=this.props.options.actions)||void 0===t||null===(n=t.delete)||void 0===n?void 0:n.onClick;this.props.options.hasOwnProperty("noAlert")?a(e):p().fire({title:m().translate("general.are_you_sure"),text:m().translate("general.remove_warning"),type:"warning",showCancelButton:!0,confirmButtonColor:"#DD6B55",confirmButtonText:m().translate("general.yes_delete")}).then((function(t){t.value&&a(e)}))}editRow(e,n){const{rows:a}=this.state;let r=a.find((t=>t.id==e));this.editing_row=function(e){for(var n=1;n<arguments.length;n++){var a=null!=arguments[n]?arguments[n]:{};n%2?v(Object(a),!0).forEach((function(n){t()(e,n,a[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):v(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}({},r),r.is_edit=!0,this.setState({rows:a})}editRowCancel(e,t){const{rows:n}=this.state;n.forEach((e=>{e.is_edit=!1}));let a=n.findIndex((t=>t.id==e));n[a]=this.editing_row,this.setState({rows:n})}onChangeCell(e){const{rows:t}=this.state;let n=e.target;t.find((e=>e.id==n.id))[n.name]=n.value,this.setState({rows:t})}onChangeNewCell(e){const{new_row:t}=this.state;let n=e.target;t[n.name]=n.value,this.setState({new_row:t})}saveNewRow(e){const{new_row:t}=this.state;e.preventDefault(),this.onSave(t),this.setState({new_row:{}})}render(){let{options:e,columns:t}=this.props,n=e.hasOwnProperty("className")?e.className:"",a=this.props.hasOwnProperty("textArea");return s().createElement("div",null,s().createElement("table",{className:"table table-striped table-bordered editableTable "+n},s().createElement("thead",null,s().createElement("tr",null,t.map(((e,t)=>{let n=e.width?e.width:g;return s().createElement(o,{width:n,key:"heading_"+t},e.value)})),this.actions&&s().createElement(o,{key:"actions_heading"},"Actions"))),s().createElement("tbody",null,t.length>0&&this.state.rows.map(((e,n)=>Array.isArray(e)&&e.length!==t.length?(console.warn(`Data at row ${n} is ${e.length}. It should be ${t.length}.`),s().createElement("tr",null)):s().createElement(d,{even:n%2==0,key:"row_"+e.id,id:e.id},((e,t,n,a)=>{var r=t.map(((t,r)=>s().createElement(l,{shouldUseTextArea:a,key:e.id+"_field"+r,name:t.columnKey,id:e.id,is_edit:e.is_edit,handleChange:n.handleChange},e[t.columnKey])));return n&&r.push(s().createElement(c,{key:"actions_"+e.id,id:e.id,actions:n})),r})(e,t,this.actions,a)))),s().createElement(d,{even:0,id:"new_row",key:"new_row"},((e,t,n,a,r)=>{var i=e.map(((e,n)=>{let i=void 0!==t[e.columnKey]?t[e.columnKey]:"";return s().createElement("td",{key:"new_row_"+n},r&&s().createElement("textarea",{className:"form-control",id:"new_"+e.columnKey,name:e.columnKey,onChange:a,value:i}),!r&&s().createElement("input",{className:"form-control",id:"new_"+e.columnKey,name:e.columnKey,onChange:a,value:i}))}));return i.push(s().createElement("td",{key:"add_new"},s().createElement("button",{className:"btn btn-default",onClick:n}," Add "))),i})(t,this.state.new_row,this.saveNewRow,this.handleNewChange,a)))),s().createElement(w.Tooltip,{delayShow:10}))}}})(),a})()));
|
|
2
2
|
//# sourceMappingURL=table-editable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/table-editable.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/utils/methods.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 \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-tooltip\"","webpack://openstack-uicore-foundation/external commonjs \"sweetalert2\"","webpack://openstack-uicore-foundation/external commonjs \"urijs\"","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-editable/EditableTableHeading.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTableRow.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTable.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 ","/**\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 moment from 'moment-timezone';\nimport URI from \"urijs\";\n\nexport const findElementPos = (obj) => {\n var curtop = -70;\n if (obj.offsetParent) {\n do {\n curtop += obj.offsetTop;\n } while (obj = obj.offsetParent);\n return [curtop];\n }\n};\n\nexport const epochToMoment = (atime) => {\n if(!atime) return atime;\n atime = atime * 1000;\n return moment(atime);\n};\n\nexport const epochToMomentTimeZone = (atime, time_zone) => {\n if(!atime) return atime;\n atime = atime * 1000;\n return moment(atime).tz(time_zone);\n};\n\nexport const formatEpoch = (atime, format = 'M/D/YYYY h:mm a') => {\n if(!atime) return atime;\n return epochToMoment(atime).format(format);\n};\n\nexport const parseLocationHour = (hour) => {\n let parsedHour = hour.toString();\n if(parsedHour.length < 4) parsedHour = `0${parsedHour}`;\n parsedHour = parsedHour.match(/.{2}/g);\n parsedHour = parsedHour.join(':');\n return parsedHour;\n}\n\nexport const objectToQueryString = (obj) => {\n var str = \"\";\n for (var key in obj) {\n if (str != \"\") {\n str += \"&\";\n }\n str += key + \"=\" + encodeURIComponent(obj[key]);\n }\n\n return str;\n};\n\nexport const getBackURL = () => {\n let url = URI(window.location.href);\n let query = url.search(true);\n let fragment = url.fragment();\n let backUrl = query.hasOwnProperty('BackUrl') ? query['BackUrl'] : null;\n if(backUrl != null && fragment != null && fragment != ''){\n backUrl += `#${fragment}`;\n }\n return backUrl;\n};\n\nexport const toSlug = (text) =>{\n text = text.toLowerCase();\n return text.replace(/[^a-zA-Z0-9]+/g,'_');\n}\n\nexport const getAuthCallback = () => {\n if(typeof window !== 'undefined') {\n return `${window.location.origin}/auth/callback`;\n }\n return null;\n};\n\nexport const getCurrentLocation = () => {\n let location = '';\n if(typeof window !== 'undefined') {\n location = window.location;\n // check if we are on iframe\n if (window.top)\n location = window.top.location;\n }\n return location;\n};\n\nexport const getOrigin = () => {\n if(typeof window !== 'undefined') {\n return window.location.origin;\n }\n return null;\n};\n\nexport const getCurrentPathName = () => {\n if(typeof window !== 'undefined') {\n return window.location.pathname;\n }\n return null;\n};\n\nexport const getCurrentHref = () => {\n if(typeof window !== 'undefined') {\n return window.location.href;\n }\n return null;\n};\n\nexport const getAllowedUserGroups = () => {\n if(typeof window !== 'undefined') {\n return window.ALLOWED_USER_GROUPS || '';\n }\n return null;\n};\n\nexport const buildAPIBaseUrl = (relativeUrl) => {\n if(typeof window !== 'undefined'){\n return `${window.API_BASE_URL}${relativeUrl}`;\n }\n return null``;\n};\n\nexport const putOnLocalStorage = (key, value) => {\n if(typeof window !== 'undefined') {\n window.localStorage.setItem(key, value);\n }\n};\n\nexport const getFromLocalStorage = (key, removeIt) => {\n if(typeof window !== 'undefined') {\n let val = window.localStorage.getItem(key);\n if(removeIt){\n console.log(`getFromLocalStorage removing key ${key}`);\n removeFromLocalStorage(key);\n }\n return val;\n }\n return null;\n};\n\nexport const removeFromLocalStorage = (key) => {\n if(typeof window !== 'undefined') {\n window.localStorage.removeItem(key);\n }\n}\n\nexport const isClearingSessionState = () => {\n if(typeof window !== 'undefined') {\n return window.clearing_session_state;\n }\n return false;\n};\n\nexport const setSessionClearingState = (val) => {\n if(typeof window !== 'undefined') {\n window.clearing_session_state = val;\n }\n};\n\nexport const getCurrentUserLanguage = () => {\n let language = 'en';\n if(typeof navigator !== 'undefined') {\n language = (navigator.languages && navigator.languages[0]) || navigator.language || navigator.userLanguage;\n }\n return language;\n};\n\nexport const scrollToError = (errors) => {\n if(Object.keys(errors).length > 0) {\n const firstError = Object.keys(errors)[0];\n const firstNode = document.getElementById(firstError);\n if (firstNode) window.scrollTo(0, findElementPos(firstNode));\n }\n};\n\nexport const hasErrors = (field, errors) => {\n if(field in errors) {\n return errors[field];\n }\n return '';\n};\n\nexport const shallowEqual = (object1, object2) => {\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (let key of keys1) {\n if (object1[key] !== object2[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const arraysEqual = (a1, a2) =>\n a1.length === a2.length && a1.every((o, idx) => shallowEqual(o, a2[idx]));\n\nexport const isEmpty = (obj) => {\n return Object.keys(obj).length === 0;\n};\n\n\nexport const base64URLEncode = (str) => {\n return str\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '')\n}\n\nexport const retryPromise = async (\n cb,\n maxNumberOfRetries = 3\n) => {\n for (let i = 0; i < maxNumberOfRetries; i++) {\n if (await cb()) {\n return true;\n }\n }\n\n return false;\n}\n\nexport const getTimeServiceUrl = () => {\n if(typeof window !== 'undefined') {\n return window.TIMEINTERVALSINCE1970_API_URL || process.env.TIMEINTERVALSINCE1970_API_URL;\n }\n return null;\n};\n\nexport const getEventLocation = (event, summitVenueCount, summitShowLocDate = null, nowUtc = null) => {\n const shouldShowVenues = (summitShowLocDate && nowUtc) ? summitShowLocDate * 1000 < nowUtc : true;\n const locationName = [];\n const { location } = event;\n\n if (!shouldShowVenues) return 'TBA';\n\n if (!location) return 'TBA';\n\n if (summitVenueCount > 1 && location.venue?.name) locationName.push(location.venue.name);\n if (location.floor?.name) locationName.push(location.floor.name);\n if (location.name) locationName.push(location.name);\n\n return locationName.length > 0 ? locationName.join(' - ') : 'TBA';\n};\n\nexport const getEventHosts = (event) => {\n let hosts = [];\n if (event.speakers?.length > 0) {\n hosts = [...event.speakers];\n }\n if (event.moderator) hosts.push(event.moderator);\n\n return hosts;\n};\n\nconst loadImage = async url => {\n const img = document.createElement('img')\n img.src = url\n img.crossOrigin = 'anonymous'\n\n return new Promise((resolve, reject) => {\n img.onload = () => resolve(img)\n img.onerror = reject\n })\n}\n\nexport const convertSVGtoImg = async (svgUrl) => {\n const img = await loadImage(svgUrl)\n const newWidth = 100\n const newHeight = Math.floor(img.naturalHeight * 100 / img.naturalWidth)\n\n const canvas = document.createElement('canvas')\n canvas.width = newWidth\n canvas.height = newHeight\n canvas.getContext('2d').drawImage(img, 0, 0, newWidth, newHeight)\n\n const url = await canvas.toDataURL(`image/png`, 1.0)\n console.log(url, newWidth, newHeight);\n return {url, width: newWidth, height: newHeight}\n}\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"moment-timezone\");","module.exports = require(\"react\");","module.exports = require(\"react-tooltip\");","module.exports = require(\"sweetalert2\");","module.exports = require(\"urijs\");","// 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';\n\nclass EditableTableHeading extends React.Component {\n\n constructor (props) {\n super(props);\n }\n\n render () {\n return (\n <th width={this.props.width}>\n {this.props.children}\n </th>\n );\n }\n\n}\n\nexport default EditableTableHeading;","import React from 'react';\n\nconst EditableTableCell = (props) => {\n\n if (props.is_edit) {\n return (\n <td>\n {!props.shouldUseTextArea &&\n <input type=\"text\" className=\"form-control\" defaultValue={props.children} name={props.name} id={props.id} onChange={props.handleChange}/>\n }\n {props.shouldUseTextArea &&\n <textarea className=\"form-control\" defaultValue={props.children} name={props.name} id={props.id} onChange={props.handleChange}/>\n }\n </td>\n );\n } else {\n return (\n <td>{props.children}</td>\n );\n }\n\n};\n\nexport default EditableTableCell;","import React from 'react';\n\nexport default class EditableActionsTableCell extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n is_editing: false\n }\n\n }\n\n onDelete(id, ev) {\n ev.preventDefault();\n ev.stopPropagation();\n\n this.props.actions.delete(id);\n }\n\n onSave(id, ev) {\n ev.preventDefault();\n ev.stopPropagation();\n\n this.setState({\n is_editing: false\n });\n\n this.props.actions.save(id);\n }\n\n onEdit(id, ev) {\n ev.preventDefault();\n ev.stopPropagation();\n\n this.setState({\n is_editing: true\n });\n\n this.props.actions.edit(id);\n }\n\n onCancel(id, ev) {\n ev.preventDefault();\n ev.stopPropagation();\n\n this.setState({\n is_editing: false\n });\n\n this.props.actions.cancel(id);\n }\n\n render() {\n let {actions, id} = this.props;\n\n if (this.state.is_editing) {\n return (\n <td className=\"actions\">\n <a href=\"\" onClick={this.onSave.bind(this,id)} data-tip=\"save\" >\n <i className=\"fa fa-floppy-o\"></i>\n </a>\n <a href=\"\" onClick={this.onCancel.bind(this,id)} data-tip=\"cancel\" >\n <i className=\"fa fa-times\"></i>\n </a>\n </td>\n );\n } else {\n return (\n <td className=\"actions\">\n {'edit' in actions &&\n <a href=\"\" onClick={this.onEdit.bind(this,id)} data-tip=\"edit\" >\n <i className=\"fa fa-pencil-square-o\"></i>\n </a>\n }\n {'delete' in actions &&\n <a href=\"\" onClick={this.onDelete.bind(this,id)} data-tip=\"delete\" >\n <i className=\"fa fa-trash-o delete-icon\"></i>\n </a>\n }\n </td>\n );\n }\n }\n};\n","import React from 'react';\n\nexport default class EditableTableRow extends React.Component {\n\n render() {\n const { children, even, id } = this.props;\n\n return (\n <tr id={id} role=\"row\" className={even ? 'even' : 'odd'}>\n {children}\n </tr>\n );\n }\n}\n","import React from 'react';\nimport EditableTableHeading from './EditableTableHeading';\nimport EditableTableCell from './EditableTableCell';\nimport EditableActionsTableCell from './EditableActionsTableCell';\nimport EditableTableRow from './EditableTableRow';\nimport Swal from \"sweetalert2\";\nimport T from \"i18n-react/dist/i18n-react\";\nimport ReactTooltip from \"react-tooltip\";\nimport { shallowEqual } from '../../utils/methods'\n\nimport './editable-table.less';\n\n\nconst defaults = {\n colWidth: ''\n};\n\nconst createRow = (row, columns, actions, shouldUseTextArea) => {\n\n var action_buttons = '';\n var cells = columns.map((col,i) => {\n return (\n <EditableTableCell shouldUseTextArea={shouldUseTextArea} key={row['id'] + '_field' + i} name={col.columnKey} id={row.id} is_edit={row.is_edit} handleChange={actions.handleChange}>\n {row[col.columnKey]}\n </EditableTableCell>\n );\n });\n\n if (actions) {\n cells.push(<EditableActionsTableCell key={'actions_' + row['id']} id={row['id']} actions={actions}/>);\n }\n\n return cells;\n};\n\nconst createNewRow = (columns, new_row, addNew, handleChange, shouldUseTextArea) => {\n\n var cells = columns.map((col,i) => {\n let cell_value = (typeof new_row[col.columnKey] !== 'undefined') ? new_row[col.columnKey] : '';\n return (\n <td key={'new_row_' + i}>\n {shouldUseTextArea &&\n <textarea className=\"form-control\" id={'new_' + col.columnKey} name={col.columnKey} onChange={handleChange}\n value={cell_value}/>\n }\n {!shouldUseTextArea &&\n <input className=\"form-control\" id={'new_' + col.columnKey} name={col.columnKey} onChange={handleChange}\n value={cell_value}/>\n }\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\n\nexport default class EditableTable extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n rows: props.data,\n new_row: {}\n };\n\n // we store the delete and save functions in props cause we need to extend them\n this.onSave = props.options.actions?.save?.onClick;\n\n this.actions = props.options.actions || {};\n this.actions.edit = this.editRow.bind(this);\n this.actions.save = this.saveRow.bind(this);\n this.actions.delete = this.deleteClick.bind(this);\n this.actions.handleChange = this.onChangeCell.bind(this);\n this.actions.cancel = this.editRowCancel.bind(this);\n\n this.saveNewRow = this.saveNewRow.bind(this);\n this.handleNewChange = this.onChangeNewCell.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if(!shallowEqual(this.props.data, prevProps.data)) {\n this.setState({rows: this.props.data})\n }\n }\n\n saveRow(id, ev) {\n const { rows } = this.state;\n let row = rows.find(r => r.id == id);\n row.is_edit = false;\n\n this.editing_row = null;\n\n this.setState({\n rows: rows\n });\n\n this.onSave(row);\n }\n\n deleteClick(id) {\n let onDelete = this.props.options.actions?.delete?.onClick;\n let noAlert = this.props.options.hasOwnProperty('noAlert');\n\n if (noAlert) {\n onDelete(id);\n } else {\n Swal.fire({\n title: T.translate(\"general.are_you_sure\"),\n text: T.translate(\"general.remove_warning\"),\n type: \"warning\",\n showCancelButton: true,\n confirmButtonColor: \"#DD6B55\",\n confirmButtonText: T.translate(\"general.yes_delete\")\n }).then(function(result){\n if (result.value) {\n onDelete(id);\n }\n });\n }\n }\n\n editRow(id, ev) {\n const { rows } = this.state;\n let row = rows.find(r => r.id == id);\n\n //save editing row for cancel\n this.editing_row = {...row};\n\n row.is_edit = true;\n\n this.setState({\n rows: rows\n });\n }\n\n editRowCancel(id, ev) {\n const { rows } = this.state;\n rows.forEach(r => {\n r.is_edit = false;\n });\n\n let rowIdx = rows.findIndex(r => r.id == id);\n\n rows[rowIdx] = this.editing_row;\n\n this.setState({\n rows: rows\n });\n }\n\n onChangeCell(ev) {\n const { rows } = this.state;\n let field = ev.target;\n let row = rows.find(r => r.id == field.id);\n\n row[field.name] = field.value;\n\n this.setState({\n rows: rows\n });\n }\n\n onChangeNewCell(ev) {\n const {new_row} = this.state;\n let field = ev.target;\n\n new_row[field.name] = field.value;\n\n this.setState({\n new_row: new_row\n });\n }\n\n saveNewRow(ev) {\n const {new_row} = this.state;\n ev.preventDefault();\n\n this.onSave(new_row);\n\n this.setState({\n new_row: {}\n });\n }\n\n render() {\n let {options, columns } = this.props;\n let tableClass = options.hasOwnProperty('className') ? options.className : '';\n let textArea = this.props.hasOwnProperty(\"textArea\");\n return (\n <div>\n <table className={\"table table-striped table-bordered editableTable \" + tableClass}>\n <thead>\n <tr>\n {columns.map((col,i) => {\n let colWidth = (col.width) ? col.width : defaults.colWidth;\n return (\n <EditableTableHeading width={colWidth} key={'heading_' + i} >\n {col.value}\n </EditableTableHeading>\n );\n })}\n {this.actions &&\n <EditableTableHeading key='actions_heading' >\n Actions\n </EditableTableHeading>\n }\n </tr>\n </thead>\n <tbody>\n {columns.length > 0 && this.state.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 <EditableTableRow even={i%2 === 0} key={'row_' + row.id} id={row.id} >\n {createRow(row, columns, this.actions, textArea)}\n </EditableTableRow>\n\n );\n })}\n <EditableTableRow even={0} id='new_row' key='new_row'>\n {createNewRow(columns, this.state.new_row, this.saveNewRow, this.handleNewChange, textArea)}\n </EditableTableRow>\n </tbody>\n </table>\n <ReactTooltip delayShow={10} />\n </div>\n );\n }\n};\n"],"names":["root","factory","exports","module","define","amd","this","shallowEqual","object1","object2","keys1","Object","keys","keys2","length","key","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","EditableTableHeading","React","constructor","props","super","render","width","children","is_edit","shouldUseTextArea","type","className","defaultValue","name","id","onChange","handleChange","EditableActionsTableCell","state","is_editing","onDelete","ev","preventDefault","stopPropagation","actions","delete","onSave","setState","save","onEdit","edit","onCancel","cancel","href","onClick","bind","EditableTableRow","even","role","defaults","EditableTable","rows","data","new_row","options","editRow","saveRow","deleteClick","onChangeCell","editRowCancel","saveNewRow","handleNewChange","onChangeNewCell","componentDidUpdate","prevProps","prevState","snapshot","row","find","editing_row","Swal","title","T","text","showCancelButton","confirmButtonColor","confirmButtonText","then","result","forEach","rowIdx","findIndex","field","target","columns","tableClass","textArea","map","col","i","colWidth","Array","isArray","console","warn","cells","columnKey","push","createRow","addNew","cell_value","createNewRow","delayShow"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"components/table-editable.js","mappings":"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","sources":["webpack://openstack-uicore-foundation/webpack/universalModuleDefinition","webpack://openstack-uicore-foundation/./src/utils/methods.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 \"moment-timezone\"","webpack://openstack-uicore-foundation/external commonjs \"react\"","webpack://openstack-uicore-foundation/external commonjs \"react-tooltip\"","webpack://openstack-uicore-foundation/external commonjs \"sweetalert2\"","webpack://openstack-uicore-foundation/external commonjs \"urijs\"","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-editable/EditableTableHeading.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableActionsTableCell.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTableRow.js","webpack://openstack-uicore-foundation/./src/components/table-editable/EditableTable.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 ","/**\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 moment from 'moment-timezone';\nimport URI from \"urijs\";\n\nexport const findElementPos = (obj) => {\n var curtop = -70;\n if (obj.offsetParent) {\n do {\n curtop += obj.offsetTop;\n } while (obj = obj.offsetParent);\n return [curtop];\n }\n};\n\nexport const epochToMoment = (atime) => {\n if(!atime) return atime;\n atime = atime * 1000;\n return moment(atime);\n};\n\nexport const epochToMomentTimeZone = (atime, time_zone) => {\n if(!atime) return atime;\n atime = atime * 1000;\n return moment(atime).tz(time_zone);\n};\n\nexport const formatEpoch = (atime, format = 'M/D/YYYY h:mm a') => {\n if(!atime) return atime;\n return epochToMoment(atime).format(format);\n};\n\nexport const parseLocationHour = (hour) => {\n let parsedHour = hour.toString();\n if(parsedHour.length < 4) parsedHour = `0${parsedHour}`;\n parsedHour = parsedHour.match(/.{2}/g);\n parsedHour = parsedHour.join(':');\n return parsedHour;\n}\n\nexport const objectToQueryString = (obj) => {\n var str = \"\";\n for (var key in obj) {\n if (str != \"\") {\n str += \"&\";\n }\n str += key + \"=\" + encodeURIComponent(obj[key]);\n }\n\n return str;\n};\n\nexport const getBackURL = () => {\n let url = URI(window.location.href);\n let query = url.search(true);\n let fragment = url.fragment();\n let backUrl = query.hasOwnProperty('BackUrl') ? query['BackUrl'] : null;\n if(backUrl != null && fragment != null && fragment != ''){\n backUrl += `#${fragment}`;\n }\n return backUrl;\n};\n\nexport const toSlug = (text) =>{\n text = text.toLowerCase();\n return text.replace(/[^a-zA-Z0-9]+/g,'_');\n}\n\nexport const getAuthCallback = () => {\n if(typeof window !== 'undefined') {\n return `${window.location.origin}/auth/callback`;\n }\n return null;\n};\n\nexport const getCurrentLocation = () => {\n let location = '';\n if(typeof window !== 'undefined') {\n location = window.location;\n // check if we are on iframe\n if (window.top)\n location = window.top.location;\n }\n return location;\n};\n\nexport const getOrigin = () => {\n if(typeof window !== 'undefined') {\n return window.location.origin;\n }\n return null;\n};\n\nexport const getCurrentPathName = () => {\n if(typeof window !== 'undefined') {\n return window.location.pathname;\n }\n return null;\n};\n\nexport const getCurrentHref = () => {\n if(typeof window !== 'undefined') {\n return window.location.href;\n }\n return null;\n};\n\nexport const getAllowedUserGroups = () => {\n if(typeof window !== 'undefined') {\n return window.ALLOWED_USER_GROUPS || '';\n }\n return null;\n};\n\nexport const buildAPIBaseUrl = (relativeUrl) => {\n if(typeof window !== 'undefined'){\n return `${window.API_BASE_URL}${relativeUrl}`;\n }\n return null``;\n};\n\nexport const putOnLocalStorage = (key, value) => {\n if(typeof window !== 'undefined') {\n window.localStorage.setItem(key, value);\n }\n};\n\nexport const getFromLocalStorage = (key, removeIt) => {\n if(typeof window !== 'undefined') {\n let val = window.localStorage.getItem(key);\n if(removeIt){\n console.log(`getFromLocalStorage removing key ${key}`);\n removeFromLocalStorage(key);\n }\n return val;\n }\n return null;\n};\n\nexport const removeFromLocalStorage = (key) => {\n if(typeof window !== 'undefined') {\n window.localStorage.removeItem(key);\n }\n}\n\nexport const isClearingSessionState = () => {\n if(typeof window !== 'undefined') {\n return window.clearing_session_state;\n }\n return false;\n};\n\nexport const setSessionClearingState = (val) => {\n if(typeof window !== 'undefined') {\n window.clearing_session_state = val;\n }\n};\n\nexport const getCurrentUserLanguage = () => {\n let language = 'en';\n if(typeof navigator !== 'undefined') {\n language = (navigator.languages && navigator.languages[0]) || navigator.language || navigator.userLanguage;\n }\n return language;\n};\n\nexport const scrollToError = (errors) => {\n if(Object.keys(errors).length > 0) {\n const firstError = Object.keys(errors)[0];\n const firstNode = document.getElementById(firstError);\n if (firstNode) window.scrollTo(0, findElementPos(firstNode));\n }\n};\n\nexport const hasErrors = (field, errors) => {\n if(field in errors) {\n return errors[field];\n }\n return '';\n};\n\nexport const shallowEqual = (object1, object2) => {\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n for (let key of keys1) {\n if (object1[key] !== object2[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const arraysEqual = (a1, a2) =>\n a1.length === a2.length && a1.every((o, idx) => shallowEqual(o, a2[idx]));\n\nexport const isEmpty = (obj) => {\n return Object.keys(obj).length === 0;\n};\n\n\nexport const base64URLEncode = (str) => {\n return str\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '')\n}\n\nexport const retryPromise = async (\n cb,\n maxNumberOfRetries = 3\n) => {\n for (let i = 0; i < maxNumberOfRetries; i++) {\n if (await cb()) {\n return true;\n }\n }\n\n return false;\n}\n\nexport const getTimeServiceUrl = () => {\n if(typeof window !== 'undefined') {\n return window.TIMEINTERVALSINCE1970_API_URL || process.env.TIMEINTERVALSINCE1970_API_URL;\n }\n return null;\n};\n\nexport const getEventLocation = (event, summitVenueCount, summitShowLocDate = null, nowUtc = null) => {\n const shouldShowVenues = (summitShowLocDate && nowUtc) ? summitShowLocDate * 1000 < nowUtc : true;\n const locationName = [];\n const { location } = event;\n\n if (!shouldShowVenues) return 'TBA';\n\n if (!location) return 'TBA';\n\n if (summitVenueCount > 1 && location.venue?.name) locationName.push(location.venue.name);\n if (location.floor?.name) locationName.push(location.floor.name);\n if (location.name) locationName.push(location.name);\n\n return locationName.length > 0 ? locationName.join(' - ') : 'TBA';\n};\n\nexport const getEventHosts = (event) => {\n let hosts = [];\n if (event.speakers?.length > 0) {\n hosts = [...event.speakers];\n }\n if (event.moderator) hosts.push(event.moderator);\n\n return hosts;\n};\n\nconst loadImage = async url => {\n const img = document.createElement('img')\n img.src = url\n img.crossOrigin = 'anonymous'\n\n return new Promise((resolve, reject) => {\n img.onload = () => resolve(img)\n img.onerror = reject\n })\n}\n\nexport const convertSVGtoImg = async (svgUrl) => {\n const img = await loadImage(svgUrl)\n const newWidth = 100\n const newHeight = Math.floor(img.naturalHeight * 100 / img.naturalWidth)\n\n const canvas = document.createElement('canvas')\n canvas.width = newWidth\n canvas.height = newHeight\n canvas.getContext('2d').drawImage(img, 0, 0, newWidth, newHeight)\n\n const url = await canvas.toDataURL(`image/png`, 1.0)\n console.log(url, newWidth, newHeight);\n return {url, width: newWidth, height: newHeight}\n}\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"i18n-react/dist/i18n-react\");","module.exports = require(\"moment-timezone\");","module.exports = require(\"react\");","module.exports = require(\"react-tooltip\");","module.exports = require(\"sweetalert2\");","module.exports = require(\"urijs\");","// 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';\n\nclass EditableTableHeading extends React.Component {\n\n constructor (props) {\n super(props);\n }\n\n render () {\n return (\n <th width={this.props.width}>\n {this.props.children}\n </th>\n );\n }\n\n}\n\nexport default EditableTableHeading;","import React from 'react';\n\nconst EditableTableCell = (props) => {\n\n if (props.is_edit) {\n return (\n <td>\n {!props.shouldUseTextArea &&\n <input type=\"text\" className=\"form-control\" defaultValue={props.children} name={props.name} id={props.id} onChange={props.handleChange}/>\n }\n {props.shouldUseTextArea &&\n <textarea className=\"form-control\" defaultValue={props.children} name={props.name} id={props.id} onChange={props.handleChange}/>\n }\n </td>\n );\n } else {\n return (\n <td>{props.children}</td>\n );\n }\n\n};\n\nexport default EditableTableCell;","import React from 'react';\n\nexport default class EditableActionsTableCell extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n is_editing: false\n }\n\n }\n\n onDelete(id, ev) {\n ev.preventDefault();\n ev.stopPropagation();\n\n this.props.actions.delete(id);\n }\n\n onSave(id, ev) {\n ev.preventDefault();\n ev.stopPropagation();\n\n this.setState({\n is_editing: false\n });\n\n this.props.actions.save(id);\n }\n\n onEdit(id, ev) {\n ev.preventDefault();\n ev.stopPropagation();\n\n this.setState({\n is_editing: true\n });\n\n this.props.actions.edit(id);\n }\n\n onCancel(id, ev) {\n ev.preventDefault();\n ev.stopPropagation();\n\n this.setState({\n is_editing: false\n });\n\n this.props.actions.cancel(id);\n }\n\n render() {\n let {actions, id} = this.props;\n\n if (this.state.is_editing) {\n return (\n <td className=\"actions\">\n <a href=\"\" onClick={this.onSave.bind(this,id)} data-tip=\"save\" >\n <i className=\"fa fa-floppy-o\"></i>\n </a>\n <a href=\"\" onClick={this.onCancel.bind(this,id)} data-tip=\"cancel\" >\n <i className=\"fa fa-times\"></i>\n </a>\n </td>\n );\n } else {\n return (\n <td className=\"actions\">\n {'edit' in actions &&\n <a href=\"\" onClick={this.onEdit.bind(this,id)} data-tip=\"edit\" >\n <i className=\"fa fa-pencil-square-o\"></i>\n </a>\n }\n {'delete' in actions &&\n <a href=\"\" onClick={this.onDelete.bind(this,id)} data-tip=\"delete\" >\n <i className=\"fa fa-trash-o delete-icon\"></i>\n </a>\n }\n </td>\n );\n }\n }\n};\n","import React from 'react';\n\nexport default class EditableTableRow extends React.Component {\n\n render() {\n const { children, even, id } = this.props;\n\n return (\n <tr id={id} role=\"row\" className={even ? 'even' : 'odd'}>\n {children}\n </tr>\n );\n }\n}\n","import React from 'react';\nimport EditableTableHeading from './EditableTableHeading';\nimport EditableTableCell from './EditableTableCell';\nimport EditableActionsTableCell from './EditableActionsTableCell';\nimport EditableTableRow from './EditableTableRow';\nimport Swal from \"sweetalert2\";\nimport T from \"i18n-react/dist/i18n-react\";\nimport { Tooltip } from \"react-tooltip\";\nimport { shallowEqual } from '../../utils/methods'\n\nimport './editable-table.less';\n\n\nconst defaults = {\n colWidth: ''\n};\n\nconst createRow = (row, columns, actions, shouldUseTextArea) => {\n\n var action_buttons = '';\n var cells = columns.map((col,i) => {\n return (\n <EditableTableCell shouldUseTextArea={shouldUseTextArea} key={row['id'] + '_field' + i} name={col.columnKey} id={row.id} is_edit={row.is_edit} handleChange={actions.handleChange}>\n {row[col.columnKey]}\n </EditableTableCell>\n );\n });\n\n if (actions) {\n cells.push(<EditableActionsTableCell key={'actions_' + row['id']} id={row['id']} actions={actions}/>);\n }\n\n return cells;\n};\n\nconst createNewRow = (columns, new_row, addNew, handleChange, shouldUseTextArea) => {\n\n var cells = columns.map((col,i) => {\n let cell_value = (typeof new_row[col.columnKey] !== 'undefined') ? new_row[col.columnKey] : '';\n return (\n <td key={'new_row_' + i}>\n {shouldUseTextArea &&\n <textarea className=\"form-control\" id={'new_' + col.columnKey} name={col.columnKey} onChange={handleChange}\n value={cell_value}/>\n }\n {!shouldUseTextArea &&\n <input className=\"form-control\" id={'new_' + col.columnKey} name={col.columnKey} onChange={handleChange}\n value={cell_value}/>\n }\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\n\nexport default class EditableTable extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n rows: props.data,\n new_row: {}\n };\n\n // we store the delete and save functions in props cause we need to extend them\n this.onSave = props.options.actions?.save?.onClick;\n\n this.actions = props.options.actions || {};\n this.actions.edit = this.editRow.bind(this);\n this.actions.save = this.saveRow.bind(this);\n this.actions.delete = this.deleteClick.bind(this);\n this.actions.handleChange = this.onChangeCell.bind(this);\n this.actions.cancel = this.editRowCancel.bind(this);\n\n this.saveNewRow = this.saveNewRow.bind(this);\n this.handleNewChange = this.onChangeNewCell.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n if(!shallowEqual(this.props.data, prevProps.data)) {\n this.setState({rows: this.props.data})\n }\n }\n\n saveRow(id, ev) {\n const { rows } = this.state;\n let row = rows.find(r => r.id == id);\n row.is_edit = false;\n\n this.editing_row = null;\n\n this.setState({\n rows: rows\n });\n\n this.onSave(row);\n }\n\n deleteClick(id) {\n let onDelete = this.props.options.actions?.delete?.onClick;\n let noAlert = this.props.options.hasOwnProperty('noAlert');\n\n if (noAlert) {\n onDelete(id);\n } else {\n Swal.fire({\n title: T.translate(\"general.are_you_sure\"),\n text: T.translate(\"general.remove_warning\"),\n type: \"warning\",\n showCancelButton: true,\n confirmButtonColor: \"#DD6B55\",\n confirmButtonText: T.translate(\"general.yes_delete\")\n }).then(function(result){\n if (result.value) {\n onDelete(id);\n }\n });\n }\n }\n\n editRow(id, ev) {\n const { rows } = this.state;\n let row = rows.find(r => r.id == id);\n\n //save editing row for cancel\n this.editing_row = {...row};\n\n row.is_edit = true;\n\n this.setState({\n rows: rows\n });\n }\n\n editRowCancel(id, ev) {\n const { rows } = this.state;\n rows.forEach(r => {\n r.is_edit = false;\n });\n\n let rowIdx = rows.findIndex(r => r.id == id);\n\n rows[rowIdx] = this.editing_row;\n\n this.setState({\n rows: rows\n });\n }\n\n onChangeCell(ev) {\n const { rows } = this.state;\n let field = ev.target;\n let row = rows.find(r => r.id == field.id);\n\n row[field.name] = field.value;\n\n this.setState({\n rows: rows\n });\n }\n\n onChangeNewCell(ev) {\n const {new_row} = this.state;\n let field = ev.target;\n\n new_row[field.name] = field.value;\n\n this.setState({\n new_row: new_row\n });\n }\n\n saveNewRow(ev) {\n const {new_row} = this.state;\n ev.preventDefault();\n\n this.onSave(new_row);\n\n this.setState({\n new_row: {}\n });\n }\n\n render() {\n let {options, columns } = this.props;\n let tableClass = options.hasOwnProperty('className') ? options.className : '';\n let textArea = this.props.hasOwnProperty(\"textArea\");\n return (\n <div>\n <table className={\"table table-striped table-bordered editableTable \" + tableClass}>\n <thead>\n <tr>\n {columns.map((col,i) => {\n let colWidth = (col.width) ? col.width : defaults.colWidth;\n return (\n <EditableTableHeading width={colWidth} key={'heading_' + i} >\n {col.value}\n </EditableTableHeading>\n );\n })}\n {this.actions &&\n <EditableTableHeading key='actions_heading' >\n Actions\n </EditableTableHeading>\n }\n </tr>\n </thead>\n <tbody>\n {columns.length > 0 && this.state.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 <EditableTableRow even={i%2 === 0} key={'row_' + row.id} id={row.id} >\n {createRow(row, columns, this.actions, textArea)}\n </EditableTableRow>\n\n );\n })}\n <EditableTableRow even={0} id='new_row' key='new_row'>\n {createNewRow(columns, this.state.new_row, this.saveNewRow, this.handleNewChange, textArea)}\n </EditableTableRow>\n </tbody>\n </table>\n <Tooltip delayShow={10} />\n </div>\n );\n }\n};\n"],"names":["root","factory","exports","module","define","amd","this","shallowEqual","object1","object2","keys1","Object","keys","keys2","length","key","require","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","EditableTableHeading","React","constructor","props","super","render","width","children","is_edit","shouldUseTextArea","type","className","defaultValue","name","id","onChange","handleChange","EditableActionsTableCell","state","is_editing","onDelete","ev","preventDefault","stopPropagation","actions","delete","onSave","setState","save","onEdit","edit","onCancel","cancel","href","onClick","bind","EditableTableRow","even","role","defaults","EditableTable","rows","data","new_row","options","editRow","saveRow","deleteClick","onChangeCell","editRowCancel","saveNewRow","handleNewChange","onChangeNewCell","componentDidUpdate","prevProps","prevState","snapshot","row","find","editing_row","Swal","title","T","text","showCancelButton","confirmButtonColor","confirmButtonText","then","result","forEach","rowIdx","findIndex","field","target","columns","tableClass","textArea","map","col","i","colWidth","Array","isArray","console","warn","cells","columnKey","push","createRow","addNew","cell_value","createNewRow","Tooltip","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,
|
|
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:()=>b});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(null==r?void 0:r.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);const u={sortFunc:(e,t)=>e<t?-1:e>t?1:0,sortable:!1,sortCol:0,sortDir:1,colWidth:""},m=(e,t,r,n)=>e&&e===r||r===t?n:null;class y extends t().Component{constructor(e){super(e)}render(){var e,r,n;let{options:o,columns:s}=this.props,l=o.hasOwnProperty("className")?o.className:"";return l+=null!==(e=o.actions)&&void 0!==e&&e.edit?" table-hover":"",t().createElement("div",null,t().createElement("table",{className:"table table-striped selectableTable "+l},t().createElement("thead",null,t().createElement("tr",null,t().createElement("th",null,t().createElement("input",{type:"checkbox",id:"select_all",name:"select_all",onChange:null===(r=o.actions)||void 0===r||null===(n=r.edit)||void 0===n?void 0:n.onSelectedAll,checked:o.selectedAll})),s.map(((e,r)=>{let n=void 0!==o.sortCol?o.sortCol:u.sortCol,s=void 0!==o.sortDir?o.sortDir:u.sortDir,l=void 0!==o.sortFunc?o.sortFunc:u.sortFunc,a=void 0!==e.sortable?e.sortable:u.sortable,c=void 0!==e.width?e.width:u.colWidth;return t().createElement(i,{onSort:this.props.onSort,sortDir:m(e.columnKey,r,n,s),sortable:a,sortFunc:l,columnIndex:r,columnKey:e.columnKey,width:c,key:"heading_"+r},e.value)})),o.actions&&t().createElement(i,{key:"actions_heading"},o.actionsHeader||" "))),t().createElement("tbody",null,s.length>0&&this.props.data.map(((e,r)=>Array.isArray(e)&&e.length!==s.length?(console.warn(`Data at row ${r} is ${e.length}. It should be ${s.length}.`),t().createElement("tr",{key:"row_"+r})):t().createElement(d,{checked:e.checked,even:r%2==0,key:"row_"+e.id,id:e.id,actions:o.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})(e,s,o.actions)))))),t().createElement(h.Tooltip,{delayShow:10}))}}const b=y})(),n})()));
|
|
2
2
|
//# sourceMappingURL=table-selectable.js.map
|