{"version":3,"sources":["inoMsEtfLargestMostActive.js","inoMsEtfLargestMostActive.tmpl.js"],"names":["inovestor","ms","etf","largestMostActive","config","apiRelativeUrl","filterOptionsApiRelativeUrl","cache","get","stateStore","data","apiDataExpiration","Date","getTime","apiData","apiFilterOptions","e","console","error","set","viewModel","showResultsFromAllProviders","selectedRows","map","x","symbol","hiddenColumns","sortOn","sortAscending","resultsPerPage","currentPageIndex","selectedAssetClasses","selectedSubAssetClasses","selectedStrategies","selectedRegions","selectedStructures","ko","components","register","params","this","inputText","pureComputed","language","unwrap","selection","items","length","item","find","y","code","nameFr","nameEn","join","template","$","viewModels","largestMostActiveViewModel","plugin","self","initialState","options","extend","setupPagination","dataLength","$pagination","twbsPagination","numPages","Math","ceil","totalPages","visiblePages","initiateStartPageClick","startPage","first","resources","pagination","firstPage","prev","previousPage","next","nextPage","last","lastPage","onPageClick","event","page","encodeCsvStringValue","value","replace","isLoading","observable","hasError","showGenericErrorModal","init","fetchDataPromise","fetchFilterOptionsPromise","uiData","Deferred","resolve","core","ajaxApi","type","contentType","apiErrorHandler","then","when","structures","filter","assetClasses","some","subAssetClasses","strategies","regions","includes","always","currentLanguage","updateResources","currentResource","isNullOrUndefined","sponsorFeatureIsActive","sponsorIssuerCompanyCodes","sponsorCheckboxText","subscribe","columns","visibleColumns","observableArray","toggleSorting","key","noFilterApplied","filterOptions","currencies","reduce","agg","currencyHedgedValues","forEach","push","clearFilters","issuerCompanyCodes","issuerCompanyCode","assetClassCode","subAssetClassCode","strategyCode","regionCode","codes","split","currencyCode","currencyHedged","name","url","isEmptyString","redirectUrl","stringFormat","category","ticker","parts","sort","a","b","valueA","valueB","rateLimit","compareFeatureIsActive","comparatorUrl","compareMaxNumberOfSymbols","canCompare","compare","distinctSelectedSymbols","toUpperCase","location","href","symbols","currentPageItems","startIndex","slice","currentPageInfo","start","end","total","paginationInfo","exportToCsv","rows","netAssets","maxManagementFee","price","averageVolume30Days","csvString","assetUnderManagement","managementFee","nav","row","blob","Blob","saveAs","modal","libRef","jQuery","pluginName","Plugin","element","_name","_defaults","fn","inoMsEtfLargestMostActive","defaults","_viewModel","prototype","fileName","fileCacheKey","instances","templatePaths","filePath","templateRootUrl","match","getTemplate","html","buildCache","bindEvents","bindModel","render","$element","trigger","destroy","unbindEvents","removeData","on","onReady","call","off","apiError","onError","result","generateError","errors","applyBindings","each","en","fr","largestMostActiveTitle","applyFilters","results","hideShowColumns","noResultsFound","downloadCsv","close","assetClass","subAssetClass","strategy","structure","region","footnote","itemsPerPage","selectedItems","emptySelection","addToComparison","itemSelected","itemsSelected","maxSelectionWarning","view","compareSelectedItems","checkboxAriaLabel","window"],"mappings":"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","file":"../inoMsEtfLargestMostActive.min.js","sourcesContent":["; (function (inovestor, undefined) {\n // Setup dependencies for this plugin\n // Normally we would add jQuery and knockout but ms-core, which we depend on, already register them so it's useless\n\n // Create plugin namespace with any desired config variable\n inovestor.ms.etf = inovestor.ms.etf || {};\n})(inovestor);\n\n\n; (function (etf, undefined) {\n // Create plugin namespace with any desired config variable\n etf.largestMostActive = {\n config: {\n apiRelativeUrl: 'etfs/largestMostActive',\n filterOptionsApiRelativeUrl: 'etfs/largestMostActive/filterOptions'\n }\n };\n\n})(inovestor.ms.etf);\n; (function (etf, undefined) {\n etf.largestMostActive.cache = {\n get: function (stateStore) {\n try {\n if (stateStore == null || stateStore.get == null) return null\n\n var data = stateStore.get()\n if (data == null) return null\n\n if (data.apiDataExpiration == null || data.apiDataExpiration < new Date().getTime()) {\n data.apiData = null\n data.apiFilterOptions = null\n }\n\n return data\n } catch (e) {\n console.error(e)\n }\n return null\n },\n\n set: function (viewModel, stateStore) {\n try {\n if (stateStore == null || stateStore.set == null) return\n\n stateStore.set({\n // api\n apiData: viewModel.apiData(),\n apiFilterOptions: viewModel.apiFilterOptions(),\n apiDataExpiration: new Date().getTime() + (1000 * 60 * 60 * 4), // 4 hours\n\n // sponsor feature\n showResultsFromAllProviders: viewModel.showResultsFromAllProviders(),\n\n // compare feature\n selectedRows: viewModel.selectedRows().map(function (x) { return x.symbol }),\n\n // columns visibility\n hiddenColumns: viewModel.hiddenColumns(),\n\n // sorting\n sortOn: viewModel.sortOn(),\n sortAscending: viewModel.sortAscending(),\n\n // pagination\n resultsPerPage: viewModel.resultsPerPage(),\n currentPageIndex: viewModel.currentPageIndex(),\n\n // filters\n selectedAssetClasses: viewModel.selectedAssetClasses(),\n selectedSubAssetClasses: viewModel.selectedSubAssetClasses(),\n selectedStrategies: viewModel.selectedStrategies(),\n selectedRegions: viewModel.selectedRegions(),\n selectedStructures: viewModel.selectedStructures()\n })\n } catch (e) {\n console.error(e)\n }\n }\n }\n})(inovestor.ms.etf);\nko.components.register('etf-largest-most-active-filter', {\n viewModel: function (params) {\n this.params = params\n\n this.inputText = ko.pureComputed(function () {\n var language = params.language == null ? 'en' : ko.unwrap(params.language)\n var selection = params.selection()\n var items = params.items()\n\n if (selection == null || selection.length === 0) return language === 'fr' ? 'Sélectionner des filters' : 'Select filters'\n\n return selection.map(function (x) {\n var item = items.find(function (y) { return y.code === x })\n return item == null ? x : language === 'fr' ? item.nameFr : item.nameEn\n }).join(', ')\n })\n },\n\n template: `\n
\n
\n
\n
0, text: params.selection().length + '/' + params.items().length\">
\n
\n\n \n
\n \n
\n
\n `\n})\n; (function ($, ko, inovestor, undefined) {\n function getInitialState (stateStore) {\n return $.extend(true, {\n apiData: null,\n apiFilterOptions: null,\n\n showResultsFromAllProviders: false,\n\n selectedRows: [],\n\n hiddenColumns: [],\n\n sortOn: 'assetUnderManagement',\n sortAscending: false,\n\n resultsPerPage: 25,\n currentPageIndex: 0,\n\n selectedAssetClasses: [],\n selectedSubAssetClasses: [],\n selectedStrategies: [],\n selectedRegions: [],\n selectedStructures: []\n }, inovestor.ms.etf.largestMostActive.cache.get(stateStore))\n }\n\n inovestor.ms.etf.largestMostActive.viewModels = {};\n inovestor.ms.etf.largestMostActive.viewModels.largestMostActiveViewModel = function (plugin) {\n var self = this\n\n var initialState = getInitialState(plugin.options.stateStore)\n\n // Api stuff\n\n self.isLoading = ko.observable(true);\n self.hasError = ko.observable(false);\n self.apiData = ko.observable(initialState.apiData);\n self.apiFilterOptions = ko.observable(initialState.apiFilterOptions);\n self.showGenericErrorModal = ko.observable(false);\n\n self.init = function () {\n if (self.apiData() != null && self.apiFilterOptions() != null) {\n self.isLoading(false)\n setupPagination(self.uiData().length)\n return $.Deferred().resolve()\n }\n\n var options = { type: 'GET', contentType: 'application/json', error: function (error) { plugin.apiErrorHandler(error); } }\n\n var fetchDataPromise = inovestor.ms.core.ajaxApi(inovestor.ms.etf.largestMostActive.config.apiRelativeUrl, options).then(function (data) {\n self.apiData(data);\n })\n var fetchFilterOptionsPromise = inovestor.ms.core.ajaxApi(inovestor.ms.etf.largestMostActive.config.filterOptionsApiRelativeUrl, options).then(function (data) {\n self.apiFilterOptions(data);\n })\n\n return $.when(fetchDataPromise, fetchFilterOptionsPromise).then(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore);\n\n // ensure that the selected filters still exists\n var apiFilterOptions = self.apiFilterOptions()\n self.selectedAssetClasses(self.selectedAssetClasses().filter(function (x) { return apiFilterOptions.assetClasses.some(function (y) { return y.code === x }) }))\n self.selectedSubAssetClasses(self.selectedSubAssetClasses().filter(function (x) { return apiFilterOptions.subAssetClasses.some(function (y) { return y.code === x }) }))\n self.selectedStrategies(self.selectedStrategies().filter(function (x) { return apiFilterOptions.strategies.some(function (y) { return y.code === x }) }))\n self.selectedRegions(self.selectedRegions().filter(function (x) { return apiFilterOptions.regions.some(function (y) { return y.code === x }) }))\n var structures = self.selectedStructures()\n self.selectedStructures(self.selectedStructures().filter(function (x) { return structures.some(function (y) { return x.includes(y.code) }) }))\n\n }).always(function () {\n self.isLoading(false);\n })\n }\n\n // Base stuff\n\n self.language = ko.observable(inovestor.ms.core.currentLanguage)\n self.resources = ko.observable()\n self.updateResources = function () {\n // Update main resources\n var currentResource = inovestor.ms.etf.largestMostActive.resources[inovestor.ms.core.currentLanguage]\n if (inovestor.ms.core.isNullOrUndefined(currentResource))\n currentResource = null\n self.resources(currentResource)\n self.language(inovestor.ms.core.currentLanguage)\n }\n\n // Sponsor feature\n\n self.sponsorFeatureIsActive = plugin.options.sponsorIssuerCompanyCodes != null && plugin.options.sponsorIssuerCompanyCodes.length > 0\n self.sponsorCheckboxText = plugin.options.sponsorCheckboxText\n self.showResultsFromAllProviders = ko.observable(initialState.showResultsFromAllProviders)\n self.showResultsFromAllProviders.subscribe(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n \n // Columns visibility\n\n self.columns = [\n 'name',\n 'netAssets',\n 'maxManagementFee',\n 'price',\n 'averageVolume30Days'\n ]\n\n self.visibleColumns = ko.observableArray(self.columns.filter(function (x) { return !initialState.hiddenColumns.includes(x) }))\n self.visibleColumns.subscribe(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n\n self.hiddenColumns = ko.pureComputed(function () {\n var visibleColumns = self.visibleColumns()\n return self.columns.filter(function (x) { return !visibleColumns.includes(x) })\n })\n\n // Sorting\n\n self.sortOn = ko.observable(initialState.sortOn)\n self.sortAscending = ko.observable(initialState.sortAscending)\n self.toggleSorting = function (key) {\n if (self.sortOn() === key) {\n self.sortAscending(!self.sortAscending())\n } else {\n self.sortOn(key)\n self.sortAscending(true)\n }\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n }\n\n // Filters\n\n self.noFilterApplied = ko.pureComputed(function () {\n return self.selectedAssetClasses().length === 0 &&\n self.selectedSubAssetClasses().length === 0 &&\n self.selectedStrategies().length === 0 &&\n self.selectedStructures().length === 0 &&\n self.selectedRegions().length === 0\n })\n\n self.structures = ko.pureComputed(function () {\n var filterOptions = self.apiFilterOptions()\n if (filterOptions == null) return []\n\n return filterOptions.currencies.reduce(function (agg, x) {\n filterOptions.currencyHedgedValues.forEach(function (y) {\n agg.push({ code: x.code + ';' + y.code, nameEn: x.nameEn + ' ' + y.nameEn, nameFr: x.nameFr + ' ' + y.nameFr })\n })\n return agg\n }, [])\n })\n\n self.selectedAssetClasses = ko.observableArray(initialState.selectedAssetClasses)\n self.selectedAssetClasses.subscribe(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n self.selectedSubAssetClasses = ko.observableArray(initialState.selectedSubAssetClasses)\n self.selectedSubAssetClasses.subscribe(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n self.selectedStrategies = ko.observableArray(initialState.selectedStrategies)\n self.selectedStrategies.subscribe(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n self.selectedRegions = ko.observableArray(initialState.selectedRegions)\n self.selectedRegions.subscribe(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n self.selectedStructures = ko.observableArray(initialState.selectedStructures)\n self.selectedStructures.subscribe(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n\n self.clearFilters = function () {\n self.selectedAssetClasses([])\n self.selectedSubAssetClasses([])\n self.selectedStrategies([])\n self.selectedRegions([])\n self.selectedStructures([])\n }\n\n self.uiData = ko.pureComputed(function () {\n var data = self.apiData()\n if (data == null) return []\n\n var sortOn = self.sortOn()\n var sortAscending = self.sortAscending()\n\n var issuerCompanyCodes = self.sponsorFeatureIsActive && self.showResultsFromAllProviders() ? [] : plugin.options.sponsorIssuerCompanyCodes\n var selectedAssetClasses = self.selectedAssetClasses()\n var selectedSubAssetClasses = self.selectedSubAssetClasses()\n var selectedStrategies = self.selectedStrategies()\n var selectedRegions = self.selectedRegions()\n var selectedStructures = self.selectedStructures()\n\n return data.filter(function (x) {\n if (issuerCompanyCodes.length > 0 && !issuerCompanyCodes.includes(x.issuerCompanyCode)) {\n return false\n }\n\n if (selectedAssetClasses.length > 0 && !selectedAssetClasses.includes(x.assetClassCode)) {\n return false\n }\n\n if (selectedSubAssetClasses.length > 0 && !selectedSubAssetClasses.includes(x.subAssetClassCode)) {\n return false\n }\n\n if (selectedStrategies.length > 0 && !selectedStrategies.includes(x.strategyCode)) {\n return false\n }\n\n if (selectedRegions.length > 0 && !selectedRegions.includes(x.regionCode)) {\n return false\n }\n\n if (\n selectedStructures.length > 0 && \n !selectedStructures.some(function (y) { \n var codes = y.split(';')\n return x.currencyCode === codes[0] && x.currencyHedged === codes[1]\n })\n ) {\n return false\n }\n\n return true\n }).map(function (x) {\n return $.extend(true, {}, x, {\n name: inovestor.ms.core.currentLanguage === 'fr' ? x.nameFr : x.nameEn,\n url: inovestor.ms.core.isEmptyString(plugin.options.redirectUrl) ? null : inovestor.ms.core.stringFormat(plugin.options.redirectUrl, { symbol: x.symbol, category: 'etf' }),\n ticker: mapSymbolToTicker(x.symbol)\n })\n }).sort(function (a, b) {\n var valueA = a[sortOn]\n var valueB = b[sortOn]\n\n if (valueA == null && valueB == null) return 0\n if (valueA == null) return sortAscending ? 1 : -1\n if (valueB == null) return sortAscending ? -1 : 1\n if (valueA < valueB) return sortAscending ? -1 : 1\n if (valueA > valueB) return sortAscending ? 1 : -1\n\n return 0\n }).map(function (x) {\n if (self.sponsorFeatureIsActive && self.showResultsFromAllProviders() && plugin.options.sponsorIssuerCompanyCodes.includes(x.issuerCompanyCode)) {\n return $.extend(true, {}, x, {\n name: '' + x.name + ''\n })\n }\n return x\n })\n }).extend({ rateLimit: 1 }) // clear filters would recalculates this computed many times if we don't rateLimit it\n\n self.uiData.subscribe(function (data) {\n self.selectedRows([])\n setupPagination(data.length)\n })\n\n // Compare feature\n\n self.compareFeatureIsActive = !inovestor.ms.core.isEmptyString(plugin.options.comparatorUrl)\n self.compareMaxNumberOfSymbols = plugin.options.compareMaxNumberOfSymbols\n\n self.canCompare = ko.pureComputed(function () {\n return self.compareFeatureIsActive && self.selectedRows().length > 1 && self.selectedRows().length <= self.compareMaxNumberOfSymbols\n })\n\n self.compare = function () {\n if (!self.compareFeatureIsActive) return\n\n var distinctSelectedSymbols = self.selectedRows().reduce(function (agg, x) {\n if (!inovestor.ms.core.isEmptyString(x.symbol) && !agg.includes(x.symbol.toUpperCase())) {\n agg.push(x.symbol.toUpperCase())\n }\n return agg\n }, [])\n\n if (distinctSelectedSymbols.length < 2) return\n\n location.href = inovestor.ms.core.stringFormat(plugin.options.comparatorUrl, { symbols: distinctSelectedSymbols.join(',') })\n }\n\n self.selectedRows = ko.observableArray(self.uiData() == null ? [] : self.uiData().filter(function (x) { return initialState.selectedRows.includes(x.symbol) }))\n self.selectedRows.subscribe(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n\n // Pagination\n\n self.resultsPerPage = ko.observable(initialState.resultsPerPage)\n self.resultsPerPage.subscribe(function () {\n setupPagination(self.uiData().length) \n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n self.currentPageIndex = ko.observable(initialState.currentPageIndex)\n self.currentPageIndex.subscribe(function () {\n inovestor.ms.etf.largestMostActive.cache.set(self, plugin.options.stateStore)\n })\n self.currentPageItems = ko.pureComputed(function () {\n var startIndex = self.currentPageIndex() * self.resultsPerPage()\n return (self.uiData() || []).slice(startIndex, startIndex + self.resultsPerPage())\n })\n self.currentPageInfo = ko.pureComputed(function () {\n var start = self.currentPageIndex() * self.resultsPerPage() + 1;\n var end = self.currentPageIndex() * self.resultsPerPage() + self.currentPageItems().length;\n var total = (self.uiData() || []).length;\n return inovestor.ms.core.stringFormat(self.resources().pagination.paginationInfo, { start: start, end: end, total: total });\n })\n\n function setupPagination (dataLength) {\n var $pagination = $('#largest-most-active-pagination')\n $pagination.twbsPagination('destroy')\n\n if (!dataLength || dataLength === 0)\n return\n\n var numPages = Math.ceil(dataLength / self.resultsPerPage())\n\n if (self.currentPageIndex() > (numPages - 1))\n self.currentPageIndex(numPages - 1)\n\n $pagination.twbsPagination({\n totalPages: numPages,\n visiblePages: 5,\n initiateStartPageClick: false,\n startPage: self.currentPageIndex() + 1,\n first: self.resources().pagination.firstPage,\n prev: self.resources().pagination.previousPage,\n next: self.resources().pagination.nextPage,\n last: self.resources().pagination.lastPage,\n onPageClick: function (event, page) {\n self.currentPageIndex(page - 1);\n }\n })\n }\n\n // Export to CSV\n\n self.exportToCsv = function () {\n try {\n var rows = [\n [\n encodeCsvStringValue(self.resources().ticker),\n encodeCsvStringValue(self.resources().name),\n encodeCsvStringValue(self.resources().netAssets),\n encodeCsvStringValue(self.resources().maxManagementFee),\n encodeCsvStringValue(self.resources().price),\n encodeCsvStringValue(self.resources().averageVolume30Days)\n ]\n ]\n \n self.uiData().forEach(function (x) {\n rows.push([\n encodeCsvStringValue(x.symbol),\n encodeCsvStringValue(inovestor.ms.core.currentLanguage === 'fr' ? x.nameFr : x.nameEn),\n x.assetUnderManagement,\n x.managementFee,\n x.nav,\n x.averageVolume30Days\n ])\n })\n \n var csvString = rows.map(function (row) { return row.join(',') }).join('\\r\\n')\n \n var blob = new Blob([csvString], { type: \"text/csv;charset=utf-8\" })\n saveAs(blob, inovestor.ms.core.currentLanguage === 'fr' ? 'FnbLesPlusImportantsEtLesPlusLiquides.csv' : 'LargestAndMostLiquidEtfs.csv')\n } catch (e) {\n $('.etf-largest-most-active__generic-error-modal').modal()\n console.error(e)\n }\n }\n\n function encodeCsvStringValue (value) {\n if (value == null) return ''\n return '\"' + value.replace(/\"/g, '\"\"') + '\"'\n }\n\n function mapSymbolToTicker (symbol) {\n if (symbol == null) return null\n var parts = symbol.split(':')\n return parts.length > 1 ? parts[1] : parts[0]\n }\n }\n\n})(inovestor.ms.libRef.jQuery, inovestor.ms.libRef.ko, inovestor);\n; (function ($, ko, inovestor, undefined) {\n\n var pluginName = 'inoMsEtfLargestMostActive';\n\n // Create the plugin constructor\n function Plugin(element, options) {\n\n this.element = element;\n this._name = pluginName;\n this._defaults = $.fn.inoMsEtfLargestMostActive.defaults;\n\n // Merge options with defaults\n this.options = $.extend({}, this._defaults, options);\n\n this._viewModel = new inovestor.ms.etf.largestMostActive.viewModels.largestMostActiveViewModel(this);\n\n // Call init\n this.init();\n }\n\n $.extend(Plugin.prototype, {\n\n // Initialization logic\n init: function () {\n var plugin = this;\n\n // Setup what plugin needs to do on language change\n inovestor.ms.core.instances.register(this, function () {\n plugin._viewModel.updateResources();\n });\n\n // Plugin overrides for template = cacheKey and path are the same\n var fileCacheKey = plugin.options.templatePaths.largestMostActive;\n var filePath = plugin.options.templatePaths.largestMostActive;\n // Default behavior (if no template path is set by plugin)\n if (inovestor.ms.core.isEmptyString(fileCacheKey)) {\n var fileName = 'largestMostActive.html';\n fileCacheKey = pluginName + '.' + fileName;\n filePath = (inovestor.ms.core.isEmptyString(inovestor.ms.core.config.templateRootUrl) ? '' : inovestor.ms.core.config.templateRootUrl) +\n (inovestor.ms.core.isEmptyString(inovestor.ms.core.config.templateRootUrl) || inovestor.ms.core.config.templateRootUrl.match(/\\/$/) != null ? '' : '/') + // check if templateRootUrl ends in slash\n (this._name + '/' + fileName);\n }\n\n // Get main template file\n inovestor.ms.core.getTemplate(fileCacheKey, filePath).then(function (template) {\n $(plugin.element).html(template);\n plugin.buildCache();\n plugin.bindEvents();\n plugin.bindModel();\n plugin.render();\n }).then(function () {\n plugin._viewModel.init().always(function () {\n plugin.$element.trigger('ready' + '.' + plugin._name);\n });\n });\n },\n\n // Remove plugin instance completely\n destroy: function () {\n this.unbindEvents();\n this.$element.removeData();\n },\n\n // Cache DOM nodes for performance\n buildCache: function () {\n this.$element = $(this.element);\n },\n\n // Bind events that trigger methods\n bindEvents: function () {\n var plugin = this;\n plugin.$element.on('ready' + '.' + plugin._name, function () {\n var onReady = plugin.options.onReady;\n if (typeof onReady === 'function')\n onReady.call(plugin.$element);\n });\n },\n\n // Unbind events that trigger methods\n unbindEvents: function () {\n this.$element.off('.' + this._name);\n },\n\n // API error handler\n apiErrorHandler: function (apiError) {\n var plugin = this;\n var onError = plugin.options.onError;\n if (typeof onError === 'function') {\n var result = onError.call(inovestor.ms.core.generateError(inovestor.ms.core.errors.apiError, apiError, plugin));\n // If callback returns false, do not execute default behavior\n if (!inovestor.ms.core.isNullOrUndefined(result) && result === false)\n return;\n }\n\n plugin._viewModel.hasError(true);\n },\n\n // Renders html template and binds model (should be called once)\n render: function () {\n var plugin = this;\n plugin._viewModel.updateResources();\n },\n\n // Applies knockout bindings to element. (Should be done only once)\n bindModel: function () {\n var plugin = this;\n ko.applyBindings(plugin._viewModel, plugin.element);\n }\n });\n\n // JQuery Plugin wrapper\n $.fn.inoMsEtfLargestMostActive = function (options) {\n this.each(function () {\n if (!$.data(this, pluginName)) {\n // Store instance of plugin in \"$.data\"\n $.data(this, pluginName, new Plugin(this, options));\n }\n });\n\n // return plugin to support JQuery chaining\n return this;\n };\n\n // Default options for plugin\n $.fn.inoMsEtfLargestMostActive.defaults = {\n onError: null,\n onReady: null,\n redirectUrl: null,\n comparatorUrl: null,\n compareMaxNumberOfSymbols: 5,\n sponsorIssuerCompanyCodes: null,\n sponsorCheckboxText: {\n en: 'Show sponsored ETFs only',\n fr: 'Afficher seulement les FNB commandités'\n },\n stateStore: null, // { get: () => State | null | undefined, set: (state: State) => void }\n templatePaths: {\n largestMostActive: null\n }\n };\n\n})(inovestor.ms.libRef.jQuery, inovestor.ms.libRef.ko, inovestor);\n; (function (etf, undefined) {\n etf.largestMostActive.resources = etf.largestMostActive.resources || {};\n etf.largestMostActive.resources[\"en\"] = {\n largestMostActiveTitle: 'Largest and Most Liquid ETFs',\n applyFilters: 'FILTERS',\n clearFilters: 'CLEAR FILTERS',\n results: 'Results',\n hideShowColumns: 'Hide/Show Columns',\n noResultsFound: 'No results found',\n showResultsFromAllProviders: 'Show results from all providers',\n downloadCsv: 'DOWNLOAD CSV',\n close: 'Close',\n\n assetClass: 'Asset Class',\n subAssetClass: 'Sub-Asset Class',\n strategy: 'Strategy',\n structure: 'Structure',\n region: 'Region',\n\n ticker: 'Ticker',\n name: 'Name',\n netAssets: 'Net Assets',\n maxManagementFee: 'Max Management Fee',\n price: 'Price (NAV)',\n averageVolume30Days: 'Avg. Volume',\n\n footnote: \"* Screening is based on Canadian-listed ETFs with a minimum of $100 million in Assets Under Management (AUM) and an average trading volume of at least $1 million on the last 30 days.\",\n\n pagination: {\n paginationInfo: '{start} - {end} of {total}',\n nextPage: 'Next',\n previousPage: 'Previous',\n firstPage: 'First',\n lastPage: 'Last',\n itemsPerPage: 'Items per page'\n },\n \n compare: {\n selectedItems: 'Selected Items',\n emptySelection: 'Your selection is empty',\n addToComparison: 'Add to comparison',\n itemSelected: '{qty} item selected',\n itemsSelected: '{qty} items selected',\n maxSelectionWarning: 'Select up to {max} items',\n view: 'View',\n close: 'Close',\n compare: 'Compare',\n compareSelectedItems: 'Compare selected etfs',\n checkboxAriaLabel: 'Add \"{symbol}\" to comparison'\n }\n };\n})(inovestor.ms.etf);\n\n; (function (etf, undefined) {\n etf.largestMostActive.resources = etf.largestMostActive.resources || {};\n etf.largestMostActive.resources[\"fr\"] = {\n largestMostActiveTitle: 'Les FNB les plus importants et les plus liquides',\n applyFilters: 'FILTRES',\n clearFilters: 'SUPPRIMER LES FILTRES',\n results: 'Résultats',\n hideShowColumns: 'Masquer/Afficher les colonnes',\n noResultsFound: 'Aucun résultat trouvé',\n showResultsFromAllProviders: 'Montrer les résultats de tous les fournisseurs',\n downloadCsv: 'TÉLÉCHARGER EN CSV',\n close: 'Fermer',\n\n assetClass: \"Classe d'actifs\",\n subAssetClass: \"Sous-classe d'actifs\",\n strategy: 'Stratégie',\n structure: 'Structure',\n region: 'Région',\n\n ticker: 'Ticker',\n name: 'Nom',\n netAssets: 'Actif net',\n maxManagementFee: 'Frais de gestion max.',\n price: 'Prix (NAV)',\n averageVolume30Days: 'Volume moy.',\n\n footnote: \"* La sélection est basée sur les FNB cotés au Canada avec un actif sous gestion (ASG) d'au moins 100 millions de dollars et un volume de transactions moyen sur 30 jours d'au moins 1 million de dollars.\",\n\n pagination: {\n paginationInfo: '{start} à {end} de {total}',\n nextPage: 'Prochain',\n previousPage: 'Précédent',\n firstPage: 'Premier',\n lastPage: 'Dernier',\n itemsPerPage: 'Items par page'\n },\n \n compare: {\n selectedItems: 'Items sélectionnés',\n emptySelection: 'Votre sélection est vide',\n addToComparison: 'Ajouter à la comparaison',\n itemSelected: '{qty} item sélectionné',\n itemsSelected: '{qty} items sélectionnés',\n maxSelectionWarning: \"Sélectionnez jusqu'à {max} articles\",\n view: 'Voir',\n close: 'Fermer',\n compare: 'Comparer',\n compareSelectedItems: 'Comparer les fnb sélectionnés',\n checkboxAriaLabel: 'Ajouter \"{symbol}\" à la comparaison'\n }\n };\n})(inovestor.ms.etf);\n","window[\"inoMsTemplatesCache\"] = window[\"inoMsTemplatesCache\"] || {};\nwindow[\"inoMsTemplatesCache\"][\"inoMsEtfLargestMostActive.largestMostActive.html\"] = \"
0\\\">
    0\\\"> 1, stringFormat: resources().compare.itemsSelected, formatValues: { qty: selectedRows().length }\\\">
    compareMaxNumberOfSymbols\\\">

    \"; "]}