You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1 line
181 KiB

  1. {"ast":null,"code":"import _defineProperty from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\";\nimport _asyncToGenerator from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _objectSpread from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread\";\nimport _toConsumableArray from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass\";\nimport _possibleConstructorReturn from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf\";\nimport _inherits from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits\";\nimport _assertThisInitialized from \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized\";\n\nvar _jsxFileName = \"/Users/michielcarman/Projects/React Access/React_Client_App_Access/src/shared/components/rpm-table/RpmTable.tsx\",\n _this6 = this;\n\nfunction _createForOfIteratorHelper(o) { if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) { var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var it, normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport React, { Component } from 'react'; //import Modal from \"../Modal\";\n\nimport Modal from '../../components/Modal'; //import Modal from '../ModalStyle'; // Import styles\n//import ModalStyle from '../ModalStyle'; // Import styles\n//import Modal from \"../Modal\";\n//import FileViewer from 'react-file-viewer';\n\n//import { usePdf } from 'react-pdf-js';\n//import { Document, Page } from 'react-pdf';\nimport { Table, Input, Button } from 'reactstrap';\nimport CustPag from '../pagination/Pagination';\nimport Spinner from '../../../containers/Layout/Spinner';\nimport { Link } from 'react-router-dom';\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\nimport { v4 as uuidv4 } from 'uuid';\nimport axios from 'axios';\n;\nvar emptyProductionModal = {\n id: null,\n primaryUser: '',\n description: '',\n vendor: '',\n vendorPartNumber: '',\n note: '',\n action: ''\n};\nvar emptyApplicationModal = {\n id: null,\n partNumber: 0,\n makeName: \"\",\n modelName: \"\",\n productType: \"\",\n serialPrefix: \"\",\n startingSerial: \"\",\n endingSerial: \"\",\n engineMake: \"\",\n engineModel: \"\",\n arrangement: \"\",\n oe: undefined,\n voltage: \"\",\n applicationType: \"\",\n motor: \"\",\n electrical: \"\",\n plumbing: \"\",\n customerName: \"\",\n engineCapacity: 0,\n transCapacity: 0,\n statusName: \"\",\n action: \"\"\n};\n\nvar RPMTable = /*#__PURE__*/function (_Component) {\n _inherits(RPMTable, _Component);\n\n function RPMTable(props, context) {\n var _this;\n\n _classCallCheck(this, RPMTable);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(RPMTable).call(this, props));\n\n _this.filterChangeHandler = function (evt) {\n //Grab filter name and value from the event \n var fieldName = evt.target.id;\n var fieldValue = evt.target.value.toString().toLowerCase().trim(); //Build a filter object\n\n var terms = fieldValue.split(',');\n var newestFilter = {\n fieldName: fieldName,\n searchTerms: terms\n }; //CREATE: IF ZERO FILTER OBJECTS IN activeFilter THEN ADD THE NEWEST FILTER OBJECT\n\n if (_this.state.activeFilterSet.length == 0) {\n _this.setState({\n activeFilterSet: [].concat(_toConsumableArray(_this.state.activeFilterSet), [newestFilter])\n });\n } //UPDATE: IF 1+ FILTERS EITHER UPDATE OR PUSH NEW\n\n\n if (_this.state.activeFilterSet.length >= 1) {\n var indexForDelete; //Loop through filterObjects testing to see if any are the same.\n\n for (var i = 0; i < _this.state.activeFilterSet.length; i++) {\n //CHECK TO SEE IF ITS THE SAME AS OURS. \n if (_this.state.activeFilterSet[i].fieldName === newestFilter.fieldName) {\n //For a match we take note of the index and break out of the for loop.\n indexForDelete = i;\n break;\n }\n } //Remove the filter we do not want from activeFilterSet \n\n\n var oldFilters = _this.state.activeFilterSet.filter(function (_, idx) {\n return idx !== indexForDelete;\n }); ///NOTE: if we never find an index to delete in for loop then oldFilters just becomes equal to this.state.activeFilterSet so no harm done by this statement.\n //Join our oldFilters with our newestFilter\n\n\n _this.setState({\n activeFilterSet: [].concat(_toConsumableArray(oldFilters), [newestFilter])\n });\n } //DELETE: IF EMPTY FILTER OBJECT, REMOVE THE MATCHIGN FROM STATE. \n\n\n if (newestFilter.searchTerms[0] === \"\" && typeof _this.state.activeFilterSet[0] !== undefined) {\n var indexForDel; //Find matching Index\n\n for (var _i = 0; _i < _this.state.activeFilterSet.length; _i++) {\n //CHECK TO SEE IF ITS THE SAME AS OURS. \n if (_this.state.activeFilterSet[_i].fieldName === newestFilter.fieldName) {\n indexForDel = _i;\n }\n } //Remove empty filter.\n\n\n _this.setState({\n activeFilterSet: _this.state.activeFilterSet.filter(function (_, idx) {\n return idx != indexForDel;\n })\n });\n }\n };\n\n _this.clearAllFilters = function () {\n //Manage the State\n _this.setState(_objectSpread({}, _this.state, {\n activeFilterSet: []\n })); //Clear items in the DOM. // TODO: Manage this with STATE! Not Vanilla JS. \n\n\n var filters = document.querySelectorAll('.RPMTable-filter');\n filters.forEach(function (filter) {\n if (filter.value) {\n filter.value = \"\";\n }\n });\n };\n\n _this.sortColumns = function (e, sortOrder) {\n e.preventDefault(); //This function is responsible for deciding if we are going to use an ascending or descending sort.\n\n var multiplier;\n\n switch (sortOrder) {\n case 'asc':\n multiplier = -1;\n break;\n\n case 'desc':\n multiplier = 1;\n break;\n\n default:\n break;\n } //grab the name of column to be sorted. // TODO: Manage this with state, not Vanilla JS\n\n\n var columnName = e.target.parentElement.id; //grab items and sort them. \n\n var sortedRows = _this.props.rows.sort(function (itemA, itemB) {\n if (itemA[columnName] > itemB[columnName]) {\n return -1 * multiplier;\n }\n\n if (itemA[columnName] < itemB[columnName]) {\n return 1 * multiplier;\n }\n\n if (itemA[columnName] = itemB[columnName]) {\n return 0;\n }\n\n return 0;\n }); //set the new state to the items sorted. \n\n\n _this.setState({\n data: sortedRows\n });\n };\n\n _this.changePage = function (newPage) {\n _this.setState(_objectSpread({}, _this.state, {\n activePage: newPage\n }));\n };\n\n _this.changeRowCt = function (rowCt) {\n _this.setState(_objectSpread({}, _this.state, {\n rowsPerPage: rowCt\n }));\n };\n\n _this.filterDownData = function (data) {\n var activeFilterSet = _this.state.activeFilterSet; // TODO: Optimize, Find a better way than O(n^2)\n\n var filteredSet = data.filter(function (row, idx) {\n var filterMatches = 0;\n\n var _iterator = _createForOfIteratorHelper(activeFilterSet),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var singleFilterObject = _step.value;\n\n for (var field in row) {\n if (singleFilterObject.fieldName === field) {\n if (_this.checkForMatchInFieldAgainstFilter(row, field, singleFilterObject)) {\n filterMatches += 1;\n continue;\n }\n }\n }\n\n if (filterMatches === activeFilterSet.length) {\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return false;\n });\n return filteredSet;\n };\n\n _this.checkForMatchInFieldAgainstFilter = function (row, field, singleFilterObject) {\n var searchTermsList = singleFilterObject.searchTerms;\n\n for (var k = 0; k < searchTermsList.length; k += 1) {\n //Grab testSubject (what we are searching in)\n //Grab targetTerm (what we are seaching for)\n var dirtyTestSubject = row[field];\n var dirtyTargetTerm = searchTermsList[k]; //NORMALIZE \n\n var cleanTestSubject = String(dirtyTestSubject).toLowerCase().trim();\n var cleanTargetTerm = String(dirtyTargetTerm).toLowerCase().trim();\n\n if (cleanTargetTerm.length >= 1) {\n var match = cleanTestSubject.indexOf(cleanTargetTerm) >= 0;\n return match;\n }\n }\n\n return false;\n };\n\n _this.arangeForPresentation = function (rowsIn, rowsPerPage, activePage) {\n // This funciton shoudl ONLY take in pre-filtered data, and decide how many rows are shown.\n var startRow = rowsPerPage * activePage - rowsPerPage;\n var endRow = rowsPerPage * activePage - 1;\n var arranged = rowsIn; //arranged = rowsIn.filter((row: any, i: number) =>{\n //return(i >= startRow && i <= endRow);\n\n return arranged;\n };\n\n _this.buildRowsWithLinks = function (tableType, visibleRows, openModalForEdit) {\n return visibleRows.map(function (rowData, idx) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n key: uuidv4(),\n __self: _assertThisInitialized(_assertThisInitialized(_this)),\n __source: {\n fileName: _jsxFileName,\n lineNumber: 399,\n columnNumber: 13\n }\n }, Object.entries(rowData).map(function (pair, index) {\n function handleClick(file) {\n console.log('The link was clicked.');\n console.log(file); //var URL = \"https://www.google.com/\";\n //var URL = \"file:\\\\\\\\192.168.0.220\\\\iso-qs\\\\10027R7.pdf\";\n //var URL = \"http://192.168.0.220/iso-qs/10027R7.pdf\";\n //var URL = \"http://192.168.0.220/iso-qs/10131R1.pdf\";\n\n var PATH = \"http:\\\\\\\\192.168.0.220\\\\iso-qs\\\\10131R1.pdf\";\n window.open(PATH); //window.open(file);\n\n return file;\n }\n\n function deleteItem(id) {\n console.log('Delete button clicked.', \"\".concat(id)); //await axios call\n }\n\n function getLatestPartNumberDetail(_x) {\n return _getLatestPartNumberDetail.apply(this, arguments);\n } // Exclude Statements\n\n\n function _getLatestPartNumberDetail() {\n _getLatestPartNumberDetail = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(partNumber) {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return axios.get(\"/api/application/getLatestRevision/\".concat(partNumber)).then(function (res) {\n var _res$data$items = res.data.items,\n designSpecId = _res$data$items.designSpecId,\n partNumber = _res$data$items.partNumber,\n revisionLevel = _res$data$items.revisionLevel;\n return location.href = \"/dspecs/kits/form/\".concat(designSpecId, \"/\").concat(partNumber, \"/\").concat(revisionLevel);\n }).catch(function (err) {\n alert('Couldn\\'t find any revisions for that part number');\n console.error(err);\n });\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _getLatestPartNumberDetail.apply(this, arguments);\n }\n\n var tablesToExcludeDesignSpecId = [\"general\", \"motor\", \"remote\", \"kits\", \"fittings\", \"workinstruction\"];\n\n if (tablesToExcludeDesignSpecId.includes(tableType) && (pair[0] === \"designSpecId\" || pair[0] === \"dsId\")) {\n return;\n }\n\n if (tableType === \"fittings\" && pair[0] === \"revisionLevel\") return;\n if (tableType === \"productionmaterial\" && pair[0] === \"id\") return;\n if (tableType === \"productionmaterial\" && pair[0] === \"roleId\") return;\n if (tableType === \"applications\" && pair[0] === \"id\") return;\n\n switch (tableType.toUpperCase()) {\n // GENERAL LINK GENERATION\n case 'GENERAL':\n if (pair[0] == 'partNumber') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'b',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 445,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/dspecs/\".concat(tableType, \"/form/\").concat(rowData.designSpecId, \"/\").concat(rowData.partNumber, \"/\").concat(rowData.revisionLevel),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 445,\n columnNumber: 66\n }\n }, pair[1]));\n if (pair[0] == 'revisionLevel') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'a',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/queries/revision/\".concat(rowData.partNumber),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 447,\n columnNumber: 66\n }\n }, pair[1]));\n break;\n // MOTOR LINK GENERATION\n\n case 'MOTOR':\n if (pair[0] == 'partNumber') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'f',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 452,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/dspecs/\".concat(tableType, \"/form/\").concat(rowData.designSpecId, \"/\").concat(rowData.partNumber, \"/\").concat(rowData.revisionLevel),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 452,\n columnNumber: 66\n }\n }, pair[1]));\n if (pair[0] == 'revisionLevel') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'a',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/queries/revision/\".concat(rowData.partNumber),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 454,\n columnNumber: 66\n }\n }, pair[1]));\n break;\n // REMOTE LINK GENERATION\n\n case 'REMOTE':\n if (pair[0] == 'partNumberId') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'd',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 459,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/dspecs/\".concat(tableType, \"/form/\").concat(rowData.dsId, \"/\").concat(rowData.partNumberId, \"/\").concat(rowData.revisionLevel),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 459,\n columnNumber: 66\n }\n }, pair[1]));\n if (pair[0] == 'revisionLevel') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'a',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/queries/revision/\".concat(rowData.partNumberId),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 461,\n columnNumber: 66\n }\n }, pair[1]));\n break;\n // KIT LINK GENERATION\n\n case 'KITS':\n if (pair[0] == 'partNumberId') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'f',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 466,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/dspecs/\".concat(tableType, \"/form/\").concat(rowData.dsId, \"/\").concat(rowData.partNumberId, \"/\").concat(rowData.revisionLevel),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 466,\n columnNumber: 66\n }\n }, pair[1]));\n if (pair[0] == 'revisionLevel') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'a',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 468,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/queries/revision/\".concat(rowData.partNumberId),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 468,\n columnNumber: 66\n }\n }, pair[1]));\n break;\n // REVISION LINK GENERATION\n\n case 'REVISION':\n if (pair[0] == 'revisionLevel') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'b',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 473,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/dspecs/general/form/\".concat(rowData.id, \"/\").concat(rowData.partNumberId, \"/\").concat(rowData.revisionLevel),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 473,\n columnNumber: 66\n }\n }, pair[1]));\n if (pair[0] == 'id') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'b',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 475,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/dspecs/general/form/\".concat(rowData.id, \"/\").concat(rowData.partNumberId, \"/\").concat(rowData.revisionLevel),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 475,\n columnNumber: 66\n }\n }, pair[1]));\n break;\n // APPLICATIONS LINK GENERATION\n\n case 'APPLICATIONS':\n if (pair[0] == 'partNumber') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'd',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"#\",\n onClick: function onClick() {\n return getLatestPartNumberDetail(rowData.partNumber);\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 480,\n columnNumber: 66\n }\n }, pair[1]));\n if (pair[0] == 'action') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'w',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"btn btn-inline\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 66\n }\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"lnr lnr-pencil\",\n onClick: function onClick() {\n return openModalForEdit(rowData, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 482,\n columnNumber: 101\n }\n })), /*#__PURE__*/React.createElement(\"button\", {\n className: \"btn btn-danger btn-inline\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 41\n }\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"fas fa-times\",\n onClick: function onClick() {\n return deleteItem(rowData.id);\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 483,\n columnNumber: 87\n }\n })));\n break;\n // REQUEST FOR DEVIATION LINK GENERATION\n\n case 'RFD':\n if (pair[0] == 'partNumber') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'e',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 488,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/forms/\".concat(tableType, \"/form/\") + rowData.id,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 488,\n columnNumber: 66\n }\n }, pair[1]));\n break;\n // WORK INSTRUCTION LINK GENERATION\n\n case 'WORKINSTRUCTION':\n if (pair[0] == 'partNumberId') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'd',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 493,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/dspecs/general/form/\".concat(rowData.partNumberId, \"/\").concat(rowData.revisionLevel),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 493,\n columnNumber: 66\n }\n }, pair[1]));\n if (pair[0] == 'fileName') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'y',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(\"a\", {\n href: \"inline;file:\\\\\\\\\\\\192.168.0.220\\\\\\\\iso-qs\\\\\\\\14257R1.pdf\",\n target: \"_blank\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 495,\n columnNumber: 66\n }\n }, pair[1]));\n break;\n // GENERAL LINK GENERATION\n\n case 'FITTINGS':\n if (pair[0] == 'partNumberId') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'b',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 500,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"/dspecs/general/form/\".concat(rowData.dsId, \"/\").concat(rowData.partNumberId, \"/\").concat(rowData.revisionLevel),\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 500,\n columnNumber: 66\n }\n }, pair[1]));\n if (pair[0] == 'revisionLevel') return;\n break;\n\n case 'DOCUMENTS':\n if (pair[0] == 'file') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'y',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 505,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(\"a\", {\n href: \"${rowData.file}\",\n target: \"_blank\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 505,\n columnNumber: 66\n }\n }, pair[1]));\n if (pair[0] == 'action') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'w',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 507,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"btn btn-inline\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 507,\n columnNumber: 66\n }\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"lnr lnr-pencil\",\n onClick: function onClick() {\n return openModalForEdit(rowData);\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 507,\n columnNumber: 101\n }\n })), /*#__PURE__*/React.createElement(\"button\", {\n className: \"btn btn-danger btn-inline\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 508,\n columnNumber: 41\n }\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"fas fa-times\",\n onClick: function onClick() {\n return deleteItem(rowData.id);\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 508,\n columnNumber: 87\n }\n })));\n break;\n\n case 'PRODUCTIONMATERIAL':\n if (pair[0] == 'action') return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'w',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(\"button\", {\n className: \"btn btn-inline\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 66\n }\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"lnr lnr-pencil\",\n onClick: function onClick() {\n return openModalForEdit(rowData, 'productionmaterial');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 512,\n columnNumber: 101\n }\n })), /*#__PURE__*/React.createElement(\"button\", {\n className: \"btn btn-danger btn-inline\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 513,\n columnNumber: 41\n }\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"fas fa-times\",\n onClick: function onClick() {\n return deleteItem(rowData.id);\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 513,\n columnNumber: 87\n }\n })));\n break;\n\n default:\n if (pair[0] == 'id') {\n return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'g',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 517,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: '/manage/users/' + rowData.id,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 517,\n columnNumber: 66\n }\n }, pair[1]));\n }\n\n if (pair[0] == 'designSpecId') {\n return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'g',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 520,\n columnNumber: 44\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: '/manage/users/' + rowData.id,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 520,\n columnNumber: 66\n }\n }, pair[1]));\n }\n\n } // HANDLE THE BASIC TEXT\n\n\n return /*#__PURE__*/React.createElement(\"td\", {\n key: index + 'h',\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 524,\n columnNumber: 32\n }\n }, pair[1]);\n }));\n }, _assertThisInitialized(_assertThisInitialized(_this)));\n };\n\n _this.openModalForEdit = function (rowData, tableType) {\n switch (tableType) {\n case 'applications':\n _this.setState({\n show: true,\n modalMode: 'Edit',\n rowId: rowData.id,\n applicationModalState: _this.props.rows.find(function (r) {\n return r.id == rowData.id;\n })\n });\n\n break;\n\n case 'productionmaterial':\n _this.setState({\n show: true,\n modalMode: 'Edit',\n rowId: rowData.id,\n productionModalState: _this.props.rows.find(function (r) {\n return r.id == rowData.id;\n })\n });\n\n break;\n }\n };\n\n _this.openModalForNew = function () {\n _this.setState({\n show: true,\n modalMode: 'New',\n rowId: null\n });\n };\n\n _this.modalClose = function () {\n // Reset the modal related items.\n _this.setState({\n show: false,\n rowId: null,\n modalMode: undefined,\n applicationModalState: emptyApplicationModal,\n productionModalState: emptyProductionModal\n });\n };\n\n _this.handleSave = function () {\n console.log('save clicked'); // Check the type of form ('application) to decide which specific handler to call.\n\n if (_this.props.tableType == 'applications') {\n // Call the application specific handler\n console.log('calling application save handler');\n\n _this.handleApplicationSave();\n }\n\n if (_this.props.tableType == 'productionmaterial') {\n // call the production material specific handler.\n console.log('calling production material save handler');\n\n _this.handleProductionSave();\n }\n };\n\n _this.handleApplicationSave = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var body, config;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n body = _objectSpread({}, _this.state.applicationModalState, {\n oe: _this.state.applicationModalState.oe ? _this.state.applicationModalState.oe.toString() == \"true\" : false\n });\n config = {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n }; // Idendity if \"new\" or \"edit\" to properly route.\n\n if (!(_this.state.modalMode == \"New\")) {\n _context2.next = 7;\n break;\n }\n\n //post requrest\n body.id = null;\n delete body.action;\n _context2.next = 7;\n return axios.post(\"/api/application/newapplication\", body, config).then(function (res) {\n console.log(res);\n }).catch(function (err) {\n return alert(err);\n });\n\n case 7:\n if (!(_this.state.modalMode == \"Edit\")) {\n _context2.next = 10;\n break;\n }\n\n _context2.next = 10;\n return axios.put(\"/api/application/updateapplication/\".concat(_this.state.rowId), body, config).then(function (res) {\n console.log(res); // location.href = \"/manage/applications\"\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 10:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n _this.handleProductionSave = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var body, config;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n body = _objectSpread({}, _this.state.productionModalState);\n config = {\n \"headers\": {\n \"Content-Type\": \"application/json\"\n }\n }; // Idendity if \"new\" or \"edit\" to properly route.\n\n if (!(_this.state.modalMode == \"New\")) {\n _context3.next = 7;\n break;\n }\n\n body.id = null;\n body.action = '';\n _context3.next = 7;\n return axios.post(\"/api/productionmaterial/newproductionmaterial\", body, config).then(function (res) {\n console.info(\"Successful new production material\");\n console.log(res); // Close modal. \n // Refresh Screen\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 7:\n if (!(_this.state.modalMode == \"Edit\")) {\n _context3.next = 11;\n break;\n }\n\n delete body.action;\n _context3.next = 11;\n return axios.put(\"/api/productionmaterial/updateproductionmaterial/\".concat(_this.state.productionModalState.id), body, config).then(function (res) {\n console.info(\"Successful update production material\");\n console.log(res); // Close modal. \n // Refresh Screen\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 11:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n _this.state = {\n modalMode: undefined,\n activePage: 1,\n rowsPerPage: 10,\n activeFilterSet: [],\n data: [],\n numPages: 0,\n //for use with react-pdf\n pageNumber: 1,\n //for use with react-pdf\n show: false,\n modal: false,\n productionModalState: emptyProductionModal,\n applicationModalState: emptyApplicationModal,\n name: \"\",\n rowId: 0,\n primaryUserRoles: [],\n vendors: [],\n appMakes: [],\n appModels: [],\n appTypes: [],\n engineMakes: [],\n engineModels: [],\n customers: []\n };\n return _this;\n }\n\n _createClass(RPMTable, [{\n key: \"componentDidMount\",\n value: function () {\n var _componentDidMount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var _this2 = this;\n\n var PrimaryUserRoles, Vendors, AppMakes, AppModels, AppTypes, EngineMakes, EngineModels, Customers;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n // Get the Dropdown content needed for Production Material.\n console.log('pre axios request.');\n\n if (!(this.props.tableType == \"productionmaterial\")) {\n _context4.next = 5;\n break;\n }\n\n console.log('inside if ');\n _context4.next = 5;\n return axios.get(\"/api/vendor?size=1000\").then(function (res) {\n Vendors = res.data.items.records.map(function (rec) {\n return rec.name;\n });\n console.log(Vendors);\n\n _this2.setState({\n vendors: Vendors\n });\n }).catch(function (err) {\n return console.error(err);\n });\n\n case 5:\n if (!(this.props.tableType == \"applications\")) {\n _context4.next = 8;\n break;\n }\n\n _context4.next = 8;\n return axios.all([axios.get(\"/api/make?size=100\"), axios.get(\"/api/model?size=10000\"), axios.get(\"/api/product?size=1000\"), axios.get(\"/api/make?size=100\"), axios.get(\"/api/model?size=10000\"), axios.get(\"/api/customer?size=12000\")]).then(function (resArray) {\n AppMakes = resArray[0].data.data.records.map(function (r) {\n return r.name;\n }).sort();\n AppModels = resArray[1].data.data.records.map(function (r) {\n return r.name;\n }).sort();\n AppTypes = resArray[2].data.data.records.map(function (r) {\n return r.name;\n }).sort();\n EngineMakes = resArray[3].data.data.records.map(function (r) {\n return r.name;\n }).sort();\n EngineModels = resArray[4].data.data.records.map(function (r) {\n return r.name;\n }).sort();\n Customers = resArray[5].data.data.records.map(function (r) {\n return r.name;\n }).sort();\n\n _this2.setState({\n appMakes: AppMakes,\n appModels: AppModels,\n appTypes: AppTypes,\n engineMakes: EngineMakes,\n engineModels: EngineModels,\n customers: Customers\n });\n });\n\n case 8:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function componentDidMount() {\n return _componentDidMount.apply(this, arguments);\n }\n\n return componentDidMount;\n }() // Filter Handler/Clearer\n\n }, {\n key: \"handleChange\",\n value: function handleChange(e, modalKind) {\n var target = e.target;\n var name = target.name;\n var value = target.value;\n\n switch (modalKind) {\n case 'applications':\n this.setState({\n applicationModalState: _objectSpread({}, this.state.applicationModalState, _defineProperty({}, name, value))\n });\n break;\n\n case 'productionmaterial':\n this.setState({\n productionModalState: _objectSpread({}, this.state.productionModalState, _defineProperty({}, name, value))\n });\n break;\n }\n }\n }, {\n key: \"modalOpen\",\n value: function modalOpen() {\n this.setState({\n show: true\n });\n }\n }, {\n key: \"applicationRenderer\",\n value: function applicationRenderer(formState) {\n var _this3 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 603,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 604,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 605,\n columnNumber: 21\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 606,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 606,\n columnNumber: 42\n }\n }, \"Part Number: \"), /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"partNumber\",\n value: formState.partNumber,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 607,\n columnNumber: 25\n }\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 610,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 611,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 611,\n columnNumber: 42\n }\n }, \"App Make:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 612,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 612,\n columnNumber: 42\n }\n }, \"App Model:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 613,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 613,\n columnNumber: 42\n }\n }, \"App Type:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 615,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 616,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"select\", {\n name: \"makeName\",\n value: formState.makeName,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 617,\n columnNumber: 25\n }\n }, this.state.appMakes.map(function (mk, i) {\n return /*#__PURE__*/React.createElement(\"option\", {\n key: i,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 618,\n columnNumber: 81\n }\n }, mk);\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 622,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"select\", {\n name: \"modelName\",\n value: formState.modelName,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 623,\n columnNumber: 25\n }\n }, this.state.appModels.map(function (mo, i) {\n return /*#__PURE__*/React.createElement(\"option\", {\n key: i,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 624,\n columnNumber: 82\n }\n }, mo);\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 627,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"select\", {\n name: \"productType\",\n value: formState.productType,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 628,\n columnNumber: 25\n }\n }, this.state.appTypes.map(function (ty, i) {\n return /*#__PURE__*/React.createElement(\"option\", {\n key: i,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 629,\n columnNumber: 81\n }\n }, ty);\n })))), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 633,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 634,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 635,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 635,\n columnNumber: 42\n }\n }, \"SN Prefix:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 636,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 636,\n columnNumber: 42\n }\n }, \"SN Start:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 637,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 637,\n columnNumber: 42\n }\n }, \"SN End:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 639,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 640,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"serialPrefix\",\n value: formState.serialPrefix,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 640,\n columnNumber: 42\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 641,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"startingSerial\",\n value: formState.startingSerial,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 641,\n columnNumber: 42\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 642,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"endingSerial\",\n value: formState.endingSerial,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 642,\n columnNumber: 42\n }\n }))), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 644,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 645,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 646,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 646,\n columnNumber: 42\n }\n }, \"Engine Make:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 647,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 647,\n columnNumber: 42\n }\n }, \"Engine Model:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 648,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 648,\n columnNumber: 42\n }\n }, \"Arrangement:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 650,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 651,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"select\", {\n name: \"engineMake\",\n value: formState.engineMake,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 652,\n columnNumber: 25\n }\n }, this.state.engineMakes.map(function (em, i) {\n return /*#__PURE__*/React.createElement(\"option\", {\n key: i,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 653,\n columnNumber: 84\n }\n }, em);\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 656,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"select\", {\n name: \"engineModel\",\n value: formState.engineModel,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 657,\n columnNumber: 25\n }\n }, this.state.engineModels.map(function (em, i) {\n return /*#__PURE__*/React.createElement(\"option\", {\n key: i,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 658,\n columnNumber: 85\n }\n }, em);\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 661,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"arrangement\",\n value: formState.arrangement,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 662,\n columnNumber: 25\n }\n }))), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 665,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 666,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 667,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 667,\n columnNumber: 42\n }\n }, \"OE/Reman:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 668,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 668,\n columnNumber: 42\n }\n }, \"Voltage:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 669,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 669,\n columnNumber: 42\n }\n }, \"Application Type:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 671,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 672,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"select\", {\n name: \"oe\",\n value: formState.oe ? formState.oe.toString() : \"false\",\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 673,\n columnNumber: 25\n }\n }, /*#__PURE__*/React.createElement(\"option\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 674,\n columnNumber: 29\n }\n }, \"true\"), /*#__PURE__*/React.createElement(\"option\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 675,\n columnNumber: 29\n }\n }, \"false\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 678,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"voltage\",\n value: formState.voltage,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 678,\n columnNumber: 42\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 679,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"select\", {\n name: \"applicationType\",\n value: formState.applicationType,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 680,\n columnNumber: 25\n }\n }, this.state.appTypes.map(function (at, i) {\n return /*#__PURE__*/React.createElement(\"option\", {\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 681,\n columnNumber: 78\n }\n }, at);\n })))), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 685,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 686,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 687,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 687,\n columnNumber: 42\n }\n }, \"Motor:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 688,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 688,\n columnNumber: 42\n }\n }, \"Electrical:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 689,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 689,\n columnNumber: 42\n }\n }, \"Plumbing:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 691,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 692,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"motor\",\n value: formState.motor,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 692,\n columnNumber: 42\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 693,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"electric\",\n value: formState.electrical,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 693,\n columnNumber: 42\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 694,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"plumbing\",\n value: formState.plumbing,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 694,\n columnNumber: 42\n }\n }))), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 696,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 697,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 698,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 698,\n columnNumber: 42\n }\n }, \"Customer:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 699,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 699,\n columnNumber: 42\n }\n }, \"Engine Capacity:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 700,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 700,\n columnNumber: 42\n }\n }, \"Trans Capacity:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 702,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 703,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"select\", {\n name: \"customerName\",\n value: formState.customerName,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 704,\n columnNumber: 25\n }\n }, this.state.customers.map(function (c, i) {\n return /*#__PURE__*/React.createElement(\"option\", {\n key: i,\n __self: _this3,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 705,\n columnNumber: 81\n }\n }, c);\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 708,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"engineCapacity\",\n value: formState.engineCapacity,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n pattern: \"\\\\d+(\\\\.\\\\d{1,2})?\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 708,\n columnNumber: 42\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 709,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"transCapacity\",\n value: formState.transCapacity,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 709,\n columnNumber: 42\n }\n }))), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 711,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 712,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 713,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 713,\n columnNumber: 42\n }\n }, \"Status:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 715,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 716,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n disabled: true,\n type: \"text\",\n name: \"statusName\",\n value: formState.statusName,\n onChange: function onChange(e) {\n return _this3.handleChange(e, 'applications');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 716,\n columnNumber: 42\n }\n }))));\n }\n }, {\n key: \"productionMaterialRenderer\",\n value: function productionMaterialRenderer(formState) {\n var _this4 = this;\n\n return /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 725,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 726,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 727,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 727,\n columnNumber: 42\n }\n }, \"Primary User:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 728,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 728,\n columnNumber: 42\n }\n }, \"Description:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 730,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 731,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"primaryUser\",\n value: formState.primaryUser,\n onChange: function onChange(e) {\n return _this4.handleChange(e, 'productionmaterial');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 731,\n columnNumber: 42\n }\n })), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 732,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"description\",\n value: formState.description,\n onChange: function onChange(e) {\n return _this4.handleChange(e, 'productionmaterial');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 732,\n columnNumber: 42\n }\n }))), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 734,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 735,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 736,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 736,\n columnNumber: 42\n }\n }, \"Vendor:\")), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 737,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 737,\n columnNumber: 42\n }\n }, \"Vendor Part Number:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 739,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 740,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"select\", {\n name: \"vendor\",\n value: formState.vendor,\n onChange: function onChange(e) {\n return _this4.handleChange(e, 'productionmaterial');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 741,\n columnNumber: 25\n }\n }, this.state.vendors.map(function (v, i) {\n return /*#__PURE__*/React.createElement(\"option\", {\n key: i,\n __self: _this4,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 742,\n columnNumber: 79\n }\n }, v);\n }))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 746,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"vendorPartNumber\",\n value: formState.vendorPartNumber,\n onChange: function onChange(e) {\n return _this4.handleChange(e, 'productionmaterial');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 746,\n columnNumber: 42\n }\n }))), /*#__PURE__*/React.createElement(\"br\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 748,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 749,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 750,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"label\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 750,\n columnNumber: 42\n }\n }, \"Note:\"))), /*#__PURE__*/React.createElement(\"div\", {\n className: \"row\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 752,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"col\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 753,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(\"input\", {\n type: \"text\",\n name: \"note\",\n value: formState.note,\n onChange: function onChange(e) {\n return _this4.handleChange(e, 'productionmaterial');\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 753,\n columnNumber: 42\n }\n }))));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n\n var _this$state = this.state,\n rowsPerPage = _this$state.rowsPerPage,\n activePage = _this$state.activePage,\n activeFilterSet = _this$state.activeFilterSet;\n var _this$props = this.props,\n tableType = _this$props.tableType,\n rows = _this$props.rows;\n\n if (rows == undefined) {\n rows = [];\n }\n\n var filteredRows; //Check to see if there are any filters. If there are we start filtering... \n\n var needsFiltering = activeFilterSet.length >= 1;\n\n if (needsFiltering) {\n filteredRows = this.filterDownData(rows);\n } //If no filtering occured just fill filteredRows with the original incoming prop data \n\n\n if ((filteredRows === undefined || filteredRows.length == 0) && activeFilterSet.length === 0) {\n filteredRows = rows;\n } //Ararnge for presentation. \n\n\n var visibleRows = this.arangeForPresentation(filteredRows, rowsPerPage, activePage);\n var tablesWithoutCreateButton = [\"workinstruction\", \"fittings\", \"revision\", \"applications\", \"productionmaterial\"];\n return /*#__PURE__*/React.createElement(\"div\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 873,\n columnNumber: 13\n }\n }, /*#__PURE__*/React.createElement(CustPag, {\n onChangePage: this.changePage,\n onChangeRowCt: this.changeRowCt,\n itemsCount: filteredRows.length,\n itemsToShow: rowsPerPage,\n pageOfItems: activePage,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 874,\n columnNumber: 17\n }\n }), /*#__PURE__*/React.createElement(\"div\", {\n className: \"table-scroll\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 881,\n columnNumber: 17\n }\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"top-buttons\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 882,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(Button, {\n color: \"info\",\n onClick: this.clearAllFilters,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 883,\n columnNumber: 25\n }\n }, \"Clear All Filters\"), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n color: 'red'\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 887,\n columnNumber: 25\n }\n }, rows.length === 0 ? \"This query returned 0 results\" : null), !tablesWithoutCreateButton.includes(tableType) ? /*#__PURE__*/React.createElement(CreateNewSpecButton, {\n tableType: tableType,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 891,\n columnNumber: 33\n }\n }) : null, ![\"general\", \"motor\", \"remote\", \"kits\", \"rfd\", \"workinstruction\", \"fittings\", \"revision\", \"users\"].includes(tableType) ?\n /*#__PURE__*/\n // <a href=\"javascript:;\" className=\"open-modal-btn\" onClick={e => this.modalOpen()}> Create </a> \n React.createElement(Button, {\n className: \"float-right\",\n onClick: function onClick(e) {\n return _this5.openModalForNew();\n },\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 898,\n columnNumber: 33\n }\n }, \"Create\") : null), /*#__PURE__*/React.createElement(Table, {\n striped: true,\n hover: true,\n className: \"RPMTable\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 904,\n columnNumber: 21\n }\n }, /*#__PURE__*/React.createElement(TableHead, {\n headers: this.props.heads,\n onFilterChange: this.filterChangeHandler,\n sortColumns: this.sortColumns,\n isLoading: this.props.isLoading,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 905,\n columnNumber: 25\n }\n }), /*#__PURE__*/React.createElement(\"tbody\", {\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 906,\n columnNumber: 25\n }\n }, this.buildRowsWithLinks(tableType, visibleRows, this.openModalForEdit)))), /*#__PURE__*/React.createElement(CustPag, {\n onChangePage: this.changePage,\n onChangeRowCt: this.changeRowCt,\n itemsCount: filteredRows.length,\n itemsToShow: rowsPerPage,\n pageOfItems: activePage,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 914,\n columnNumber: 17\n }\n }), this.state.show ? /*#__PURE__*/React.createElement(\"div\", {\n onClick: function onClick(e) {\n return _this5.modalClose();\n },\n className: \"modal-wrapper\",\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 923,\n columnNumber: 36\n }\n }) : null, /*#__PURE__*/React.createElement(Modal //className=\"modal\"\n , {\n show: this.state.show,\n handleClose: this.modalClose,\n handleSave: this.handleSave,\n title: tableType,\n modalMode: this.state.modalMode,\n rowId: this.state.rowId,\n __self: this,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 925,\n columnNumber: 17\n }\n }, tableType == \"applications\" && this.applicationRenderer(this.state.applicationModalState), tableType == \"productionmaterial\" && this.productionMaterialRenderer(this.state.productionModalState)));\n }\n }]);\n\n return RPMTable;\n}(Component);\n\nexport { RPMTable as default };\n\nvar TableHead = function TableHead(props) {\n var headers = props.headers;\n var onFilterChange = props.onFilterChange;\n var sortColumns = props.sortColumns;\n var isLoading = props.isLoading;\n return /*#__PURE__*/React.createElement(\"thead\", {\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 950,\n columnNumber: 9\n }\n }, /*#__PURE__*/React.createElement(TableRow, {\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 952,\n columnNumber: 13\n }\n }, headers.map(function (header) {\n return /*#__PURE__*/React.createElement(\"th\", {\n key: header.key + \"-title\",\n id: header.key,\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 955,\n columnNumber: 25\n }\n }, header.name, /*#__PURE__*/React.createElement(ArrowUpwardIcon, {\n onClick: function onClick(e) {\n return sortColumns(e, 'asc');\n },\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 957,\n columnNumber: 29\n }\n }), /*#__PURE__*/React.createElement(ArrowDownwardIcon, {\n onClick: function onClick(e) {\n return sortColumns(e, 'desc');\n },\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 958,\n columnNumber: 29\n }\n }));\n })), isLoading ? /*#__PURE__*/React.createElement(\"tr\", {\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 965,\n columnNumber: 29\n }\n }, /*#__PURE__*/React.createElement(\"th\", {\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 965,\n columnNumber: 33\n }\n }, /*#__PURE__*/React.createElement(Spinner, {\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 965,\n columnNumber: 37\n }\n }))) : null, /*#__PURE__*/React.createElement(TableRow, {\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 967,\n columnNumber: 13\n }\n }, headers.map(function (filter, idx) {\n return /*#__PURE__*/React.createElement(\"th\", {\n key: filter.key + '-filter',\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 970,\n columnNumber: 25\n }\n }, /*#__PURE__*/React.createElement(Input, {\n key: filter.key + '-filter',\n type: \"text\",\n placeholder: \"\",\n onChange: onFilterChange,\n disabled: !filter.filterable,\n className: \"RPMTable-filter\",\n id: filter.key,\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 970,\n columnNumber: 58\n }\n }));\n })));\n};\n\nvar TableRow = function TableRow(props) {\n return /*#__PURE__*/React.createElement(\"tr\", {\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 985,\n columnNumber: 34\n }\n }, props.children);\n};\n\nvar CreateNewSpecButton = function CreateNewSpecButton(props) {\n return /*#__PURE__*/React.createElement(Button, {\n color: \"info\",\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 987,\n columnNumber: 45\n }\n }, /*#__PURE__*/React.createElement(Link, {\n to: \"\".concat(props.tableType, \"/form/new\"),\n __self: _this6,\n __source: {\n fileName: _jsxFileName,\n lineNumber: 987,\n columnNumber: 66\n }\n }, \"Create\"));\n}; // const Modal = ( handleClose:any, show:any ) => {\n// const showHideClassName = show ? \"modal display-block\" : \"modal display-none\";\n// return (\n// <div className={showHideClassName}>\n// <section className=\"modal-main\">\n// <button onClick={handleClose}>close</button>\n// </section>\n// </div>\n// );\n// };","map":{"version":3,"sources":["/Users/michielcarman/Projects/React Access/React_Client_App_Access/src/shared/components/rpm-table/RpmTable.tsx"],"names":["React","Component","Modal","Table","Input","Button","CustPag","Spinner","Link","ArrowUpwardIcon","ArrowDownwardIcon","v4","uuidv4","axios","emptyProductionModal","id","primaryUser","description","vendor","vendorPartNumber","note","action","emptyApplicationModal","partNumber","makeName","modelName","productType","serialPrefix","startingSerial","endingSerial","engineMake","engineModel","arrangement","oe","undefined","voltage","applicationType","motor","electrical","plumbing","customerName","engineCapacity","transCapacity","statusName","RPMTable","props","context","filterChangeHandler","evt","fieldName","target","fieldValue","value","toString","toLowerCase","trim","terms","split","newestFilter","searchTerms","state","activeFilterSet","length","setState","indexForDelete","i","oldFilters","filter","_","idx","indexForDel","clearAllFilters","filters","document","querySelectorAll","forEach","sortColumns","e","sortOrder","preventDefault","multiplier","columnName","parentElement","sortedRows","rows","sort","itemA","itemB","data","changePage","newPage","activePage","changeRowCt","rowCt","rowsPerPage","filterDownData","filteredSet","row","filterMatches","singleFilterObject","field","checkForMatchInFieldAgainstFilter","searchTermsList","k","dirtyTestSubject","dirtyTargetTerm","cleanTestSubject","String","cleanTargetTerm","match","indexOf","arangeForPresentation","rowsIn","startRow","endRow","arranged","buildRowsWithLinks","tableType","visibleRows","openModalForEdit","map","rowData","Object","entries","pair","index","handleClick","file","console","log","PATH","window","open","deleteItem","getLatestPartNumberDetail","get","then","res","items","designSpecId","revisionLevel","location","href","catch","err","alert","error","tablesToExcludeDesignSpecId","includes","toUpperCase","dsId","partNumberId","show","modalMode","rowId","applicationModalState","find","r","productionModalState","openModalForNew","modalClose","handleSave","handleApplicationSave","handleProductionSave","body","config","headers","post","put","info","numPages","pageNumber","modal","name","primaryUserRoles","vendors","appMakes","appModels","appTypes","engineMakes","engineModels","customers","Vendors","records","rec","all","resArray","AppMakes","AppModels","AppTypes","EngineMakes","EngineModels","Customers","modalKind","formState","handleChange","mk","mo","ty","em","at","c","v","filteredRows","needsFiltering","tablesWithoutCreateButton","color","heads","isLoading","applicationRenderer","productionMaterialRenderer","TableHead","onFilterChange","header","key","filterable","TableRow","children","CreateNewSpecButton"],"mappings":"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","sourcesContent":["import React, { Component, useState, useEffect, useRef } from 'react';\n//import Modal from \"../Modal\";\nimport Modal from '../../components/Modal';\n//import Modal from '../ModalStyle'; // Import styles\n//import ModalStyle from '../ModalStyle'; // Import styles\n//import Modal from \"../Modal\";\n//import FileViewer from 'react-file-viewer';\nimport { Document } from 'react-pdf'\n//import { usePdf } from 'react-pdf-js';\n//import { Document, Page } from 'react-pdf';\nimport { Table, Input, Button, ModalBody } from 'reactstrap';\nimport _ from 'lodash';\nimport CustPag from '../pagination/Pagination'\nimport Spinner from '../../../containers/Layout/Spinner'\nimport { Link } from 'react-router-dom';\nimport ArrowUpwardIcon from '@material-ui/icons/ArrowUpward';\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\nimport { v4 as uuidv4 } from 'uuid'; import axios from 'axios';\nimport { table } from 'console';\n// TODO:// Replace UUID with actual table unique Identifiers. \nimport { ProductionMaterialDto } from '../../interfaces/ProductionMaterialDto'\nimport { ApplicationsDto } from '../../interfaces/ApplicationsDto'\nimport { RFDFormMockData } from '../mockdata/RFDFormMockData';\n\n\ninterface RPMTableProps {\n heads: Array<any>,\n rows: Array<any>,\n tableType:\n \"general\"\n | \"motor\"\n | \"remote\"\n | \"kits\"\n | \"rfd\"\n | \"workinstruction\"\n | \"fittings\"\n | \"revision\"\n | \"users\"\n | \"applications\"\n | \"documents\"\n | \"productionmaterial\"\n | \"searchResults\"\n isLoading?: boolean\n};\n\ninterface RPMTableState {\n activePage: number,\n rowsPerPage: number,\n activeFilterSet: Array<Filter>,\n data: Array<any>,\n numPages: any, //for use with react-pdf\n pageNumber: number, //for use with react-pdf\n show: boolean,\n modalMode: 'Edit' | 'New' | undefined,\n modal: boolean,\n name: string,\n rowId: number | null,\n productionModalState: ProductionMaterialDto,\n applicationModalState: ApplicationsDto\n // Production Material Validators\n primaryUserRoles: Array<string>\n vendors: Array<string>\n // Application Form Validators\n appMakes: Array<string>,\n appModels: Array<string>,\n appTypes: Array<string>,\n engineMakes: Array<string>,\n engineModels: Array<string>,\n customers: Array<string>\n}\n\ninterface Filter {\n fieldName: string,\n searchTerms: Array<string>\n}\nconst emptyProductionModal: ProductionMaterialDto = {\n id: null,\n primaryUser: '',\n description: '',\n vendor: '',\n vendorPartNumber: '',\n note: '',\n action: '',\n}\nconst emptyApplicationModal: ApplicationsDto = {\n id: null,\n partNumber: 0,\n makeName: \"\",\n modelName: \"\",\n productType: \"\",\n serialPrefix: \"\",\n startingSerial: \"\",\n endingSerial: \"\",\n engineMake: \"\",\n engineModel: \"\",\n arrangement: \"\",\n oe: undefined,\n voltage: \"\",\n applicationType: \"\",\n motor: \"\",\n electrical: \"\",\n plumbing: \"\",\n customerName: \"\",\n engineCapacity: 0,\n transCapacity: 0,\n statusName: \"\",\n action: \"\"\n}\n\nexport default class RPMTable extends Component<RPMTableProps, RPMTableState> {\n constructor(props: any, context: any) {\n super(props);\n this.state = {\n modalMode: undefined,\n activePage: 1,\n rowsPerPage: 10,\n activeFilterSet: [],\n data: [],\n numPages: 0, //for use with react-pdf\n pageNumber: 1, //for use with react-pdf\n show: false,\n modal: false,\n productionModalState: emptyProductionModal,\n applicationModalState: emptyApplicationModal,\n name: \"\",\n rowId: 0,\n primaryUserRoles: [],\n vendors: [],\n appMakes: [],\n appModels: [],\n appTypes: [],\n engineMakes: [],\n engineModels: [],\n customers: []\n };\n }\n\n async componentDidMount() {\n // Get the Dropdown content needed for Production Material.\n console.log('pre axios request.')\n if (this.props.tableType == \"productionmaterial\") {\n console.log('inside if ')\n let PrimaryUserRoles: [\"\"]\n let Vendors: [\"\"]\n // await axios.get('/api/role?size=20')\n // .then(res => {\n // PrimaryUserRoles = res.data.items.records.map((rec: { description: null, name: string, id: number }) => rec.name)\n // console.log(PrimaryUserRoles)\n // this.setState({\n // primaryUserRoles: PrimaryUserRoles\n // })\n // })\n // .catch(err => console.error(err))\n await axios.get(`/api/vendor?size=1000`)\n .then(res => {\n Vendors = res.data.items.records.map((rec: { description: null, name: string, id: number }) => rec.name)\n console.log(Vendors)\n this.setState({\n vendors: Vendors\n })\n })\n .catch(err => console.error(err))\n\n\n // await axios.all([\n // axios.get('/api/role?size=20'),\n // axios.get(`/api/vendor?size=1000`)\n // ]).then(resArr => {\n // PrimaryUserRoles = resArr[0].data.data.records.map((rec: { description: null, name: string, id: number }) => rec.name)\n // Vendors = resArr[1].data.data.records.map((vendor: { name: string, id: number }) => vendor.name);\n // console.log(Vendors)\n // this.setState({\n // primaryUserRoles: PrimaryUserRoles,\n // vendors: Vendors\n // })\n // }).catch(err => console.error(err))\n\n }\n // Get the dropdown content needed for Applications\n if (this.props.tableType == \"applications\") {\n let AppMakes: Array<string>;\n let AppModels: Array<string>;\n let AppTypes: Array<string>;\n let EngineMakes: Array<string>;\n let EngineModels: Array<string>;\n let Customers: Array<string>;\n\n\n await axios.all([\n axios.get(`/api/make?size=100`),\n axios.get(`/api/model?size=10000`),\n axios.get(`/api/product?size=1000`),\n axios.get(`/api/make?size=100`),\n axios.get(`/api/model?size=10000`),\n axios.get(`/api/customer?size=12000`)\n ])\n .then(resArray => {\n AppMakes = resArray[0].data.data.records.map((r: { name: string }) => r.name).sort()\n AppModels = resArray[1].data.data.records.map((r: { name: string }) => r.name).sort()\n AppTypes = resArray[2].data.data.records.map((r: { name: string }) => r.name).sort()\n EngineMakes = resArray[3].data.data.records.map((r: { name: string }) => r.name).sort()\n EngineModels = resArray[4].data.data.records.map((r: { name: string }) => r.name).sort()\n Customers = resArray[5].data.data.records.map((r: { name: string }) => r.name).sort()\n \n this.setState({\n appMakes: AppMakes,\n appModels: AppModels,\n appTypes: AppTypes,\n engineMakes: EngineMakes,\n engineModels: EngineModels,\n customers: Customers\n })\n })\n }\n }\n // Filter Handler/Clearer\n filterChangeHandler = (evt: any) => {\n //Grab filter name and value from the event \n let fieldName: string = evt.target.id;\n let fieldValue: string = evt.target.value.toString().toLowerCase().trim();\n\n //Build a filter object\n let terms: Array<string> = fieldValue.split(',');\n let newestFilter: Filter = {\n fieldName: fieldName,\n searchTerms: terms\n }\n\n //CREATE: IF ZERO FILTER OBJECTS IN activeFilter THEN ADD THE NEWEST FILTER OBJECT\n if (this.state.activeFilterSet.length == 0) {\n this.setState({\n activeFilterSet: [...this.state.activeFilterSet, newestFilter]\n })\n }\n\n //UPDATE: IF 1+ FILTERS EITHER UPDATE OR PUSH NEW\n if (this.state.activeFilterSet.length >= 1) {\n let indexForDelete: number;\n //Loop through filterObjects testing to see if any are the same.\n for (let i = 0; i < this.state.activeFilterSet.length; i++) {\n\n //CHECK TO SEE IF ITS THE SAME AS OURS. \n if (this.state.activeFilterSet[i].fieldName === newestFilter.fieldName) {\n //For a match we take note of the index and break out of the for loop.\n indexForDelete = i;\n break;\n }\n }\n\n //Remove the filter we do not want from activeFilterSet \n let oldFilters = this.state.activeFilterSet.filter((_, idx) => {\n return idx !== indexForDelete\n }) ///NOTE: if we never find an index to delete in for loop then oldFilters just becomes equal to this.state.activeFilterSet so no harm done by this statement.\n\n //Join our oldFilters with our newestFilter\n this.setState({\n activeFilterSet: [...oldFilters, newestFilter]\n })\n }\n\n //DELETE: IF EMPTY FILTER OBJECT, REMOVE THE MATCHIGN FROM STATE. \n if (newestFilter.searchTerms[0] === \"\" && typeof (this.state.activeFilterSet[0]) !== undefined) {\n let indexForDel: number;\n //Find matching Index\n for (let i = 0; i < this.state.activeFilterSet.length; i++) {\n //CHECK TO SEE IF ITS THE SAME AS OURS. \n if (this.state.activeFilterSet[i].fieldName === newestFilter.fieldName) {\n indexForDel = i;\n }\n }\n\n //Remove empty filter.\n this.setState({\n activeFilterSet: this.state.activeFilterSet.filter((_, idx) => {\n return idx != indexForDel;\n })\n })\n }\n\n };\n\n clearAllFilters = () => {\n //Manage the State\n this.setState({\n ...this.state,\n activeFilterSet: []\n })\n\n //Clear items in the DOM. // TODO: Manage this with STATE! Not Vanilla JS. \n let filters = document.querySelectorAll('.RPMTable-filter')\n filters.forEach((filter: any) => {\n if (filter.value) {\n filter.value = \"\"\n }\n })\n }\n\n // Sort, Pagination, \n sortColumns = (e: any, sortOrder: string) => {\n e.preventDefault();\n //This function is responsible for deciding if we are going to use an ascending or descending sort.\n let multiplier: number;\n switch (sortOrder) {\n case 'asc':\n multiplier = -1;\n break;\n case 'desc':\n multiplier = 1;\n break;\n default:\n break;\n }\n //grab the name of column to be sorted. // TODO: Manage this with state, not Vanilla JS\n const columnName: string = e.target.parentElement.id;\n //grab items and sort them. \n let sortedRows = this.props.rows.sort(function (itemA: any, itemB: any): number {\n if (itemA[columnName] > itemB[columnName]) { return (-1 * multiplier) }\n if (itemA[columnName] < itemB[columnName]) { return (1 * multiplier) }\n if (itemA[columnName] = itemB[columnName]) { return 0 }\n return 0\n })\n\n //set the new state to the items sorted. \n this.setState({\n data: sortedRows\n })\n }\n changePage = (newPage: any) => {\n this.setState({ ...this.state, activePage: newPage });\n };\n changeRowCt = (rowCt: number) => {\n this.setState({ ...this.state, rowsPerPage: rowCt });\n };\n\n\n // Render Helper functions\n filterDownData = (data: any) => {\n let { activeFilterSet } = this.state\n // TODO: Optimize, Find a better way than O(n^2)\n let filteredSet = data.filter((row: any, idx: number) => {\n let filterMatches = 0\n for (let singleFilterObject of activeFilterSet) {\n for (let field in row) {\n if (singleFilterObject.fieldName === field) {\n if (this.checkForMatchInFieldAgainstFilter(row, field, singleFilterObject)) {\n filterMatches += 1\n continue\n }\n }\n }\n if (filterMatches === activeFilterSet.length) {\n return true\n }\n }\n return false\n })\n return filteredSet\n }\n\n checkForMatchInFieldAgainstFilter = (row: any, field: string, singleFilterObject: Filter) => {\n let searchTermsList = singleFilterObject.searchTerms;\n\n for (let k = 0; k < searchTermsList.length; k += 1) {\n //Grab testSubject (what we are searching in)\n //Grab targetTerm (what we are seaching for)\n let dirtyTestSubject = row[field];\n let dirtyTargetTerm = searchTermsList[k];\n\n //NORMALIZE \n let cleanTestSubject = String(dirtyTestSubject).toLowerCase().trim();\n let cleanTargetTerm = String(dirtyTargetTerm).toLowerCase().trim();\n\n if (cleanTargetTerm.length >= 1) {\n let match: boolean = cleanTestSubject.indexOf(cleanTargetTerm) >= 0\n return match\n }\n }\n return false\n }\n\n arangeForPresentation = (rowsIn: any, rowsPerPage: number, activePage: number): [] => {\n // This funciton shoudl ONLY take in pre-filtered data, and decide how many rows are shown.\n\n const startRow = (rowsPerPage * activePage) - rowsPerPage;\n const endRow = (rowsPerPage * activePage) - 1;\n let arranged = rowsIn;\n \n \n //arranged = rowsIn.filter((row: any, i: number) =>{\n //return(i >= startRow && i <= endRow);\n \n return arranged;\n \n \n };\n\n buildRowsWithLinks = (tableType: any, visibleRows: any, openModalForEdit: any) => {\n return visibleRows.map((rowData: any, idx: number) => (\n <tr key={uuidv4()}>\n {\n Object.entries(rowData).map(function (pair: any, index: number) {\n function handleClick(file: any) {\n console.log('The link was clicked.');\n console.log(file);\n //var URL = \"https://www.google.com/\";\n //var URL = \"file:\\\\\\\\192.168.0.220\\\\iso-qs\\\\10027R7.pdf\";\n //var URL = \"http://192.168.0.220/iso-qs/10027R7.pdf\";\n //var URL = \"http://192.168.0.220/iso-qs/10131R1.pdf\";\n var PATH = \"http:\\\\\\\\192.168.0.220\\\\iso-qs\\\\10131R1.pdf\";\n window.open(PATH)\n //window.open(file);\n return (file);\n }\n\n function deleteItem(id: number) {\n console.log('Delete button clicked.', `${id}`);\n //await axios call\n }\n\n async function getLatestPartNumberDetail(partNumber: number) {\n await axios.get(`/api/application/getLatestRevision/${partNumber}`)\n .then(res => {\n const { designSpecId, partNumber, revisionLevel } = res.data.items;\n return location.href = (`/dspecs/kits/form/${designSpecId}/${partNumber}/${revisionLevel}`)\n })\n .catch(err => {\n alert('Couldn\\'t find any revisions for that part number')\n console.error(err)\n })\n }\n\n // Exclude Statements\n const tablesToExcludeDesignSpecId: string[] = [\"general\", \"motor\", \"remote\", \"kits\", \"fittings\", \"workinstruction\"]\n if (tablesToExcludeDesignSpecId.includes(tableType) && (pair[0] === \"designSpecId\" || pair[0] === \"dsId\")) {\n return;\n }\n if (tableType === \"fittings\" && pair[0] === \"revisionLevel\") return;\n if (tableType === \"productionmaterial\" && pair[0] === \"id\") return;\n if (tableType === \"productionmaterial\" && pair[0] === \"roleId\") return;\n if (tableType === \"applications\" && pair[0] === \"id\") return;\n switch (tableType.toUpperCase()) {\n // GENERAL LINK GENERATION\n case 'GENERAL':\n if (pair[0] == 'partNumber')\n return <td key={index + 'b'}><Link to={`/dspecs/${tableType}/form/${rowData.designSpecId}/${rowData.partNumber}/${rowData.revisionLevel}`}>{pair[1]}</Link></td>;\n if (pair[0] == 'revisionLevel')\n return <td key={index + 'a'}><Link to={`/queries/revision/${rowData.partNumber}`}>{pair[1]}</Link></td>;\n break;\n // MOTOR LINK GENERATION\n case 'MOTOR':\n if (pair[0] == 'partNumber')\n return <td key={index + 'f'}><Link to={`/dspecs/${tableType}/form/${rowData.designSpecId}/${rowData.partNumber}/${rowData.revisionLevel}`}>{pair[1]}</Link></td>\n if (pair[0] == 'revisionLevel')\n return <td key={index + 'a'}><Link to={`/queries/revision/${rowData.partNumber}`}>{pair[1]}</Link></td>;\n break;\n // REMOTE LINK GENERATION\n case 'REMOTE':\n if (pair[0] == 'partNumberId')\n return <td key={index + 'd'}><Link to={`/dspecs/${tableType}/form/${rowData.dsId}/${rowData.partNumberId}/${rowData.revisionLevel}`}>{pair[1]}</Link></td>;\n if (pair[0] == 'revisionLevel')\n return <td key={index + 'a'}><Link to={`/queries/revision/${rowData.partNumberId}`}>{pair[1]}</Link></td>;\n break;\n // KIT LINK GENERATION\n case 'KITS':\n if (pair[0] == 'partNumberId')\n return <td key={index + 'f'}><Link to={`/dspecs/${tableType}/form/${rowData.dsId}/${rowData.partNumberId}/${rowData.revisionLevel}`}>{pair[1]}</Link></td>\n if (pair[0] == 'revisionLevel')\n return <td key={index + 'a'}><Link to={`/queries/revision/${rowData.partNumberId}`}>{pair[1]}</Link></td>;\n break;\n // REVISION LINK GENERATION\n case 'REVISION':\n if (pair[0] == 'revisionLevel')\n return <td key={index + 'b'}><Link to={`/dspecs/general/form/${rowData.id}/${rowData.partNumberId}/${rowData.revisionLevel}`}>{pair[1]}</Link></td>;\n if (pair[0] == 'id')\n return <td key={index + 'b'}><Link to={`/dspecs/general/form/${rowData.id}/${rowData.partNumberId}/${rowData.revisionLevel}`}>{pair[1]}</Link></td>;\n break;\n // APPLICATIONS LINK GENERATION\n case 'APPLICATIONS':\n if (pair[0] == 'partNumber')\n return <td key={index + 'd'}><Link to={\"#\"} onClick={() => getLatestPartNumberDetail(rowData.partNumber)}>{pair[1]}</Link></td>\n if (pair[0] == 'action')\n return <td key={index + 'w'}><button className=\"btn btn-inline\"><i className=\"lnr lnr-pencil\" onClick={() => openModalForEdit(rowData, 'applications')}></i></button>\n <button className=\"btn btn-danger btn-inline\"><i className=\"fas fa-times\" onClick={() => deleteItem(rowData.id)}></i></button></td>\n break;\n // REQUEST FOR DEVIATION LINK GENERATION\n case 'RFD':\n if (pair[0] == 'partNumber')\n return <td key={index + 'e'}><Link to={`/forms/${tableType}/form/` + rowData.id}>{pair[1]}</Link></td>\n break;\n // WORK INSTRUCTION LINK GENERATION\n case 'WORKINSTRUCTION':\n if (pair[0] == 'partNumberId')\n return <td key={index + 'd'}><Link to={`/dspecs/general/form/${rowData.partNumberId}/${rowData.revisionLevel}`}>{pair[1]}</Link></td>\n if (pair[0] == 'fileName')\n return <td key={index + 'y'}><a href=\"inline;file:\\\\\\192.168.0.220\\\\iso-qs\\\\14257R1.pdf\" target=\"_blank\">{pair[1]}</a></td>\n break;\n // GENERAL LINK GENERATION\n case 'FITTINGS':\n if (pair[0] == 'partNumberId')\n return <td key={index + 'b'}><Link to={`/dspecs/general/form/${rowData.dsId}/${rowData.partNumberId}/${rowData.revisionLevel}`}>{pair[1]}</Link></td>;\n if (pair[0] == 'revisionLevel') return;\n break;\n case 'DOCUMENTS':\n if (pair[0] == 'file')\n return <td key={index + 'y'}><a href=\"${rowData.file}\" target=\"_blank\">{pair[1]}</a></td>\n if (pair[0] == 'action')\n return <td key={index + 'w'}><button className=\"btn btn-inline\"><i className=\"lnr lnr-pencil\" onClick={() => openModalForEdit(rowData)}></i></button>\n <button className=\"btn btn-danger btn-inline\"><i className=\"fas fa-times\" onClick={() => deleteItem(rowData.id)}></i></button></td>\n break;\n case 'PRODUCTIONMATERIAL':\n if (pair[0] == 'action')\n return <td key={index + 'w'}><button className=\"btn btn-inline\"><i className=\"lnr lnr-pencil\" onClick={() => openModalForEdit(rowData, 'productionmaterial')}></i></button>\n <button className=\"btn btn-danger btn-inline\"><i className=\"fas fa-times\" onClick={() => deleteItem(rowData.id)}></i></button></td>\n break;\n default:\n if (pair[0] == 'id') {\n return <td key={index + 'g'}><Link to={'/manage/users/' + rowData.id}>{pair[1]}</Link></td>\n }\n if (pair[0] == 'designSpecId') {\n return <td key={index + 'g'}><Link to={'/manage/users/' + rowData.id}>{pair[1]}</Link></td>\n }\n }\n // HANDLE THE BASIC TEXT\n return <td key={index + 'h'}>{pair[1]}</td>\n })\n }\n </tr>\n ), this)\n }\n // Modal Controlls\n openModalForEdit = (rowData: any, tableType: string): void => {\n switch (tableType) {\n case 'applications':\n this.setState({\n show: true,\n modalMode: 'Edit',\n rowId: rowData.id,\n applicationModalState: this.props.rows.find(r => r.id == rowData.id)\n });\n break;\n case 'productionmaterial':\n this.setState({\n show: true,\n modalMode: 'Edit',\n rowId: rowData.id,\n productionModalState: this.props.rows.find(r => r.id == rowData.id)\n })\n break;\n }\n }\n\n openModalForNew = (): void => {\n this.setState({\n show: true,\n modalMode: 'New',\n rowId: null\n });\n }\n\n handleChange(e: any, modalKind: \"applications\" | \"productionmaterial\") {\n const target = e.target;\n const name = target.name;\n const value = target.value;\n switch (modalKind) {\n case 'applications':\n this.setState({\n applicationModalState: {\n ...this.state.applicationModalState,\n [name]: value\n }\n });\n break;\n case 'productionmaterial':\n this.setState({\n productionModalState: {\n ...this.state.productionModalState,\n [name]: value\n }\n })\n break;\n }\n }\n\n\n\n modalOpen() {\n this.setState({ show: true });\n }\n\n modalClose = () => {\n // Reset the modal related items.\n this.setState({\n show: false,\n rowId: null,\n modalMode: undefined,\n applicationModalState: emptyApplicationModal,\n productionModalState: emptyProductionModal\n });\n }\n\n applicationRenderer(formState: ApplicationsDto) {\n return (\n <div>\n <div className=\"row\">\n <div className=\"col\"></div>\n <div className=\"col\"><label>Part Number: </label>\n <input type=\"text\" name=\"partNumber\" value={formState.partNumber} onChange={e => this.handleChange(e, 'applications')} />\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col\"><label>App Make:</label></div>\n <div className=\"col\"><label>App Model:</label></div>\n <div className=\"col\"><label>App Type:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\">\n <select name=\"makeName\" value={formState.makeName} onChange={(e) => this.handleChange(e, 'applications')}>\n {this.state.appMakes.map((mk: string, i: number) => <option key={i}>{mk}</option>)}\n </select>\n </div>\n\n <div className=\"col\">\n <select name=\"modelName\" value={formState.modelName} onChange={(e) => this.handleChange(e, 'applications')}>\n {this.state.appModels.map((mo: string, i: number) => <option key={i}>{mo}</option>)}\n </select>\n </div>\n <div className=\"col\">\n <select name=\"productType\" value={formState.productType} onChange={e => this.handleChange(e, 'applications')}>\n {this.state.appTypes.map((ty: string, i: number) => <option key={i}>{ty}</option>)}\n </select>\n </div>\n </div>\n <br />\n <div className=\"row\">\n <div className=\"col\"><label>SN Prefix:</label></div>\n <div className=\"col\"><label>SN Start:</label></div>\n <div className=\"col\"><label>SN End:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\"><input type=\"text\" name=\"serialPrefix\" value={formState.serialPrefix} onChange={e => this.handleChange(e, 'applications')} /></div>\n <div className=\"col\"><input type=\"text\" name=\"startingSerial\" value={formState.startingSerial} onChange={e => this.handleChange(e, 'applications')} /></div>\n <div className=\"col\"><input type=\"text\" name=\"endingSerial\" value={formState.endingSerial} onChange={e => this.handleChange(e, 'applications')} /></div>\n </div>\n <br />\n <div className=\"row\">\n <div className=\"col\"><label>Engine Make:</label></div>\n <div className=\"col\"><label>Engine Model:</label></div>\n <div className=\"col\"><label>Arrangement:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\">\n <select name=\"engineMake\" value={formState.engineMake} onChange={e => this.handleChange(e, 'applications')}>\n {this.state.engineMakes.map((em: string, i: number) => <option key={i} >{em}</option>)}\n </select>\n </div>\n <div className=\"col\">\n <select name=\"engineModel\" value={formState.engineModel} onChange={e => this.handleChange(e, 'applications')}>\n {this.state.engineModels.map((em: string, i: number) => <option key={i}>{em}</option>)}\n </select>\n </div>\n <div className=\"col\">\n <input type=\"text\" name=\"arrangement\" value={formState.arrangement} onChange={e => this.handleChange(e, 'applications')} />\n </div>\n </div>\n <br />\n <div className=\"row\">\n <div className=\"col\"><label>OE/Reman:</label></div>\n <div className=\"col\"><label>Voltage:</label></div>\n <div className=\"col\"><label>Application Type:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\">\n <select name=\"oe\" value={formState.oe ? formState.oe.toString() : \"false\"} onChange={e => this.handleChange(e, 'applications')} >\n <option>true</option>\n <option>false</option>\n </select>\n </div>\n <div className=\"col\"><input type=\"text\" name=\"voltage\" value={formState.voltage} onChange={e => this.handleChange(e, 'applications')} /></div>\n <div className=\"col\">\n <select name=\"applicationType\" value={formState.applicationType} onChange={e => this.handleChange(e, 'applications')} >\n {this.state.appTypes.map((at: string, i: any) => <option>{at}</option>)}\n </select>\n </div>\n </div>\n <br />\n <div className=\"row\">\n <div className=\"col\"><label>Motor:</label></div>\n <div className=\"col\"><label>Electrical:</label></div>\n <div className=\"col\"><label>Plumbing:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\"><input type=\"text\" name=\"motor\" value={formState.motor} onChange={e => this.handleChange(e, 'applications')} /></div>\n <div className=\"col\"><input type=\"text\" name=\"electric\" value={formState.electrical} onChange={e => this.handleChange(e, 'applications')} /></div>\n <div className=\"col\"><input type=\"text\" name=\"plumbing\" value={formState.plumbing} onChange={e => this.handleChange(e, 'applications')} /></div>\n </div>\n <br />\n <div className=\"row\">\n <div className=\"col\"><label>Customer:</label></div>\n <div className=\"col\"><label>Engine Capacity:</label></div>\n <div className=\"col\"><label>Trans Capacity:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\">\n <select name=\"customerName\" value={formState.customerName} onChange={e => this.handleChange(e, 'applications')}>\n {this.state.customers.map((c: string, i: number) => <option key={i}>{c}</option>)}\n </select>\n </div>\n <div className=\"col\"><input type=\"text\" name=\"engineCapacity\" value={formState.engineCapacity} onChange={e => this.handleChange(e, 'applications')} pattern=\"\\d+(\\.\\d{1,2})?\" /></div>\n <div className=\"col\"><input type=\"text\" name=\"transCapacity\" value={formState.transCapacity} onChange={e => this.handleChange(e, 'applications')} /></div>\n </div>\n <br />\n <div className=\"row\">\n <div className=\"col\"><label>Status:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\"><input disabled type=\"text\" name=\"statusName\" value={formState.statusName} onChange={e => this.handleChange(e, 'applications')} /></div>\n </div>\n </div>\n )\n\n }\n\n productionMaterialRenderer(formState: ProductionMaterialDto) {\n return (\n <div>\n <div className=\"row\">\n <div className=\"col\"><label>Primary User:</label></div>\n <div className=\"col\"><label>Description:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\"><input type=\"text\" name=\"primaryUser\" value={formState.primaryUser} onChange={e => this.handleChange(e, 'productionmaterial')} /></div>\n <div className=\"col\"><input type=\"text\" name=\"description\" value={formState.description} onChange={e => this.handleChange(e, 'productionmaterial')} /></div>\n </div>\n <br />\n <div className=\"row\">\n <div className=\"col\"><label>Vendor:</label></div>\n <div className=\"col\"><label>Vendor Part Number:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\">\n <select name=\"vendor\" value={formState.vendor} onChange={e => this.handleChange(e, 'productionmaterial')} >\n {this.state.vendors.map((v: string, i: number) => <option key={i}>{v}</option>)}\n </select>\n\n </div>\n <div className=\"col\"><input type=\"text\" name=\"vendorPartNumber\" value={formState.vendorPartNumber} onChange={e => this.handleChange(e, 'productionmaterial')} /></div>\n </div>\n <br />\n <div className=\"row\">\n <div className=\"col\"><label>Note:</label></div>\n </div>\n <div className=\"row\">\n <div className=\"col\"><input type=\"text\" name=\"note\" value={formState.note} onChange={e => this.handleChange(e, 'productionmaterial')} /></div>\n </div>\n </div>\n )\n }\n\n handleSave = () => {\n console.log('save clicked')\n // Check the type of form ('application) to decide which specific handler to call.\n if (this.props.tableType == 'applications') {\n // Call the application specific handler\n console.log('calling application save handler')\n this.handleApplicationSave();\n }\n\n if (this.props.tableType == 'productionmaterial') {\n // call the production material specific handler.\n console.log('calling production material save handler')\n this.handleProductionSave();\n }\n }\n\n handleApplicationSave = async () => {\n const body: ApplicationsDto = {\n ...this.state.applicationModalState,\n oe: (this.state.applicationModalState.oe) ? (this.state.applicationModalState.oe.toString() == \"true\") : false\n }\n const config = {\n headers: {\n \"Content-Type\": \"application/json\"\n }\n }\n // Idendity if \"new\" or \"edit\" to properly route.\n if (this.state.modalMode == \"New\") {\n //post requrest\n body.id = null;\n delete body.action;\n await axios.post(`/api/application/newapplication`, body, config)\n .then(res => {\n console.log(res);\n })\n .catch(err => alert(err))\n }\n if (this.state.modalMode == \"Edit\") {\n\n //put request\n await axios.put(`/api/application/updateapplication/${this.state.rowId}`, body, config)\n .then(res => {\n console.log(res);\n // location.href = \"/manage/applications\"\n })\n .catch(err => console.error(err))\n }\n }\n handleProductionSave = async () => {\n const body: ProductionMaterialDto = {\n ...this.state.productionModalState\n }\n const config = {\n \"headers\": {\n \"Content-Type\": \"application/json\"\n }\n }\n // Idendity if \"new\" or \"edit\" to properly route.\n if (this.state.modalMode == \"New\") {\n body.id = null;\n body.action = '';\n await axios.post(`/api/productionmaterial/newproductionmaterial`, body, config)\n .then(res => {\n console.info(`Successful new production material`)\n console.log(res)\n // Close modal. \n\n // Refresh Screen\n\n })\n .catch(err => console.error(err))\n }\n if (this.state.modalMode == \"Edit\") {\n delete body.action;\n await axios.put(`/api/productionmaterial/updateproductionmaterial/${this.state.productionModalState.id}`, body, config)\n .then(res => {\n console.info(`Successful update production material`)\n console.log(res)\n // Close modal. \n\n // Refresh Screen\n\n })\n .catch(err => console.error(err))\n }\n }\n\n\n render() {\n let { rowsPerPage, activePage, activeFilterSet } = this.state;\n let { tableType, rows } = this.props\n if(rows == undefined){\n rows = []\n }\n \n \n let filteredRows: any;\n //Check to see if there are any filters. If there are we start filtering... \n let needsFiltering = activeFilterSet.length >= 1;\n if (needsFiltering) {\n filteredRows = this.filterDownData(rows)\n }\n\n //If no filtering occured just fill filteredRows with the original incoming prop data \n if ((filteredRows === undefined || filteredRows.length == 0) && activeFilterSet.length === 0) {\n \n filteredRows = rows\n }\n\n //Ararnge for presentation. \n let visibleRows = this.arangeForPresentation(filteredRows, rowsPerPage, activePage)\n\n let tablesWithoutCreateButton = [\"workinstruction\", \"fittings\", \"revision\", \"applications\", \"productionmaterial\"]\n return (\n <div>\n <CustPag\n onChangePage={this.changePage}\n onChangeRowCt={this.changeRowCt}\n itemsCount={filteredRows.length}\n itemsToShow={rowsPerPage}\n pageOfItems={activePage}\n />\n <div className=\"table-scroll\">\n <div className=\"top-buttons\">\n <Button\n color=\"info\"\n onClick={this.clearAllFilters}\n >Clear All Filters</Button>\n <div style={{ color: 'red' }}>{rows.length === 0 ? `This query returned 0 results` : null}</div>\n\n {\n !tablesWithoutCreateButton.includes(tableType) ?\n <CreateNewSpecButton tableType={tableType} />\n : null\n }\n\n {\n ![\"general\", \"motor\", \"remote\", \"kits\", \"rfd\", \"workinstruction\", \"fittings\", \"revision\", \"users\"].includes(tableType) ?\n // <a href=\"javascript:;\" className=\"open-modal-btn\" onClick={e => this.modalOpen()}> Create </a> \n <Button className=\"float-right\" onClick={e => this.openModalForNew()}>Create</Button>\n : null\n }\n\n </div>\n\n <Table striped hover className=\"RPMTable\">\n <TableHead headers={this.props.heads} onFilterChange={this.filterChangeHandler} sortColumns={this.sortColumns} isLoading={this.props.isLoading} />\n <tbody>\n {\n this.buildRowsWithLinks(tableType, visibleRows, this.openModalForEdit)\n }\n </tbody>\n </Table>\n\n </div>\n <CustPag\n onChangePage={this.changePage}\n onChangeRowCt={this.changeRowCt}\n itemsCount={filteredRows.length}\n itemsToShow={rowsPerPage}\n pageOfItems={activePage}\n />\n\n {/* { this.state.show ? <div onClick={this.modalClose} className=\"back-drop\"></div> : null } */}\n {this.state.show ? <div onClick={e => this.modalClose()} className=\"modal-wrapper\"></div> : null}\n\n <Modal\n //className=\"modal\"\n show={this.state.show}\n handleClose={this.modalClose}\n handleSave={this.handleSave}\n title={tableType}\n modalMode={this.state.modalMode}\n rowId={this.state.rowId}\n >\n {tableType == \"applications\" && this.applicationRenderer(this.state.applicationModalState)}\n {tableType == \"productionmaterial\" && this.productionMaterialRenderer(this.state.productionModalState)}\n </Modal>\n\n </div>\n );\n }\n}\n\nconst TableHead = (props: any) => {\n const { headers } = props;\n const { onFilterChange } = props;\n const { sortColumns } = props;\n const { isLoading } = props\n\n return (\n <thead>\n {/* LABELS ROW */}\n <TableRow>\n {\n headers.map((header: any) => (\n <th key={header.key + \"-title\"} id={header.key}>\n {header.name}\n <ArrowUpwardIcon onClick={(e) => sortColumns(e, 'asc')} />\n <ArrowDownwardIcon onClick={(e) => sortColumns(e, 'desc')} />\n </th>\n ))\n }\n </TableRow>\n {/* FILETER INPUT ROW */}\n {\n isLoading ? <tr><th><Spinner /></th></tr> : null\n }\n <TableRow>\n {\n headers.map((filter: any, idx: number) => (\n <th key={filter.key + '-filter'}><Input\n key={filter.key + '-filter'}\n type=\"text\"\n placeholder=\"\"\n onChange={onFilterChange}\n disabled={!filter.filterable}\n className=\"RPMTable-filter\"\n id={filter.key}\n /></th>\n ))\n }\n </TableRow>\n </thead>\n )\n};\nconst TableRow = (props: any) => <tr>{props.children}</tr>;\n\nconst CreateNewSpecButton = (props: any) => <Button color=\"info\"><Link to={`${props.tableType}/form/new`}>Create</Link></Button>\n\n// const Modal = ( handleClose:any, show:any ) => {\n// const showHideClassName = show ? \"modal display-block\" : \"modal display-none\";\n\n// return (\n// <div className={showHideClassName}>\n// <section className=\"modal-main\">\n\n// <button onClick={handleClose}>close</button>\n// </section>\n// </div>\n// );\n// };"]},"metadata":{},"sourceType":"module"}