<commit_before><!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>demo</title>
	<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/3.0.1/normalize.min.css">
	<style type="text/css">
		/* These styles are for demo purposes only */
		body { margin: 4em 2em; }
		p { max-width: 600px; }
		input, textarea { width: 140px; vertical-align: top; margin: 2px 0; }
		.empty { color: limegreen; }
		.ng-dirty { background-color: lightcyan; }
		.ng-invalid { border-color: red; }
		input:invalid { box-shadow: none; } /* suppress Firefox default style */
	</style>
</head>
<body ng-app="testApp">
	<h1>angular-shims-placeholder</h1>
	<p>Shimmed placeholders are <span class="empty">green</span> for demonstration purposes. Set the color with the .empty class. $dirty fields will display <span class="ng-dirty">light blue</span>. The shim is force enabled here, usually it is only active in older browsers that don't support the placeholder attribute.</p>
	<a href="https://github.com/jrief/angular-shims-placeholder"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a>
	<div>
		<div>No model</div>
		<input type="text" placeholder="text">
		<input type="password" placeholder="password">
		<input type="email" placeholder="email">
		<textarea rows="1" placeholder="textarea"></textarea>
	</div>
	<div>
		<div>Separate models</div>
		<input type="text" placeholder="text" ng-model="test.empty1">
		<input type="password" placeholder="password" ng-model="test.empty2">
		<input type="email" placeholder="email" ng-model="test.empty3">
		<textarea rows="1" placeholder="textarea" ng-model="test.empty4"></textarea>
	</div>
	<div>
		<div>Shared model</div>
		<input type="text" placeholder="text" ng-model="test.linked" ng-trim="false">
		<input type="password" placeholder="password" ng-model="test.linked" ng-trim="false">
		<input type="email" placeholder="email" ng-model="test.linked" ng-trim="false">
		<textarea rows="1" placeholder="textarea" ng-model="test.linked" ng-trim="false"></textarea>
	</div>
	<div>
		<div>Separate models, no placeholder (for reference)</div>
		<input type="text" ng-model="test.empty11">
		<input type="password" ng-model="test.empty12">
		<input type="email" ng-model="test.empty13">
		<textarea rows="1" ng-model="test.empty14"></textarea>
	</div>
	<div>
		<div>Shared model, no placeholder (for reference)</div>
		<input type="text" ng-model="test.linked2" ng-trim="false">
		<input type="password" ng-model="test.linked2" ng-trim="false">
		<input type="email" ng-model="test.linked2" ng-trim="false">
		<textarea rows="1" ng-model="test.linked2" ng-trim="false"></textarea>
	</div>
	<div>
		<div>No model, pre-filled by value</div>
		<input class="clearable" type="text" placeholder="text" value="hi">
		<input class="clearable" type="password" placeholder="password" value="<PASSWORD>">
		<button onclick="fillElements('filler')">fill</button>
		<button onclick="fillElements('')">clear</button>
	</div>
	<div>
		<div>Pre-filled by model</div>
		<input type="text" ng-model="test.text" placeholder="text">
		<input type="password" ng-model="test.password" placeholder="password">
	</div>

	<!-- <script src="bower_components/angular/angular.js"></script> -->
	<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.js"></script>
	<script src="lib/angular-placeholder.js"></script>
	<script>
		angular.module(['testApp'], ['ng.shims.placeholder'])
		.run(function($rootScope){
			$rootScope.test = {
				text: 'hello',
				password: '<PASSWORD>'
			};
		});<commit_msg>Add logic to demo to prefer local angular.js, but fallback to CDN<commit_after><!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>demo</title>
	<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/3.0.1/normalize.min.css">
	<style type="text/css">
		/* These styles are for demo purposes only */
		body { margin: 4em 2em; }
		p { max-width: 600px; }
		input, textarea { width: 140px; vertical-align: top; margin: 2px 0; }
		.empty { color: limegreen; }
		.ng-dirty { background-color: lightcyan; }
		.ng-invalid { border-color: red; }
		input:invalid { box-shadow: none; } /* suppress Firefox default style */
	</style>
</head>
<body ng-app="testApp">
	<h1>angular-shims-placeholder</h1>
	<p>Shimmed placeholders are <span class="empty">green</span> for demonstration purposes. Set the color with the .empty class. $dirty fields will display <span class="ng-dirty">light blue</span>. The shim is force enabled here, usually it is only active in older browsers that don't support the placeholder attribute.</p>
	<a href="https://github.com/jrief/angular-shims-placeholder"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a>
	<div>
		<div>No model</div>
		<input type="text" placeholder="text">
		<input type="password" placeholder="password">
		<input type="email" placeholder="email">
		<textarea rows="1" placeholder="textarea"></textarea>
	</div>
	<div>
		<div>Separate models</div>
		<input type="text" placeholder="text" ng-model="test.empty1">
		<input type="password" placeholder="password" ng-model="test.empty2">
		<input type="email" placeholder="email" ng-model="test.empty3">
		<textarea rows="1" placeholder="textarea" ng-model="test.empty4"></textarea>
	</div>
	<div>
		<div>Shared model</div>
		<input type="text" placeholder="text" ng-model="test.linked" ng-trim="false">
		<input type="password" placeholder="password" ng-model="test.linked" ng-trim="false">
		<input type="email" placeholder="email" ng-model="test.linked" ng-trim="false">
		<textarea rows="1" placeholder="textarea" ng-model="test.linked" ng-trim="false"></textarea>
	</div>
	<div>
		<div>Separate models, no placeholder (for reference)</div>
		<input type="text" ng-model="test.empty11">
		<input type="password" ng-model="test.empty12">
		<input type="email" ng-model="test.empty13">
		<textarea rows="1" ng-model="test.empty14"></textarea>
	</div>
	<div>
		<div>Shared model, no placeholder (for reference)</div>
		<input type="text" ng-model="test.linked2" ng-trim="false">
		<input type="password" ng-model="test.linked2" ng-trim="false">
		<input type="email" ng-model="test.linked2" ng-trim="false">
		<textarea rows="1" ng-model="test.linked2" ng-trim="false"></textarea>
	</div>
	<div>
		<div>No model, pre-filled by value</div>
		<input class="clearable" type="text" placeholder="text" value="hi">
		<input class="clearable" type="password" placeholder="password" value="<PASSWORD>">
		<button onclick="fillElements('filler')">fill</button>
		<button onclick="fillElements('')">clear</button>
	</div>
	<div>
		<div>Pre-filled by model</div>
		<input type="text" ng-model="test.text" placeholder="text">
		<input type="password" ng-model="test.password" placeholder="password">
	</div>

	<!-- Load angular.js from CDN if local copy is missing. http://stackoverflow.com/a/5531821/490592 -->
	<script src="bower_components/angular/angular.js"></script>
	<script>if (!window.angular && console) { console.info('Local angular.js unavailable. Will attempt to load from CDN.'); }</script>
	<script>window.angular || document.write('<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.js">\x3C/script>');</script>

	<script src="lib/angular-placeholder.js"></script>
	<script>
		angular.module(['testApp'], ['ng.shims.placeholder'])
		.run(function($rootScope){
			$rootScope.test = {
				text: 'hello',
				password: '<PASSWORD>'
			};
		});
{'fraction_non_alphanumeric': 0.1816953316953317, 'fraction_numerical': 0.04914004914004914, 'mean_word_length': 5.6133225020308695, 'pattern_counts': {'":': 0, '<': 192, '<?xml version=': 0, '>': 193, 'https://': 6, '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': '1582100', 'n_tokens_mistral': 3160, 'n_tokens_neox': 2785, 'n_words': 569}