var SAMLChrome = angular.module('SAMLChrome', []) .directive('prettyPrint', function ($parse) { return { restrict: 'E', replace: true, transclude: false, scope: { data: '=data' }, link: function (scope, element, attrs) { let data = scope.data; if (data === true) { data = 'true'; } else if (data === false) { data = 'false'; } else if (data === undefined) { data = 'undefined'; } else if (data === null) { data = 'null'; } else if (typeof data !== 'number') { data = $('
').text(data).html(); } let $el = $('
'); $el.html(data); element.replaceWith($el); } }; }) .directive('resizableColumns', function ($parse) { return { link: function (scope, element, attrs) { const options = {minWidth: 5}; if ($(element).data('resizable-columns-sync')) { var $target = $($(element).data('resizable-columns-sync')); $(element).on('column:resize', function(event, resizable, $leftColumn, $rightColumn, widthLeft, widthRight) { var leftColumnIndex = resizable.$table.find('.rc-column-resizing').parent().find('td, th').index($leftColumn); var $targetFirstRow = $target.find('tr:first'); $($targetFirstRow.find('td, th').get(leftColumnIndex)).css('width', widthLeft + '%'); $($targetFirstRow.find('td, th').get(leftColumnIndex + 1)).css('width', widthRight + '%'); $target.data('resizableColumns').syncHandleWidths(); $target.data('resizableColumns').saveColumnWidths(); }); } $(element).resizableColumns(options); } }; }) .directive('scrollToNew', function ($parse) { return function(scope, element, attrs) { if (scope.showIncomingRequests && scope.$last) { const $container = $(element).parents('.data-container').first(); const $parent = $(element).parent(); $container.scrollTop($parent.height()); } }; });