{"version":3,"sources":["../LuV.LUMAS.Services/scripts/controls/online-lumasController.ts"],"names":["LumasController","prototype","init","_this","this","window","$lumasContext","onLogin","push","runInit","onLogout","force","$timeout","lumasService","initializeAppData","then","appData","showForbiddenError","showForbidden","viewData","Refinements","BasePolymers","Brands","Colors","Modifiers","Reinforcements","ProductLines","ProductGroups","Properties","Relevances","ComparableProperties","initViewData","query","localStorage","getItem","removeItem","urlHelper","getQueryFromUriParam","loadProducts","$","attr","recalcViewDimensions","presetPropertyFilters","presetReinforcementFilters","presetModifierFilters","presetCapabilityGroupFilters","catch","err","showInitialError","vm","$scope","unrefinedFilters","Filters","RefinedFilters","getClonedFilters","CapabilityGroups","filters","clonedFilters","length","_i","filters_1","filter","angular","extend","updateViewData","refiners","getRefinedFilters","Resistances","getRefinedPropertyFilters","filtersInQuery","refiner","refinedFilters","unrefinedFilters_1","unrefinedFilter","hideFilter","IsActive","refinerContainsFilter","Options","_a","_b","refinerOption","Id","Relevance","_c","filtersInQuery_1","unrefinedPropertyFilters","propertyRefiner","AbsoluteResultCount","refinedPropertyFilters","unrefinedPropertyFilters_1","unrefinedPropertyFilter","selectionAdded","array","value","genericHelper_1","containsValue","Selected","selectionAdded2WaySilder","MinValue","MaxValue","selectionAddedResistance","Value","selectionAddedCapabilityGroup","Capabilities","selectionTriggerPropertySelection","indexOfValue","Title","Unit","propertySelectionOpenClose","isOpen","searchProducts","selectionAddedCompareProperty","selectionRemove","index","indexOf","splice","resetSearch","initialized","$location","path","Math","random","toString","substr","skipOnEmptyUrl","showResult","scrollTop","document","getElementById","documentElement","SelectedProducts","queryIsEmpty","reinforcement","permissions","onlineAudience","IsDisabled","modifier","_d","_e","capabilityGroup","i","property","propertyFilter","findValue","findProductsPath","getUriParamFromQuery","setItem","date","Date","newPath","getMilliseconds","getSeconds","getMinutes","getHours","isLoading","showLoading","findProducts","showFilter","$log","error","changeStandard","compareProducts","$broadcast","presetBrandFilters","brandFilter","some","b","presetBasePolymerFilters","basePolymer","OnlineIsDefault","ASTM","Standard","ISO","reinforcementFilter","ParentId","modifierFilter","capabilityGroupFilter","downloadTdsFile","product","file","ProductCode","Language","$inject","$routeParams","$http","$filter","urlHelperService_1","UrlHelperService","getEmptyQuery","exports"],"mappings":"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","file":"online-lumasController.js","sourcesContent":["import angular = require('angular');\r\nimport 'angular-filter';\r\n\r\nimport $ = require('jquery');\r\nimport { UrlHelperService } from '../helpers/urlHelperService';\r\nimport { IQuery, IAppData } from '../interfaces';\r\nimport { LumasService } from '../services/LumasService';\r\nimport { containsValue, findValue, indexOfValue } from '../helpers/genericHelper';\r\n\r\ninterface ILumasControllerParams extends ng.route.IRouteParamsService {\r\n\tquery: any;\r\n}\r\n\r\ninterface ILumasControllerScope extends ng.IScope {\r\n\tvm: LumasController;\r\n}\r\n\r\nexport class LumasController {\r\n\tpublic static $inject = [`$routeParams`, `$log`, `lumasService`, `$scope`, `$location`, `$timeout`, `$http`, '$filter'];\r\n\tpublic constructor(private $routeParams: ILumasControllerParams, private $log: ng.ILogService, private lumasService: LumasService, private $scope: ILumasControllerScope, private $location: ng.ILocationService, private $timeout: ng.ITimeoutService, private $http: ng.IHttpService, private $filter: ng.IFilterService) {\r\n\t\t$scope.vm = this;\r\n\t\tthis.query = lumasService.getEmptyQuery();\r\n\t}\r\n\r\n\tpublic appData: IAppData;\r\n\tpublic viewData: any;\r\n\r\n\tpublic showResult: boolean = false;\r\n\tpublic showLoading: boolean = false;\r\n\tpublic showFilter: boolean = false;\r\n\tpublic showForbidden: boolean = false;\r\n\tpublic showInitialError: boolean = false;\r\n\r\n\tprivate urlHelper = new UrlHelperService();\r\n\r\n\tpublic query: IQuery;\r\n\r\n\t/* init app start */\r\n\tpublic init() {\r\n\t\twindow.$lumasContext.onLogin.push(() => {\r\n\t\t\tthis.runInit(true);\r\n\t\t});\r\n\t\twindow.$lumasContext.onLogout.push(() => {\r\n\t\t\tthis.runInit(true);\r\n\t\t});\r\n\t\tthis.runInit(false);\r\n\t}\r\n\r\n\tprivate runInit(force: boolean) {\r\n\t\t// adding timeout to avoid loading issue on luv terminal server ie\r\n\t\tthis.$timeout(() => {\r\n\t\t\tthis.lumasService\r\n\t\t\t\t.initializeAppData(force)\r\n\t\t\t\t.then(() => {\r\n\t\t\t\t\tthis.appData = this.lumasService.appData;\r\n\t\t\t\t\tif (this.appData.showForbiddenError) {\r\n\t\t\t\t\t\tthis.showForbidden = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.viewData = {\r\n\t\t\t\t\t\t\tRefinements: { BasePolymers: {}, Brands: {}, Colors: {}, Modifiers: {}, Reinforcements: {}, ProductLines: {}, ProductGroups: {}, Properties: {} },\r\n\t\t\t\t\t\t\tRelevances: { Properties: [] },\r\n\t\t\t\t\t\t\tComparableProperties: [],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tthis.initViewData();\r\n\t\t\t\t\t\t//this.bindSliderEvents();\r\n\t\t\t\t\t\tlet query = localStorage.getItem('luv_lumas_online_findproducts_query');\r\n\t\t\t\t\t\tlocalStorage.removeItem('luv_lumas_online_findproducts_query');\r\n\r\n\t\t\t\t\t\tif (query) {\r\n\t\t\t\t\t\t\tthis.query = this.urlHelper.getQueryFromUriParam(query);\r\n\t\t\t\t\t\t\tthis.loadProducts();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tthis.$timeout(() => {\r\n\t\t\t\t\t\t\t/* set placeholder text for filter fields */\r\n\t\t\t\t\t\t\t$('.ui-select-search').attr('placeholder', 'search filter value');\r\n\t\t\t\t\t\t\tthis.recalcViewDimensions();\r\n\t\t\t\t\t\t}, 0);\r\n\r\n\t\t\t\t\t\tthis.presetPropertyFilters();\r\n\t\t\t\t\t\tthis.presetReinforcementFilters();\r\n\t\t\t\t\t\tthis.presetModifierFilters();\r\n\t\t\t\t\t\tthis.presetCapabilityGroupFilters();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\tthis.showInitialError = true;\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tpublic initViewData() {\r\n\t\tvar vm = this.$scope.vm;\r\n\r\n\t\tvar viewData = vm.viewData;\r\n\t\tvar unrefinedFilters = vm.appData.Filters;\r\n\r\n\t\tviewData.RefinedFilters = {\r\n\t\t\tBasePolymers: this.getClonedFilters(unrefinedFilters.BasePolymers),\r\n\t\t\tBrands: this.getClonedFilters(unrefinedFilters.Brands),\r\n\t\t\t//ProductLines: this.getClonedFilters(unrefinedFilters.ProductLines),\r\n\t\t\t//ProductGroups: this.getClonedFilters(unrefinedFilters.ProductGroups),\r\n\t\t\tReinforcements: this.getClonedFilters(unrefinedFilters.Reinforcements),\r\n\t\t\tModifiers: this.getClonedFilters(unrefinedFilters.Modifiers),\r\n\t\t\t//Colors: this.getClonedFilters(unrefinedFilters.Colors),\r\n\t\t\tCapabilityGroups: this.getClonedFilters(unrefinedFilters.CapabilityGroups),\r\n\t\t\t//Resistances: this.getClonedFilters(unrefinedFilters.Resistances),\r\n\t\t\tProperties: this.getClonedFilters(unrefinedFilters.Properties),\r\n\t\t};\r\n\t}\r\n\tl\r\n\tpublic getClonedFilters(filters) {\r\n\t\tvar clonedFilters = [];\r\n\t\tif (filters && filters.length > 0) {\r\n\t\t\tfor (var filter of filters) {\r\n\t\t\t\tclonedFilters.push(angular.extend({}, filter));\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn clonedFilters;\r\n\t}\r\n\r\n\t// private bindSliderEvents() {\r\n\t// //var sliderOptions = this.$scope.vm.appData.sliderOptions;\r\n\r\n\t// // var searchProductsCallback = () => {\r\n\t// // this.searchProducts();\r\n\t// // };\r\n\t// // sliderOptions.capability.onEnd = sliderOptions.range.onEnd = sliderOptions.temperature.onEnd = sliderOptions.temperaturePotentiallyDisabled.onEnd = sliderOptions.resistance.onEnd = sliderOptions.tensileModulus.onEnd = sliderOptions.tensileStrength.onEnd = searchProductsCallback;\r\n\r\n\t// // for (var propertyFilter of this.$scope.vm.appData.Filters.Properties) {\r\n\t// // if (sliderOptions.properties[propertyFilter.Id] != null) sliderOptions.properties[propertyFilter.Id].onEnd = searchProductsCallback;\r\n\t// // }\r\n\t// }\r\n\t/* init app end */\r\n\r\n\t/* filter handling start */\r\n\tpublic updateViewData() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tvar viewData = vm.viewData;\r\n\t\tvar unrefinedFilters = vm.appData.Filters;\r\n\t\tvar query = vm.query;\r\n\t\tvar refiners = viewData.Refinements;\r\n\r\n\t\tviewData.RefinedFilters = {\r\n\t\t\tBasePolymers: this.getRefinedFilters(unrefinedFilters.BasePolymers, query.BasePolymers, refiners.BasePolymers),\r\n\t\t\tBrands: this.getRefinedFilters(unrefinedFilters.Brands, query.Brands, refiners.Brands),\r\n\t\t\tProductLines: this.getRefinedFilters(unrefinedFilters.ProductLines, query.ProductLines, refiners.ProductLines),\r\n\t\t\tProductGroups: this.getRefinedFilters(unrefinedFilters.ProductGroups, query.ProductGroups, refiners.ProductGroups),\r\n\t\t\tReinforcements: this.getRefinedFilters(unrefinedFilters.Reinforcements, query.Reinforcements),\r\n\t\t\tModifiers: this.getRefinedFilters(unrefinedFilters.Modifiers, query.Modifiers),\r\n\t\t\tColors: this.getRefinedFilters(unrefinedFilters.Colors, query.Colors, refiners.Colors),\r\n\t\t\tCapabilityGroups: this.getRefinedFilters(unrefinedFilters.CapabilityGroups, query.CapabilityGroups, {}),\r\n\t\t\tResistances: this.getRefinedFilters(unrefinedFilters.Resistances, query.Resistances, {}),\r\n\t\t\tProperties: this.getRefinedPropertyFilters(unrefinedFilters.Properties, refiners.Properties),\r\n\t\t};\r\n\t}\r\n\r\n\tpublic getRefinedFilters(unrefinedFilters, filtersInQuery, refiner?) {\r\n\t\tvar refinedFilters = [];\r\n\t\tif (unrefinedFilters && unrefinedFilters.length > 0) {\r\n\t\t\tfor (var unrefinedFilter of unrefinedFilters) {\r\n\t\t\t\tvar hideFilter = false;\r\n\t\t\t\tif (refiner && refiner.IsActive) {\r\n\t\t\t\t\tvar refinerContainsFilter = false;\r\n\t\t\t\t\tif (refiner.Options) {\r\n\t\t\t\t\t\tfor (var refinerOption of refiner.Options) {\r\n\t\t\t\t\t\t\tif (refinerOption.Id == unrefinedFilter.Id) {\r\n\t\t\t\t\t\t\t\tunrefinedFilter.Relevance = refinerOption.Relevance;\r\n\t\t\t\t\t\t\t\trefinerContainsFilter = true;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!refinerContainsFilter) hideFilter = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!hideFilter) {\r\n\t\t\t\t\tfor (var queryFilter of filtersInQuery) {\r\n\t\t\t\t\t\tif (queryFilter.Id == unrefinedFilter.Id) {\r\n\t\t\t\t\t\t\thideFilter = true;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!hideFilter) {\r\n\t\t\t\t\trefinedFilters.push(unrefinedFilter);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn refinedFilters;\r\n\t}\r\n\r\n\tpublic getRefinedPropertyFilters(unrefinedPropertyFilters, propertyRefiner) {\r\n\t\tif (typeof this.viewData.AbsoluteResultCount === 'undefined') return this.getRefinedFilters(unrefinedPropertyFilters, [], propertyRefiner);\r\n\r\n\t\tvar refinedPropertyFilters = [];\r\n\t\tfor (var unrefinedPropertyFilter of unrefinedPropertyFilters) {\r\n\t\t\tunrefinedPropertyFilter.Relevance = 0;\r\n\t\t\tif (propertyRefiner && propertyRefiner.IsActive) {\r\n\t\t\t\tif (propertyRefiner.Options) {\r\n\t\t\t\t\tfor (var refinerOption of propertyRefiner.Options) {\r\n\t\t\t\t\t\tif (refinerOption.Id == unrefinedPropertyFilter.Id) {\r\n\t\t\t\t\t\t\tunrefinedPropertyFilter.Relevance = refinerOption.Relevance;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\trefinedPropertyFilters.push(unrefinedPropertyFilter);\r\n\t\t}\r\n\t\treturn refinedPropertyFilters;\r\n\t}\r\n\t/* filter handling end */\r\n\r\n\t/* filter general start */\r\n\tpublic selectionAdded(array: any[], value: any) {\r\n\t\tif (!containsValue(array, value)) {\r\n\t\t\tvalue.Selected = true;\r\n\t\t\tarray.push(value);\r\n\t\t}\r\n\t}\r\n\tpublic selectionAdded2WaySilder(array: any[], value: any) {\r\n\t\tif (!containsValue(array, value)) {\r\n\t\t\tvalue.MinValue = 1;\r\n\t\t\tvalue.MaxValue = 100;\r\n\t\t\tarray.push(value);\r\n\t\t}\r\n\t}\r\n\tpublic selectionAddedResistance(array: any[], value: any) {\r\n\t\tif (!containsValue(array, value)) {\r\n\t\t\tvalue.Value = -1;\r\n\t\t\tarray.push(value);\r\n\t\t}\r\n\t}\r\n\tpublic selectionAddedCapabilityGroup(array: any[], value: any) {\r\n\t\tif (!containsValue(array, value)) {\r\n\t\t\tfor (var cap of value.Capabilities) {\r\n\t\t\t\tcap.Value = 0;\r\n\t\t\t}\r\n\t\t\tarray.push(value);\r\n\t\t\tthis.updateViewData();\r\n\t\t}\r\n\t}\r\n\tpublic selectionTriggerPropertySelection(array: any[], value: any) {\r\n\t\tvar valueIndex = indexOfValue(array, value);\r\n\t\tif (valueIndex < 0) {\r\n\t\t\tarray.push({\r\n\t\t\t\tId: value.Id,\r\n\t\t\t\tMinValue: value.MinValue,\r\n\t\t\t\tMaxValue: value.MaxValue,\r\n\t\t\t\tTitle: value.Title,\r\n\t\t\t\tUnit: value.Unit,\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.updateViewData();\r\n\t}\r\n\tpublic propertySelectionOpenClose(isOpen: boolean) {\r\n\t\tif (!isOpen) {\r\n\t\t\tthis.searchProducts();\r\n\t\t}\r\n\t}\r\n\tpublic selectionAddedCompareProperty(array: any[], value: any) {\r\n\t\tif (!containsValue(array, value)) {\r\n\t\t\tvalue.Selected = true;\r\n\t\t\tarray.push(value);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic selectionRemove(array: any[], value: any) {\r\n\t\tvar index = array.indexOf(value);\r\n\t\tif (index != -1) {\r\n\t\t\tvalue.Selected = false;\r\n\t\t\tarray.splice(index, 1);\r\n\t\t}\r\n\t}\r\n\t/* filter general end */\r\n\r\n\tpublic resetSearch() {\r\n\t\tthis.appData.initialized = false;\r\n\t\tthis.$location.path(\r\n\t\t\t'/' +\r\n\t\t\tMath.random()\r\n\t\t\t\t.toString()\r\n\t\t\t\t.substr(2)\r\n\t\t);\r\n\t}\r\n\r\n\t/* find products start */\r\n\tpublic searchProducts(skipOnEmptyUrl?: boolean) {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tthis.showResult = true;\r\n\t\tif (!skipOnEmptyUrl || this.$location.path() != '/') {\r\n\t\t\tvm.appData.scrollTop = (document.getElementById('s4-workspace') || document.documentElement).scrollTop;\r\n\t\t\tvar query = vm.query;\r\n\t\t\tquery.SelectedProducts = []; // empty Selected Products cause there is no need to save this.\r\n\t\t\tif (this.lumasService.queryIsEmpty(query)) {\r\n\t\t\t\tthis.resetSearch();\r\n\t\t\t} else {\r\n\t\t\t\tfor (let reinforcement of query.Reinforcements) {\r\n\t\t\t\t\tif (!vm.appData.permissions.onlineAudience) {\r\n\t\t\t\t\t\treinforcement.IsDisabled = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\treinforcement.IsDisabled = false;\r\n\t\t\t\t\t\tif (reinforcement.MinValue == 0 && reinforcement.MaxValue == 0) reinforcement.MaxValue = 9;\r\n\t\t\t\t\t\telse if (reinforcement.MinValue == 100 && reinforcement.MaxValue == 100) reinforcement.MinValue = 41;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tfor (let modifier of query.Modifiers) {\r\n\t\t\t\t\tswitch (modifier.MinValue) {\r\n\t\t\t\t\t\tcase 1: modifier.MaxValue = 100; break;\r\n\t\t\t\t\t\tcase 0: modifier.MaxValue = 0; break;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmodifier.IsDisabled = modifier.MinValue == -1;\r\n\t\t\t\t}\r\n\t\t\t\tfor (let capabilityGroup of query.CapabilityGroups) {\r\n\t\t\t\t\tcapabilityGroup.IsDisabled = capabilityGroup.Value == -1;\r\n\t\t\t\t}\r\n\t\t\t\tfor (let i = query.Properties.length; i > 0; i--) {\r\n\t\t\t\t\tlet property = query.Properties[i - 1];\r\n\t\t\t\t\tlet propertyFilter = findValue(vm.appData.Filters.Properties, property);\r\n\t\t\t\t\tproperty.IsDisabled = property.MinValue == propertyFilter.MinValue && property.MaxValue == propertyFilter.MaxValue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet findProductsPath = this.urlHelper.getUriParamFromQuery(query);\r\n\t\t\t\tlocalStorage.setItem('luv_lumas_online_findproducts_query', findProductsPath);\r\n\r\n\t\t\t\tlet date = new Date();\r\n\t\t\t\tlet newPath = `${date.getMilliseconds()}${date.getSeconds()}${date.getMinutes()}${date.getHours()}`;\r\n\t\t\t\tthis.$location.path('/findProducts/' + newPath);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic loadProducts() {\r\n\t\tthis.$scope.vm.appData.isLoading = true;\r\n\t\tthis.$timeout(() => {\r\n\t\t\tif (this.$scope.vm.appData.isLoading) {\r\n\t\t\t\tthis.$scope.vm.showLoading = true;\r\n\t\t\t}\r\n\t\t}, 500);\r\n\t\t\r\n\t\treturn this.lumasService\r\n\t\t\t.findProducts(this.$scope.vm.query)\r\n\t\t\t.then(viewData => {\r\n\t\t\t\tthis.$scope.vm.viewData = viewData;\r\n\t\t\t\tthis.$scope.vm.updateViewData();\r\n\t\t\t\t(document.getElementById('s4-workspace') || document.documentElement).scrollTop = this.$scope.vm.appData.scrollTop;\r\n\t\t\t\tthis.$scope.vm.appData.isLoading = false;\r\n\t\t\t\tthis.$scope.vm.showLoading = false;\r\n\t\t\t\tthis.$scope.vm.showResult = true;\r\n\t\t\t\tthis.$scope.vm.showFilter = false;\r\n\t\t\t})\r\n\t\t\t.catch(err => {\r\n\t\t\t\tthis.$log.error(err);\r\n\t\t\t\tthis.showInitialError = true;\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublic changeStandard() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tvm.query.Properties = [];\r\n\t\tthis.presetPropertyFilters();\r\n\t}\r\n\t/* find products end */\r\n\r\n\t/* compare start */\r\n\tpublic compareProducts() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tthis.$location.path('/compareProducts/' + this.urlHelper.getUriParamFromQuery(vm.query));\r\n\t}\r\n\t/* compare end */\r\n\r\n\tpublic recalcViewDimensions() {\r\n\t\tthis.$scope.$broadcast('reCalcViewDimensions'); // fix for sliders not repositioning\r\n\t\treturn true;\r\n\t}\r\n\r\n\tpublic presetBrandFilters() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tfor (var brandFilter of vm.viewData.RefinedFilters.Brands) {\r\n\t\t\tif (vm.query.Brands.some(b => { return b.Selected && b.Id == brandFilter.Id })) {\r\n\t\t\t\tbrandFilter.Selected = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tbrandFilter.Selected = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic presetBasePolymerFilters() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tfor (var basePolymer of vm.viewData.RefinedFilters.BasePolymers) {\r\n\t\t\tif (vm.query.BasePolymers.some(b => { return b.Selected && b.Id == basePolymer.Id })) {\r\n\t\t\t\tbasePolymer.Selected = true;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tbasePolymer.Selected = false;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic presetPropertyFilters() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tfor (var propertyFilter of vm.appData.Filters.Properties) {\r\n\t\t\tif (propertyFilter.OnlineIsDefault && ((propertyFilter.ASTM && vm.query.Standard == 'ASTM') || (propertyFilter.ISO && vm.query.Standard == 'ISO'))) {\r\n\t\t\t\tvm.selectionTriggerPropertySelection(vm.query.Properties, propertyFilter);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.$timeout(() => {\r\n\t\t\tthis.recalcViewDimensions();\r\n\t\t}, 0);\r\n\t}\r\n\r\n\tpublic presetReinforcementFilters() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tfor (var reinforcementFilter of vm.appData.Filters.Reinforcements) {\r\n\t\t\tif (!reinforcementFilter.ParentId && reinforcementFilter.Id != 0) {\r\n\t\t\t\tvm.selectionAdded2WaySilder(vm.query.Reinforcements, reinforcementFilter);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.$timeout(() => {\r\n\t\t\tthis.recalcViewDimensions();\r\n\t\t}, 0);\r\n\t}\r\n\r\n\tpublic presetModifierFilters() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tfor (var modifierFilter of vm.appData.Filters.Modifiers) {\r\n\t\t\tif (modifierFilter.Id > 0) {\r\n\t\t\t\tmodifierFilter.MinValue = -1;\r\n\t\t\t\tvm.selectionAdded(vm.query.Modifiers, modifierFilter);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic presetCapabilityGroupFilters() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tfor (var capabilityGroupFilter of vm.appData.Filters.CapabilityGroups) {\r\n\t\t\tcapabilityGroupFilter.Value = -1;\r\n\t\t\tvm.selectionAdded(vm.query.CapabilityGroups, capabilityGroupFilter);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic downloadTdsFile(product: { ProductCode: string }, file: { Language: string; Standard: string }) {\r\n\t\tthis.lumasService.downloadTdsFile(product.ProductCode, file.Language, file.Standard);\r\n\t}\r\n}\r\n"]}