{"version":3,"file":"dropdownDirective.js","sourceRoot":"","sources":["../../../../src/modules/directives/applicationcore/dropdownDirective.ts"],"names":[],"mappings":"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","sourcesContent":["module directives {\r\n export module applicationcore {\r\n interface IDropdownDirective extends ng.IScope {\r\n list: Array,\r\n filterList: Array,\r\n appendToBody: boolean,\r\n query(searchText: string, pageinationSearch: false, open: boolean): void,\r\n loadData({ searchText }): Promise>,\r\n ngChange(any: any): void,\r\n change(model: interfaces.applicationcore.IDropdownModel): void,\r\n ngModel: interfaces.applicationcore.IDropdownModel,\r\n refreshDelay: number,\r\n selectedItem: {\r\n selected: interfaces.applicationcore.IDropdownModel\r\n }\r\n }\r\n\r\n export class dropdownDirective implements ng.IDirective {\r\n template = `

\r\n -1\" popover-trigger=\"'mouseenter'\" popover-append-to-body=\"true\">\r\n {{$select.selected.Display}}\r\n \r\n -1\" popover-trigger=\"'mouseenter'\" popover-append-to-body=\"true\">{{item.Display}}\r\n \r\n \r\n

`;\r\n scope = {\r\n ngModel: \"=\",\r\n ngChange: \"&\",\r\n ngDisabled: \"=\",\r\n loadData: \"&\",\r\n required: \"=\",\r\n form: \"=\",\r\n name: '@',\r\n list: \"=?\",\r\n appendToBody: \"=?\",\r\n refreshDelay: \"=?\",\r\n paginationSearch: \"=?\",\r\n searchEnabled: \"=?\"\r\n };\r\n\r\n constructor(public $q: ng.IQService, private generalService: interfaces.applicationcore.IGeneralService, private $timeout: ng.ITimeoutService) {\r\n\r\n }\r\n\r\n link = ($scope: IDropdownDirective, $element: ng.IAugmentedJQuery) => {\r\n $scope.$watch(\"ngModel\", (newValue: interfaces.applicationcore.IDropdownModel, oldValue: interfaces.applicationcore.IDropdownModel) => {\r\n $scope.selectedItem = {\r\n selected: newValue\r\n };\r\n }, true);\r\n\r\n $scope.refreshDelay = $scope.refreshDelay || 20;\r\n $scope.list = [];\r\n $scope.filterList = [];\r\n $scope.query = (searchText: string, paginationSearch: boolean, open: boolean) => {\r\n searchText = searchText || '';\r\n paginationSearch = paginationSearch || false;\r\n searchText = searchText.toLocaleLowerCase(); //Convert to lower case to make case insensitive search\r\n\r\n $scope.list = $scope.list || [];\r\n $scope.filterList = [];\r\n\r\n if(!open) {\r\n return;\r\n }\r\n\r\n if (paginationSearch && angular.isDefined($scope.loadData)) {\r\n return $scope.loadData({ searchText: searchText }).then((data: Array) => {\r\n if (data.length === 0) {\r\n $scope.filterList = [];\r\n } else {\r\n $scope.list = data;\r\n $scope.query(searchText, false, open);\r\n }\r\n });\r\n } else if (angular.isDefined($scope.loadData)) {\r\n if ($scope.list.length > 0) {\r\n $scope.filterList = _.filter($scope.list, (n: interfaces.applicationcore.IDropdownModel) => {\r\n return (n.Display.toLocaleLowerCase().indexOf(searchText) >= 0 || searchText.length === 0);\r\n });\r\n } else {\r\n return $scope.loadData({ searchText: searchText }).then((data: Array) => {\r\n if (data.length === 0) {\r\n $scope.filterList = [];\r\n } else {\r\n $scope.list = data;\r\n $scope.query(searchText, false, open);\r\n }\r\n }, (errorResponse) => {\r\n this.generalService.displayMessageHandler(errorResponse.data);\r\n });\r\n }\r\n } else {\r\n $scope.filterList = [];\r\n }\r\n }\r\n\r\n $scope.change = (model) => {\r\n this.$timeout(() => {\r\n if (model && $scope.ngModel && model.Id !== $scope.ngModel.Id) {\r\n $scope.ngModel = model;\r\n $scope.ngChange({ model: model });\r\n } else if (model) {\r\n $scope.ngModel = model;\r\n $scope.ngChange({ model: model });\r\n } else if (!model || model === null) {\r\n $scope.ngModel = undefined;\r\n $scope.ngChange({ model: undefined });\r\n }\r\n });\r\n };\r\n }\r\n\r\n static factory(): ng.IDirectiveFactory {\r\n const directive = ($q, generalService, $timeout) => new dropdownDirective($q, generalService, $timeout);\r\n directive.$inject = ['$q', \"generalService\", \"$timeout\"];\r\n\r\n return directive;\r\n }\r\n }\r\n\r\n export class uiSelectWrap implements ng.IDirective {\r\n\r\n constructor(private $document: ng.IDocumentService, private uiGridEditConstants: uiGrid.edit.IUiGridEditConstants, private $timeout: ng.ITimeoutService) {\r\n\r\n }\r\n\r\n link = (scope, element: angular.IRootElementService, attrs, ngModelController: ng.IController, $select) => {\r\n this.$document.on('click', (evt) => {\r\n if (($(evt.target).closest('.ui-select-container')).length === 0) {\r\n scope.$emit(this.uiGridEditConstants.events.END_CELL_EDIT);\r\n this.$document.off('click');\r\n }\r\n });\r\n }\r\n\r\n static factory(): ng.IDirectiveFactory {\r\n const directive = ($document, uiGridEditConstants, $timeout) => new uiSelectWrap($document, uiGridEditConstants, $timeout);\r\n directive.$inject = ['$document', 'uiGridEditConstants', '$timeout'];\r\n\r\n return directive;\r\n }\r\n }\r\n angular.module(\"app\").directive(\"gtsDropdown\", dropdownDirective.factory());\r\n angular.module(\"app\").directive(\"uiSelectWrap\", uiSelectWrap.factory());\r\n }\r\n}"]}