{"version":3,"file":"gtsDateDirective.js","sourceRoot":"","sources":["../../../../src/modules/directives/applicationcore/gtsDateDirective.ts"],"names":[],"mappings":"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","sourcesContent":["module directives {\r\n export module applicationcore {\r\n interface IDateDirectiveScope extends ng.IScope {\r\n dateOptions: any,\r\n toggleDatePicker(): void,\r\n dateChange(date: Date): void,\r\n ngChange(data: any): void,\r\n isOpen: boolean,\r\n ngModel: moment.Moment,\r\n javascriptDate: Date,\r\n format: string,\r\n minDate: moment.Moment;\r\n invalidDate: boolean;\r\n showTime: boolean;\r\n timeHtml: string;\r\n minuteStep: number;\r\n }\r\n\r\n export class dateDirective implements ng.IDirective {\r\n public restrict: 'E';\r\n public template = `\r\n
\r\n

\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{leadTime}}\r\n \r\n

\r\n
\r\n \r\n `;\r\n public scope = {\r\n format: \"@\",\r\n ngModel: \"=\",\r\n ngChange: \"&?\",\r\n name: \"@\",\r\n ngRequired: \"=\",\r\n leadTime: \"=\",\r\n minDate: '=',\r\n showTime: '=?',\r\n minuteStep: '=?',\r\n ngDisabled: \"=?\"\r\n }\r\n\r\n constructor(private uiGridEditConstants: uiGrid.edit.IUiGridEditConstants, private $timeout: ng.ITimeoutService) {\r\n }\r\n\r\n link = ($scope: IDateDirectiveScope, $element: ng.IAugmentedJQuery) => {\r\n $scope.isOpen = false;\r\n\r\n if($scope.showTime) {\r\n if(!$scope.minuteStep) {\r\n $scope.minuteStep = 15;\r\n }\r\n\r\n $scope.timeHtml = `timePopover.html`;\r\n }\r\n\r\n $scope.toggleDatePicker = () => {\r\n $scope.dateOptions = {\r\n minDate: $scope.minDate ? $scope.minDate.toDate() : undefined\r\n };\r\n $scope.isOpen = !$scope.isOpen;\r\n }\r\n\r\n $scope.$watch(\"ngModel\", () => {\r\n if ($scope.ngModel) {\r\n $scope.javascriptDate = new Date($scope.ngModel.format(\"YYYY/MM/DD HH:mm\"));\r\n } else {\r\n $scope.javascriptDate = undefined;\r\n }\r\n }, true);\r\n\r\n $scope.dateChange = (timeChange: Date) => {\r\n\r\n if(timeChange) {\r\n $scope.javascriptDate = timeChange;\r\n }\r\n\r\n if($scope.javascriptDate === undefined)\r\n $scope.invalidDate = true;\r\n else\r\n $scope.invalidDate = false;\r\n if ($scope.javascriptDate) {\r\n $scope.ngModel = moment.utc({ y: $scope.javascriptDate.getFullYear(), M: $scope.javascriptDate.getMonth(), d: $scope.javascriptDate.getDate(), h: $scope.javascriptDate.getHours(), m: $scope.javascriptDate.getMinutes() });\r\n this.$timeout(() => {\r\n // $scope.$emit(this.uiGridEditConstants.events.END_CELL_EDIT);\r\n });\r\n } else {\r\n $scope.ngModel = null;\r\n\r\n this.$timeout(() => {\r\n $scope.$emit(this.uiGridEditConstants.events.END_CELL_EDIT);\r\n });\r\n }\r\n\r\n if (angular.isDefined($scope.ngChange))\r\n $scope.ngChange({ newValue: $scope.ngModel });\r\n \r\n }\r\n }\r\n\r\n static factory(): ng.IDirectiveFactory {\r\n const directive = (uiGridEditConstants, $timeout) => new dateDirective(uiGridEditConstants, $timeout);\r\n directive.$inject = ['uiGridEditConstants', '$timeout'];\r\n\r\n return directive;\r\n }\r\n }\r\n\r\n export class uiDatepickerWrapper implements ng.IDirective {\r\n\r\n constructor(private $document: ng.IDocumentService, private uiGridEditConstants: uiGrid.edit.IUiGridEditConstants) {\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('.uib-datepicker')).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) => new uiDatepickerWrapper($document, uiGridEditConstants);\r\n directive.$inject = ['$document', 'uiGridEditConstants'];\r\n\r\n return directive;\r\n }\r\n }\r\n\r\n angular.module(\"app\").directive(\"gtsDate\", dateDirective.factory());\r\n angular.module(\"app\").directive(\"uiDatepickerWrapper\", uiDatepickerWrapper.factory());\r\n }\r\n}"]}