SmartIT_Extensions/BMC/smart-it-full-helix/scripts/app/common/check-multiline-directive.js

33 lines
1.3 KiB
JavaScript

"use strict";
(function () {
'use strict';
angular.module('myitsmApp')
.directive('checkMultiline', ['events',
function (events) {
return {
restrict: 'A',
scope: {
multilineContent: '@',
multilineMaxHeight: '@',
isContentMultiline: '='
},
link: function (scope, elem, attr, controller) {
function checkIfMultiline() {
if (elem.find('[data-ellipsis]').get(0).scrollHeight >= scope.multilineMaxHeight) {
scope.isContentMultiline = true;
}
else {
scope.isContentMultiline = false;
}
scope.$emit(events.MULTILINE_CONTENT_CHANGED, { isContentMultiline: scope.isContentMultiline });
}
scope.$watch('multilineContent', function (newValue, oldValue) {
//Adding timeout, so check happens after page load, else if vertical scroll gets added after check, some edge cases break.
setTimeout(checkIfMultiline, 0);
});
checkIfMultiline();
}
};
}]);
}());