<commit_before><div class="row">
	<form novalidate name="form.configForm">
		<div class="includeConfig" ng-show="!expertMode" ng-init="isAdvanced=false">
			<div ng-repeat="part in ['normal','advance']">
				<md-button ng-show="part==='advance' && parameters.hasAdvanced" ng-class="{'advButton':parameters.length==1}" ng-click="isAdvanced=!isAdvanced">{{isAdvanced?'Show less':'Show more'}}</md-button>
				<fieldset ng-show="(part==='normal' && group.advParam!==group.parameters.length) || (part==='advance' && isAdvanced &&  group.advParam>0)" ng-class="{borderhidden: parameters.length==1}" ng-repeat="group in parameters track by $index">
					<legend ng-if="parameters.length>1">{{group.groupLabel}}</legend>
					<div ng-repeat="parameter in group.parameters track by $index">
						<div ng-switch="parameter.element">
							<div ng-if="parameter.element!='textarea' && parameter.element!='dayofweek'" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)" class="parameter col-sm-6 col-xs-12">
								<div ng-switch-when="input">
									<div ng-if="(parameter.type=='INTEGER' || parameter.type=='DECIMAL')">
										<label class="config-textInput" for="{{parameter.name}}">{{parameter.label}}</label>
										<md-input-container ng-class="{'md-input-invalid':form.configForm[parameter.name].$invalid}" class="col-xs-12 configContainer"> <input ng-init="focus=false" name="{{parameter.name}}" type="number" min="{{parameter.min}}" max="{{parameter.max}}" step="{{parameter.stepsize}}" ng-model="configuration[parameter.name]" ng-required="parameter.required" type="{{parameter.inputType}}" ng-focus="focus=true" ng-blur="focus=false">
										<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
											<div ng-message="min">Minimum allowed number is {{parameter.min}}</div>
											<div ng-message="max">Maximum allowed number is {{parameter.max}}</div>
											<div ng-message="required">Field is required</div>
										</div>
										<span>
											<p class="hint" ng-class="{'invisible':focus}">
												<small ng-bind-html="parameter.description"></small>
											</p>
										</span> </md-input-container>
									</div>
									<div ng-if="parameter.type=='TEXT'">
										<label class="config-textInput" for="{{parameter.name}}">{{parameter.label}}</label>
										<md-input-container ng-class="{'md-input-invalid':form.configForm[parameter.name].$invalid}" class="col-xs-12 configContainer"> <input ng-init="focus=false" name="{{parameter.name}}" ng-minlength="parameter.min" ng-maxlength="parameter.max" ng-model="configuration[parameter.name]" ng-required="parameter.required" type="{{parameter.inputType}}" ng-focus="focus=true" ng-blur="focus=false">
										<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
											<div ng-message="minlength">Minimum length is {{parameter.min}}</div>
											<div ng-message="maxlength">Maximum length is {{parameter.max}}</div>
											<div ng-message="required">Field is required</div>
										</div>
										<span>
											<p class="hint" ng-class="{'invisible':focus}">
												<small ng-bind-html="parameter.description"></small>
											</p>
										</span> </md-input-container>
									</div>
								</div>
								<div ng-switch-when="switch" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">
									<md-switch class="md-default-theme" ng-model="configuration[parameter.name]" aria-label="parameter.label">{{parameter.label}}</md-switch>
									<p class="hint">
										<small ng-bind-html="parameter.description"></small>
									</p>
								</div>
								<div ng-switch-when="select" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">
									<label class="config-textInput">{{parameter.label}}</label>

									<md-input-container class="col-xs-12 configContainer"> <md-select class="config-select" isrequired="{{parameter.required}}" ng-init="focus=false" name="{{parameter.name}}" ng-model="configuration[parameter.name]" placeholder="Select a value" ng-focus="focus=true" ng-blur="focus=false" ng-required="parameter.required"> <md-option ng-value="parameter.context=='item'? option.name:parameter.context=='thing'?option.UID:option.value" ng-repeat="option in parameter.options"> <span style="display: inline-block;" ng-if="parameter.context=='item' || parameter.context=='thing'">
										{{ option.label?option.label:option.name }}
										<span class="md-caption" style="color: grey;">({{ option.name?option.name: parameter.context=='thing'?option.UID:'' }}) </span>
									</span> <span ng-if="!parameter.context">{{option.label}}</span> </md-option> </md-select>
									<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
										<div ng-message="required">Field is required</div>
									</div>
									<span>
										<p class="hint" ng-class="{'invisible':focus}">
											<small ng-bind-html="parameter.description"></small>
										</p>
									</span></md-input-container>
								</div>
								<div ng-switch-when="date" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">
									<label class="config-textInput">{{parameter.label}}</label>
									<div class="col-xs-12 configContainer">
										<md-datepicker ng-init="focus=false;initial=true;" ng-class="{noerror: initial}" custom-focus md-no-float class="config-select datePicker" name="{{parameter.name}}" ng-model="configuration[parameter.name]" md-placeholder="date" ng-required="true"> </md-datepicker>
										<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
											<div ng-message="required" class="customMessage">Field is required</div>
										</div>
										<span>
											<p class="hint" ng-class="{'invisible':focus}">
												<small ng-bind-html="parameter.description"></small>
											</p>
										</span>
									</div>
								</div>
								<div ng-switch-when="color" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">

									<label class="config-textInput" for="{{parameter.name}}">{{parameter.label}}</label>
									<md-input-container class="col-xs-11 configContainer" style="padding-right:0px"> <input color-select ng-init="focus=false" name="{{parameter.name}}" ng-minlength="parameter.min" ng-maxlength="parameter.max" ng-model="configuration[parameter.name]" ng-required="parameter.required" type="{{parameter.inputType}}" ng-focus="focus=true" ng-blur="focus=false">

									<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
										<div ng-message="required">Field is required</div>
									</div>
									<span>
										<p class="hint" ng-class="{'invisible':focus}">
											<small ng-bind-html="parameter.description"></small>
										</p>
									</span> </md-input-container>
									<div style="float: left;">
										<i class="material-icons color-remove" ng-model="configuration[parameter.name]" color-remove>close</i>
									</div>
								</div>
							</div>
							<div class="parameter col-xs-12 scriptfield" ng-switch-when="textarea" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">
								<label class="config-textInput" for="{{parameter.name}}">{{parameter.label}}</label>
								<div class="col-xs-12 configContainer">
									<textarea isrequired="true" scriptarea class="scriptArea" ng-minlength="parameter.min" ng-maxlength="parameter.max" rows="2" wrap="off" ng-init="focus=false" name="{{parameter.name}}" ng-model="configuration[parameter.name]" ng-required="parameter.required" ng-focus="focus=true" ng-blur="focus=false"></textarea>
									<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
										<p ng-message="minlength" class="customMessage">Minimum length is {{parameter.min}}</p>
										<p ng-message="maxlength" class="customMessage">Maximum length is {{parameter.max}}</p>
										<p ng-message="required" class="customMessage">Field is required</p>
									</div>
									<span ng-show="!focus">
										<p class="hint noMargin">
											<small ng-bind-html="parameter.description"></small>
										</p>
									</span>
								</div>
								<span>
									<md-chips class="scriptChips" id="{{parameter.name}}" ng-show="items && items.length>0" ng-model="items" placeholder="Add an item" md-on-select="selectChip($chip,parameter.name)"> <input disabled /> <md-chip-template> <strong>{{$chip.name}}</strong> </md-chip-template> </md-chips>
									<span>
										<p class="hint noMargin">
											<small>available outputs</small>
										</p>
									</span><commit_msg>Prevent scriptarea from overlapping with outputs (#2346)<commit_after><div class="row">
	<form novalidate name="form.configForm">
		<div class="includeConfig" ng-show="!expertMode" ng-init="isAdvanced=false">
			<div ng-repeat="part in ['normal','advance']">
				<md-button ng-show="part==='advance' && parameters.hasAdvanced" ng-class="{'advButton':parameters.length==1}" ng-click="isAdvanced=!isAdvanced">{{isAdvanced?'Show less':'Show more'}}</md-button>
				<fieldset ng-show="(part==='normal' && group.advParam!==group.parameters.length) || (part==='advance' && isAdvanced &&  group.advParam>0)" ng-class="{borderhidden: parameters.length==1}" ng-repeat="group in parameters track by $index">
					<legend ng-if="parameters.length>1">{{group.groupLabel}}</legend>
					<div ng-repeat="parameter in group.parameters track by $index">
						<div ng-switch="parameter.element">
							<div ng-if="parameter.element!='textarea' && parameter.element!='dayofweek'" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)" class="parameter col-sm-6 col-xs-12">
								<div ng-switch-when="input">
									<div ng-if="(parameter.type=='INTEGER' || parameter.type=='DECIMAL')">
										<label class="config-textInput" for="{{parameter.name}}">{{parameter.label}}</label>
										<md-input-container ng-class="{'md-input-invalid':form.configForm[parameter.name].$invalid}" class="col-xs-12 configContainer"> <input ng-init="focus=false" name="{{parameter.name}}" type="number" min="{{parameter.min}}" max="{{parameter.max}}" step="{{parameter.stepsize}}" ng-model="configuration[parameter.name]" ng-required="parameter.required" type="{{parameter.inputType}}" ng-focus="focus=true" ng-blur="focus=false">
										<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
											<div ng-message="min">Minimum allowed number is {{parameter.min}}</div>
											<div ng-message="max">Maximum allowed number is {{parameter.max}}</div>
											<div ng-message="required">Field is required</div>
										</div>
										<span>
											<p class="hint" ng-class="{'invisible':focus}">
												<small ng-bind-html="parameter.description"></small>
											</p>
										</span> </md-input-container>
									</div>
									<div ng-if="parameter.type=='TEXT'">
										<label class="config-textInput" for="{{parameter.name}}">{{parameter.label}}</label>
										<md-input-container ng-class="{'md-input-invalid':form.configForm[parameter.name].$invalid}" class="col-xs-12 configContainer"> <input ng-init="focus=false" name="{{parameter.name}}" ng-minlength="parameter.min" ng-maxlength="parameter.max" ng-model="configuration[parameter.name]" ng-required="parameter.required" type="{{parameter.inputType}}" ng-focus="focus=true" ng-blur="focus=false">
										<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
											<div ng-message="minlength">Minimum length is {{parameter.min}}</div>
											<div ng-message="maxlength">Maximum length is {{parameter.max}}</div>
											<div ng-message="required">Field is required</div>
										</div>
										<span>
											<p class="hint" ng-class="{'invisible':focus}">
												<small ng-bind-html="parameter.description"></small>
											</p>
										</span> </md-input-container>
									</div>
								</div>
								<div ng-switch-when="switch" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">
									<md-switch class="md-default-theme" ng-model="configuration[parameter.name]" aria-label="parameter.label">{{parameter.label}}</md-switch>
									<p class="hint">
										<small ng-bind-html="parameter.description"></small>
									</p>
								</div>
								<div ng-switch-when="select" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">
									<label class="config-textInput">{{parameter.label}}</label>

									<md-input-container class="col-xs-12 configContainer"> <md-select class="config-select" isrequired="{{parameter.required}}" ng-init="focus=false" name="{{parameter.name}}" ng-model="configuration[parameter.name]" placeholder="Select a value" ng-focus="focus=true" ng-blur="focus=false" ng-required="parameter.required"> <md-option ng-value="parameter.context=='item'? option.name:parameter.context=='thing'?option.UID:option.value" ng-repeat="option in parameter.options"> <span style="display: inline-block;" ng-if="parameter.context=='item' || parameter.context=='thing'">
										{{ option.label?option.label:option.name }}
										<span class="md-caption" style="color: grey;">({{ option.name?option.name: parameter.context=='thing'?option.UID:'' }}) </span>
									</span> <span ng-if="!parameter.context">{{option.label}}</span> </md-option> </md-select>
									<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
										<div ng-message="required">Field is required</div>
									</div>
									<span>
										<p class="hint" ng-class="{'invisible':focus}">
											<small ng-bind-html="parameter.description"></small>
										</p>
									</span></md-input-container>
								</div>
								<div ng-switch-when="date" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">
									<label class="config-textInput">{{parameter.label}}</label>
									<div class="col-xs-12 configContainer">
										<md-datepicker ng-init="focus=false;initial=true;" ng-class="{noerror: initial}" custom-focus md-no-float class="config-select datePicker" name="{{parameter.name}}" ng-model="configuration[parameter.name]" md-placeholder="date" ng-required="true"> </md-datepicker>
										<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
											<div ng-message="required" class="customMessage">Field is required</div>
										</div>
										<span>
											<p class="hint" ng-class="{'invisible':focus}">
												<small ng-bind-html="parameter.description"></small>
											</p>
										</span>
									</div>
								</div>
								<div ng-switch-when="color" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">

									<label class="config-textInput" for="{{parameter.name}}">{{parameter.label}}</label>
									<md-input-container class="col-xs-11 configContainer" style="padding-right:0px"> <input color-select ng-init="focus=false" name="{{parameter.name}}" ng-minlength="parameter.min" ng-maxlength="parameter.max" ng-model="configuration[parameter.name]" ng-required="parameter.required" type="{{parameter.inputType}}" ng-focus="focus=true" ng-blur="focus=false">

									<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
										<div ng-message="required">Field is required</div>
									</div>
									<span>
										<p class="hint" ng-class="{'invisible':focus}">
											<small ng-bind-html="parameter.description"></small>
										</p>
									</span> </md-input-container>
									<div style="float: left;">
										<i class="material-icons color-remove" ng-model="configuration[parameter.name]" color-remove>close</i>
									</div>
								</div>
							</div>
							<div class="parameter col-xs-12 scriptfield" ng-switch-when="textarea" ng-show="(part==='normal' && !parameter.advanced) || (part==='advance' && parameter.advanced && isAdvanced)">
								<label class="config-textInput" for="{{parameter.name}}">{{parameter.label}}</label>
								<div class="col-xs-12 configContainer">
									<textarea isrequired="true" scriptarea class="scriptArea" ng-minlength="parameter.min" ng-maxlength="parameter.max" rows="2" wrap="off" ng-init="focus=false" name="{{parameter.name}}" ng-model="configuration[parameter.name]" ng-required="parameter.required" ng-focus="focus=true" ng-blur="focus=false"></textarea>
									<div ng-messages="form.configForm[parameter.name].$error" ng-show="focus">
										<p ng-message="minlength" class="customMessage">Minimum length is {{parameter.min}}</p>
										<p ng-message="maxlength" class="customMessage">Maximum length is {{parameter.max}}</p>
										<p ng-message="required" class="customMessage">Field is required</p>
									</div>
									<span>
										<p class="hint noMargin" ng-class="{'invisible':focus}">
											<small ng-bind-html="parameter.description"></small>
										</p>
									</span>
								</div>
								<span>
									<md-chips class="scriptChips" id="{{parameter.name}}" ng-show="items && items.length>0" ng-model="items" placeholder="Add an item" md-on-select="selectChip($chip,parameter.name)"> <input disabled /> <md-chip-template> <strong>{{$chip.name}}</strong> </md-chip-template> </md-chips>
									<span>
										<p class="hint noMargin">
											<small>available outputs</small>
										</p>
									</span>
{'fraction_non_alphanumeric': 0.20040091319115763, 'fraction_numerical': 0.0028954841583607106, 'mean_word_length': 3.7325428194993413, 'pattern_counts': {'":': 0, '<': 333, '<?xml version=': 0, '>': 339, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5714501', 'n_tokens_mistral': 7250, 'n_tokens_neox': 5258, 'n_words': 851}