/* * @ngdoc fbChangeTrack * @name fasit.directives.#fbChangeTrack * @fbChangeTrack * * @description * Directive som hanterar changetrack i en fbmodel. Sätter dirty och valid. Hanterar även valid på ett fält */ // OBS! fb-change-track ska inte migreras till angular! Prata med frha om du är osäker på hur detta ska migreras fbDeprecatedFile('fbChangeTrack'); angular.module('fasit') .directive('fbChangeTrack', [function () { 'use strict'; var link = function (scope: fb.IFbChangeTrackScope, element: fb.IRootElementService, attrs: any, ngModel: ng.INgModelController, transclude) { fbDeprecated('fbChangeTrack'); scope.$watch('ngModel', function (newVal, oldVal) { if (typeof scope.track === 'undefined' || scope.track === null || typeof scope.track !== 'object') { return; } var changed = newVal !== oldVal; if (changed && !(newVal === "" && oldVal === null)) { if (scope.track.root && scope.track.root.applyValue) { scope.track.root.applyValue(scope.track); } else { /* tslint:disable */ scope.track.dirty = scope.track.originalValue != scope.track.value; // jshint ignore:line /* tslint:enable */ scope.track.valid = fb.changeTrackValid(scope.track); var isNull = scope.track ? (scope.track.value === null) : true; var isEmpty = scope.track ? (scope.track.value === '') : true; var isUndefined = scope.track ? (scope.track.value === undefined) : true; (scope.track).missValue = isNull || isEmpty || isUndefined; } } }, true); }; return { restrict: 'A', require: '?ngModel', scope: { ngModel: '=', track: '=', }, link: link, }; }]);