{"version":3,"sources":["webpack:////Users/owenli/Documents/workspace/awi-wool-fe/src/views/blocks/tableBlock/js/tableBlock.js","webpack:////Users/owenli/Documents/workspace/awi-wool-fe/src/views/blocks/marketMicronPriceTableBlock/js/marketMicronPriceTableBlock.js","webpack:///./wool/numberFormatter.js","webpack:///./wool/operatingSystemDetector.js"],"names":["CLS","agGrid","require","TableBlock","element","_this","this","className","arguments","length","undefined","_classCallCheck","$element","$","$agThemeWool","children","numberFormatter","operatingSystemDetector","operatingSystem","getOS","setEmptyMessages","scrollbarWidth","columnDefs","rowData","noRowsTypes","error","empty","noRowsType","OperatingSystemItems","Windows","addClass","setCustomLoadingOverlay","setCustomNoRowsOverlay","setTableData","setGridOptions","loadGrid","gridOptions","api","showLoadingOverlay","on","concat","event","params","data","hideOverlay","find","removeClass","isEmpty","showNoRowsOverlay","updateRowData","key","value","emptyMessage","_","isNil","attr","errorMessage","_this2","CustomLoadingOverlay","prototype","init","eGui","document","createElement","innerHTML","getGui","_this3","CustomNoRowsOverlay","message","errorClass","_this4","domLayout","onGridReady","_event","resizeTable","window","throttle","suppressDragLeaveHidesColumns","context","components","customLoadingOverlay","customNoRowsOverlay","loadingOverlayComponent","noRowsOverlayComponent","extend","eGridDiv","Grid","items","add","resizeRows","resizeColumns","columns","columnApi","getAllColumns","columnIds","map","column","getColId","autoSizeColumns","sumBy","getActualWidth","outerWidth","sizeColumnsToFit","MarketMicronPriceTableBlock","_TableBlock","_callSuper","getTableDataFromApi","_inherits","headerName","field","cellStyle","font-weight","lockPosition","cellRenderer","marketMicronPriceCellRenderer","minWidth","innerValue","valueDisplayText","difference","differenceDisplayText","url","urlParams","param","ajax","type","dataType","success","response","trigger","isError","NumberFormatter","number","parts","toString","split","replace","join","OperatingSystemDetector","MacOS","Linux","Android","userAgent","navigator","platform","indexOf","iOS","test"],"mappings":"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","file":"block-15.430117f348aedc9992ce.js","sourcesContent":["const NS = 'TableBlock';\nconst CLS = 'tableBlock';\n\nlet agGrid = require('ag-grid-community');\n\nimport { numberFormatter } from '../../../../global/js/wool/numberFormatter';\nimport { operatingSystemDetector } from '../../../../global/js/wool/operatingSystemDetector';\n\nexport class TableBlock {\n\tconstructor(element, className = CLS) {\n\t\tthis.element = element;\n\t\tthis.$element = $(element);\n\t\tthis.$agThemeWool = this.$element.children('.ag-theme-wool');\n\t\tthis.numberFormatter = numberFormatter;\n\t\tthis.operatingSystemDetector = operatingSystemDetector;\n\t\tthis.operatingSystem = this.operatingSystemDetector.getOS();\n\n\t\tthis.setEmptyMessages();\n\t\tthis.scrollbarWidth = 8;\n\t\tthis.columnDefs = [];\n\t\tthis.rowData = [];\n\t\tthis.noRowsTypes = {\n\t\t\terror: 'error',\n\t\t\tempty: 'empty'\n\t\t};\n\t\tthis.noRowsType = this.noRowsTypes.empty;\n\n\t\tif(this.operatingSystem === this.operatingSystemDetector.OperatingSystemItems.Windows) {\n\t\t\tthis.$agThemeWool.addClass('ag-theme-windows');\n\t\t\tthis.scrollbarWidth = 17;\n\t\t}\n\n\t\tthis.setCustomLoadingOverlay();\n\t\tthis.setCustomNoRowsOverlay();\n\t\tthis.setTableData();\n\t\tthis.setGridOptions();\n\t\tthis.loadGrid();\n\t\tthis.gridOptions.api.showLoadingOverlay();\n\n\t\tthis.$element.on(`${className}.update`, (event, params) => {\n\t\t\tif(params.data && params.data.length > 0) {\n\t\t\t\tthis.gridOptions.api.hideOverlay();\n\t\t\t\tthis.$element.find('.ag-root').removeClass('ag-root--error');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif(params.isEmpty) {\n\t\t\t\t\tthis.noRowsType = this.noRowsTypes.empty;\n\t\t\t\t\tthis.$element.find('.ag-root').removeClass('ag-root--error');\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.noRowsType = this.noRowsTypes.error;\n\t\t\t\t\tthis.$element.find('.ag-root').addClass('ag-root--error');\n\t\t\t\t}\n\t\t\t\tthis.gridOptions.api.showNoRowsOverlay();\n\t\t\t}\n\t\t\tthis.updateRowData(params.data);\n\t\t});\n\t}\n\n\t// Sets the generic error messages\n\tsetEmptyMessages() {\n\t\tthis.emptyMessage = !_.isNil(this.$element.attr('data-empty-message')) ? this.$element.attr('data-empty-message') : 'No items loaded';\n\t\tthis.errorMessage = !_.isNil(this.$element.attr('data-error-message')) ? this.$element.attr('data-error-message') : 'Error in loading tableā€¦';\n\t}\n\n\tsetCustomLoadingOverlay() {\n\t\tthis.CustomLoadingOverlay = () => {};\n\t\tthis.CustomLoadingOverlay.prototype.init = () => {\n\t\t\tthis.eGui = document.createElement('div');\n\t\t\tthis.eGui.innerHTML = `
\n\t\t\t\t
\n\t\t\t
`;\n\t\t};\n\n\t\tthis.CustomLoadingOverlay.prototype.getGui = () => {\n\t\t\treturn this.eGui;\n\t\t};\n\t}\n\n\tsetCustomNoRowsOverlay() {\n\t\tthis.CustomNoRowsOverlay = () => {};\n\t\tthis.CustomNoRowsOverlay.prototype.init = () => {\n\t\t\tlet message = this.emptyMessage;\n\t\t\tlet errorClass = this.noRowsType === this.noRowsTypes.error ? 'ag-overlay-loading-center-message--error' : '';\n\t\t\tif(this.noRowsType === this.noRowsTypes.error) {\n\t\t\t\tmessage = this.errorMessage;\n\t\t\t}\n\n\t\t\tthis.eGui = document.createElement('div');\n\t\t\tthis.eGui.innerHTML = `
\n\t\t\t\t
\n\t\t\t\t\t${message}\n\t\t\t\t
\n\t\t\t
`;\n\t\t};\n\n\t\tthis.CustomNoRowsOverlay.prototype.getGui = () => {\n\t\t\treturn this.eGui;\n\t\t};\n\t}\n\n\tsetTableData() {\n\t}\n\n\tsetGridOptions(gridOptions = {}) {\n\t\tthis.gridOptions = {\n\t\t\tcolumnDefs: this.columnDefs,\n\t\t\trowData: this.rowData,\n\t\t\tdomLayout: 'autoHeight',\n\t\t\tscrollbarWidth: this.scrollbarWidth,\n\t\t\tonGridReady: (_event) => {\n\t\t\t\tthis.resizeTable();\n\n\t\t\t\t$(window).on('resize', _.throttle(() => {\n\t\t\t\t\tthis.resizeTable();\n\t\t\t\t}, 250));\n\t\t\t},\n\t\t\tsuppressDragLeaveHidesColumns: true,\n\t\t\tcontext: {\n\t\t\t\tnumberFormatter: this.numberFormatter\n\t\t\t},\n\t\t\tcomponents: {\n\t\t\t\tcustomLoadingOverlay: this.CustomLoadingOverlay,\n\t\t\t\tcustomNoRowsOverlay: this.CustomNoRowsOverlay\n\t\t\t},\n\t\t\tloadingOverlayComponent: 'customLoadingOverlay',\n\t\t\tnoRowsOverlayComponent: 'customNoRowsOverlay'\n\t\t};\n\n\t\tthis.gridOptions = _.extend(this.gridOptions, gridOptions);\n\t}\n\n\tloadGrid() {\n\t\tthis.eGridDiv = this.$agThemeWool[0];\n\t\tthis.agGrid = new agGrid.Grid(this.eGridDiv, this.gridOptions);\n\t}\n\n\tupdateRowData(items) {\n\t\tthis.gridOptions.api.updateRowData({\n\t\t\tadd: items\n\t\t});\n\t}\n\n\tresizeTable() {\n\t\tthis.resizeRows();\n\t\tthis.resizeColumns();\n\t}\n\n\tresizeRows() {\n\t}\n\n\tresizeColumns() {\n\t\t// Retrieve column values\n\t\tlet columns = this.gridOptions.columnApi.getAllColumns();\n\n\t\tlet columnIds = _.map(columns, (column) => {\n\t\t\treturn column.getColId();\n\t\t});\n\n\t\t// Autosize the columns\n\t\tthis.gridOptions.columnApi.autoSizeColumns(columnIds);\n\n\t\t// Retrieve the totalWidth of the autosized columns\n\t\tlet totalAutosizedWidth = _.sumBy(columns, (column) => {\n\t\t\treturn column.getActualWidth();\n\t\t});\n\n\t\t// Retreive the totalWidth of the agGrid\n\t\tlet gridWidth = this.$element.outerWidth();\n\n\t\t// Fit the columns when the autosized columns is less than the acutal grid\n\t\tif(totalAutosizedWidth < gridWidth) {\n\t\t\tthis.gridOptions.api.sizeColumnsToFit();\n\t\t}\n\t\telse {\n\t\t\tthis.gridOptions.columnApi.autoSizeColumns(columnIds);\n\t\t}\n\t}\n}\n","const NS = 'MarketMicronPriceTableBlock';\nconst CLS = 'marketMicronPriceTableBlock';\n\nimport { TableBlock } from '../../tableBlock/js/tableBlock';\n\nexport class MarketMicronPriceTableBlock extends TableBlock {\n\tconstructor(element) {\n\t\tsuper(element, CLS);\n\n\t\tthis.api = this.$element.attr('data-api');\n\n\t\tthis.getTableDataFromApi();\n\t}\n\n\tsetTableData() {\n\t\tthis.columnDefs = [\n\t\t\t{\n\t\t\t\theaderName: 'MPG (mic)',\n\t\t\t\tfield: 'mpg',\n\t\t\t\tcellStyle: {\n\t\t\t\t\t'font-weight': 500\n\t\t\t\t},\n\t\t\t\tlockPosition: true\n\t\t\t},\n\t\t\t{\n\t\t\t\theaderName: 'Sydney',\n\t\t\t\tfield: 'sydney',\n\t\t\t\tcellRenderer: this.marketMicronPriceCellRenderer,\n\t\t\t\tminWidth: 145,\n\t\t\t\tlockPosition: true\n\t\t\t},\n\t\t\t{\n\t\t\t\theaderName: 'Melbourne',\n\t\t\t\tfield: 'melbourne',\n\t\t\t\tcellRenderer: this.marketMicronPriceCellRenderer,\n\t\t\t\tminWidth: 145,\n\t\t\t\tlockPosition: true\n\t\t\t},\n\t\t\t{\n\t\t\t\theaderName: 'Fremantle',\n\t\t\t\tfield: 'fremantle',\n\t\t\t\tcellRenderer: this.marketMicronPriceCellRenderer,\n\t\t\t\tminWidth: 145,\n\t\t\t\tlockPosition: true\n\t\t\t}\n\t\t];\n\t}\n\n\tmarketMicronPriceCellRenderer(params) {\n\t\tlet markup = '';\n\n\t\tlet innerValue = !_.isNil(params.value) && !_.isNil(params.value.value) ? params.value.value : null;\n\t\tlet valueDisplayText = !_.isNil(params.value) && !_.isNil(params.value.valueDisplayText) ? params.value.valueDisplayText : null;\n\t\tlet difference = !_.isNil(params.value) && !_.isNil(params.value.difference) ? params.value.difference : null;\n\t\tlet differenceDisplayText = !_.isNil(params.value) && !_.isNil(params.value.differenceDisplayText) ? params.value.differenceDisplayText : null;\n\n\t\tlet formattedDifference = () => {\n\t\t\tif(!_.isNil(difference) && !_.isNil(differenceDisplayText)) {\n\t\t\t\tif(difference < 0) {\n\t\t\t\t\treturn `${differenceDisplayText}`;\n\t\t\t\t}\n\t\t\t\telse if(difference > 0) {\n\t\t\t\t\treturn `${differenceDisplayText}`;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn '';\n\t\t};\n\n\t\t// value is an object that contains the values that we are going to render\n\t\tif(innerValue && valueDisplayText) {\n\t\t\tmarkup = `\n\t\t\t\t\n\t\t\t\t\t${valueDisplayText}\n\t\t\t\t\t${formattedDifference()}\t\n\t\t\t\t\n\t\t\t`;\n\t\t}\n\t\telse {\n\t\t\tmarkup = `\n\t\t\t\t\n\t\t\t\t\t-\n\t\t\t\t\n\t\t\t`;\n\t\t}\n\n\t\treturn markup;\n\t}\n\n\tgetTableDataFromApi() {\n\t\tlet url = this.api;\n\n\t\tif(!_.isEmpty(this.urlParams)) {\n\t\t\turl += `?${$.param(this.urlParams)}`;\n\t\t}\n\n\t\tif(this.api) {\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tdataType: 'json',\n\t\t\t\tsuccess: (response) => {\n\t\t\t\t\tif(response && response.length > 0) {\n\t\t\t\t\t\tthis.$element.trigger(`${CLS}.update`, {\n\t\t\t\t\t\t\tdata: response\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.$element.trigger(`${CLS}.update`, {\n\t\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\t\tisEmpty: true\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\terror: () => {\n\t\t\t\t\tthis.$element.trigger(`${CLS}.update`, {\n\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\tisError: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tconsole.error(`${NS}::Error`, 'API is not set.');\n\t\t\tthis.$element.trigger(`${CLS}.update`, {\n\t\t\t\tdata: null\n\t\t\t});\n\t\t}\n\t}\n}\n","class NumberFormatter {\n\tformatNumbersWithCommas(number) {\n\t\tlet parts = number.toString().split('.');\n\t\tparts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\t\treturn parts.join('.');\n\t}\n}\n\nexport let numberFormatter = new NumberFormatter();\n","export class OperatingSystemDetector {\n\tconstructor() {\n\t\tthis.OperatingSystemItems = {\n\t\t\tMacOS: 'MacOS',\n\t\t\tWindows: 'Windows',\n\t\t\tLinux: 'Linux',\n\t\t\tAndroid: 'Android'\n\t\t};\n\t}\n\n\tgetOS() {\n\t\tlet userAgent = window.navigator.userAgent;\n\t\tlet platform = window.navigator.platform;\n\t\tlet macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'];\n\t\tlet windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'];\n\t\tlet iosPlatforms = ['iPhone', 'iPad', 'iPod'];\n\n\t\tif(macosPlatforms.indexOf(platform) !== -1) {\n\t\t\treturn this.OperatingSystemItems.MacOS;\n\t\t}\n\t\telse if(iosPlatforms.indexOf(platform) !== -1) {\n\t\t\treturn this.OperatingSystemItems.iOS;\n\t\t}\n\t\telse if(windowsPlatforms.indexOf(platform) !== -1) {\n\t\t\treturn this.OperatingSystemItems.Windows;\n\t\t}\n\t\telse if(/Linux/.test(platform)) {\n\t\t\treturn this.OperatingSystemItems.Linux;\n\t\t}\n\t\telse if(/Android/.test(userAgent)) {\n\t\t\treturn this.OperatingSystemItems.Android;\n\t\t}\n\t}\n}\n\nexport let operatingSystemDetector = new OperatingSystemDetector();\n"],"sourceRoot":""}