{"version":3,"sources":["../LuV.LUMAS.Services/scripts/controls/lumasController.ts"],"names":["LumasController","prototype","init","_this","this","self","$timeout","lumasService","initializeAppData","then","appData","showForbiddenError","showForbidden","viewData","Refinements","BasePolymers","Brands","Colors","Modifiers","Reinforcements","ProductLines","ProductGroups","Properties","Relevances","ComparableProperties","initViewData","bindSliderEvents","$routeParams","query","urlHelper","getQueryFromUriParam","loadProducts","SelectedProducts","length","getLuPoBaseProductsCountByProductCode","_i","_a","Filters","prop","IsDefault","selectionAddedCompareProperty","selectedCompareProperties","genericHelper_1","findValue","_b","_c","$","attr","recalcViewDimensions","vm","$scope","unrefinedFilters","RefinedFilters","getClonedFilters","CapabilityGroups","Resistances","filters","clonedFilters","filters_1","filter","push","angular","extend","searchProductsCallback","searchProducts","sliderOptions","capability","onEnd","range","temperature","temperaturePotentiallyDisabled","resistance","tensileModulus","tensileStrength","propertyFilter","properties","Id","updateViewData","refiners","getRefinedPolymerFilters","getRefinedFilters","getRefinedPropertyFilters","getFilledPropertiesForSelectedProducts","filtersInQuery","refiner","refinedFilters","unrefinedFilters_1","unrefinedFilter","hideFilter","IsActive","refinerContainsFilter","Options","refinerOption","Relevance","filtersInQuery_1","refinedPolymerFilters","i","refinedPolymerFilter","lastRefinedPolymerFilter","IsGroup","splice","unrefinedPropertyFilters","propertyRefiner","refinedPropertyFilters","unrefinedPropertyFilters_1","unrefinedPropertyFilter","selectionAdded","array","value","containsValue","selectionAdded2WaySilder","MinValue","MaxValue","selectionAddedResistance","Value","selectionAddedCapabilityGroup","Capabilities","IsDisabled","selectionAddedBasePolymer","polymerGroup","Title","polymer","Group","selectionTriggerPropertySelection","values","values_1","valueIndex","indexOfValue","Unit","propertySelectionOpenClose","isOpen","Selected","selectedProductsChange","selectedProducts","indexOf","selectionRemove","index","groupByGroup","resetSearch","initialized","$location","path","skipOnEmptyUrl","scrollTop","document","getElementById","documentElement","queryIsEmpty","getUriParamFromQuery","scope","isLoading","showLoading","findProducts","showResult","showFilter","changeStandard","presetPropertyFilters","compareProducts","$broadcast","setActiveFilterGroup","filterGroup","activeFilterGroup","presetProperties","ASTM","ISO","printCompare","printContents","innerHTML","popupWin","window","open","write","close","selectedProductsQuery","location","origin","protocol","hostname","port","PortalConfig","sapNumbersConditions","product","selectedProductsProjectFiles","join","headers","content-type","accept","X-RequestDigest","getAttribute","$http","method","url","response","results_1","data","d","results","result","lpMaterialName","lpSAPNumberOfMaterial","err","status","$log","error","getPropertyValuesForProductByProductCodeAndPropertyName","productCode","propertyName","productByProductCode","$filter","Products","ProductCode","propertyOfProductByPropertyName","Name","selectedProductCode","selectableProperties","properties_1","property","selectedProducts_1","selectedProduct","propertyValue","$inject","urlHelperService_1","UrlHelperService","getEmptyQuery","exports"],"mappings":"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","file":"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\r\n\tprivate urlHelper = new UrlHelperService();\r\n\r\n\tpublic query: IQuery;\r\n\tpublic selectedProductsProjectFiles: any = {};\r\n\tpublic selectedCompareProperties: any = [];\r\n\r\n\t/* init app start */\r\n\tpublic init() { \r\n\t\tvar self = this;\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.initializeAppData(false).then(function () {\r\n\t\t\t\tself.appData = self.lumasService.appData;\r\n\t\t\t\tif (self.appData.showForbiddenError) {\r\n\t\t\t\t\tself.showForbidden = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.viewData = {\r\n\t\t\t\t\t\tRefinements: { BasePolymers: {}, Brands: {}, Colors: {}, Modifiers: {}, Reinforcements: {}, ProductLines: {}, ProductGroups: {}, Properties: {} },\r\n\t\t\t\t\t\tRelevances: { Properties: [] },\r\n\t\t\t\t\t\tComparableProperties: [],\r\n\t\t\t\t\t};\r\n\t\t\t\t\tself.initViewData();\r\n\t\t\t\t\tself.bindSliderEvents();\r\n\t\t\t\t\tif (self.$routeParams.query) {\r\n\t\t\t\t\t\tself.query = self.urlHelper.getQueryFromUriParam(self.$routeParams.query);\r\n\t\t\t\t\t\tself.loadProducts();\r\n\r\n\t\t\t\t\t\tif (self.query.SelectedProducts && self.query.SelectedProducts.length > 0) {\r\n\t\t\t\t\t\t\tself.getLuPoBaseProductsCountByProductCode();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (self.query.Properties.length == 0) {\r\n\t\t\t\t\t\tfor (var prop of self.appData.Filters.Properties) {\r\n\t\t\t\t\t\t\tif (prop.IsDefault) self.selectionAddedCompareProperty(self.selectedCompareProperties, findValue(self.appData.Filters.Properties, prop));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// add properties\r\n\t\t\t\t\t\tfor (var prop of self.query.Properties) {\r\n\t\t\t\t\t\t\tself.selectionAddedCompareProperty(self.selectedCompareProperties, findValue(self.appData.Filters.Properties, prop));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.$timeout(() => {\r\n\t\t\t\t\t\t/* set placeholder text for filter fields */\r\n\t\t\t\t\t\t$('.ui-select-search').attr('placeholder', 'search filter value');\r\n\t\t\t\t\t\tself.recalcViewDimensions();\r\n\t\t\t\t\t}, 0);\r\n\t\t\t\t}\r\n\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\tProductLines: this.getClonedFilters(unrefinedFilters.ProductLines),\r\n\t\t\tProductGroups: 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\tColors: this.getClonedFilters(unrefinedFilters.Colors),\r\n\t\t\tCapabilityGroups: this.getClonedFilters(unrefinedFilters.CapabilityGroups),\r\n\t\t\tResistances: this.getClonedFilters(unrefinedFilters.Resistances),\r\n\t\t\tProperties: this.getClonedFilters(unrefinedFilters.Properties),\r\n\t\t};\r\n\t}\r\n\r\n\tpublic getClonedFilters(filters) {\r\n\t\tvar clonedFilters = [];\r\n\t\tfor (var filter of filters) {\r\n\t\t\tclonedFilters.push(angular.extend({}, filter));\r\n\t\t}\r\n\t\treturn clonedFilters;\r\n\t}\r\n\r\n\tpublic bindSliderEvents() {\r\n\t\tvar sliderOptions = this.$scope.vm.appData.sliderOptions;\r\n\t\tvar self = this;\r\n\r\n\t\tvar searchProductsCallback = function () {\r\n\t\t\tself.searchProducts();\r\n\t\t};\r\n\t\tsliderOptions.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\tfor (var propertyFilter of this.$scope.vm.appData.Filters.Properties) {\r\n\t\t\tif (sliderOptions.properties[propertyFilter.Id] != null) sliderOptions.properties[propertyFilter.Id].onEnd = searchProductsCallback;\r\n\t\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\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.getRefinedPolymerFilters(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\r\n\t\tviewData.ComparableProperties = this.getFilledPropertiesForSelectedProducts();\r\n\t}\r\n\r\n\tpublic getRefinedFilters(unrefinedFilters, filtersInQuery, refiner?) {\r\n\t\tvar refinedFilters = [];\r\n\t\tfor (var unrefinedFilter of unrefinedFilters) {\r\n\t\t\tvar hideFilter = false;\r\n\t\t\tif (refiner && refiner.IsActive) {\r\n\t\t\t\tvar refinerContainsFilter = false;\r\n\t\t\t\tif (refiner.Options) {\r\n\t\t\t\t\tfor (var refinerOption of refiner.Options) {\r\n\t\t\t\t\t\tif (refinerOption.Id == unrefinedFilter.Id) {\r\n\t\t\t\t\t\t\tunrefinedFilter.Relevance = refinerOption.Relevance;\r\n\t\t\t\t\t\t\trefinerContainsFilter = 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\t\t\t\tif (!refinerContainsFilter) hideFilter = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (!hideFilter) {\r\n\t\t\t\tfor (var queryFilter of filtersInQuery) {\r\n\t\t\t\t\tif (queryFilter.Id == unrefinedFilter.Id) {\r\n\t\t\t\t\t\thideFilter = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!hideFilter) {\r\n\t\t\t\trefinedFilters.push(unrefinedFilter);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn refinedFilters;\r\n\t}\r\n\r\n\tpublic getRefinedPolymerFilters(unrefinedFilters, filtersInQuery, refiner?) {\r\n\t\tlet refinedPolymerFilters = this.getRefinedFilters(unrefinedFilters, filtersInQuery, refiner);\r\n\r\n\t\tfor (let i = refinedPolymerFilters.length - 1; i >= 0; i--) {\r\n\t\t\tlet refinedPolymerFilter = refinedPolymerFilters[i];\r\n\t\t\tlet lastRefinedPolymerFilter = refinedPolymerFilters[i - 1];\r\n\t\t\tif (refinedPolymerFilter.IsGroup && (!lastRefinedPolymerFilter || lastRefinedPolymerFilter.IsGroup)) {\r\n\t\t\t\trefinedPolymerFilters.splice(i - 1, 1);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn refinedPolymerFilters;\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\tvar refinerContainsFilter = false;\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\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\tvalue.IsDisabled = true;\r\n\t\t\tarray.push(value);\r\n\t\t\tthis.updateViewData();\r\n\t\t}\r\n\t}\r\n\tpublic selectionAddedBasePolymer(array: any[], value: any) {\r\n\t\tif (value.IsGroup) {\r\n\t\t\tlet polymerGroup = value.Title;\r\n\t\t\tfor (let polymer of this.appData.Filters.BasePolymers) {\r\n\t\t\t\tif (polymer.Group == polymerGroup) {\r\n\t\t\t\t\tthis.selectionAdded(array, polymer);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.selectionAdded(array, value);\r\n\t\t}\r\n\t}\r\n\tpublic selectionTriggerPropertySelection(array: any[], values: any[]) {\r\n\t\tfor (let value of values) {\r\n\t\t\tvar valueIndex = indexOfValue(array, value);\r\n\t\t\tif (valueIndex < 0) {\r\n\t\t\t\tarray.push({\r\n\t\t\t\t\tId: value.Id,\r\n\t\t\t\t\tMinValue: value.MinValue,\r\n\t\t\t\t\tMaxValue: value.MaxValue,\r\n\t\t\t\t\tTitle: value.Title,\r\n\t\t\t\t\tUnit: value.Unit\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tarray.splice(valueIndex, 1);\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\tpublic selectedProductsChange(value: any) {\r\n\t\tvar selectedProducts = this.$scope.vm.query.SelectedProducts;\r\n\t\tif (selectedProducts.indexOf(value) == -1) {\r\n\t\t\tselectedProducts.push(value);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tselectedProducts.splice(selectedProducts.indexOf(value), 1);\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\r\n\tpublic groupByGroup(value) {\r\n\t\treturn value.Group;\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}\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\tvar self = this;\r\n\t\tif (!skipOnEmptyUrl || this.$location.path() != '/') {\r\n\t\t\tvm.appData.scrollTop = (document.getElementById('s4-workspace') || document.documentElement).scrollTop;\r\n\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\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 capabilityGroup of query.CapabilityGroups) {\r\n\t\t\t\t\tcapabilityGroup.IsDisabled = true;\r\n\t\t\t\t}\r\n\t\t\t\tthis.$location.path('/findProducts/' + self.urlHelper.getUriParamFromQuery(vm.query));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic loadProducts() {\r\n\t\tvar self = this;\r\n\t\tvar scope = this.$scope;\r\n\r\n\t\tscope.vm.appData.isLoading = true;\r\n\t\tself.$timeout(() => {\r\n\t\t\tif (scope.vm.appData.isLoading) scope.vm.showLoading = true;\r\n\t\t}, 500);\r\n\r\n\t\treturn this.lumasService.findProducts(this.$scope.vm.query).then(function (viewData) {\r\n\t\t\tscope.vm.viewData = viewData;\r\n\t\t\tscope.vm.updateViewData();\r\n\t\t\t(document.getElementById('s4-workspace') || document.documentElement).scrollTop = self.$scope.vm.appData.scrollTop;\r\n\t\t\tscope.vm.appData.isLoading = false;\r\n\t\t\tscope.vm.showLoading = false;\r\n\t\t\tscope.vm.showResult = true;\r\n\t\t\tscope.vm.showFilter = false;\r\n\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\tvar self = this;\r\n\t\tthis.$location.path('/compareProducts/' + self.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 setActiveFilterGroup(filterGroup) {\r\n\t\tthis.appData.activeFilterGroup = filterGroup;\r\n\t\tvar self = this;\r\n\t\tthis.$timeout(() => {\r\n\t\t\tself.recalcViewDimensions();\r\n\t\t}, 0);\r\n\t}\r\n\r\n\tpublic presetPropertyFilters() {\r\n\t\tvar vm = this.$scope.vm;\r\n\t\tvm.setActiveFilterGroup(3);\r\n\t\tif (this.lumasService.queryIsEmpty(vm.query)) {\r\n\t\t\tlet presetProperties = [];\r\n\t\t\tfor (var propertyFilter of vm.appData.Filters.Properties) {\r\n\t\t\t\tif (propertyFilter.IsDefault && ((propertyFilter.ASTM && vm.query.ASTM) || (propertyFilter.ISO && vm.query.ISO))) {\r\n\t\t\t\t\tpresetProperties.push(propertyFilter);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvm.selectionTriggerPropertySelection(vm.query.Properties, presetProperties);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic printCompare() {\r\n\t\tvar printContents = document.getElementById('comparePrintContainer').innerHTML;\r\n\t\tvar popupWin = window.open('', '_blank');\r\n\t\tpopupWin.document.open();\r\n\t\tpopupWin.document.write('
' + printContents + '');\r\n\t\tpopupWin.document.close();\r\n\t}\r\n\r\n\tpublic getLuPoBaseProductsCountByProductCode() {\r\n\t\tvar self = this;\r\n\t\tvar origin = window.location.origin ? window.location.origin : window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n\r\n\t\tvar selectedProductsQuery = origin + window['Ll'].PortalConfig['LuPoBase Url'];\r\n\t\tselectedProductsQuery += `/_api/web/Lists/GetByTitle('Pages')/Items?$select=lpMaterialName/lpSAPNumberOfMaterial&$expand=lpMaterialName/lpSAPNumberOfMaterial&$filter=ContentType eq 'project file - material information' and (`;\r\n\t\tvar sapNumbersConditions = [];\r\n\t\tfor (var product of this.query.SelectedProducts) {\r\n\t\t\tsapNumbersConditions.push(`lpMaterialName/lpSAPNumberOfMaterial eq '` + product + `'`);\r\n\t\t\tself.selectedProductsProjectFiles[product] = 0;\r\n\t\t}\r\n\t\tselectedProductsQuery += sapNumbersConditions.join(` or `);\r\n\t\tselectedProductsQuery += `)`;\r\n\r\n\t\tvar headers = {\r\n\t\t\t'content-type': 'application/json;odata=verbose',\r\n\t\t\taccept: 'application/json;odata=verbose',\r\n\t\t\t'X-RequestDigest': document.getElementById('__REQUESTDIGEST').getAttribute('value'),\r\n\t\t};\r\n\r\n\t\tthis.$http({\r\n\t\t\tmethod: 'GET',\r\n\t\t\turl: selectedProductsQuery,\r\n\t\t\theaders: headers,\r\n\t\t}).then(\r\n\t\t\tresponse => {\r\n\t\t\t\tconst results = ((response.data as any).d as any).results;\r\n\t\t\t\tfor (var result of results) {\r\n\t\t\t\t\tif (self.query.SelectedProducts.indexOf(result.lpMaterialName.lpSAPNumberOfMaterial) != -1) {\r\n\t\t\t\t\t\tself.selectedProductsProjectFiles[result.lpMaterialName.lpSAPNumberOfMaterial] += 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\twindow['usernotauthorizedforlupobase'] = false;\r\n\t\t\t},\r\n\t\t\terr => {\r\n\t\t\t\tif (err.status == 401) {\r\n\t\t\t\t\twindow['usernotauthorizedforlupobase'] = true;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.$log.error(`Unable to find LuPoBase projects for query: ${selectedProductsQuery}`, err);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tpublic getPropertyValuesForProductByProductCodeAndPropertyName(productCode: string, propertyName: string) {\r\n\t\tvar productByProductCode = this.$filter('filter')(this.viewData.Products, { ProductCode: productCode });\r\n\t\tif (productByProductCode == null) return '';\r\n\r\n\t\tvar propertyOfProductByPropertyName = this.$filter('filter')((productByProductCode[0] as any).Properties, { Name: propertyName });\r\n\t\tif (propertyOfProductByPropertyName == null) return '';\r\n\r\n\t\tvar theProductProperty = propertyOfProductByPropertyName[0] as any;\r\n\t\treturn theProductProperty.Value;\r\n\t}\r\n\r\n\tpublic getFilledPropertiesForSelectedProducts() {\r\n\t\tvar vm = this.$scope.vm;\r\n\r\n\t\tvar selectedProducts = [];\r\n\t\tfor (let selectedProductCode of vm.query.SelectedProducts) {\r\n\t\t\tvar product = this.$filter('filter')(this.viewData.Products, { ProductCode: selectedProductCode });\r\n\t\t\tselectedProducts.push(product[0]);\r\n\t\t}\r\n\r\n\t\t// properties\r\n\t\tvar selectableProperties = [];\r\n\t\tvar properties = this.getClonedFilters(this.appData.Filters.Properties);\r\n\t\tfor (let property of properties) {\r\n\t\t\tfor (let selectedProduct of selectedProducts) {\r\n\t\t\t\tvar propertyValue = this.$filter('filter')(selectedProduct.Properties, { Name: property.Title })[0] as any;\r\n\t\t\t\tif (propertyValue != null && propertyValue.Value != '') {\r\n\t\t\t\t\tselectableProperties.push(property);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn selectableProperties;\r\n\t}\r\n\r\n}"]}