<commit_before>let nextId = 0;
let cellTemplateGenerators = {
    artifactoryRepoPathColumn: function(specialClass) {
        return '<div ng-if="row.entity.repoKey" class="ui-grid-cell-contents '+specialClass+'">{{row.entity.repoKey}}/{{row.entity.path}}</div>' +
            '<div ng-if="!row.entity.repoKey" class="ui-grid-cell-contents '+specialClass+'">{{row.entity.path}}</div>';
    },

    downloadableColumn: function(specialClass) {
        return '<div><div ng-if="row.entity.downloadLink"" class="ui-grid-cell-contents '+specialClass+'">{{row.entity.name}}</div>' +
            '<div ng-if="!row.entity.downloadLink" class="ui-grid-cell-contents '+specialClass+'">{{row.entity.name}}</div></div>';
    },

    booleanColumn: function(model) {
        return '<div class="grid-checkbox"><input ng-model="' +
            model + '" type="checkbox" disabled/><span class="icon icon-v"></span></div>';
    },
    checkboxColumn: function(model, click, disabled) {
        return '<div><div class="grid-cell-checkbox"><jf-checkbox><input ng-model="' + model + '"' +
            (click && click.length ? ' ng-click="' + click + '"' : '') +
            (disabled && disabled.length ? ' ng-disabled="' + disabled + '"' : '') +
            ' type="checkbox"/></jf-checkbox></div></div>';
    },
    listableColumn: function(listModel,rowNameModel,displayModel,alwaysShow,testIdPrefix=null,showAsyncData, externalCountModel) {

        testIdPrefix = testIdPrefix ? testIdPrefix + '-' : '';

        displayModel = displayModel ? `{{${listModel}.length}} | {{${displayModel}}}` : `{{${externalCountModel} ? ${externalCountModel} : ${listModel}.length}} | {{${listModel}.join(\', \')}}{{${externalCountModel} && ${externalCountModel} > ${listModel}.length ? ',...' : ''}}`;

        let id = `${testIdPrefix}{{row.uid}}_${nextId}`;<commit_msg>jf-table-view: Fixes and improvement (mainly to support special cellTemplates)<commit_after>let nextId = 0;
let cellTemplateGenerators = {
    artifactoryRepoPathColumn: function(specialClass) {
        return '<div ng-if="row.entity.repoKey" class="ui-grid-cell-contents '+specialClass+'">{{row.entity.repoKey}}/{{row.entity.path}}</div>' +
            '<div ng-if="!row.entity.repoKey" class="ui-grid-cell-contents '+specialClass+'">{{row.entity.path}}</div>';
    },

    downloadableColumn: function(specialClass) {
        return '<div><div ng-if="row.entity.downloadLink" class="ui-grid-cell-contents '+specialClass+'">{{row.entity.name}}</div>' +
            '<div ng-if="!row.entity.downloadLink" class="ui-grid-cell-contents '+specialClass+'">{{row.entity.name}}</div></div>';
    },

    booleanColumn: function(model) {
        return '<div class="grid-checkbox"><input ng-model="' +
            model + '" type="checkbox" disabled/><span class="icon icon-v"></span></div>';
    },
    checkboxColumn: function(model, click, disabled) {
        return '<div><div class="grid-cell-checkbox"><jf-checkbox><input ng-model="' + model + '"' +
            (click && click.length ? ' ng-click="' + click + '"' : '') +
            (disabled && disabled.length ? ' ng-disabled="' + disabled + '"' : '') +
            ' type="checkbox"/></jf-checkbox></div></div>';
    },
    listableColumn: function(listModel,rowNameModel,displayModel,alwaysShow,testIdPrefix=null,showAsyncData, externalCountModel) {

        testIdPrefix = testIdPrefix ? testIdPrefix + '-' : '';

        displayModel = displayModel ? `{{${listModel}.length}} | {{${displayModel}}}` : `{{${externalCountModel} ? ${externalCountModel} : ${listModel}.length}} | {{${listModel}.join(\', \')}}{{${externalCountModel} && ${externalCountModel} > ${listModel}.length ? ',...' : ''}}`;

        let id = `${testIdPrefix}{{row.uid}}_${nextId}`;
{'fraction_non_alphanumeric': 0.21641791044776118, 'fraction_numerical': 0.0005330490405117271, 'mean_word_length': 3.9446640316205532, 'pattern_counts': {'":': 0, '<': 47, '<?xml version=': 0, '>': 49, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2650801', 'n_tokens_mistral': 1149, 'n_tokens_neox': 1116, 'n_words': 159}