Update everything
24
config/testacular.conf.js
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
basePath = '../';
|
||||||
|
|
||||||
|
files = [
|
||||||
|
JASMINE,
|
||||||
|
JASMINE_ADAPTER,
|
||||||
|
'lib/angular/angular.js',
|
||||||
|
'lib/angular/angular-*.js',
|
||||||
|
'lib/ixDbEz.js',
|
||||||
|
'lib/iscroll.js',
|
||||||
|
'test/lib/angular/angular-mocks.js',
|
||||||
|
'js/*.js',
|
||||||
|
'test/unit/*.js',
|
||||||
|
'test/unit/**/*.js',
|
||||||
|
'test/fixtures/*'
|
||||||
|
];
|
||||||
|
|
||||||
|
autoWatch = true;
|
||||||
|
|
||||||
|
browsers = ['Chrome'];
|
||||||
|
|
||||||
|
junitReporter = {
|
||||||
|
outputFile: 'test_out/unit.xml',
|
||||||
|
suite: 'unit'
|
||||||
|
};
|
46
css/core.css
|
@ -1,3 +1,7 @@
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
min-width: 150px;
|
min-width: 150px;
|
||||||
|
@ -7,6 +11,12 @@ body, .normalFont {
|
||||||
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.main-container {
|
||||||
|
height: 100%;
|
||||||
|
height: -webkit-calc(100% - 30px);
|
||||||
|
height: calc(100% - 30px);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.topBar, .topBarMenu {
|
.topBar, .topBarMenu {
|
||||||
background-color: #206BA4;
|
background-color: #206BA4;
|
||||||
|
@ -113,6 +123,7 @@ body, .normalFont {
|
||||||
|
|
||||||
.fullCurrentInfo {
|
.fullCurrentInfo {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
@ -125,8 +136,16 @@ body, .normalFont {
|
||||||
/* feedItemList */
|
/* feedItemList */
|
||||||
.listItem {
|
.listItem {
|
||||||
border-top: 1px solid #c0c0c0;
|
border-top: 1px solid #c0c0c0;
|
||||||
min-height: 40px;
|
height: 40px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
.listItemTitle {
|
||||||
|
line-height: 20px;
|
||||||
|
vertical-align: top;
|
||||||
|
font-weight: bold;
|
||||||
|
display: inline-block;
|
||||||
|
padding-top: 3px;
|
||||||
}
|
}
|
||||||
.feedItemTitle {
|
.feedItemTitle {
|
||||||
display: block;
|
display: block;
|
||||||
|
@ -145,4 +164,29 @@ body, .normalFont {
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#queueList, #scroller {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* form */
|
||||||
|
form.importForm {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
.importForm input {
|
||||||
|
width: 300px;
|
||||||
|
display: block;
|
||||||
|
border: 1px solid #999;
|
||||||
|
height: 25px;
|
||||||
|
margin: 5px 0;
|
||||||
|
-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
-moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
.importForm input[type="submit"] {
|
||||||
|
margin-top: 20px;
|
||||||
|
}
|
||||||
|
label {
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
|
@ -20,12 +20,11 @@
|
||||||
<div id="controlButton" class="topBarItem" ng-click="playPause()">
|
<div id="controlButton" class="topBarItem" ng-click="playPause()">
|
||||||
<i class="icon-play"></i>
|
<i class="icon-play"></i>
|
||||||
<i class="icon-pause"></i>
|
<i class="icon-pause"></i>
|
||||||
<audio id="audioPlayer"></audio>
|
|
||||||
</div>
|
</div>
|
||||||
<div ng-click="currentInfo()" class="topBarItem">
|
<div ng-click="currentInfo()" class="topBarItem">
|
||||||
<span>{{ nowPlaying.title }}</span>
|
<span>{{ feedItem.title }}</span>
|
||||||
<span ng-show="nowPlaying.duration > 0">
|
<span ng-show="nowPlaying.duration > 0">
|
||||||
<span id="position">{{ nowPlaying.position|time:true }}</span>/<span id="duration">{{ nowPlaying.duration|time }}</span>
|
<span id="position">{{ audio.currentTime|time:true }}</span>/<span id="duration">{{ audio.duration|time }}</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="fullCurrentInfo topBarMenu" ng-show="showingFullCurrentInfo" ng-cloak>
|
<div class="fullCurrentInfo topBarMenu" ng-show="showingFullCurrentInfo" ng-cloak>
|
||||||
|
@ -43,7 +42,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div ng-view></div>
|
<div ng-view class="main-container"></div>
|
||||||
|
|
||||||
<script src="lib/ixDbEz.js" type="text/javascript"></script>
|
<script src="lib/ixDbEz.js" type="text/javascript"></script>
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
// Declare app level module which depends on filters, and services
|
// Declare app level module which depends on filters, and services
|
||||||
angular.module('podcasts', ['podcasts.services', 'podcasts.updater']).
|
angular.module('podcasts', ['podcasts.services', 'podcasts.updater', 'podcasts.database', 'podcast.directives', 'podcasts.importer']).
|
||||||
config(['$routeProvider', function($routeProvider) {
|
config(['$routeProvider', function($routeProvider) {
|
||||||
$routeProvider.when('/feeds', {templateUrl: 'partials/listFeeds.html', controller: FeedListCtrl});
|
$routeProvider.when('/feeds', {templateUrl: 'partials/listFeeds.html', controller: FeedListCtrl});
|
||||||
$routeProvider.when('/feed/:feedId', {templateUrl: 'partials/feed.html', controller: FeedCtrl});
|
$routeProvider.when('/feed/:feedId', {templateUrl: 'partials/feed.html', controller: FeedCtrl});
|
||||||
$routeProvider.when('/queue', {templateUrl: 'partials/listQueue.html', controller: QueueListCtrl});
|
$routeProvider.when('/queue', {templateUrl: 'partials/listQueue.html', controller: QueueListCtrl});
|
||||||
$routeProvider.when('/settings', {templateUrl: 'partials/settings.html', controller: SettingsCtrl});
|
$routeProvider.when('/settings', {templateUrl: 'partials/settings.html', controller: SettingsCtrl});
|
||||||
|
$routeProvider.when('/import/google', {templateUrl: 'partials/importGoogle.html', controller: ImportCtrl});
|
||||||
$routeProvider.when('/info', {templateUrl: 'partials/info.html', controller: InfoCtrl});
|
$routeProvider.when('/info', {templateUrl: 'partials/info.html', controller: InfoCtrl});
|
||||||
$routeProvider.otherwise({redirectTo: '/queue'});
|
$routeProvider.otherwise({redirectTo: '/queue'});
|
||||||
}]);
|
}]);
|
|
@ -1,7 +1,7 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/* Controllers */
|
/* Controllers */
|
||||||
function FeedListCtrl($scope, feeds, pageSwitcher, $route, $location) {
|
function FeedListCtrl($scope, feeds, pageSwitcher, $location) {
|
||||||
$scope.feeds = feeds.feeds = [];
|
$scope.feeds = feeds.feeds = [];
|
||||||
feeds.list($scope);
|
feeds.list($scope);
|
||||||
|
|
||||||
|
@ -16,14 +16,14 @@ function FeedListCtrl($scope, feeds, pageSwitcher, $route, $location) {
|
||||||
pageSwitcher.change('feeds');
|
pageSwitcher.change('feeds');
|
||||||
}
|
}
|
||||||
|
|
||||||
function TopLinksCtrl($scope, feeds, feedItems, downloader) {
|
function TopLinksCtrl($scope, downloader, google) {
|
||||||
$scope.downloadFiles = function() {
|
$scope.downloadFiles = function() {
|
||||||
downloader.downloadAll();
|
downloader.downloadAll();
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.loadFixtures= function() {
|
$scope.loadFixtures = function() {
|
||||||
var newFeed = {};
|
var newFeed = {};
|
||||||
newFeed.name = "Some OGG Vorbis Podcast";
|
newFeed.title = "Some OGG Vorbis Podcast";
|
||||||
newFeed.url = "http://www.c3d2.de/pentacast-ogg.xml";
|
newFeed.url = "http://www.c3d2.de/pentacast-ogg.xml";
|
||||||
|
|
||||||
//add new record to the local database
|
//add new record to the local database
|
||||||
|
@ -51,20 +51,28 @@ function TopLinksCtrl($scope, feeds, feedItems, downloader) {
|
||||||
newFeedItem.date = 'Date';
|
newFeedItem.date = 'Date';
|
||||||
newFeedItem.description = 'Second Long Description<br /> with HTML <b>and stuff</b>';
|
newFeedItem.description = 'Second Long Description<br /> with HTML <b>and stuff</b>';
|
||||||
newFeedItem.audioUrl = 'http://example.com/2';
|
newFeedItem.audioUrl = 'http://example.com/2';
|
||||||
newFeedItem.queued = 0;
|
newFeedItem.queued = 1;
|
||||||
|
|
||||||
ixDbEz.put("feedItem", newFeedItem);
|
ixDbEz.put("feedItem", newFeedItem);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function FeedCtrl($scope, $routeParams, feeds, pageSwitcher) {
|
function FeedCtrl($scope, $routeParams, $location, feeds, pageSwitcher) {
|
||||||
|
$scope.nrQueueItemsOptions = [1, 2, 3, 4, 5];
|
||||||
$scope.feed = {};
|
$scope.feed = {};
|
||||||
// show info at top and items underneath
|
// show info at top and items underneath
|
||||||
feeds.get($routeParams.feedId, function(feed) {
|
feeds.get($routeParams.feedId)
|
||||||
|
.then(function(feed) {
|
||||||
$scope.feed = feed;
|
$scope.feed = feed;
|
||||||
$scope.$apply();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$scope.delete = function(id) {
|
||||||
|
//TODO: check we're not playing anything from this feed?
|
||||||
|
feeds.delete(id);
|
||||||
|
|
||||||
|
$location.path('/feeds');
|
||||||
|
};
|
||||||
|
|
||||||
pageSwitcher.setBack('feeds');
|
pageSwitcher.setBack('feeds');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,15 +101,15 @@ function QueueListCtrl($scope, $rootScope, pageSwitcher, feedItems, feeds, queue
|
||||||
pageSwitcher.change('queue');
|
pageSwitcher.change('queue');
|
||||||
}
|
}
|
||||||
|
|
||||||
function SettingsCtrl($scope, $route, settings, pageSwitcher) {
|
function SettingsCtrl($scope, settings, pageSwitcher) {
|
||||||
$scope.refreshIntervalOptions = [
|
$scope.refreshIntervalOptions = [
|
||||||
{name: '1 hour', value: '1h'},
|
{name: '10 seconds', value: '10000'},
|
||||||
{name: '8 hour', value: '8h'},
|
{name: '1 hour', value: '3600000'},
|
||||||
{name: '1 day', value: '1d'},
|
{name: '8 hour', value: '28800000'},
|
||||||
|
{name: '1 day', value: '86400000'},
|
||||||
{name: 'Manually', value: '0'}
|
{name: 'Manually', value: '0'}
|
||||||
];
|
];
|
||||||
$scope.refreshInterval = {'value': '', 'id': ''};
|
$scope.settings = {};
|
||||||
$scope.downloadOnWifi = {'value': '', 'id': ''};
|
|
||||||
|
|
||||||
$scope.changeInterval = function() {
|
$scope.changeInterval = function() {
|
||||||
settings.set('refreshInterval', $scope.refreshInterval.value, $scope.refreshInterval.id);
|
settings.set('refreshInterval', $scope.refreshInterval.value, $scope.refreshInterval.id);
|
||||||
|
@ -111,33 +119,6 @@ function SettingsCtrl($scope, $route, settings, pageSwitcher) {
|
||||||
settings.set('downloadOnWifi', $scope.downloadOnWifi.value, $scope.downloadOnWifi.id);
|
settings.set('downloadOnWifi', $scope.downloadOnWifi.value, $scope.downloadOnWifi.id);
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.installApp = function() {
|
|
||||||
if (navigator.mozApps) {
|
|
||||||
var checkIfInstalled = navigator.mozApps.getSelf();
|
|
||||||
checkIfInstalled.onsuccess = function () {
|
|
||||||
if (checkIfInstalled.result) {
|
|
||||||
alert('already Installed');
|
|
||||||
// Already installed
|
|
||||||
} else {
|
|
||||||
var manifestURL = "http://localhost/b2gPodcast/package.manifest";
|
|
||||||
var installApp = navigator.mozApps.install(manifestURL);
|
|
||||||
|
|
||||||
installApp.onsuccess = function(data) {
|
|
||||||
alert('weeeh - installed!');
|
|
||||||
};
|
|
||||||
installApp.onerror = function() {
|
|
||||||
alert("Install failed:\n\n" + installApp.error.name);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
checkIfInstalled.onerror = function() {
|
|
||||||
alert('could not check if installed');
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
alert("Open Web Apps are not supported");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
settings.setAllValuesInScope($scope);
|
settings.setAllValuesInScope($scope);
|
||||||
pageSwitcher.change('settings');
|
pageSwitcher.change('settings');
|
||||||
}
|
}
|
||||||
|
@ -145,6 +126,8 @@ function SettingsCtrl($scope, $route, settings, pageSwitcher) {
|
||||||
function TopBarCtrl($scope, player, pageSwitcher)
|
function TopBarCtrl($scope, player, pageSwitcher)
|
||||||
{
|
{
|
||||||
$scope.nowPlaying = player.nowPlaying;
|
$scope.nowPlaying = player.nowPlaying;
|
||||||
|
$scope.feedItem = player.feedItem;
|
||||||
|
$scope.audio = player.audio;
|
||||||
$scope.showingPageSwitchMenu = false;
|
$scope.showingPageSwitchMenu = false;
|
||||||
$scope.showingFullCurrentInfo = false;
|
$scope.showingFullCurrentInfo = false;
|
||||||
$scope.showInfoIcon = false;
|
$scope.showInfoIcon = false;
|
||||||
|
@ -186,7 +169,17 @@ function TopBarCtrl($scope, player, pageSwitcher)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function InfoCtrl($scope, pageSwitcher)
|
function InfoCtrl(pageSwitcher)
|
||||||
{
|
{
|
||||||
pageSwitcher.change('info');
|
pageSwitcher.change('info');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function ImportCtrl($scope, pageSwitcher, google)
|
||||||
|
{
|
||||||
|
$scope.importGoogle = function() {
|
||||||
|
google.import($scope.email, $scope.password);
|
||||||
|
};
|
||||||
|
|
||||||
|
pageSwitcher.backPage = true;
|
||||||
|
pageSwitcher.change('settings');
|
||||||
|
}
|
0
js/filters.js
Normal file
595
js/services.js
|
@ -1,8 +1,8 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/* Services */
|
/* Services */
|
||||||
angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
angular.module('podcasts.services', [])
|
||||||
.service('downloader2', ['$http', '$q', 'xmlParser', function($http, $q, xmlParser) {
|
.service('downloaderBackend', ['$http', '$q', 'xmlParser', function($http, $q, xmlParser) {
|
||||||
return {
|
return {
|
||||||
downloadFile: function(url) {
|
downloadFile: function(url) {
|
||||||
var deferred = $q.defer();
|
var deferred = $q.defer();
|
||||||
|
@ -13,7 +13,8 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
})
|
})
|
||||||
.error(function() {
|
.error(function() {
|
||||||
deferred.reject();
|
deferred.reject();
|
||||||
});
|
})
|
||||||
|
;
|
||||||
|
|
||||||
return deferred.promise;
|
return deferred.promise;
|
||||||
},
|
},
|
||||||
|
@ -47,40 +48,61 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.service('feedItems', ['db', function(db) {
|
.service('feedItems', ['dbNew', 'db', '$q', function(db, oldDb, $q) {
|
||||||
return {
|
return {
|
||||||
db: db,
|
|
||||||
get: function(id, onSuccess, onFailure) {
|
get: function(id, onSuccess, onFailure) {
|
||||||
this.db.getCursor("feedItem", function(ixDbCursorReq)
|
db.getOne("feedItem", id)
|
||||||
{
|
.then(function(value) {
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
onSuccess(value);
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
}, function() {
|
||||||
var cursor = ixDbCursorReq.result || e.result;
|
onFailure();
|
||||||
if (cursor) {
|
});
|
||||||
onSuccess(cursor.value);
|
|
||||||
}
|
|
||||||
if (typeof onFailure === 'function') {
|
|
||||||
onFailure();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, null, IDBKeyRange.only(id));
|
|
||||||
},
|
},
|
||||||
addFromXml: function(xml, feedId, onSuccess) {
|
getFeedItemFromXml: function(xml) {
|
||||||
var newFeedItem = {},
|
var newFeedItem = {},
|
||||||
searchableXml = angular.element(xml);
|
searchableXml = angular.element(xml);
|
||||||
newFeedItem.guid = searchableXml.find('guid').text();
|
newFeedItem.guid = searchableXml.find('guid').text();
|
||||||
newFeedItem.feedId = feedId;
|
|
||||||
newFeedItem.title = searchableXml.find('title').text();
|
newFeedItem.title = searchableXml.find('title').text();
|
||||||
newFeedItem.link = searchableXml.find('link').text();
|
newFeedItem.link = searchableXml.find('link').text();
|
||||||
newFeedItem.date = Date.parse(searchableXml.find('pubDate').text());
|
newFeedItem.date = Date.parse(searchableXml.find('pubDate').text());
|
||||||
newFeedItem.description = searchableXml.find('description').text();
|
newFeedItem.description = searchableXml.find('description').text();
|
||||||
newFeedItem.audioUrl = searchableXml.find('enclosure').attr('url');
|
newFeedItem.audioUrl = searchableXml.find('enclosure').attr('url');
|
||||||
newFeedItem.queued = 1; //TODO: maybe allow not adding items in a feed to the queue - would then need to check for that here
|
|
||||||
|
|
||||||
this.db.put("feedItem", newFeedItem, undefined, function() {
|
return newFeedItem;
|
||||||
onSuccess(newFeedItem);
|
},
|
||||||
|
delete: function(id) {
|
||||||
|
oldDb.delete("feedItem", id);
|
||||||
|
},
|
||||||
|
deleteByFeedId: function(feedId) {
|
||||||
|
oldDb.getCursor("feedItem", function(ixDbCursorReq) {
|
||||||
|
if (typeof ixDbCursorReq !== "undefined") {
|
||||||
|
ixDbCursorReq.onsuccess = function(e) {
|
||||||
|
var cursor = ixDbCursorReq.result || e.result;
|
||||||
|
if (cursor) {
|
||||||
|
this.delete(cursor.value.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, null, IDBKeyRange.only(feedId), null, 'ixFeedId');
|
||||||
|
},
|
||||||
|
add: function(object) {
|
||||||
|
var deferred = $q.defer(),
|
||||||
|
newFeedItem = {
|
||||||
|
guid: object.guid,
|
||||||
|
feedId: object.feedId,
|
||||||
|
title: object.title,
|
||||||
|
link: object.link,
|
||||||
|
date: object.date,
|
||||||
|
description: object.description,
|
||||||
|
audioUrl: object.audioUrl,
|
||||||
|
queued: object.queued
|
||||||
|
};
|
||||||
|
|
||||||
|
oldDb.put("feedItem", newFeedItem, undefined, function() {
|
||||||
|
deferred.resolve(newFeedItem);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return deferred.promise;
|
||||||
},
|
},
|
||||||
getNextInQueue: function(feedItem) {
|
getNextInQueue: function(feedItem) {
|
||||||
var tempQueueList = { queue: [], addToQueue: function(item) { this.queue.push(item); } };
|
var tempQueueList = { queue: [], addToQueue: function(item) { this.queue.push(item); } };
|
||||||
|
@ -101,7 +123,7 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
return nextFeedItem;
|
return nextFeedItem;
|
||||||
},
|
},
|
||||||
listQueue: function(queueList, done) {
|
listQueue: function(queueList, done) {
|
||||||
this.db.getCursor("feedItem", function(ixDbCursorReq)
|
oldDb.getCursor("feedItem", function(ixDbCursorReq)
|
||||||
{
|
{
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
if(typeof ixDbCursorReq !== "undefined") {
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
ixDbCursorReq.onsuccess = function (e) {
|
||||||
|
@ -118,33 +140,16 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, undefined, IDBKeyRange.only(1), undefined, 'ixQueued');
|
}, undefined, IDBKeyRange.only(1), undefined, 'ixQueued');
|
||||||
},
|
|
||||||
list: function($scope) {
|
|
||||||
this.db.getCursor("feedItem", function(ixDbCursorReq)
|
|
||||||
{
|
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
|
||||||
var cursor = ixDbCursorReq.result || e.result;
|
|
||||||
if (cursor) {
|
|
||||||
$scope.queue.push(cursor.value);
|
|
||||||
$scope.$apply();
|
|
||||||
|
|
||||||
cursor.continue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}])
|
}])
|
||||||
.service('feeds', ['db', 'downloader2', 'xmlParser', 'feedItems', function(db, downloader2, xmlParser, feedItems) {
|
.service('feeds', ['$log', '$q', 'dbNew', 'db', 'downloaderBackend', 'xmlParser', 'feedItems', function($log, $q, db, dbOld, downloaderBackend, xmlParser, feedItems) {
|
||||||
return {
|
return {
|
||||||
db: db,
|
|
||||||
feeds: [],
|
feeds: [],
|
||||||
add: function(url) {
|
add: function(url) {
|
||||||
var feedService = this;
|
var feedService = this;
|
||||||
var finishSave = function(newFeed) {
|
var finishSave = function(newFeed) {
|
||||||
db.put("feed", newFeed, undefined, function(key) {
|
dbOld.put("feed", newFeed, undefined, function(key) {
|
||||||
newFeed.id = key;
|
newFeed.id = key;
|
||||||
|
|
||||||
feedService.feeds.push(newFeed);
|
feedService.feeds.push(newFeed);
|
||||||
|
@ -154,7 +159,7 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
|
|
||||||
// TODO: verify URL format somewhere
|
// TODO: verify URL format somewhere
|
||||||
|
|
||||||
var promise = downloader2.downloadXml(url);
|
var promise = downloaderBackend.downloadXml(url);
|
||||||
promise.then(function(xml) {
|
promise.then(function(xml) {
|
||||||
var channelChildren = xml.find('channel').children(),
|
var channelChildren = xml.find('channel').children(),
|
||||||
newFeed = {},
|
newFeed = {},
|
||||||
|
@ -173,8 +178,9 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
newFeed.url = url;
|
newFeed.url = url;
|
||||||
newFeed.title = channelChildren.find('title').text();
|
newFeed.title = channelChildren.find('title').text();
|
||||||
newFeed.summary = channelChildren.find('description').text();
|
newFeed.summary = channelChildren.find('description').text();
|
||||||
|
newFeed.nrQueueItems = 1;
|
||||||
|
|
||||||
var file = downloader2.downloadFile(imageUrl);
|
var file = downloaderBackend.downloadFile(imageUrl);
|
||||||
file.then(function(fileBlob) {
|
file.then(function(fileBlob) {
|
||||||
newFeed.image = fileBlob;
|
newFeed.image = fileBlob;
|
||||||
finishSave(newFeed);
|
finishSave(newFeed);
|
||||||
|
@ -182,65 +188,58 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
finishSave(newFeed);
|
finishSave(newFeed);
|
||||||
});
|
});
|
||||||
}, function() {
|
}, function() {
|
||||||
console.error('Could not fetch XML for feed, adding just URL for now');
|
console.warn('Could not fetch XML for feed, adding just URL for now');
|
||||||
var newFeed = {};
|
var newFeed = {};
|
||||||
newFeed.url = url;
|
newFeed.url = url;
|
||||||
|
|
||||||
finishSave(newFeed);
|
finishSave(newFeed);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
get: function(id, onSuccess, onFailure) {
|
get: function(id) {
|
||||||
id = parseInt(id, 10);
|
id = parseInt(id, 10);
|
||||||
this.db.getCursor("feed", function(ixDbCursorReq)
|
var deferred = $q.defer();
|
||||||
{
|
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
|
||||||
var cursor = ixDbCursorReq.result || e.result;
|
|
||||||
if (cursor) {
|
|
||||||
var feed = cursor.value;
|
|
||||||
if (typeof feed.image === 'string') {
|
|
||||||
feed.image = new Blob([feed.image]);
|
|
||||||
}
|
|
||||||
|
|
||||||
db.getCursor("feedItem", function(ixDbCursorReq)
|
db.getOne("feed", id)
|
||||||
{
|
.then(function(feed) {
|
||||||
feed.items = [];
|
if (typeof feed.image === 'string') {
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
feed.image = new Blob([feed.image]);
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
}
|
||||||
var cursor = ixDbCursorReq.result || e.result;
|
|
||||||
if (cursor) {
|
|
||||||
feed.items.push(cursor.value);
|
|
||||||
|
|
||||||
cursor.continue();
|
dbOld.getCursor("feedItem", function(ixDbCursorReq)
|
||||||
} else {
|
{
|
||||||
onSuccess(feed);
|
feed.items = [];
|
||||||
}
|
if(typeof ixDbCursorReq !== "undefined") {
|
||||||
}
|
ixDbCursorReq.onsuccess = function (e) {
|
||||||
|
var cursor = ixDbCursorReq.result || e.result;
|
||||||
|
if (cursor) {
|
||||||
|
feed.items.push(cursor.value);
|
||||||
|
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
deferred.resolve(feed);
|
||||||
}
|
}
|
||||||
}, null, IDBKeyRange.only(feed.id), undefined, 'ixFeedId');
|
}
|
||||||
|
|
||||||
//onSuccess(cursor.value);
|
|
||||||
} else {
|
|
||||||
onFailure(cursor);
|
|
||||||
}
|
}
|
||||||
}
|
}, null, IDBKeyRange.only(feed.id), undefined, 'ixFeedId');
|
||||||
|
}, function(value) {
|
||||||
|
deferred.reject();
|
||||||
|
});
|
||||||
|
|
||||||
ixDbCursorReq.onerror = function (e) {
|
return deferred.promise;
|
||||||
onFailure(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, undefined, IDBKeyRange.only(id));
|
|
||||||
},
|
},
|
||||||
list: function($scope) {
|
list: function($scope) {
|
||||||
var feeds = this.feeds;
|
var feeds = this.feeds;
|
||||||
db.getCursor("feed", function(ixDbCursorReq)
|
dbOld.getCursor("feed", function(ixDbCursorReq)
|
||||||
{
|
{
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
if(typeof ixDbCursorReq !== "undefined") {
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
ixDbCursorReq.onsuccess = function (e) {
|
||||||
var cursor = ixDbCursorReq.result || e.result;
|
var cursor = ixDbCursorReq.result || e.result;
|
||||||
if (cursor) {
|
if (cursor) {
|
||||||
if (typeof cursor.value.image === 'string') {
|
if (typeof cursor.value.image === 'string') {
|
||||||
cursor.value.image = new Blob([cursor.value.image], {type: 'application/octet-stream'});
|
cursor.value.image = new Blob(
|
||||||
|
[cursor.value.image],
|
||||||
|
{type: 'application/octet-stream'}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
feeds.push(cursor.value);
|
feeds.push(cursor.value);
|
||||||
$scope.$apply();
|
$scope.$apply();
|
||||||
|
@ -251,6 +250,11 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
delete: function(id) {
|
||||||
|
$log.info('Deleting feed with ID ' + id);
|
||||||
|
feedItems.deleteByFeedId(id);
|
||||||
|
dbOld.delete("feed", id);
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param feedItems
|
* @param feedItems
|
||||||
|
@ -259,7 +263,7 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
*/
|
*/
|
||||||
downloadAllItems: function(feedItems, updateStatus) {
|
downloadAllItems: function(feedItems, updateStatus) {
|
||||||
var feedService = this;
|
var feedService = this;
|
||||||
db.getCursor("feed", function(ixDbCursorReq)
|
dbOld.getCursor("feed", function(ixDbCursorReq)
|
||||||
{
|
{
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
if(typeof ixDbCursorReq !== "undefined") {
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
ixDbCursorReq.onsuccess = function (e) {
|
||||||
|
@ -277,113 +281,89 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
downloadItems: function(feedItem, updateStatus) {
|
downloadItems: function(feedItem, updateStatus) {
|
||||||
var promise = downloader2.downloadXml(feedItem.url);
|
var promise = downloaderBackend.downloadXml(feedItem.url),
|
||||||
|
feedObjects = [];
|
||||||
promise.then(function(data) {
|
promise.then(function(data) {
|
||||||
angular.forEach(
|
angular.forEach(
|
||||||
data.find('item'),
|
data.find('item'),
|
||||||
function(element, index) {
|
function(element, index) {
|
||||||
if (index < 3) { // TODO: this should be a global setting
|
if (index < 3) { // TODO: this should be a global setting and/or a per-feed setting
|
||||||
feedItems.addFromXml(element, feedItem.id, function(item) {
|
feedObjects.push(feedItems.getFeedItemFromXml(element))
|
||||||
if (typeof updateStatus === 'function') {
|
|
||||||
updateStatus(item, feedItem);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
angular.forEach(feedObjects, function(feedObject, index) {
|
||||||
|
feedObject.feedId = feedItem.id;
|
||||||
|
if (0 === index) {
|
||||||
|
feedObject.queued = 1;
|
||||||
|
} else {
|
||||||
|
feedObject.queued = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
feedItems.add(feedObject)
|
||||||
|
.then(function(item) {
|
||||||
|
if (typeof updateStatus === 'function') {
|
||||||
|
updateStatus(item, feedItem);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}])
|
}])
|
||||||
.value('xmlParser', {
|
.service('xmlParser', ['$window', function($window) {
|
||||||
parse: function(data) {
|
return {
|
||||||
return angular.element(new window.DOMParser().parseFromString(data, "text/xml"));
|
parse: function(data) {
|
||||||
}
|
return angular.element(new $window.DOMParser().parseFromString(data, "text/xml"));
|
||||||
})
|
|
||||||
.service('settings', ['db', function(db) {
|
|
||||||
return {
|
|
||||||
db: db,
|
|
||||||
set: function (name, value, key) {
|
|
||||||
if (key) {
|
|
||||||
var setting = {'id': key, 'name': name, 'value': value};
|
|
||||||
} else {
|
|
||||||
var setting = {'name': name, 'value': value};
|
|
||||||
}
|
|
||||||
|
|
||||||
this.db.put("setting", setting);
|
|
||||||
},
|
|
||||||
get: function (name, onSuccess, onFailure) {
|
|
||||||
this.db.getCursor("setting", function(ixDbCursorReq)
|
|
||||||
{
|
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
|
||||||
var cursor = ixDbCursorReq.result || e.result;
|
|
||||||
if (cursor) {
|
|
||||||
onSuccess(cursor.value);
|
|
||||||
} else {
|
|
||||||
onFailure();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ixDbCursorReq.onerror = function (e) {
|
|
||||||
onFailure();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, undefined, IDBKeyRange.only(name), undefined, 'ixName');
|
|
||||||
},
|
|
||||||
setAllValuesInScope: function(scope) {
|
|
||||||
this.db.getCursor("setting", function(ixDbCursorReq)
|
|
||||||
{
|
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
|
||||||
var cursor = ixDbCursorReq.result || e.result;
|
|
||||||
if (cursor) {
|
|
||||||
scope[cursor.value.name] = cursor.value;
|
|
||||||
scope.$apply();
|
|
||||||
|
|
||||||
cursor.continue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
}])
|
}])
|
||||||
.service('player', ['db', '$timeout', function(db, $timeout) {
|
.service('url', ['$window', function($window) {
|
||||||
|
return {
|
||||||
|
url: $window.URL || $window.webkitURL,
|
||||||
|
createObjectUrl: function(data) {
|
||||||
|
return this.url.createObjectUrl(data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
.service('player', ['db', 'url', '$timeout', function(db, url, $timeout) {
|
||||||
return {
|
return {
|
||||||
db: db,
|
db: db,
|
||||||
audio: angular.element(document.getElementById('audioPlayer')),
|
audio: new Audio(),
|
||||||
|
feedItem: null,
|
||||||
nowPlaying: {position: 0, duration: 0, title: '', description: '', feed: '', date: 0},
|
nowPlaying: {position: 0, duration: 0, title: '', description: '', feed: '', date: 0},
|
||||||
play: function (feedItem, $scope) {
|
play: function (feedItem, $scope) {
|
||||||
if (feedItem) {
|
if (feedItem) {
|
||||||
|
this.feedItem = feedItem;
|
||||||
|
|
||||||
var audioSrc;
|
var audioSrc;
|
||||||
|
|
||||||
if (feedItem.audio) {
|
if (feedItem.audio) {
|
||||||
var URL = window.URL || window.webkitURL;
|
audioSrc = url.createObjectUrl(feedItem.audio);
|
||||||
audioSrc = URL.createObjectURL(feedItem.audio);
|
|
||||||
} else {
|
} else {
|
||||||
audioSrc = feedItem.audioUrl;
|
audioSrc = feedItem.audioUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.audio.attr('src', audioSrc);
|
this.audio.src = audioSrc;
|
||||||
this.updateSong(feedItem, $scope);
|
this.updateSong(feedItem, $scope);
|
||||||
|
|
||||||
if (feedItem.position) {
|
if (feedItem.position) {
|
||||||
this.audio.bind('canplay', function(event) {
|
angular.element(this.audio).bind('canplay', function(event) {
|
||||||
this.currentTime = feedItem.position;
|
this.currentTime = feedItem.position;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.audio[0].play();
|
this.audio.play();
|
||||||
|
|
||||||
var db = this.db;
|
var db = this.db;
|
||||||
this.audio.bind('pause', function(event) {
|
angular.element(this.audio).bind('pause', function(event) {
|
||||||
feedItem.position = Math.floor(event.target.currentTime);
|
feedItem.position = Math.floor(event.target.currentTime);
|
||||||
db.put("feedItem", feedItem);
|
db.put("feedItem", feedItem);
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: add something here for when audio is done to remove from queue and go to next song
|
// TODO: add something here for when audio is done to remove from queue and go to next song
|
||||||
this.audio.bind('ended', function(event) {
|
angular.element(this.audio).bind('ended', function(event) {
|
||||||
feedItem.queued = 0;
|
feedItem.queued = 0;
|
||||||
feedItem.position = 0;
|
feedItem.position = 0;
|
||||||
db.put("feedItem", feedItem);
|
db.put("feedItem", feedItem);
|
||||||
|
@ -401,7 +381,7 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
},
|
},
|
||||||
updateSong: function(feedItem, $scope) {
|
updateSong: function(feedItem, $scope) {
|
||||||
this.nowPlaying.title = feedItem.title;
|
this.nowPlaying.title = feedItem.title;
|
||||||
var audio = this.audio[0],
|
var audio = this.audio,
|
||||||
player = this;
|
player = this;
|
||||||
$timeout(function() {
|
$timeout(function() {
|
||||||
player.nowPlaying.duration = audio.duration;
|
player.nowPlaying.duration = audio.duration;
|
||||||
|
@ -413,7 +393,7 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
this.updatePosition($scope);
|
this.updatePosition($scope);
|
||||||
},
|
},
|
||||||
updatePosition: function($scope) {
|
updatePosition: function($scope) {
|
||||||
var audio = this.audio[0],
|
var audio = this.audio,
|
||||||
player = this;
|
player = this;
|
||||||
setInterval(function() {
|
setInterval(function() {
|
||||||
player.nowPlaying.position = audio.currentTime;
|
player.nowPlaying.position = audio.currentTime;
|
||||||
|
@ -487,11 +467,8 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}])
|
}])
|
||||||
.service('downloader', ['db', '$http', 'settings', function(db, $http, settings) {
|
.service('downloader', ['db', 'url', '$http', 'settings', function(db, url, $http, settings) {
|
||||||
return {
|
return {
|
||||||
db: db,
|
|
||||||
http: $http,
|
|
||||||
settings: settings,
|
|
||||||
allowedToDownload: function(callback) {
|
allowedToDownload: function(callback) {
|
||||||
settings.get('downloadOnWifi', function(setting) {
|
settings.get('downloadOnWifi', function(setting) {
|
||||||
if (setting.value) {
|
if (setting.value) {
|
||||||
|
@ -509,11 +486,11 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
this.allowedToDownload(function(value) {
|
this.allowedToDownload(function(value) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
if (typeof silent !== 'undefined' && !silent) {
|
if (typeof silent !== 'undefined' && !silent) {
|
||||||
alert('not Downloading because not on WiFi');
|
alert('not Downloading because not on WiFi'); //TODO: nicer error message?
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var itemsToDownload = [];
|
var itemsToDownload = [];
|
||||||
downloader.db.getCursor("feedItem", function(ixDbCursorReq)
|
db.getCursor("feedItem", function(ixDbCursorReq)
|
||||||
{
|
{
|
||||||
if(typeof ixDbCursorReq !== "undefined") {
|
if(typeof ixDbCursorReq !== "undefined") {
|
||||||
ixDbCursorReq.onsuccess = function (e) {
|
ixDbCursorReq.onsuccess = function (e) {
|
||||||
|
@ -529,7 +506,7 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
}, undefined, IDBKeyRange.only(1), undefined, 'ixQueued');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -540,20 +517,22 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.http.get(item.audioUrl, {'responseType': 'blob'}).success(function(data) {
|
$http.get(item.audioUrl, {'responseType': 'blob'})
|
||||||
item.audio = data;
|
.success(function(data) {
|
||||||
item.duration = this.getAudioLength(data);
|
item.audio = data;
|
||||||
|
item.duration = this.getAudioLength(data);
|
||||||
|
|
||||||
db.put("feedItem", item);
|
db.put("feedItem", item);
|
||||||
|
|
||||||
downloader.downloadFiles(itemsToDownload);
|
downloader.downloadFiles(itemsToDownload);
|
||||||
});
|
})
|
||||||
|
;
|
||||||
},
|
},
|
||||||
getAudioLength: function(audio) {
|
getAudioLength: function(audio) {
|
||||||
var tmpAudio = new Audio();
|
var tmpAudio = new Audio();
|
||||||
tmpAudio.autoplay = false;
|
tmpAudio.autoplay = false;
|
||||||
tmpAudio.muted = true;
|
tmpAudio.muted = true;
|
||||||
tmpAudio.src = URL.createObjectURL(audio);
|
tmpAudio.src = url.createObjectURL(audio);
|
||||||
|
|
||||||
return tmpAudio.duration;
|
return tmpAudio.duration;
|
||||||
}
|
}
|
||||||
|
@ -566,11 +545,19 @@ angular.module('podcasts.services', ['podcasts.database', 'podcast.directives'])
|
||||||
|
|
||||||
if (seconds > 120) {
|
if (seconds > 120) {
|
||||||
minutes = Math.floor(seconds/60);
|
minutes = Math.floor(seconds/60);
|
||||||
|
|
||||||
seconds = seconds % 60;
|
seconds = seconds % 60;
|
||||||
|
if (seconds < 10) {
|
||||||
|
seconds = '0' + seconds;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (minutes > 60) {
|
if (minutes > 60) {
|
||||||
minutes = Math.floor(minutes/60);
|
hours = Math.floor(minutes/60);
|
||||||
hours = minutes % 60;
|
|
||||||
|
minutes = minutes % 60;
|
||||||
|
if (minutes < 10) {
|
||||||
|
minutes = '0' + minutes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hours) {
|
if (hours) {
|
||||||
|
@ -618,22 +605,266 @@ angular.module('podcasts.database', [])
|
||||||
});
|
});
|
||||||
|
|
||||||
//Create or Open the local IndexedDB database via ixDbEz
|
//Create or Open the local IndexedDB database via ixDbEz
|
||||||
ixDbEz.startDB("podcastDb", 7, dbConfig, undefined, undefined, false);
|
ixDbEz.startDB("podcastDb", 8, dbConfig, undefined, undefined, false);
|
||||||
})
|
})
|
||||||
.value('db', ixDbEz);
|
.value('db', ixDbEz)
|
||||||
|
.service('dbNew', ['$q', '$rootScope', 'db', function($q, $rootScope, _db) {
|
||||||
|
var _getOne = function(store, identifier) {
|
||||||
|
var deferred = $q.defer();
|
||||||
|
|
||||||
angular.module('podcasts.updater', [])
|
_db.getCursor(store, function(ixDbCursorReq)
|
||||||
.run(['$timeout', 'update', function($timeout, update) {
|
{
|
||||||
var checkFeeds = function() {
|
if(typeof ixDbCursorReq !== "undefined") {
|
||||||
update.update();
|
ixDbCursorReq.onsuccess = function (e) {
|
||||||
$timeout(checkFeeds, 1800000); // run every half an hour
|
var cursor = ixDbCursorReq.result || e.result;
|
||||||
|
if (cursor) {
|
||||||
|
deferred.resolve(cursor.value);
|
||||||
|
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
//TODO: not sure if this'll work, since it may both resolve and reject.
|
||||||
|
// May need to check if any were resolved or not first
|
||||||
|
|
||||||
|
// deferred.reject();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
deferred.reject();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return deferred.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
checkFeeds();
|
|
||||||
}])
|
|
||||||
.service('update', ['downloader', function(downloader) {
|
|
||||||
return {
|
return {
|
||||||
update: function() { downloader.downloadAll(true); }
|
getOne: _getOne
|
||||||
|
};
|
||||||
|
}]);
|
||||||
|
|
||||||
|
angular.module('podcasts.updater', ['podcasts.settings'])
|
||||||
|
.run(['update', function(update) {
|
||||||
|
update.checkFeeds();
|
||||||
|
}])
|
||||||
|
.service('update', ['$timeout', '$log', 'settings', 'downloader', function($timeout, $log, settings, downloader) {
|
||||||
|
var checkFeeds = function() {
|
||||||
|
$log.info('Running Feed Check');
|
||||||
|
|
||||||
|
settings.get('refreshInterval', function(value) {
|
||||||
|
if (value.value > 0) {
|
||||||
|
var refreshInterval = value.value;
|
||||||
|
|
||||||
|
update();
|
||||||
|
|
||||||
|
if (refreshInterval > 0) {
|
||||||
|
$timeout(checkFeeds, refreshInterval);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
function update() {
|
||||||
|
downloader.downloadAll(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
checkFeeds: checkFeeds,
|
||||||
|
update: update
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
;
|
||||||
|
|
||||||
|
angular.module('podcasts.settings', ['podcasts.database'])
|
||||||
|
.run(['settings', function(settings) {
|
||||||
|
settings.init();
|
||||||
|
}])
|
||||||
|
.service('settings', ['db', function(db) {
|
||||||
|
var settings = {},
|
||||||
|
initialized = false,
|
||||||
|
waiting = [];
|
||||||
|
|
||||||
|
function _init() {
|
||||||
|
console.log('init settings');
|
||||||
|
db.getCursor("setting", function(ixDbCursorReq)
|
||||||
|
{
|
||||||
|
if(typeof ixDbCursorReq !== "undefined") {
|
||||||
|
ixDbCursorReq.onsuccess = function (e) {
|
||||||
|
var cursor = ixDbCursorReq.result || e.result;
|
||||||
|
if (cursor) {
|
||||||
|
settings[cursor.value.name] = cursor.value;
|
||||||
|
|
||||||
|
cursor.continue();
|
||||||
|
} else {
|
||||||
|
initialized = true;
|
||||||
|
|
||||||
|
for (var i = 0, l = waiting.length; i < l; i++) {
|
||||||
|
waiting[i]();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function _set(name, value, key) {
|
||||||
|
var setting;
|
||||||
|
|
||||||
|
if (key) {
|
||||||
|
setting = {'id': key, 'name': name, 'value': value};
|
||||||
|
if (settings[name]['id'] === key) {
|
||||||
|
settings[name] = setting;
|
||||||
|
} else {
|
||||||
|
//TODO: name changed, go through all settings and find the setting by id, and adjust it
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setting = {'name': name, 'value': value};
|
||||||
|
settings[name] = setting;
|
||||||
|
//TODO: get id after inserting into DB
|
||||||
|
}
|
||||||
|
|
||||||
|
db.put("setting", setting);
|
||||||
|
}
|
||||||
|
|
||||||
|
function _get(name, onSuccess, onFailure) {
|
||||||
|
if (!initialized) {
|
||||||
|
waiting.push(function() {
|
||||||
|
_get(name, onSuccess, onFailure);
|
||||||
|
});
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!angular.isUndefined(settings[name])) {
|
||||||
|
onSuccess(settings[name]);
|
||||||
|
} else {
|
||||||
|
db.getCursor("setting", function(ixDbCursorReq)
|
||||||
|
{
|
||||||
|
if(typeof ixDbCursorReq !== "undefined") {
|
||||||
|
ixDbCursorReq.onsuccess = function (e) {
|
||||||
|
var cursor = ixDbCursorReq.result || e.result;
|
||||||
|
if (cursor) {
|
||||||
|
onSuccess(cursor.value);
|
||||||
|
} else {
|
||||||
|
if (typeof onFailure === 'function') {
|
||||||
|
onFailure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ixDbCursorReq.onerror = function (e) {
|
||||||
|
console.log('didnt get setting');
|
||||||
|
onFailure();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}, function() { onFailure(); }, IDBKeyRange.only(name), undefined, 'ixName');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _setAllValuesInScope(scope) {
|
||||||
|
if (angular.isObject(scope.settings.refreshInterval)) { // Took random setting here
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!initialized) {
|
||||||
|
waiting.push(function() {
|
||||||
|
_setAllValuesInScope(scope);
|
||||||
|
});
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
angular.forEach(settings, function(setting, index) {
|
||||||
|
scope.settings[setting.name] = setting;
|
||||||
|
});
|
||||||
|
|
||||||
|
scope.$apply(); //TODO: this conflicts with digest when getting to the settings page a second time
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
init: _init,
|
||||||
|
set: _set,
|
||||||
|
get: _get,
|
||||||
|
setAllValuesInScope: _setAllValuesInScope
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
;
|
||||||
|
|
||||||
|
angular.module('podcasts.importer', [])
|
||||||
|
.service('google', ['$q', '$http', 'feeds', function($q, $http, feeds) {
|
||||||
|
return {
|
||||||
|
import: function(email, password) {
|
||||||
|
var google = this;
|
||||||
|
|
||||||
|
this.auth(email,
|
||||||
|
password)
|
||||||
|
.then(function(authId) {
|
||||||
|
return google.fetchSubscriptions(authId)
|
||||||
|
}, function() {
|
||||||
|
//TODO: display error
|
||||||
|
})
|
||||||
|
.then(function(subscriptions) {
|
||||||
|
google.addFeedsFromJsonResponse(subscriptions);
|
||||||
|
})
|
||||||
|
;
|
||||||
|
},
|
||||||
|
auth: function(email, password) {
|
||||||
|
var escapedEmail = encodeURIComponent(email),
|
||||||
|
escapedPassword = encodeURIComponent(password),
|
||||||
|
deferred = $q.defer();
|
||||||
|
|
||||||
|
$http.post(
|
||||||
|
'https://www.google.com/accounts/ClientLogin',
|
||||||
|
'Email=' + escapedEmail + '&Passwd=' + escapedPassword + '&service=reader',
|
||||||
|
{'headers': {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}}
|
||||||
|
).success(function(response) {
|
||||||
|
response.split(/\r\n|\r|\n/).forEach(function(value, index) {
|
||||||
|
var valueSplit = value.split('=');
|
||||||
|
if ('Auth' === valueSplit[0]) {
|
||||||
|
deferred.resolve(valueSplit[1]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}).error(function(data, status, headers, config) {
|
||||||
|
console.log(data, status, headers);
|
||||||
|
deferred.reject();
|
||||||
|
});
|
||||||
|
|
||||||
|
return deferred.promise;
|
||||||
|
},
|
||||||
|
fetchSubscriptions: function(authId) {
|
||||||
|
var deferred = $q.defer();
|
||||||
|
|
||||||
|
$http
|
||||||
|
.get(
|
||||||
|
'http://www.google.com/reader/api/0/subscription/list?output=json',
|
||||||
|
{'headers': {'Authorization': 'GoogleLogin auth=' + authId}}
|
||||||
|
)
|
||||||
|
.success(function(json) {
|
||||||
|
deferred.resolve(json);
|
||||||
|
})
|
||||||
|
.error(function(data, status, headers, config) {
|
||||||
|
deferred.reject();
|
||||||
|
})
|
||||||
|
;
|
||||||
|
|
||||||
|
return deferred.promise;
|
||||||
|
},
|
||||||
|
addFeedsFromJsonResponse: function(json) {
|
||||||
|
json.subscriptions.forEach(function(subscription, subscriptionIndex) {
|
||||||
|
if (subscription.categories.length <= 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
subscription.categories.forEach(function(category, categoryIndes) {
|
||||||
|
if ("Listen Subscriptions" === category.label) {
|
||||||
|
var feedUrl = subscription.id;
|
||||||
|
if ("feed/" === feedUrl.substring(0, 5)) {
|
||||||
|
feedUrl = feedUrl.substring(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
feeds.add(feedUrl);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
}])
|
}])
|
||||||
;
|
;
|
10
lib/angular/angular-bootstrap-prettify.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* @license AngularJS v1.1.1
|
* @license AngularJS v1.1.2
|
||||||
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
* License: MIT
|
* License: MIT
|
||||||
*/
|
*/
|
||||||
|
@ -10,10 +10,10 @@ var directive = {};
|
||||||
var service = { value: {} };
|
var service = { value: {} };
|
||||||
|
|
||||||
var DEPENDENCIES = {
|
var DEPENDENCIES = {
|
||||||
'angular.js': 'http://code.angularjs.org/angular-' + angular.version.full + '.min.js',
|
'angular.js': 'http://code.angularjs.org/' + angular.version.full + 'angular.min.js',
|
||||||
'angular-resource.js': 'http://code.angularjs.org/angular-resource-' + angular.version.full + '.min.js',
|
'angular-resource.js': 'http://code.angularjs.org/' + angular.version.full + 'angular-resource.min.js',
|
||||||
'angular-sanitize.js': 'http://code.angularjs.org/angular-sanitize-' + angular.version.full + '.min.js',
|
'angular-sanitize.js': 'http://code.angularjs.org/' + angular.version.full + 'angular-sanitize.min.js',
|
||||||
'angular-cookies.js': 'http://code.angularjs.org/angular-cookies-' + angular.version.full + '.min.js'
|
'angular-cookies.js': 'http://code.angularjs.org/' + angular.version.full + 'angular-cookies.min.js'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
/*
|
/*
|
||||||
AngularJS v1.1.1
|
AngularJS v1.1.2
|
||||||
(c) 2010-2012 Google, Inc. http://angularjs.org
|
(c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
License: MIT
|
License: MIT
|
||||||
*/
|
*/
|
||||||
(function(q,k,I){'use strict';function G(c){return c.replace(/\&/g,"&").replace(/\</g,"<").replace(/\>/g,">").replace(/"/g,""")}function D(c,e){var b=k.element("<pre>"+e+"</pre>");c.html("");c.append(b.contents());return c}var t={},w={value:{}},L={"angular.js":"http://code.angularjs.org/angular-"+k.version.full+".min.js","angular-resource.js":"http://code.angularjs.org/angular-resource-"+k.version.full+".min.js","angular-sanitize.js":"http://code.angularjs.org/angular-sanitize-"+k.version.full+
|
(function(q,k,I){'use strict';function G(c){return c.replace(/\&/g,"&").replace(/\</g,"<").replace(/\>/g,">").replace(/"/g,""")}function D(c,e){var b=k.element("<pre>"+e+"</pre>");c.html("");c.append(b.contents());return c}var t={},w={value:{}},L={"angular.js":"http://code.angularjs.org/"+k.version.full+"angular.min.js","angular-resource.js":"http://code.angularjs.org/"+k.version.full+"angular-resource.min.js","angular-sanitize.js":"http://code.angularjs.org/"+k.version.full+"angular-sanitize.min.js",
|
||||||
".min.js","angular-cookies.js":"http://code.angularjs.org/angular-cookies-"+k.version.full+".min.js"};t.jsFiddle=function(c,e,b){return{terminal:!0,link:function(x,a,r){function d(a,b){return'<input type="hidden" name="'+a+'" value="'+e(b)+'">'}var H={html:"",css:"",js:""};k.forEach(r.jsFiddle.split(" "),function(a,b){var d=a.split(".")[1];H[d]+=d=="html"?b==0?"<div ng-app"+(r.module?'="'+r.module+'"':"")+">\n"+c(a,2):"\n\n\n <\!-- CACHE FILE: "+a+' --\>\n <script type="text/ng-template" id="'+
|
"angular-cookies.js":"http://code.angularjs.org/"+k.version.full+"angular-cookies.min.js"};t.jsFiddle=function(c,e,b){return{terminal:!0,link:function(x,a,r){function d(a,b){return'<input type="hidden" name="'+a+'" value="'+e(b)+'">'}var H={html:"",css:"",js:""};k.forEach(r.jsFiddle.split(" "),function(a,b){var d=a.split(".")[1];H[d]+=d=="html"?b==0?"<div ng-app"+(r.module?'="'+r.module+'"':"")+">\n"+c(a,2):"\n\n\n <\!-- CACHE FILE: "+a+' --\>\n <script type="text/ng-template" id="'+a+'">\n'+c(a,
|
||||||
a+'">\n'+c(a,4)+" <\/script>\n":c(a)+"\n"});H.html+="</div>\n";D(a,'<form class="jsfiddle" method="post" action="http://jsfiddle.net/api/post/library/pure/" target="_blank">'+d("title","AngularJS Example: ")+d("css",'</style> <\!-- Ugly Hack due to jsFiddle issue: http://goo.gl/BUfGZ --\> \n<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">\n'+b.angular+(r.resource?b.resource:"")+"<style>\n"+H.css)+d("html",H.html)+d("js",H.js)+'<button class="btn btn-primary"><i class="icon-white icon-pencil"></i> Edit Me</button></form>')}}};
|
4)+" <\/script>\n":c(a)+"\n"});H.html+="</div>\n";D(a,'<form class="jsfiddle" method="post" action="http://jsfiddle.net/api/post/library/pure/" target="_blank">'+d("title","AngularJS Example: ")+d("css",'</style> <\!-- Ugly Hack due to jsFiddle issue: http://goo.gl/BUfGZ --\> \n<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">\n'+b.angular+(r.resource?b.resource:"")+"<style>\n"+H.css)+d("html",H.html)+d("js",H.js)+'<button class="btn btn-primary"><i class="icon-white icon-pencil"></i> Edit Me</button></form>')}}};
|
||||||
t.code=function(){return{restrict:"E",terminal:!0}};t.prettyprint=["reindentCode",function(c){return{restrict:"C",terminal:!0,compile:function(e){e.html(q.prettyPrintOne(c(e.html()),I,!0))}}}];t.ngSetText=["getEmbeddedTemplate",function(c){return{restrict:"CA",priority:10,compile:function(e,b){D(e,G(c(b.ngSetText)))}}}];t.ngHtmlWrap=["reindentCode","templateMerge",function(c,e){return{compile:function(b,c){var a={head:"",module:"",body:b.text()};k.forEach((c.ngHtmlWrap||"").split(" "),function(b){if(b){var b=
|
t.code=function(){return{restrict:"E",terminal:!0}};t.prettyprint=["reindentCode",function(c){return{restrict:"C",terminal:!0,compile:function(e){e.html(q.prettyPrintOne(c(e.html()),I,!0))}}}];t.ngSetText=["getEmbeddedTemplate",function(c){return{restrict:"CA",priority:10,compile:function(e,b){D(e,G(c(b.ngSetText)))}}}];t.ngHtmlWrap=["reindentCode","templateMerge",function(c,e){return{compile:function(b,c){var a={head:"",module:"",body:b.text()};k.forEach((c.ngHtmlWrap||"").split(" "),function(b){if(b){var b=
|
||||||
L[b]||b,d=b.split(/\./).pop();d=="css"?a.head+='<link rel="stylesheet" href="'+b+'" type="text/css">\n':d=="js"?a.head+='<script src="'+b+'"><\/script>\n':a.module='="'+b+'"'}});D(b,G(e("<!doctype html>\n<html ng-app{{module}}>\n <head>\n{{head:4}} </head>\n <body>\n{{body:4}} </body>\n</html>",a)))}}}];t.ngSetHtml=["getEmbeddedTemplate",function(c){return{restrict:"CA",priority:10,compile:function(e,b){D(e,c(b.ngSetHtml))}}}];t.ngEvalJavascript=["getEmbeddedTemplate",function(c){return{compile:function(e,
|
L[b]||b,d=b.split(/\./).pop();d=="css"?a.head+='<link rel="stylesheet" href="'+b+'" type="text/css">\n':d=="js"?a.head+='<script src="'+b+'"><\/script>\n':a.module='="'+b+'"'}});D(b,G(e("<!doctype html>\n<html ng-app{{module}}>\n <head>\n{{head:4}} </head>\n <body>\n{{body:4}} </body>\n</html>",a)))}}}];t.ngSetHtml=["getEmbeddedTemplate",function(c){return{restrict:"CA",priority:10,compile:function(e,b){D(e,c(b.ngSetHtml))}}}];t.ngEvalJavascript=["getEmbeddedTemplate",function(c){return{compile:function(e,
|
||||||
b){var x=c(b.ngEvalJavascript);try{q.execScript?q.execScript(x||'""'):q.eval(x)}catch(a){q.console?q.console.log(x,"\n",a):q.alert(a)}}}}];t.ngEmbedApp=["$templateCache","$browser","$rootScope","$location",function(c,e,b,x){return{terminal:!0,link:function(a,r,d){a=[];a.push(["$provide",function(a){a.value("$templateCache",c);a.value("$anchorScroll",k.noop);a.value("$browser",e);a.provider("$location",function(){this.$get=["$rootScope",function(a){b.$on("$locationChangeSuccess",function(b,d,c){a.$broadcast("$locationChangeSuccess",
|
b){var x=c(b.ngEvalJavascript);try{q.execScript?q.execScript(x||'""'):q.eval(x)}catch(a){q.console?q.console.log(x,"\n",a):q.alert(a)}}}}];t.ngEmbedApp=["$templateCache","$browser","$rootScope","$location",function(c,e,b,x){return{terminal:!0,link:function(a,r,d){a=[];a.push(["$provide",function(a){a.value("$templateCache",c);a.value("$anchorScroll",k.noop);a.value("$browser",e);a.provider("$location",function(){this.$get=["$rootScope",function(a){b.$on("$locationChangeSuccess",function(b,d,c){a.$broadcast("$locationChangeSuccess",
|
||||||
|
|
2
lib/angular/angular-bootstrap.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* @license AngularJS v1.1.1
|
* @license AngularJS v1.1.2
|
||||||
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
* License: MIT
|
* License: MIT
|
||||||
*/
|
*/
|
||||||
|
|
2
lib/angular/angular-bootstrap.min.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
AngularJS v1.1.1
|
AngularJS v1.1.2
|
||||||
(c) 2010-2012 Google, Inc. http://angularjs.org
|
(c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
License: MIT
|
License: MIT
|
||||||
*/
|
*/
|
||||||
|
|
2
lib/angular/angular-cookies.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* @license AngularJS v1.1.1
|
* @license AngularJS v1.1.2
|
||||||
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
* License: MIT
|
* License: MIT
|
||||||
*/
|
*/
|
||||||
|
|
2
lib/angular/angular-cookies.min.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
AngularJS v1.1.1
|
AngularJS v1.1.2
|
||||||
(c) 2010-2012 Google, Inc. http://angularjs.org
|
(c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
License: MIT
|
License: MIT
|
||||||
*/
|
*/
|
||||||
|
|
2
lib/angular/angular-loader.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* @license AngularJS v1.1.1
|
* @license AngularJS v1.1.2
|
||||||
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
* License: MIT
|
* License: MIT
|
||||||
*/
|
*/
|
||||||
|
|
2
lib/angular/angular-loader.min.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
AngularJS v1.1.1
|
AngularJS v1.1.2
|
||||||
(c) 2010-2012 Google, Inc. http://angularjs.org
|
(c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
License: MIT
|
License: MIT
|
||||||
*/
|
*/
|
||||||
|
|
1741
lib/angular/angular-mocks.js
vendored
159
lib/angular/angular-resource.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* @license AngularJS v1.1.1
|
* @license AngularJS v1.1.2
|
||||||
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
* License: MIT
|
* License: MIT
|
||||||
*/
|
*/
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
* @description
|
* @description
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc object
|
* @ngdoc object
|
||||||
* @name ngResource.$resource
|
* @name ngResource.$resource
|
||||||
* @requires $http
|
* @requires $http
|
||||||
|
@ -25,10 +25,13 @@
|
||||||
* the need to interact with the low level {@link ng.$http $http} service.
|
* the need to interact with the low level {@link ng.$http $http} service.
|
||||||
*
|
*
|
||||||
* @param {string} url A parameterized URL template with parameters prefixed by `:` as in
|
* @param {string} url A parameterized URL template with parameters prefixed by `:` as in
|
||||||
* `/user/:username`.
|
* `/user/:username`. If you are using a URL with a port number (e.g.
|
||||||
|
* `http://example.com:8080/api`), you'll need to escape the colon character before the port
|
||||||
|
* number, like this: `$resource('http://example.com\\:8080/api')`.
|
||||||
*
|
*
|
||||||
* @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in
|
* @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in
|
||||||
* `actions` methods.
|
* `actions` methods. If any of the parameter value is a function, it will be executed every time
|
||||||
|
* when a param value needs to be obtained for a request (unless the param was overriden).
|
||||||
*
|
*
|
||||||
* Each key value in the parameter object is first bound to url template if present and then any
|
* Each key value in the parameter object is first bound to url template if present and then any
|
||||||
* excess keys are appended to the url search query after the `?`.
|
* excess keys are appended to the url search query after the `?`.
|
||||||
|
@ -40,22 +43,40 @@
|
||||||
* the data object (useful for non-GET operations).
|
* the data object (useful for non-GET operations).
|
||||||
*
|
*
|
||||||
* @param {Object.<Object>=} actions Hash with declaration of custom action that should extend the
|
* @param {Object.<Object>=} actions Hash with declaration of custom action that should extend the
|
||||||
* default set of resource actions. The declaration should be created in the following format:
|
* default set of resource actions. The declaration should be created in the format of {@link
|
||||||
|
* ng.$http#Parameters $http.config}:
|
||||||
*
|
*
|
||||||
* {action1: {method:?, params:?, isArray:?, headers:?},
|
* {action1: {method:?, params:?, isArray:?, headers:?, ...},
|
||||||
* action2: {method:?, params:?, isArray:?, headers:?},
|
* action2: {method:?, params:?, isArray:?, headers:?, ...},
|
||||||
* ...}
|
* ...}
|
||||||
*
|
*
|
||||||
* Where:
|
* Where:
|
||||||
*
|
*
|
||||||
* - `action` – {string} – The name of action. This name becomes the name of the method on your
|
* - **`action`** – {string} – The name of action. This name becomes the name of the method on your
|
||||||
* resource object.
|
* resource object.
|
||||||
* - `method` – {string} – HTTP request method. Valid methods are: `GET`, `POST`, `PUT`, `DELETE`,
|
* - **`method`** – {string} – HTTP request method. Valid methods are: `GET`, `POST`, `PUT`, `DELETE`,
|
||||||
* and `JSONP`
|
* and `JSONP`.
|
||||||
* - `params` – {object=} – Optional set of pre-bound parameters for this action.
|
* - **`params`** – {Object=} – Optional set of pre-bound parameters for this action. If any of the
|
||||||
* - isArray – {boolean=} – If true then the returned object for this action is an array, see
|
* parameter value is a function, it will be executed every time when a param value needs to be
|
||||||
|
* obtained for a request (unless the param was overriden).
|
||||||
|
* - **`isArray`** – {boolean=} – If true then the returned object for this action is an array, see
|
||||||
* `returns` section.
|
* `returns` section.
|
||||||
* - `headers` – {object=} – Optional HTTP headers to send
|
* - **`transformRequest`** – `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` –
|
||||||
|
* transform function or an array of such functions. The transform function takes the http
|
||||||
|
* request body and headers and returns its transformed (typically serialized) version.
|
||||||
|
* - **`transformResponse`** – `{function(data, headersGetter)|Array.<function(data, headersGetter)>}` –
|
||||||
|
* transform function or an array of such functions. The transform function takes the http
|
||||||
|
* response body and headers and returns its transformed (typically deserialized) version.
|
||||||
|
* - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the
|
||||||
|
* GET request, otherwise if a cache instance built with
|
||||||
|
* {@link ng.$cacheFactory $cacheFactory}, this cache will be used for
|
||||||
|
* caching.
|
||||||
|
* - **`timeout`** – `{number}` – timeout in milliseconds.
|
||||||
|
* - **`withCredentials`** - `{boolean}` - whether to to set the `withCredentials` flag on the
|
||||||
|
* XHR object. See {@link https://developer.mozilla.org/en/http_access_control#section_5
|
||||||
|
* requests with credentials} for more information.
|
||||||
|
* - **`responseType`** - `{string}` - see {@link
|
||||||
|
* https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType requestType}.
|
||||||
*
|
*
|
||||||
* @returns {Object} A resource "class" object with methods for the default set of resource actions
|
* @returns {Object} A resource "class" object with methods for the default set of resource actions
|
||||||
* optionally extended with custom `actions`. The default set contains these actions:
|
* optionally extended with custom `actions`. The default set contains these actions:
|
||||||
|
@ -231,46 +252,46 @@ angular.module('ngResource', ['ng']).
|
||||||
return $parse(path)(obj);
|
return $parse(path)(obj);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We need our custom mehtod because encodeURIComponent is too aggressive and doesn't follow
|
* We need our custom method because encodeURIComponent is too aggressive and doesn't follow
|
||||||
* http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path
|
* http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path
|
||||||
* segments:
|
* segments:
|
||||||
* segment = *pchar
|
* segment = *pchar
|
||||||
* pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
|
* pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
|
||||||
* pct-encoded = "%" HEXDIG HEXDIG
|
* pct-encoded = "%" HEXDIG HEXDIG
|
||||||
* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
||||||
* sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
|
* sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
|
||||||
* / "*" / "+" / "," / ";" / "="
|
* / "*" / "+" / "," / ";" / "="
|
||||||
*/
|
*/
|
||||||
function encodeUriSegment(val) {
|
function encodeUriSegment(val) {
|
||||||
return encodeUriQuery(val, true).
|
return encodeUriQuery(val, true).
|
||||||
replace(/%26/gi, '&').
|
replace(/%26/gi, '&').
|
||||||
replace(/%3D/gi, '=').
|
replace(/%3D/gi, '=').
|
||||||
replace(/%2B/gi, '+');
|
replace(/%2B/gi, '+');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is intended for encoding *key* or *value* parts of query component. We need a custom
|
* This method is intended for encoding *key* or *value* parts of query component. We need a custom
|
||||||
* method becuase encodeURIComponent is too agressive and encodes stuff that doesn't have to be
|
* method becuase encodeURIComponent is too agressive and encodes stuff that doesn't have to be
|
||||||
* encoded per http://tools.ietf.org/html/rfc3986:
|
* encoded per http://tools.ietf.org/html/rfc3986:
|
||||||
* query = *( pchar / "/" / "?" )
|
* query = *( pchar / "/" / "?" )
|
||||||
* pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
|
* pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
|
||||||
* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
||||||
* pct-encoded = "%" HEXDIG HEXDIG
|
* pct-encoded = "%" HEXDIG HEXDIG
|
||||||
* sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
|
* sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
|
||||||
* / "*" / "+" / "," / ";" / "="
|
* / "*" / "+" / "," / ";" / "="
|
||||||
*/
|
*/
|
||||||
function encodeUriQuery(val, pctEncodeSpaces) {
|
function encodeUriQuery(val, pctEncodeSpaces) {
|
||||||
return encodeURIComponent(val).
|
return encodeURIComponent(val).
|
||||||
replace(/%40/gi, '@').
|
replace(/%40/gi, '@').
|
||||||
replace(/%3A/gi, ':').
|
replace(/%3A/gi, ':').
|
||||||
replace(/%24/g, '$').
|
replace(/%24/g, '$').
|
||||||
replace(/%2C/gi, ',').
|
replace(/%2C/gi, ',').
|
||||||
replace((pctEncodeSpaces ? null : /%20/g), '+');
|
replace((pctEncodeSpaces ? null : /%20/g), '+');
|
||||||
}
|
}
|
||||||
|
|
||||||
function Route(template, defaults) {
|
function Route(template, defaults) {
|
||||||
this.template = template = template + '#';
|
this.template = template = template + '#';
|
||||||
this.defaults = defaults || {};
|
this.defaults = defaults || {};
|
||||||
var urlParams = this.urlParams = {};
|
var urlParams = this.urlParams = {};
|
||||||
|
@ -296,7 +317,14 @@ angular.module('ngResource', ['ng']).
|
||||||
encodedVal = encodeUriSegment(val);
|
encodedVal = encodeUriSegment(val);
|
||||||
url = url.replace(new RegExp(":" + urlParam + "(\\W)", "g"), encodedVal + "$1");
|
url = url.replace(new RegExp(":" + urlParam + "(\\W)", "g"), encodedVal + "$1");
|
||||||
} else {
|
} else {
|
||||||
url = url.replace(new RegExp("/?:" + urlParam + "(\\W)", "g"), '$1');
|
url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W)", "g"), function(match,
|
||||||
|
leadingSlashes, tail) {
|
||||||
|
if (tail.charAt(0) == '/') {
|
||||||
|
return tail;
|
||||||
|
} else {
|
||||||
|
return leadingSlashes + tail;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
url = url.replace(/\/?#$/, '');
|
url = url.replace(/\/?#$/, '');
|
||||||
|
@ -322,6 +350,7 @@ angular.module('ngResource', ['ng']).
|
||||||
var ids = {};
|
var ids = {};
|
||||||
actionParams = extend({}, paramDefaults, actionParams);
|
actionParams = extend({}, paramDefaults, actionParams);
|
||||||
forEach(actionParams, function(value, key){
|
forEach(actionParams, function(value, key){
|
||||||
|
if (isFunction(value)) { value = value(); }
|
||||||
ids[key] = value.charAt && value.charAt(0) == '@' ? getter(data, value.substr(1)) : value;
|
ids[key] = value.charAt && value.charAt(0) == '@' ? getter(data, value.substr(1)) : value;
|
||||||
});
|
});
|
||||||
return ids;
|
return ids;
|
||||||
|
@ -332,6 +361,7 @@ angular.module('ngResource', ['ng']).
|
||||||
}
|
}
|
||||||
|
|
||||||
forEach(actions, function(action, name) {
|
forEach(actions, function(action, name) {
|
||||||
|
action.method = angular.uppercase(action.method);
|
||||||
var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH';
|
var hasBody = action.method == 'POST' || action.method == 'PUT' || action.method == 'PATCH';
|
||||||
Resource[name] = function(a1, a2, a3, a4) {
|
Resource[name] = function(a1, a2, a3, a4) {
|
||||||
var params = {};
|
var params = {};
|
||||||
|
@ -373,12 +403,17 @@ angular.module('ngResource', ['ng']).
|
||||||
}
|
}
|
||||||
|
|
||||||
var value = this instanceof Resource ? this : (action.isArray ? [] : new Resource(data));
|
var value = this instanceof Resource ? this : (action.isArray ? [] : new Resource(data));
|
||||||
$http({
|
var httpConfig = {};
|
||||||
method: action.method,
|
|
||||||
url: route.url(extend({}, extractParams(data, action.params || {}), params)),
|
forEach(action, function(value, key) {
|
||||||
data: data,
|
if (key != 'params' && key != 'isArray' ) {
|
||||||
headers: extend({}, action.headers || {})
|
httpConfig[key] = copy(value);
|
||||||
}).then(function(response) {
|
}
|
||||||
|
});
|
||||||
|
httpConfig.data = data;
|
||||||
|
httpConfig.url = route.url(extend({}, extractParams(data, action.params || {}), params))
|
||||||
|
|
||||||
|
$http(httpConfig).then(function(response) {
|
||||||
var data = response.data;
|
var data = response.data;
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
|
@ -398,11 +433,6 @@ angular.module('ngResource', ['ng']).
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
Resource.bind = function(additionalParamDefaults){
|
|
||||||
return ResourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
Resource.prototype['$' + name] = function(a1, a2, a3) {
|
Resource.prototype['$' + name] = function(a1, a2, a3) {
|
||||||
var params = extractParams(this),
|
var params = extractParams(this),
|
||||||
success = noop,
|
success = noop,
|
||||||
|
@ -428,6 +458,11 @@ angular.module('ngResource', ['ng']).
|
||||||
Resource[name].call(this, params, data, success, error);
|
Resource[name].call(this, params, data, success, error);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Resource.bind = function(additionalParamDefaults){
|
||||||
|
return ResourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions);
|
||||||
|
};
|
||||||
|
|
||||||
return Resource;
|
return Resource;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
lib/angular/angular-resource.min.js
vendored
|
@ -1,10 +1,10 @@
|
||||||
/*
|
/*
|
||||||
AngularJS v1.1.1
|
AngularJS v1.1.2
|
||||||
(c) 2010-2012 Google, Inc. http://angularjs.org
|
(c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
License: MIT
|
License: MIT
|
||||||
*/
|
*/
|
||||||
(function(A,e,w){'use strict';e.module("ngResource",["ng"]).factory("$resource",["$http","$parse",function(x,y){function k(a,f){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(f?null:/%20/g,"+")}function t(a,f){this.template=a+="#";this.defaults=f||{};var b=this.urlParams={};l(a.split(/\W/),function(d){d&&a.match(RegExp("[^\\\\]:"+d+"\\W"))&&(b[d]=!0)});this.template=a.replace(/\\:/g,":")}function u(a,f,b){function d(b,c){var a=
|
(function(D,d,y){'use strict';d.module("ngResource",["ng"]).factory("$resource",["$http","$parse",function(z,A){function u(a,e){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(e?null:/%20/g,"+")}function w(a,e){this.template=a+="#";this.defaults=e||{};var b=this.urlParams={};h(a.split(/\W/),function(f){f&&a.match(RegExp("[^\\\\]:"+f+"\\W"))&&(b[f]=!0)});this.template=a.replace(/\\:/g,":")}function x(a,e,b){function f(n,b){var a=
|
||||||
{},c=i({},f,c);l(c,function(o,c){var d;o.charAt&&o.charAt(0)=="@"?(d=o.substr(1),d=y(d)(b)):d=o;a[c]=d});return a}function h(a){v(a||{},this)}var e=new t(a),b=i({},z,b);l(b,function(g,c){var k=g.method=="POST"||g.method=="PUT"||g.method=="PATCH";h[c]=function(a,b,c,f){var s={},j,m=p,q=null;switch(arguments.length){case 4:q=f,m=c;case 3:case 2:if(r(b)){if(r(a)){m=a;q=b;break}m=b;q=c}else{s=a;j=b;m=c;break}case 1:r(a)?m=a:k?j=a:s=a;break;case 0:break;default:throw"Expected between 0-4 arguments [params, data, success, error], got "+
|
{},b=q({},e,b);h(b,function(k,b){o(k)&&(k=k());var c;k.charAt&&k.charAt(0)=="@"?(c=k.substr(1),c=A(c)(n)):c=k;a[b]=c});return a}function g(b){v(b||{},this)}var l=new w(a),b=q({},B,b);h(b,function(b,a){b.method=d.uppercase(b.method);var e=b.method=="POST"||b.method=="PUT"||b.method=="PATCH";g[a]=function(a,c,d,C){var j={},i,m=r,s=null;switch(arguments.length){case 4:s=C,m=d;case 3:case 2:if(o(c)){if(o(a)){m=a;s=c;break}m=c;s=d}else{j=a;i=c;m=d;break}case 1:o(a)?m=a:e?i=a:j=a;break;case 0:break;default:throw"Expected between 0-4 arguments [params, data, success, error], got "+
|
||||||
arguments.length+" arguments.";}var n=this instanceof h?this:g.isArray?[]:new h(j);x({method:g.method,url:e.url(i({},d(j,g.params||{}),s)),data:j,headers:i({},g.headers||{})}).then(function(a){var b=a.data;if(b)g.isArray?(n.length=0,l(b,function(a){n.push(new h(a))})):v(b,n);(m||p)(n,a.headers)},q);return n};h.bind=function(c){return u(a,i({},f,c),b)};h.prototype["$"+c]=function(a,b,f){var g=d(this),e=p,j;switch(arguments.length){case 3:g=a;e=b;j=f;break;case 2:case 1:r(a)?(e=a,j=b):(g=a,e=b||p);
|
arguments.length+" arguments.";}var p=this instanceof g?this:b.isArray?[]:new g(i),t={};h(b,function(b,a){a!="params"&&a!="isArray"&&(t[a]=v(b))});t.data=i;t.url=l.url(q({},f(i,b.params||{}),j));z(t).then(function(a){var c=a.data;if(c)b.isArray?(p.length=0,h(c,function(a){p.push(new g(a))})):v(c,p);(m||r)(p,a.headers)},s);return p};g.prototype["$"+a]=function(b,d,h){var n=f(this),j=r,i;switch(arguments.length){case 3:n=b;j=d;i=h;break;case 2:case 1:o(b)?(j=b,i=d):(n=b,j=d||r);case 0:break;default:throw"Expected between 1-3 arguments [params, success, error], got "+
|
||||||
case 0:break;default:throw"Expected between 1-3 arguments [params, success, error], got "+arguments.length+" arguments.";}h[c].call(this,g,k?this:w,e,j)}});return h}var z={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},p=e.noop,l=e.forEach,i=e.extend,v=e.copy,r=e.isFunction;t.prototype={url:function(a){var f=this,b=this.template,d,h,a=a||{};l(this.urlParams,function(g,c){d=a.hasOwnProperty(c)?a[c]:f.defaults[c];e.isDefined(d)&&
|
arguments.length+" arguments.";}g[a].call(this,n,e?this:y,j,i)}});g.bind=function(d){return x(a,q({},e,d),b)};return g}var B={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},r=d.noop,h=d.forEach,q=d.extend,v=d.copy,o=d.isFunction;w.prototype={url:function(a){var e=this,b=this.template,f,g,a=a||{};h(this.urlParams,function(h,c){f=a.hasOwnProperty(c)?a[c]:e.defaults[c];d.isDefined(f)&&f!==null?(g=u(f,!0).replace(/%26/gi,"&").replace(/%3D/gi,
|
||||||
d!==null?(h=k(d,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+"),b=b.replace(RegExp(":"+c+"(\\W)","g"),h+"$1")):b=b.replace(RegExp("/?:"+c+"(\\W)","g"),"$1")});var b=b.replace(/\/?#$/,""),i=[];l(a,function(a,b){f.urlParams[b]||i.push(k(b)+"="+k(a))});i.sort();b=b.replace(/\/*$/,"");return b+(i.length?"?"+i.join("&"):"")}};return u}])})(window,window.angular);
|
"=").replace(/%2B/gi,"+"),b=b.replace(RegExp(":"+c+"(\\W)","g"),g+"$1")):b=b.replace(RegExp("(/?):"+c+"(\\W)","g"),function(b,a,c){return c.charAt(0)=="/"?c:a+c})});var b=b.replace(/\/?#$/,""),l=[];h(a,function(b,a){e.urlParams[a]||l.push(u(a)+"="+u(b))});l.sort();b=b.replace(/\/*$/,"");return b+(l.length?"?"+l.join("&"):"")}};return x}])})(window,window.angular);
|
||||||
|
|
2
lib/angular/angular-sanitize.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* @license AngularJS v1.1.1
|
* @license AngularJS v1.1.2
|
||||||
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
* License: MIT
|
* License: MIT
|
||||||
*/
|
*/
|
||||||
|
|
2
lib/angular/angular-sanitize.min.js
vendored
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
AngularJS v1.1.1
|
AngularJS v1.1.2
|
||||||
(c) 2010-2012 Google, Inc. http://angularjs.org
|
(c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
License: MIT
|
License: MIT
|
||||||
*/
|
*/
|
||||||
|
|
618
lib/angular/angular.js
vendored
19
lib/angular/docs/.htaccess
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
## OFFLINE SUPPORT ##
|
||||||
|
|
||||||
|
# These rules tell apache to check if there is a cookie called "offline", with value set to the
|
||||||
|
# current angular version. If this rule matches the appcache-offline.manifest will be served for
|
||||||
|
# requests to appcache.manifest
|
||||||
|
#
|
||||||
|
# This file must be processed by Rake in order to replace %ANGULAR_VERSION% with the actual version.
|
||||||
|
|
||||||
|
Options -Indexes
|
||||||
|
RewriteEngine on
|
||||||
|
RewriteCond %{HTTP_COOKIE} ng-offline=1.1.2
|
||||||
|
RewriteRule appcache.manifest appcache-offline.manifest
|
||||||
|
|
||||||
|
## Redirect to the latest manifest
|
||||||
|
RewriteCond %{HTTP_HOST} ^docs-next\.angularjs\.org$
|
||||||
|
RewriteRule appcache.manifest http://code.angularjs.org/next/docs/appcache.manifest [R=301]
|
||||||
|
|
||||||
|
## HTML5 URL Support ##
|
||||||
|
RewriteRule ^(guide|api|cookbook|misc|tutorial)(/.*)?$ index.html
|
279
lib/angular/docs/appcache-offline.manifest
Normal file
|
@ -0,0 +1,279 @@
|
||||||
|
CACHE MANIFEST
|
||||||
|
# 2013-01-23T20:01:19.974Z
|
||||||
|
|
||||||
|
# cache all of these
|
||||||
|
CACHE:
|
||||||
|
../angular.min.js
|
||||||
|
css/bootstrap.min.css
|
||||||
|
css/doc_widgets.css
|
||||||
|
css/docs.css
|
||||||
|
css/font-awesome.css
|
||||||
|
docs-keywords.js
|
||||||
|
favicon.ico
|
||||||
|
font/fontawesome-webfont.eot
|
||||||
|
font/fontawesome-webfont.svg
|
||||||
|
font/fontawesome-webfont.svgz
|
||||||
|
font/fontawesome-webfont.ttf
|
||||||
|
font/fontawesome-webfont.woff
|
||||||
|
img/angular_parts.png
|
||||||
|
img/AngularJS-small.png
|
||||||
|
img/bullet.png
|
||||||
|
img/form_data_flow.png
|
||||||
|
img/glyphicons-halflings-white.png
|
||||||
|
img/glyphicons-halflings.png
|
||||||
|
img/guide/about_model_final.png
|
||||||
|
img/guide/about_view_final.png
|
||||||
|
img/guide/concepts-controller.png
|
||||||
|
img/guide/concepts-directive.png
|
||||||
|
img/guide/concepts-model.png
|
||||||
|
img/guide/concepts-module-injector.png
|
||||||
|
img/guide/concepts-runtime.png
|
||||||
|
img/guide/concepts-scope.png
|
||||||
|
img/guide/concepts-startup.png
|
||||||
|
img/guide/concepts-view.png
|
||||||
|
img/guide/di_sequence_final.png
|
||||||
|
img/guide/dom_scope_final.png
|
||||||
|
img/guide/hashbang_vs_regular_url.jpg
|
||||||
|
img/guide/scenario_runner.png
|
||||||
|
img/guide/simple_scope_final.png
|
||||||
|
img/helloworld.png
|
||||||
|
img/helloworld_2way.png
|
||||||
|
img/One_Way_Data_Binding.png
|
||||||
|
img/tutorial/catalog_screen.png
|
||||||
|
img/tutorial/tutorial_00.png
|
||||||
|
img/tutorial/tutorial_00_final.png
|
||||||
|
img/tutorial/tutorial_02.png
|
||||||
|
img/tutorial/tutorial_03.png
|
||||||
|
img/tutorial/tutorial_04.png
|
||||||
|
img/tutorial/tutorial_07_final.png
|
||||||
|
img/tutorial/tutorial_08-09_final.png
|
||||||
|
img/tutorial/tutorial_10-11_final.png
|
||||||
|
img/tutorial/xhr_service_final.png
|
||||||
|
img/Two_Way_Data_Binding.png
|
||||||
|
index-debug.html
|
||||||
|
index-jq-debug.html
|
||||||
|
index-jq-nocache.html
|
||||||
|
index-jq.html
|
||||||
|
index-nocache.html
|
||||||
|
index.html
|
||||||
|
js/docs.js
|
||||||
|
js/jquery.js
|
||||||
|
js/jquery.min.js
|
||||||
|
partials/api/angular.bind.html
|
||||||
|
partials/api/angular.bootstrap.html
|
||||||
|
partials/api/angular.copy.html
|
||||||
|
partials/api/angular.element.html
|
||||||
|
partials/api/angular.equals.html
|
||||||
|
partials/api/angular.extend.html
|
||||||
|
partials/api/angular.forEach.html
|
||||||
|
partials/api/angular.fromJson.html
|
||||||
|
partials/api/angular.identity.html
|
||||||
|
partials/api/angular.IModule.html
|
||||||
|
partials/api/angular.injector.html
|
||||||
|
partials/api/angular.isArray.html
|
||||||
|
partials/api/angular.isDate.html
|
||||||
|
partials/api/angular.isDefined.html
|
||||||
|
partials/api/angular.isElement.html
|
||||||
|
partials/api/angular.isFunction.html
|
||||||
|
partials/api/angular.isNumber.html
|
||||||
|
partials/api/angular.isObject.html
|
||||||
|
partials/api/angular.isString.html
|
||||||
|
partials/api/angular.isUndefined.html
|
||||||
|
partials/api/angular.lowercase.html
|
||||||
|
partials/api/angular.mock.dump.html
|
||||||
|
partials/api/angular.mock.html
|
||||||
|
partials/api/angular.mock.inject.html
|
||||||
|
partials/api/angular.mock.module.html
|
||||||
|
partials/api/angular.mock.TzDate.html
|
||||||
|
partials/api/angular.module.html
|
||||||
|
partials/api/angular.noop.html
|
||||||
|
partials/api/angular.toJson.html
|
||||||
|
partials/api/angular.uppercase.html
|
||||||
|
partials/api/angular.version.html
|
||||||
|
partials/api/AUTO.$injector.html
|
||||||
|
partials/api/AUTO.$provide.html
|
||||||
|
partials/api/AUTO.html
|
||||||
|
partials/api/index.html
|
||||||
|
partials/api/ng.$anchorScroll.html
|
||||||
|
partials/api/ng.$cacheFactory.html
|
||||||
|
partials/api/ng.$compile.directive.Attributes.html
|
||||||
|
partials/api/ng.$compile.html
|
||||||
|
partials/api/ng.$compileProvider.html
|
||||||
|
partials/api/ng.$controller.html
|
||||||
|
partials/api/ng.$controllerProvider.html
|
||||||
|
partials/api/ng.$document.html
|
||||||
|
partials/api/ng.$exceptionHandler.html
|
||||||
|
partials/api/ng.$filter.html
|
||||||
|
partials/api/ng.$filterProvider.html
|
||||||
|
partials/api/ng.$http.html
|
||||||
|
partials/api/ng.$httpBackend.html
|
||||||
|
partials/api/ng.$interpolate.html
|
||||||
|
partials/api/ng.$interpolateProvider.html
|
||||||
|
partials/api/ng.$locale.html
|
||||||
|
partials/api/ng.$location.html
|
||||||
|
partials/api/ng.$locationProvider.html
|
||||||
|
partials/api/ng.$log.html
|
||||||
|
partials/api/ng.$logProvider.html
|
||||||
|
partials/api/ng.$parse.html
|
||||||
|
partials/api/ng.$q.html
|
||||||
|
partials/api/ng.$rootElement.html
|
||||||
|
partials/api/ng.$rootScope.html
|
||||||
|
partials/api/ng.$rootScope.Scope.html
|
||||||
|
partials/api/ng.$rootScopeProvider.html
|
||||||
|
partials/api/ng.$route.html
|
||||||
|
partials/api/ng.$routeParams.html
|
||||||
|
partials/api/ng.$routeProvider.html
|
||||||
|
partials/api/ng.$templateCache.html
|
||||||
|
partials/api/ng.$timeout.html
|
||||||
|
partials/api/ng.$window.html
|
||||||
|
partials/api/ng.directive:a.html
|
||||||
|
partials/api/ng.directive:form.FormController.html
|
||||||
|
partials/api/ng.directive:form.html
|
||||||
|
partials/api/ng.directive:input.checkbox.html
|
||||||
|
partials/api/ng.directive:input.email.html
|
||||||
|
partials/api/ng.directive:input.html
|
||||||
|
partials/api/ng.directive:input.number.html
|
||||||
|
partials/api/ng.directive:input.radio.html
|
||||||
|
partials/api/ng.directive:input.text.html
|
||||||
|
partials/api/ng.directive:input.url.html
|
||||||
|
partials/api/ng.directive:ngApp.html
|
||||||
|
partials/api/ng.directive:ngBind.html
|
||||||
|
partials/api/ng.directive:ngBindHtmlUnsafe.html
|
||||||
|
partials/api/ng.directive:ngBindTemplate.html
|
||||||
|
partials/api/ng.directive:ngChange.html
|
||||||
|
partials/api/ng.directive:ngChecked.html
|
||||||
|
partials/api/ng.directive:ngClass.html
|
||||||
|
partials/api/ng.directive:ngClassEven.html
|
||||||
|
partials/api/ng.directive:ngClassOdd.html
|
||||||
|
partials/api/ng.directive:ngClick.html
|
||||||
|
partials/api/ng.directive:ngCloak.html
|
||||||
|
partials/api/ng.directive:ngController.html
|
||||||
|
partials/api/ng.directive:ngCsp.html
|
||||||
|
partials/api/ng.directive:ngDblclick.html
|
||||||
|
partials/api/ng.directive:ngDisabled.html
|
||||||
|
partials/api/ng.directive:ngForm.html
|
||||||
|
partials/api/ng.directive:ngHide.html
|
||||||
|
partials/api/ng.directive:ngHref.html
|
||||||
|
partials/api/ng.directive:ngInclude.html
|
||||||
|
partials/api/ng.directive:ngInit.html
|
||||||
|
partials/api/ng.directive:ngKeydown.html
|
||||||
|
partials/api/ng.directive:ngKeyup.html
|
||||||
|
partials/api/ng.directive:ngList.html
|
||||||
|
partials/api/ng.directive:ngModel.html
|
||||||
|
partials/api/ng.directive:ngModel.NgModelController.html
|
||||||
|
partials/api/ng.directive:ngMousedown.html
|
||||||
|
partials/api/ng.directive:ngMouseenter.html
|
||||||
|
partials/api/ng.directive:ngMouseleave.html
|
||||||
|
partials/api/ng.directive:ngMousemove.html
|
||||||
|
partials/api/ng.directive:ngMouseover.html
|
||||||
|
partials/api/ng.directive:ngMouseup.html
|
||||||
|
partials/api/ng.directive:ngMultiple.html
|
||||||
|
partials/api/ng.directive:ngNonBindable.html
|
||||||
|
partials/api/ng.directive:ngOpen.html
|
||||||
|
partials/api/ng.directive:ngPluralize.html
|
||||||
|
partials/api/ng.directive:ngReadonly.html
|
||||||
|
partials/api/ng.directive:ngRepeat.html
|
||||||
|
partials/api/ng.directive:ngSelected.html
|
||||||
|
partials/api/ng.directive:ngShow.html
|
||||||
|
partials/api/ng.directive:ngSrc.html
|
||||||
|
partials/api/ng.directive:ngStyle.html
|
||||||
|
partials/api/ng.directive:ngSubmit.html
|
||||||
|
partials/api/ng.directive:ngSwitch.html
|
||||||
|
partials/api/ng.directive:ngTransclude.html
|
||||||
|
partials/api/ng.directive:ngView.html
|
||||||
|
partials/api/ng.directive:script.html
|
||||||
|
partials/api/ng.directive:select.html
|
||||||
|
partials/api/ng.directive:textarea.html
|
||||||
|
partials/api/ng.filter:currency.html
|
||||||
|
partials/api/ng.filter:date.html
|
||||||
|
partials/api/ng.filter:filter.html
|
||||||
|
partials/api/ng.filter:json.html
|
||||||
|
partials/api/ng.filter:limitTo.html
|
||||||
|
partials/api/ng.filter:lowercase.html
|
||||||
|
partials/api/ng.filter:number.html
|
||||||
|
partials/api/ng.filter:orderBy.html
|
||||||
|
partials/api/ng.filter:uppercase.html
|
||||||
|
partials/api/ng.html
|
||||||
|
partials/api/ngCookies.$cookies.html
|
||||||
|
partials/api/ngCookies.$cookieStore.html
|
||||||
|
partials/api/ngCookies.html
|
||||||
|
partials/api/ngMock.$exceptionHandler.html
|
||||||
|
partials/api/ngMock.$exceptionHandlerProvider.html
|
||||||
|
partials/api/ngMock.$httpBackend.html
|
||||||
|
partials/api/ngMock.$log.html
|
||||||
|
partials/api/ngMock.$timeout.html
|
||||||
|
partials/api/ngMock.html
|
||||||
|
partials/api/ngMockE2E.$httpBackend.html
|
||||||
|
partials/api/ngMockE2E.html
|
||||||
|
partials/api/ngResource.$resource.html
|
||||||
|
partials/api/ngResource.html
|
||||||
|
partials/api/ngSanitize.$sanitize.html
|
||||||
|
partials/api/ngSanitize.directive:ngBindHtml.html
|
||||||
|
partials/api/ngSanitize.filter:linky.html
|
||||||
|
partials/api/ngSanitize.html
|
||||||
|
partials/cookbook/advancedform.html
|
||||||
|
partials/cookbook/buzz.html
|
||||||
|
partials/cookbook/deeplinking.html
|
||||||
|
partials/cookbook/form.html
|
||||||
|
partials/cookbook/helloworld.html
|
||||||
|
partials/cookbook/index.html
|
||||||
|
partials/cookbook/mvc.html
|
||||||
|
partials/guide/bootstrap.html
|
||||||
|
partials/guide/compiler.html
|
||||||
|
partials/guide/concepts.html
|
||||||
|
partials/guide/dev_guide.e2e-testing.html
|
||||||
|
partials/guide/dev_guide.mvc.html
|
||||||
|
partials/guide/dev_guide.mvc.understanding_controller.html
|
||||||
|
partials/guide/dev_guide.mvc.understanding_model.html
|
||||||
|
partials/guide/dev_guide.mvc.understanding_view.html
|
||||||
|
partials/guide/dev_guide.services.$location.html
|
||||||
|
partials/guide/dev_guide.services.creating_services.html
|
||||||
|
partials/guide/dev_guide.services.html
|
||||||
|
partials/guide/dev_guide.services.injecting_controllers.html
|
||||||
|
partials/guide/dev_guide.services.managing_dependencies.html
|
||||||
|
partials/guide/dev_guide.services.testing_services.html
|
||||||
|
partials/guide/dev_guide.services.understanding_services.html
|
||||||
|
partials/guide/dev_guide.templates.css-styling.html
|
||||||
|
partials/guide/dev_guide.templates.databinding.html
|
||||||
|
partials/guide/dev_guide.templates.filters.creating_filters.html
|
||||||
|
partials/guide/dev_guide.templates.filters.html
|
||||||
|
partials/guide/dev_guide.templates.filters.using_filters.html
|
||||||
|
partials/guide/dev_guide.templates.html
|
||||||
|
partials/guide/dev_guide.unit-testing.html
|
||||||
|
partials/guide/di.html
|
||||||
|
partials/guide/directive.html
|
||||||
|
partials/guide/expression.html
|
||||||
|
partials/guide/forms.html
|
||||||
|
partials/guide/i18n.html
|
||||||
|
partials/guide/ie.html
|
||||||
|
partials/guide/index.html
|
||||||
|
partials/guide/introduction.html
|
||||||
|
partials/guide/module.html
|
||||||
|
partials/guide/overview.html
|
||||||
|
partials/guide/scope.html
|
||||||
|
partials/guide/type.html
|
||||||
|
partials/misc/contribute.html
|
||||||
|
partials/misc/downloading.html
|
||||||
|
partials/misc/faq.html
|
||||||
|
partials/misc/started.html
|
||||||
|
partials/tutorial/index.html
|
||||||
|
partials/tutorial/step_00.html
|
||||||
|
partials/tutorial/step_01.html
|
||||||
|
partials/tutorial/step_02.html
|
||||||
|
partials/tutorial/step_03.html
|
||||||
|
partials/tutorial/step_04.html
|
||||||
|
partials/tutorial/step_05.html
|
||||||
|
partials/tutorial/step_06.html
|
||||||
|
partials/tutorial/step_07.html
|
||||||
|
partials/tutorial/step_08.html
|
||||||
|
partials/tutorial/step_09.html
|
||||||
|
partials/tutorial/step_10.html
|
||||||
|
partials/tutorial/step_11.html
|
||||||
|
partials/tutorial/the_end.html
|
||||||
|
|
||||||
|
FALLBACK:
|
||||||
|
/ /build/docs/index.html
|
||||||
|
|
||||||
|
# allow access to google analytics and twitter when we are online
|
||||||
|
NETWORK:
|
||||||
|
*
|
20
lib/angular/docs/appcache.manifest
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
CACHE MANIFEST
|
||||||
|
# 2013-01-23T20:01:18.713Z
|
||||||
|
|
||||||
|
# cache all of these
|
||||||
|
CACHE:
|
||||||
|
syntaxhighlighter/syntaxhighlighter-combined.js
|
||||||
|
../angular.min.js
|
||||||
|
docs-combined.js
|
||||||
|
docs-keywords.js
|
||||||
|
docs-combined.css
|
||||||
|
syntaxhighlighter/syntaxhighlighter-combined.css
|
||||||
|
img/texture_1.png
|
||||||
|
img/yellow_bkgnd.jpg
|
||||||
|
|
||||||
|
FALLBACK:
|
||||||
|
/ /build/docs/offline.html
|
||||||
|
|
||||||
|
# allow access to google analytics and twitter when we are online
|
||||||
|
NETWORK:
|
||||||
|
*
|
689
lib/angular/docs/css/bootstrap.min.css
vendored
Normal file
|
@ -0,0 +1,689 @@
|
||||||
|
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
|
||||||
|
audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
|
||||||
|
audio:not([controls]){display:none;}
|
||||||
|
html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
|
||||||
|
a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
|
||||||
|
a:hover,a:active{outline:0;}
|
||||||
|
sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
|
||||||
|
sup{top:-0.5em;}
|
||||||
|
sub{bottom:-0.25em;}
|
||||||
|
img{height:auto;border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;}
|
||||||
|
button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
|
||||||
|
button,input{*overflow:visible;line-height:normal;}
|
||||||
|
button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
|
||||||
|
button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
|
||||||
|
input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}
|
||||||
|
input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
|
||||||
|
textarea{overflow:auto;vertical-align:top;}
|
||||||
|
.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
|
||||||
|
.clearfix:after{clear:both;}
|
||||||
|
.hide-text{overflow:hidden;text-indent:100%;white-space:nowrap;}
|
||||||
|
.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
|
||||||
|
body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;}
|
||||||
|
a{color:#0088cc;text-decoration:none;}
|
||||||
|
a:hover{color:#005580;text-decoration:underline;}
|
||||||
|
.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";}
|
||||||
|
.row:after{clear:both;}
|
||||||
|
[class*="span"]{float:left;margin-left:20px;}
|
||||||
|
.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
|
||||||
|
.span12{width:940px;}
|
||||||
|
.span11{width:860px;}
|
||||||
|
.span10{width:780px;}
|
||||||
|
.span9{width:700px;}
|
||||||
|
.span8{width:620px;}
|
||||||
|
.span7{width:540px;}
|
||||||
|
.span6{width:460px;}
|
||||||
|
.span5{width:380px;}
|
||||||
|
.span4{width:300px;}
|
||||||
|
.span3{width:220px;}
|
||||||
|
.span2{width:140px;}
|
||||||
|
.span1{width:60px;}
|
||||||
|
.offset12{margin-left:980px;}
|
||||||
|
.offset11{margin-left:900px;}
|
||||||
|
.offset10{margin-left:820px;}
|
||||||
|
.offset9{margin-left:740px;}
|
||||||
|
.offset8{margin-left:660px;}
|
||||||
|
.offset7{margin-left:580px;}
|
||||||
|
.offset6{margin-left:500px;}
|
||||||
|
.offset5{margin-left:420px;}
|
||||||
|
.offset4{margin-left:340px;}
|
||||||
|
.offset3{margin-left:260px;}
|
||||||
|
.offset2{margin-left:180px;}
|
||||||
|
.offset1{margin-left:100px;}
|
||||||
|
.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";}
|
||||||
|
.row-fluid:after{clear:both;}
|
||||||
|
.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;}
|
||||||
|
.row-fluid>[class*="span"]:first-child{margin-left:0;}
|
||||||
|
.row-fluid > .span12{width:99.99999998999999%;}
|
||||||
|
.row-fluid > .span11{width:91.489361693%;}
|
||||||
|
.row-fluid > .span10{width:82.97872339599999%;}
|
||||||
|
.row-fluid > .span9{width:74.468085099%;}
|
||||||
|
.row-fluid > .span8{width:65.95744680199999%;}
|
||||||
|
.row-fluid > .span7{width:57.446808505%;}
|
||||||
|
.row-fluid > .span6{width:48.93617020799999%;}
|
||||||
|
.row-fluid > .span5{width:40.425531911%;}
|
||||||
|
.row-fluid > .span4{width:31.914893614%;}
|
||||||
|
.row-fluid > .span3{width:23.404255317%;}
|
||||||
|
.row-fluid > .span2{width:14.89361702%;}
|
||||||
|
.row-fluid > .span1{width:6.382978723%;}
|
||||||
|
.container{margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";}
|
||||||
|
.container:after{clear:both;}
|
||||||
|
.container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";}
|
||||||
|
.container-fluid:after{clear:both;}
|
||||||
|
p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;}
|
||||||
|
.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;}
|
||||||
|
h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;}
|
||||||
|
h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;}
|
||||||
|
h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;}
|
||||||
|
h3{line-height:27px;font-size:18px;}h3 small{font-size:14px;}
|
||||||
|
h4,h5,h6{line-height:18px;}
|
||||||
|
h4{font-size:14px;}h4 small{font-size:12px;}
|
||||||
|
h5{font-size:12px;}
|
||||||
|
h6{font-size:11px;color:#999999;text-transform:uppercase;}
|
||||||
|
.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;}
|
||||||
|
.page-header h1{line-height:1;}
|
||||||
|
ul,ol{padding:0;margin:0 0 9px 25px;}
|
||||||
|
ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
|
||||||
|
ul{list-style:disc;}
|
||||||
|
ol{list-style:decimal;}
|
||||||
|
li{line-height:18px;}
|
||||||
|
ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
|
||||||
|
dl{margin-bottom:18px;}
|
||||||
|
dt,dd{line-height:18px;}
|
||||||
|
dt{font-weight:bold;line-height:17px;}
|
||||||
|
dd{margin-left:9px;}
|
||||||
|
.dl-horizontal dt{float:left;clear:left;width:120px;text-align:right;}
|
||||||
|
.dl-horizontal dd{margin-left:130px;}
|
||||||
|
hr{margin:18px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
|
||||||
|
strong{font-weight:bold;}
|
||||||
|
em{font-style:italic;}
|
||||||
|
.muted{color:#999999;}
|
||||||
|
abbr[title]{border-bottom:1px dotted #ddd;cursor:help;}
|
||||||
|
abbr.initialism{font-size:90%;text-transform:uppercase;}
|
||||||
|
blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;}
|
||||||
|
blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
|
||||||
|
blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
|
||||||
|
q:before,q:after,blockquote:before,blockquote:after{content:"";}
|
||||||
|
address{display:block;margin-bottom:18px;line-height:18px;font-style:normal;}
|
||||||
|
small{font-size:100%;}
|
||||||
|
cite{font-style:normal;}
|
||||||
|
code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
|
||||||
|
code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;}
|
||||||
|
pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word;}pre.prettyprint{margin-bottom:18px;}
|
||||||
|
pre code{padding:0;color:inherit;background-color:transparent;border:0;}
|
||||||
|
.pre-scrollable{max-height:340px;overflow-y:scroll;}
|
||||||
|
form{margin:0 0 18px;}
|
||||||
|
fieldset{padding:0;margin:0;border:0;}
|
||||||
|
legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;}legend small{font-size:13.5px;color:#999999;}
|
||||||
|
label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px;}
|
||||||
|
input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
|
||||||
|
label{display:block;margin-bottom:5px;color:#333333;}
|
||||||
|
input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;border:1px solid #cccccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
|
||||||
|
.uneditable-textarea{width:auto;height:auto;}
|
||||||
|
label input,label textarea,label select{display:block;}
|
||||||
|
input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border:0 \9;}
|
||||||
|
input[type="image"]{border:0;}
|
||||||
|
input[type="file"]{width:auto;padding:initial;line-height:initial;border:initial;background-color:#ffffff;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
||||||
|
input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;}
|
||||||
|
select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;}
|
||||||
|
input[type="file"]{line-height:18px \9;}
|
||||||
|
select{width:220px;background-color:#ffffff;}
|
||||||
|
select[multiple],select[size]{height:auto;}
|
||||||
|
input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
||||||
|
textarea{height:auto;}
|
||||||
|
input[type="hidden"]{display:none;}
|
||||||
|
.radio,.checkbox{padding-left:18px;}
|
||||||
|
.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px;}
|
||||||
|
.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
|
||||||
|
.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
|
||||||
|
.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
|
||||||
|
input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;}
|
||||||
|
input:focus,textarea:focus{border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 8px rgba(82, 168, 236, 0.6);outline:0;outline:thin dotted \9;}
|
||||||
|
input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
|
||||||
|
.input-mini{width:60px;}
|
||||||
|
.input-small{width:90px;}
|
||||||
|
.input-medium{width:150px;}
|
||||||
|
.input-large{width:210px;}
|
||||||
|
.input-xlarge{width:270px;}
|
||||||
|
.input-xxlarge{width:530px;}
|
||||||
|
input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{float:none;margin-left:0;}
|
||||||
|
input,textarea,.uneditable-input{margin-left:0;}
|
||||||
|
input.span12, textarea.span12, .uneditable-input.span12{width:930px;}
|
||||||
|
input.span11, textarea.span11, .uneditable-input.span11{width:850px;}
|
||||||
|
input.span10, textarea.span10, .uneditable-input.span10{width:770px;}
|
||||||
|
input.span9, textarea.span9, .uneditable-input.span9{width:690px;}
|
||||||
|
input.span8, textarea.span8, .uneditable-input.span8{width:610px;}
|
||||||
|
input.span7, textarea.span7, .uneditable-input.span7{width:530px;}
|
||||||
|
input.span6, textarea.span6, .uneditable-input.span6{width:450px;}
|
||||||
|
input.span5, textarea.span5, .uneditable-input.span5{width:370px;}
|
||||||
|
input.span4, textarea.span4, .uneditable-input.span4{width:290px;}
|
||||||
|
input.span3, textarea.span3, .uneditable-input.span3{width:210px;}
|
||||||
|
input.span2, textarea.span2, .uneditable-input.span2{width:130px;}
|
||||||
|
input.span1, textarea.span1, .uneditable-input.span1{width:50px;}
|
||||||
|
input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#eeeeee;border-color:#ddd;cursor:not-allowed;}
|
||||||
|
.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
|
||||||
|
.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e;}
|
||||||
|
.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
|
||||||
|
.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
|
||||||
|
.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;}
|
||||||
|
.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
|
||||||
|
.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
|
||||||
|
.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b;}
|
||||||
|
.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
|
||||||
|
input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
|
||||||
|
.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#eeeeee;border-top:1px solid #ddd;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";}
|
||||||
|
.form-actions:after{clear:both;}
|
||||||
|
.uneditable-input{display:block;background-color:#ffffff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
|
||||||
|
:-moz-placeholder{color:#999999;}
|
||||||
|
::-webkit-input-placeholder{color:#999999;}
|
||||||
|
.help-block,.help-inline{color:#555555;}
|
||||||
|
.help-block{display:block;margin-bottom:9px;}
|
||||||
|
.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
|
||||||
|
.input-prepend,.input-append{margin-bottom:5px;}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{*margin-left:0;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{position:relative;z-index:2;}
|
||||||
|
.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;}
|
||||||
|
.input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;min-width:16px;height:18px;padding:4px 5px;font-weight:normal;line-height:18px;text-align:center;text-shadow:0 1px 0 #ffffff;vertical-align:middle;background-color:#eeeeee;border:1px solid #ccc;}
|
||||||
|
.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
||||||
|
.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;}
|
||||||
|
.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
|
||||||
|
.input-append input,.input-append select .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
||||||
|
.input-append .uneditable-input{border-left-color:#eee;border-right-color:#ccc;}
|
||||||
|
.input-append .add-on,.input-append .btn{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
|
||||||
|
.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
|
||||||
|
.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
||||||
|
.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
|
||||||
|
.search-query{padding-left:14px;padding-right:14px;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;}
|
||||||
|
.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;margin-bottom:0;}
|
||||||
|
.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
|
||||||
|
.form-search label,.form-inline label{display:inline-block;}
|
||||||
|
.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
|
||||||
|
.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
|
||||||
|
.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-left:0;margin-right:3px;}
|
||||||
|
.control-group{margin-bottom:9px;}
|
||||||
|
legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate;}
|
||||||
|
.form-horizontal .control-group{margin-bottom:18px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";}
|
||||||
|
.form-horizontal .control-group:after{clear:both;}
|
||||||
|
.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right;}
|
||||||
|
.form-horizontal .controls{margin-left:160px;*display:inline-block;*margin-left:0;*padding-left:20px;}
|
||||||
|
.form-horizontal .help-block{margin-top:9px;margin-bottom:0;}
|
||||||
|
.form-horizontal .form-actions{padding-left:160px;}
|
||||||
|
table{max-width:100%;border-collapse:collapse;border-spacing:0;background-color:transparent;}
|
||||||
|
.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
|
||||||
|
.table th{font-weight:bold;}
|
||||||
|
.table thead th{vertical-align:bottom;}
|
||||||
|
.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
|
||||||
|
.table tbody+tbody{border-top:2px solid #dddddd;}
|
||||||
|
.table-condensed th,.table-condensed td{padding:4px 5px;}
|
||||||
|
.table-bordered{border:1px solid #dddddd;border-left:0;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
|
||||||
|
.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
|
||||||
|
.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;}
|
||||||
|
.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;}
|
||||||
|
.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;}
|
||||||
|
.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;}
|
||||||
|
.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;}
|
||||||
|
.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5;}
|
||||||
|
table .span1{float:none;width:44px;margin-left:0;}
|
||||||
|
table .span2{float:none;width:124px;margin-left:0;}
|
||||||
|
table .span3{float:none;width:204px;margin-left:0;}
|
||||||
|
table .span4{float:none;width:284px;margin-left:0;}
|
||||||
|
table .span5{float:none;width:364px;margin-left:0;}
|
||||||
|
table .span6{float:none;width:444px;margin-left:0;}
|
||||||
|
table .span7{float:none;width:524px;margin-left:0;}
|
||||||
|
table .span8{float:none;width:604px;margin-left:0;}
|
||||||
|
table .span9{float:none;width:684px;margin-left:0;}
|
||||||
|
table .span10{float:none;width:764px;margin-left:0;}
|
||||||
|
table .span11{float:none;width:844px;margin-left:0;}
|
||||||
|
table .span12{float:none;width:924px;margin-left:0;}
|
||||||
|
table .span13{float:none;width:1004px;margin-left:0;}
|
||||||
|
table .span14{float:none;width:1084px;margin-left:0;}
|
||||||
|
table .span15{float:none;width:1164px;margin-left:0;}
|
||||||
|
table .span16{float:none;width:1244px;margin-left:0;}
|
||||||
|
table .span17{float:none;width:1324px;margin-left:0;}
|
||||||
|
table .span18{float:none;width:1404px;margin-left:0;}
|
||||||
|
table .span19{float:none;width:1484px;margin-left:0;}
|
||||||
|
table .span20{float:none;width:1564px;margin-left:0;}
|
||||||
|
table .span21{float:none;width:1644px;margin-left:0;}
|
||||||
|
table .span22{float:none;width:1724px;margin-left:0;}
|
||||||
|
table .span23{float:none;width:1804px;margin-left:0;}
|
||||||
|
table .span24{float:none;width:1884px;margin-left:0;}
|
||||||
|
[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em;}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0;}
|
||||||
|
.icon-white{background-image:url("../img/glyphicons-halflings-white.png");}
|
||||||
|
.icon-glass{background-position:0 0;}
|
||||||
|
.icon-music{background-position:-24px 0;}
|
||||||
|
.icon-search{background-position:-48px 0;}
|
||||||
|
.icon-envelope{background-position:-72px 0;}
|
||||||
|
.icon-heart{background-position:-96px 0;}
|
||||||
|
.icon-star{background-position:-120px 0;}
|
||||||
|
.icon-star-empty{background-position:-144px 0;}
|
||||||
|
.icon-user{background-position:-168px 0;}
|
||||||
|
.icon-film{background-position:-192px 0;}
|
||||||
|
.icon-th-large{background-position:-216px 0;}
|
||||||
|
.icon-th{background-position:-240px 0;}
|
||||||
|
.icon-th-list{background-position:-264px 0;}
|
||||||
|
.icon-ok{background-position:-288px 0;}
|
||||||
|
.icon-remove{background-position:-312px 0;}
|
||||||
|
.icon-zoom-in{background-position:-336px 0;}
|
||||||
|
.icon-zoom-out{background-position:-360px 0;}
|
||||||
|
.icon-off{background-position:-384px 0;}
|
||||||
|
.icon-signal{background-position:-408px 0;}
|
||||||
|
.icon-cog{background-position:-432px 0;}
|
||||||
|
.icon-trash{background-position:-456px 0;}
|
||||||
|
.icon-home{background-position:0 -24px;}
|
||||||
|
.icon-file{background-position:-24px -24px;}
|
||||||
|
.icon-time{background-position:-48px -24px;}
|
||||||
|
.icon-road{background-position:-72px -24px;}
|
||||||
|
.icon-download-alt{background-position:-96px -24px;}
|
||||||
|
.icon-download{background-position:-120px -24px;}
|
||||||
|
.icon-upload{background-position:-144px -24px;}
|
||||||
|
.icon-inbox{background-position:-168px -24px;}
|
||||||
|
.icon-play-circle{background-position:-192px -24px;}
|
||||||
|
.icon-repeat{background-position:-216px -24px;}
|
||||||
|
.icon-refresh{background-position:-240px -24px;}
|
||||||
|
.icon-list-alt{background-position:-264px -24px;}
|
||||||
|
.icon-lock{background-position:-287px -24px;}
|
||||||
|
.icon-flag{background-position:-312px -24px;}
|
||||||
|
.icon-headphones{background-position:-336px -24px;}
|
||||||
|
.icon-volume-off{background-position:-360px -24px;}
|
||||||
|
.icon-volume-down{background-position:-384px -24px;}
|
||||||
|
.icon-volume-up{background-position:-408px -24px;}
|
||||||
|
.icon-qrcode{background-position:-432px -24px;}
|
||||||
|
.icon-barcode{background-position:-456px -24px;}
|
||||||
|
.icon-tag{background-position:0 -48px;}
|
||||||
|
.icon-tags{background-position:-25px -48px;}
|
||||||
|
.icon-book{background-position:-48px -48px;}
|
||||||
|
.icon-bookmark{background-position:-72px -48px;}
|
||||||
|
.icon-print{background-position:-96px -48px;}
|
||||||
|
.icon-camera{background-position:-120px -48px;}
|
||||||
|
.icon-font{background-position:-144px -48px;}
|
||||||
|
.icon-bold{background-position:-167px -48px;}
|
||||||
|
.icon-italic{background-position:-192px -48px;}
|
||||||
|
.icon-text-height{background-position:-216px -48px;}
|
||||||
|
.icon-text-width{background-position:-240px -48px;}
|
||||||
|
.icon-align-left{background-position:-264px -48px;}
|
||||||
|
.icon-align-center{background-position:-288px -48px;}
|
||||||
|
.icon-align-right{background-position:-312px -48px;}
|
||||||
|
.icon-align-justify{background-position:-336px -48px;}
|
||||||
|
.icon-list{background-position:-360px -48px;}
|
||||||
|
.icon-indent-left{background-position:-384px -48px;}
|
||||||
|
.icon-indent-right{background-position:-408px -48px;}
|
||||||
|
.icon-facetime-video{background-position:-432px -48px;}
|
||||||
|
.icon-picture{background-position:-456px -48px;}
|
||||||
|
.icon-pencil{background-position:0 -72px;}
|
||||||
|
.icon-map-marker{background-position:-24px -72px;}
|
||||||
|
.icon-adjust{background-position:-48px -72px;}
|
||||||
|
.icon-tint{background-position:-72px -72px;}
|
||||||
|
.icon-edit{background-position:-96px -72px;}
|
||||||
|
.icon-share{background-position:-120px -72px;}
|
||||||
|
.icon-check{background-position:-144px -72px;}
|
||||||
|
.icon-move{background-position:-168px -72px;}
|
||||||
|
.icon-step-backward{background-position:-192px -72px;}
|
||||||
|
.icon-fast-backward{background-position:-216px -72px;}
|
||||||
|
.icon-backward{background-position:-240px -72px;}
|
||||||
|
.icon-play{background-position:-264px -72px;}
|
||||||
|
.icon-pause{background-position:-288px -72px;}
|
||||||
|
.icon-stop{background-position:-312px -72px;}
|
||||||
|
.icon-forward{background-position:-336px -72px;}
|
||||||
|
.icon-fast-forward{background-position:-360px -72px;}
|
||||||
|
.icon-step-forward{background-position:-384px -72px;}
|
||||||
|
.icon-eject{background-position:-408px -72px;}
|
||||||
|
.icon-chevron-left{background-position:-432px -72px;}
|
||||||
|
.icon-chevron-right{background-position:-456px -72px;}
|
||||||
|
.icon-plus-sign{background-position:0 -96px;}
|
||||||
|
.icon-minus-sign{background-position:-24px -96px;}
|
||||||
|
.icon-remove-sign{background-position:-48px -96px;}
|
||||||
|
.icon-ok-sign{background-position:-72px -96px;}
|
||||||
|
.icon-question-sign{background-position:-96px -96px;}
|
||||||
|
.icon-info-sign{background-position:-120px -96px;}
|
||||||
|
.icon-screenshot{background-position:-144px -96px;}
|
||||||
|
.icon-remove-circle{background-position:-168px -96px;}
|
||||||
|
.icon-ok-circle{background-position:-192px -96px;}
|
||||||
|
.icon-ban-circle{background-position:-216px -96px;}
|
||||||
|
.icon-arrow-left{background-position:-240px -96px;}
|
||||||
|
.icon-arrow-right{background-position:-264px -96px;}
|
||||||
|
.icon-arrow-up{background-position:-289px -96px;}
|
||||||
|
.icon-arrow-down{background-position:-312px -96px;}
|
||||||
|
.icon-share-alt{background-position:-336px -96px;}
|
||||||
|
.icon-resize-full{background-position:-360px -96px;}
|
||||||
|
.icon-resize-small{background-position:-384px -96px;}
|
||||||
|
.icon-plus{background-position:-408px -96px;}
|
||||||
|
.icon-minus{background-position:-433px -96px;}
|
||||||
|
.icon-asterisk{background-position:-456px -96px;}
|
||||||
|
.icon-exclamation-sign{background-position:0 -120px;}
|
||||||
|
.icon-gift{background-position:-24px -120px;}
|
||||||
|
.icon-leaf{background-position:-48px -120px;}
|
||||||
|
.icon-fire{background-position:-72px -120px;}
|
||||||
|
.icon-eye-open{background-position:-96px -120px;}
|
||||||
|
.icon-eye-close{background-position:-120px -120px;}
|
||||||
|
.icon-warning-sign{background-position:-144px -120px;}
|
||||||
|
.icon-plane{background-position:-168px -120px;}
|
||||||
|
.icon-calendar{background-position:-192px -120px;}
|
||||||
|
.icon-random{background-position:-216px -120px;}
|
||||||
|
.icon-comment{background-position:-240px -120px;}
|
||||||
|
.icon-magnet{background-position:-264px -120px;}
|
||||||
|
.icon-chevron-up{background-position:-288px -120px;}
|
||||||
|
.icon-chevron-down{background-position:-313px -119px;}
|
||||||
|
.icon-retweet{background-position:-336px -120px;}
|
||||||
|
.icon-shopping-cart{background-position:-360px -120px;}
|
||||||
|
.icon-folder-close{background-position:-384px -120px;}
|
||||||
|
.icon-folder-open{background-position:-408px -120px;}
|
||||||
|
.icon-resize-vertical{background-position:-432px -119px;}
|
||||||
|
.icon-resize-horizontal{background-position:-456px -118px;}
|
||||||
|
.dropdown{position:relative;}
|
||||||
|
.dropdown-toggle{*margin-bottom:-3px;}
|
||||||
|
.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
|
||||||
|
.caret{display:inline-block;width:0;height:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"";}
|
||||||
|
.dropdown .caret{margin-top:8px;margin-left:2px;}
|
||||||
|
.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);}
|
||||||
|
.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.pull-right{right:0;left:auto;}
|
||||||
|
.dropdown-menu .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;}
|
||||||
|
.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#333333;white-space:nowrap;}
|
||||||
|
.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffffff;text-decoration:none;background-color:#0088cc;}
|
||||||
|
.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);}
|
||||||
|
.dropdown.open .dropdown-menu{display:block;}
|
||||||
|
.pull-right .dropdown-menu{left:auto;right:0;}
|
||||||
|
.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"\2191";}
|
||||||
|
.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
|
||||||
|
.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
|
||||||
|
.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
|
||||||
|
.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
|
||||||
|
.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
|
||||||
|
.fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;}
|
||||||
|
.collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;}
|
||||||
|
.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;}
|
||||||
|
.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:13px;line-height:18px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);border:1px solid #cccccc;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);cursor:pointer;*margin-left:.3em;}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;}
|
||||||
|
.btn:active,.btn.active{background-color:#cccccc \9;}
|
||||||
|
.btn:first-child{*margin-left:0;}
|
||||||
|
.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
|
||||||
|
.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
|
||||||
|
.btn.active,.btn:active{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);background-color:#e6e6e6;background-color:#d9d9d9 \9;outline:0;}
|
||||||
|
.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
|
||||||
|
.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
|
||||||
|
.btn-large [class^="icon-"]{margin-top:1px;}
|
||||||
|
.btn-small{padding:5px 9px;font-size:11px;line-height:16px;}
|
||||||
|
.btn-small [class^="icon-"]{margin-top:-1px;}
|
||||||
|
.btn-mini{padding:2px 6px;font-size:11px;line-height:14px;}
|
||||||
|
.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;}
|
||||||
|
.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
|
||||||
|
.btn-primary{background-color:#0074cc;background-image:-moz-linear-gradient(top, #0088cc, #0055cc);background-image:-ms-linear-gradient(top, #0088cc, #0055cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));background-image:-webkit-linear-gradient(top, #0088cc, #0055cc);background-image:-o-linear-gradient(top, #0088cc, #0055cc);background-image:linear-gradient(top, #0088cc, #0055cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);border-color:#0055cc #0055cc #003580;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0055cc;}
|
||||||
|
.btn-primary:active,.btn-primary.active{background-color:#004099 \9;}
|
||||||
|
.btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;}
|
||||||
|
.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
|
||||||
|
.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;}
|
||||||
|
.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
|
||||||
|
.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;}
|
||||||
|
.btn-success:active,.btn-success.active{background-color:#408140 \9;}
|
||||||
|
.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;}
|
||||||
|
.btn-info:active,.btn-info.active{background-color:#24748c \9;}
|
||||||
|
.btn-inverse{background-color:#414141;background-image:-moz-linear-gradient(top, #555555, #222222);background-image:-ms-linear-gradient(top, #555555, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));background-image:-webkit-linear-gradient(top, #555555, #222222);background-image:-o-linear-gradient(top, #555555, #222222);background-image:linear-gradient(top, #555555, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222222;}
|
||||||
|
.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
|
||||||
|
button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
|
||||||
|
button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
|
||||||
|
button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
|
||||||
|
button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
|
||||||
|
.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.btn-group:before,.btn-group:after{display:table;content:"";}
|
||||||
|
.btn-group:after{clear:both;}
|
||||||
|
.btn-group:first-child{*margin-left:0;}
|
||||||
|
.btn-group+.btn-group{margin-left:5px;}
|
||||||
|
.btn-toolbar{margin-top:9px;margin-bottom:9px;}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1;}
|
||||||
|
.btn-group .btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
|
||||||
|
.btn-group .btn:first-child{margin-left:0;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
|
||||||
|
.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
|
||||||
|
.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
|
||||||
|
.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius:6px;}
|
||||||
|
.btn-group .btn:hover,.btn-group .btn:focus,.btn-group .btn:active,.btn-group .btn.active{z-index:2;}
|
||||||
|
.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
|
||||||
|
.btn-group .dropdown-toggle{padding-left:8px;padding-right:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125),inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05);*padding-top:3px;*padding-bottom:3px;}
|
||||||
|
.btn-group .btn-mini.dropdown-toggle{padding-left:5px;padding-right:5px;*padding-top:1px;*padding-bottom:1px;}
|
||||||
|
.btn-group .btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px;}
|
||||||
|
.btn-group .btn-large.dropdown-toggle{padding-left:12px;padding-right:12px;}
|
||||||
|
.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
|
||||||
|
.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);}
|
||||||
|
.btn .caret{margin-top:7px;margin-left:0;}
|
||||||
|
.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);}
|
||||||
|
.btn-mini .caret{margin-top:5px;}
|
||||||
|
.btn-small .caret{margin-top:6px;}
|
||||||
|
.btn-large .caret{margin-top:6px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
|
||||||
|
.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);}
|
||||||
|
.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#c09853;}
|
||||||
|
.alert-heading{color:inherit;}
|
||||||
|
.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;}
|
||||||
|
.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}
|
||||||
|
.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;}
|
||||||
|
.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}
|
||||||
|
.alert-block{padding-top:14px;padding-bottom:14px;}
|
||||||
|
.alert-block>p,.alert-block>ul{margin-bottom:0;}
|
||||||
|
.alert-block p+p{margin-top:5px;}
|
||||||
|
.nav{margin-left:0;margin-bottom:18px;list-style:none;}
|
||||||
|
.nav>li>a{display:block;}
|
||||||
|
.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;}
|
||||||
|
.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;}
|
||||||
|
.nav li+.nav-header{margin-top:9px;}
|
||||||
|
.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;}
|
||||||
|
.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
|
||||||
|
.nav-list>li>a{padding:3px 15px;}
|
||||||
|
.nav-list>.active>a,.nav-list>.active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;}
|
||||||
|
.nav-list [class^="icon-"]{margin-right:2px;}
|
||||||
|
.nav-list .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;}
|
||||||
|
.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";}
|
||||||
|
.nav-tabs:after,.nav-pills:after{clear:both;}
|
||||||
|
.nav-tabs>li,.nav-pills>li{float:left;}
|
||||||
|
.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;}
|
||||||
|
.nav-tabs{border-bottom:1px solid #ddd;}
|
||||||
|
.nav-tabs>li{margin-bottom:-1px;}
|
||||||
|
.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;}
|
||||||
|
.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;}
|
||||||
|
.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
|
||||||
|
.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#ffffff;background-color:#0088cc;}
|
||||||
|
.nav-stacked>li{float:none;}
|
||||||
|
.nav-stacked>li>a{margin-right:0;}
|
||||||
|
.nav-tabs.nav-stacked{border-bottom:0;}
|
||||||
|
.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
|
||||||
|
.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}
|
||||||
|
.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}
|
||||||
|
.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;}
|
||||||
|
.nav-pills.nav-stacked>li>a{margin-bottom:3px;}
|
||||||
|
.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
|
||||||
|
.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;}
|
||||||
|
.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
|
||||||
|
.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;}
|
||||||
|
.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580;}
|
||||||
|
.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;border-bottom-color:#333333;}
|
||||||
|
.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;}
|
||||||
|
.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;}
|
||||||
|
.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);}
|
||||||
|
.tabs-stacked .open>a:hover{border-color:#999999;}
|
||||||
|
.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";}
|
||||||
|
.tabbable:after{clear:both;}
|
||||||
|
.tab-content{display:table;width:100%;}
|
||||||
|
.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;}
|
||||||
|
.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
|
||||||
|
.tab-content>.active,.pill-content>.active{display:block;}
|
||||||
|
.tabs-below .nav-tabs{border-top:1px solid #ddd;}
|
||||||
|
.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;}
|
||||||
|
.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;}
|
||||||
|
.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;}
|
||||||
|
.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;}
|
||||||
|
.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;}
|
||||||
|
.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;}
|
||||||
|
.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
|
||||||
|
.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;}
|
||||||
|
.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;}
|
||||||
|
.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;}
|
||||||
|
.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
|
||||||
|
.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;}
|
||||||
|
.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;}
|
||||||
|
.navbar{*position:relative;*z-index:2;overflow:visible;margin-bottom:18px;}
|
||||||
|
.navbar-inner{padding-left:20px;padding-right:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);}
|
||||||
|
.navbar .container{width:auto;}
|
||||||
|
.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222222;}
|
||||||
|
.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;}
|
||||||
|
.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);}
|
||||||
|
.btn-navbar .icon-bar+.icon-bar{margin-top:3px;}
|
||||||
|
.nav-collapse.collapse{height:auto;}
|
||||||
|
.navbar{color:#999999;}.navbar .brand:hover{text-decoration:none;}
|
||||||
|
.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;}
|
||||||
|
.navbar .navbar-text{margin-bottom:0;line-height:40px;}
|
||||||
|
.navbar .btn,.navbar .btn-group{margin-top:5px;}
|
||||||
|
.navbar .btn-group .btn{margin-top:0;}
|
||||||
|
.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";}
|
||||||
|
.navbar-form:after{clear:both;}
|
||||||
|
.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;}
|
||||||
|
.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0;}
|
||||||
|
.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
|
||||||
|
.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;}
|
||||||
|
.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query:-moz-placeholder{color:#cccccc;}
|
||||||
|
.navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;}
|
||||||
|
.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;}
|
||||||
|
.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;}
|
||||||
|
.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
|
||||||
|
.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
|
||||||
|
.navbar-fixed-top{top:0;}
|
||||||
|
.navbar-fixed-bottom{bottom:0;}
|
||||||
|
.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;}
|
||||||
|
.navbar .nav.pull-right{float:right;}
|
||||||
|
.navbar .nav>li{display:block;float:left;}
|
||||||
|
.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
|
||||||
|
.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;}
|
||||||
|
.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#222222;}
|
||||||
|
.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;}
|
||||||
|
.navbar .nav.pull-right{margin-left:10px;margin-right:0;}
|
||||||
|
.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
|
||||||
|
.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;}
|
||||||
|
.navbar-fixed-bottom .dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;}
|
||||||
|
.navbar-fixed-bottom .dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;}
|
||||||
|
.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
|
||||||
|
.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);}
|
||||||
|
.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;}
|
||||||
|
.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;}
|
||||||
|
.navbar .nav.pull-right .dropdown-menu,.navbar .nav .dropdown-menu.pull-right{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before,.navbar .nav .dropdown-menu.pull-right:before{left:auto;right:12px;}
|
||||||
|
.navbar .nav.pull-right .dropdown-menu:after,.navbar .nav .dropdown-menu.pull-right:after{left:auto;right:13px;}
|
||||||
|
.breadcrumb{padding:7px 14px;margin:0 0 18px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 0 #ffffff;}
|
||||||
|
.breadcrumb .divider{padding:0 5px;color:#999999;}
|
||||||
|
.breadcrumb .active a{color:#333333;}
|
||||||
|
.pagination{height:36px;margin:18px 0;}
|
||||||
|
.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:0 1px 2px rgba(0, 0, 0, 0.05);}
|
||||||
|
.pagination li{display:inline;}
|
||||||
|
.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0;}
|
||||||
|
.pagination a:hover,.pagination .active a{background-color:#f5f5f5;}
|
||||||
|
.pagination .active a{color:#999999;cursor:default;}
|
||||||
|
.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;}
|
||||||
|
.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
|
||||||
|
.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
|
||||||
|
.pagination-centered{text-align:center;}
|
||||||
|
.pagination-right{text-align:right;}
|
||||||
|
.pager{margin-left:0;margin-bottom:18px;list-style:none;text-align:center;*zoom:1;}.pager:before,.pager:after{display:table;content:"";}
|
||||||
|
.pager:after{clear:both;}
|
||||||
|
.pager li{display:inline;}
|
||||||
|
.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
|
||||||
|
.pager a:hover{text-decoration:none;background-color:#f5f5f5;}
|
||||||
|
.pager .next a{float:right;}
|
||||||
|
.pager .previous a{float:left;}
|
||||||
|
.pager .disabled a,.pager .disabled a:hover{color:#999999;background-color:#fff;cursor:default;}
|
||||||
|
.modal-open .dropdown-menu{z-index:2050;}
|
||||||
|
.modal-open .dropdown.open{*z-index:2050;}
|
||||||
|
.modal-open .popover{z-index:2060;}
|
||||||
|
.modal-open .tooltip{z-index:2070;}
|
||||||
|
.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
|
||||||
|
.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
|
||||||
|
.modal{position:fixed;top:50%;left:50%;z-index:1050;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
|
||||||
|
.modal.fade.in{top:50%;}
|
||||||
|
.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
|
||||||
|
.modal-body{overflow-y:auto;max-height:400px;padding:15px;}
|
||||||
|
.modal-form{margin-bottom:0;}
|
||||||
|
.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";}
|
||||||
|
.modal-footer:after{clear:both;}
|
||||||
|
.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
|
||||||
|
.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
|
||||||
|
.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);}
|
||||||
|
.tooltip.top{margin-top:-2px;}
|
||||||
|
.tooltip.right{margin-left:2px;}
|
||||||
|
.tooltip.bottom{margin-top:2px;}
|
||||||
|
.tooltip.left{margin-left:-2px;}
|
||||||
|
.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
|
||||||
|
.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;}
|
||||||
|
.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;}
|
||||||
|
.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;}
|
||||||
|
.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
|
||||||
|
.tooltip-arrow{position:absolute;width:0;height:0;}
|
||||||
|
.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px;}.popover.top{margin-top:-5px;}
|
||||||
|
.popover.right{margin-left:5px;}
|
||||||
|
.popover.bottom{margin-top:5px;}
|
||||||
|
.popover.left{margin-left:-5px;}
|
||||||
|
.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;}
|
||||||
|
.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;}
|
||||||
|
.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;}
|
||||||
|
.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;}
|
||||||
|
.popover .arrow{position:absolute;width:0;height:0;}
|
||||||
|
.popover-inner{padding:3px;width:280px;overflow:hidden;background:#000000;background:rgba(0, 0, 0, 0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);}
|
||||||
|
.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;}
|
||||||
|
.popover-content{padding:14px;background-color:#ffffff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;}
|
||||||
|
.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";}
|
||||||
|
.thumbnails:after{clear:both;}
|
||||||
|
.thumbnails>li{float:left;margin:0 0 18px 20px;}
|
||||||
|
.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:0 1px 1px rgba(0, 0, 0, 0.075);}
|
||||||
|
a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);}
|
||||||
|
.thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;}
|
||||||
|
.thumbnail .caption{padding:9px;}
|
||||||
|
.label{padding:1px 4px 2px;font-size:10.998px;font-weight:bold;line-height:13px;color:#ffffff;vertical-align:middle;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
|
||||||
|
.label:hover{color:#ffffff;text-decoration:none;}
|
||||||
|
.label-important{background-color:#b94a48;}
|
||||||
|
.label-important:hover{background-color:#953b39;}
|
||||||
|
.label-warning{background-color:#f89406;}
|
||||||
|
.label-warning:hover{background-color:#c67605;}
|
||||||
|
.label-success{background-color:#468847;}
|
||||||
|
.label-success:hover{background-color:#356635;}
|
||||||
|
.label-info{background-color:#3a87ad;}
|
||||||
|
.label-info:hover{background-color:#2d6987;}
|
||||||
|
.label-inverse{background-color:#333333;}
|
||||||
|
.label-inverse:hover{background-color:#1a1a1a;}
|
||||||
|
.badge{padding:1px 9px 2px;font-size:12.025px;font-weight:bold;white-space:nowrap;color:#ffffff;background-color:#999999;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;}
|
||||||
|
.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;}
|
||||||
|
.badge-error{background-color:#b94a48;}
|
||||||
|
.badge-error:hover{background-color:#953b39;}
|
||||||
|
.badge-warning{background-color:#f89406;}
|
||||||
|
.badge-warning:hover{background-color:#c67605;}
|
||||||
|
.badge-success{background-color:#468847;}
|
||||||
|
.badge-success:hover{background-color:#356635;}
|
||||||
|
.badge-info{background-color:#3a87ad;}
|
||||||
|
.badge-info:hover{background-color:#2d6987;}
|
||||||
|
.badge-inverse{background-color:#333333;}
|
||||||
|
.badge-inverse:hover{background-color:#1a1a1a;}
|
||||||
|
@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-ms-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f7f7f7;background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9);background-image:linear-gradient(top, #f5f5f5, #f9f9f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
|
||||||
|
.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;text-align:center;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top, #149bdf, #0480be);background-image:-ms-linear-gradient(top, #149bdf, #0480be);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));background-image:-webkit-linear-gradient(top, #149bdf, #0480be);background-image:-o-linear-gradient(top, #149bdf, #0480be);background-image:linear-gradient(top, #149bdf, #0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width 0.6s ease;-moz-transition:width 0.6s ease;-ms-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease;}
|
||||||
|
.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px;}
|
||||||
|
.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
|
||||||
|
.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);}
|
||||||
|
.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
|
||||||
|
.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);}
|
||||||
|
.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
|
||||||
|
.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);}
|
||||||
|
.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
|
||||||
|
.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);}
|
||||||
|
.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);}
|
||||||
|
.accordion{margin-bottom:18px;}
|
||||||
|
.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
|
||||||
|
.accordion-heading{border-bottom:0;}
|
||||||
|
.accordion-heading .accordion-toggle{display:block;padding:8px 15px;}
|
||||||
|
.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
|
||||||
|
.carousel{position:relative;margin-bottom:18px;line-height:1;}
|
||||||
|
.carousel-inner{overflow:hidden;width:100%;position:relative;}
|
||||||
|
.carousel .item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;-moz-transition:0.6s ease-in-out left;-ms-transition:0.6s ease-in-out left;-o-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}
|
||||||
|
.carousel .item>img{display:block;line-height:1;}
|
||||||
|
.carousel .active,.carousel .next,.carousel .prev{display:block;}
|
||||||
|
.carousel .active{left:0;}
|
||||||
|
.carousel .next,.carousel .prev{position:absolute;top:0;width:100%;}
|
||||||
|
.carousel .next{left:100%;}
|
||||||
|
.carousel .prev{left:-100%;}
|
||||||
|
.carousel .next.left,.carousel .prev.right{left:0;}
|
||||||
|
.carousel .active.left{left:-100%;}
|
||||||
|
.carousel .active.right{left:100%;}
|
||||||
|
.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#ffffff;text-align:center;background:#222222;border:3px solid #ffffff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;}
|
||||||
|
.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
|
||||||
|
.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#333333;background:rgba(0, 0, 0, 0.75);}
|
||||||
|
.carousel-caption h4,.carousel-caption p{color:#ffffff;}
|
||||||
|
.hero-unit{padding:60px;margin-bottom:30px;background-color:#eeeeee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;color:inherit;letter-spacing:-1px;}
|
||||||
|
.hero-unit p{font-size:18px;font-weight:200;line-height:27px;color:inherit;}
|
||||||
|
.pull-right{float:right;}
|
||||||
|
.pull-left{float:left;}
|
||||||
|
.hide{display:none;}
|
||||||
|
.show{display:block;}
|
||||||
|
.invisible{visibility:hidden;}
|
150
lib/angular/docs/css/doc_widgets.css
Normal file
|
@ -0,0 +1,150 @@
|
||||||
|
ul.doc-example {
|
||||||
|
list-style-type: none;
|
||||||
|
position: relative;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.doc-example > li {
|
||||||
|
border: 2px solid gray;
|
||||||
|
border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
background-color: white;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.doc-example > li.doc-example-heading {
|
||||||
|
border: none;
|
||||||
|
border-radius: none;
|
||||||
|
margin-bottom: -10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.nojsfiddle {
|
||||||
|
float: right;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-right:10px;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.jsfiddle {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
z-index: 1;
|
||||||
|
height: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.jsfiddle button {
|
||||||
|
cursor: pointer;
|
||||||
|
padding: 4px 10px;
|
||||||
|
margin: 10px;
|
||||||
|
background-color: #FFF;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #7989D6;
|
||||||
|
border-color: #7989D6;
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
-webkit-border-radius:8px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
form.jsfiddle textarea, form.jsfiddle input {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
li.doc-example-live {
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.syntaxhighlighter {
|
||||||
|
padding-bottom: 1px !important; /* fix to remove unnecessary scrollbars http://is.gd/gSMgC */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TABS - tutorial environment navigation */
|
||||||
|
|
||||||
|
div.tabs-nav {
|
||||||
|
height: 25px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.tabs-nav ul li {
|
||||||
|
list-style: none;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 5px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.tabs-nav ul li.current a {
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.tabs-nav ul li.current {
|
||||||
|
background: #7989D6;
|
||||||
|
-moz-box-shadow: 4px 4px 6px #48577D;
|
||||||
|
-moz-border-radius-topright: 8px;
|
||||||
|
-moz-border-radius-topleft: 8px;
|
||||||
|
box-shadow: 4px 4px 6px #48577D;
|
||||||
|
border-radius-topright: 8px;
|
||||||
|
border-radius-topleft: 8px;
|
||||||
|
-webkit-box-shadow: 4px 4px 6px #48577D;
|
||||||
|
-webkit-border-top-right-radius: 8px;
|
||||||
|
-webkit-border-top-left-radius: 8px;
|
||||||
|
border-top-right-radius: 8px;
|
||||||
|
border-top-left-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.tabs-content {
|
||||||
|
padding: 4px;
|
||||||
|
position: relative;
|
||||||
|
background: #7989D6;
|
||||||
|
-moz-border-radius: 8px;
|
||||||
|
border-radius: 8px;
|
||||||
|
-webkit-border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.tabs-content-inner {
|
||||||
|
margin: 1px;
|
||||||
|
padding: 10px;
|
||||||
|
background: white;
|
||||||
|
border-radius: 6px;
|
||||||
|
-moz-border-radius: 6px;
|
||||||
|
-webkit-border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Tutorial Nav Bar */
|
||||||
|
|
||||||
|
#tutorial-nav {
|
||||||
|
margin: 0.5em 0 1em 0;
|
||||||
|
padding: 0;
|
||||||
|
list-style-type: none;
|
||||||
|
background: #7989D6;
|
||||||
|
|
||||||
|
-moz-border-radius: 15px;
|
||||||
|
-webkit-border-radius: 15px;
|
||||||
|
border-radius: 15px;
|
||||||
|
|
||||||
|
-moz-box-shadow: 4px 4px 6px #48577D;
|
||||||
|
-webkit-box-shadow: 4px 4px 6px #48577D;
|
||||||
|
box-shadow: 4px 4px 6px #48577D;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#tutorial-nav li {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#tutorial-nav a:link, #tutorial-nav a:visited {
|
||||||
|
font-size: 1.2em;
|
||||||
|
color: #FFF;
|
||||||
|
text-decoration: none;
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
width: 11em;
|
||||||
|
padding: 0.2em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#tutorial-nav a:hover {
|
||||||
|
color: #000;
|
||||||
|
}
|
186
lib/angular/docs/css/docs.css
Normal file
|
@ -0,0 +1,186 @@
|
||||||
|
img.AngularJS-small {
|
||||||
|
width: 95px;
|
||||||
|
height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.clear-navbar {
|
||||||
|
margin-top: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
padding-top: 2em;
|
||||||
|
background-color: #333;
|
||||||
|
color: white;
|
||||||
|
padding-bottom: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spacer {
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.icon-cog {
|
||||||
|
line-height: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* =============================== */
|
||||||
|
|
||||||
|
.form-search .dropdown-menu {
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-search .code {
|
||||||
|
font-family: monospace;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 13px;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-search > ul.nav > li.module {
|
||||||
|
background-color: #d3d3d3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-search > ul.nav > li.section {
|
||||||
|
background-color: #ebebeb;
|
||||||
|
min-height: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-search > ul.nav > li.last {
|
||||||
|
margin-bottom: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-search .well {
|
||||||
|
border-color: #d3d3d3;
|
||||||
|
padding-top: 0;
|
||||||
|
padding-bottom: 0;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-search .well .nav-header {
|
||||||
|
text-transform: none;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-left: -15px;
|
||||||
|
margin-right: -15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-search .well .nav-header a {
|
||||||
|
text-transform: none;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
.form-search .well .nav-header a:hover {
|
||||||
|
background-color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-search .well li {
|
||||||
|
line-height: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-search .well .guide {
|
||||||
|
float: right;
|
||||||
|
padding-top: 0;
|
||||||
|
color: gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* =============================== */
|
||||||
|
/* Content */
|
||||||
|
/* =============================== */
|
||||||
|
|
||||||
|
.hint {
|
||||||
|
font-size: .7em;
|
||||||
|
color: #c0c0c0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content code {
|
||||||
|
background-color: inherit;
|
||||||
|
color: inherit;
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
font-size: inherit;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content h2,
|
||||||
|
.content h3,
|
||||||
|
.content h4,
|
||||||
|
.content h5 {
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.parameters > li > p,
|
||||||
|
.returns > p {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.methods > li,
|
||||||
|
ul.properties > li,
|
||||||
|
ul.events > li {
|
||||||
|
list-style: none;
|
||||||
|
min-height: 20px;
|
||||||
|
padding: 19px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||||
|
-webkit-border-radius: 4px;
|
||||||
|
-moz-border-radius: 4px;
|
||||||
|
border-radius: 4px;
|
||||||
|
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||||
|
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||||
|
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
.member.method > h2,
|
||||||
|
.member.property > h2,
|
||||||
|
.member.event > h2 {
|
||||||
|
margin-bottom: .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.methods > li > h3,
|
||||||
|
ul.properties > li > h3,
|
||||||
|
ul.events > li > h3 {
|
||||||
|
margin: -19px -19px 1em -19px;
|
||||||
|
padding: .25em 19px;
|
||||||
|
background-color: #d3d3d3;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
display: block;
|
||||||
|
margin: 2em auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.diagram {
|
||||||
|
display: block;
|
||||||
|
margin: 2em auto;
|
||||||
|
padding: 1em;
|
||||||
|
border: 1px solid black;
|
||||||
|
|
||||||
|
-moz-box-shadow: 4px 4px 6px #48577D;
|
||||||
|
-webkit-box-shadow: 4px 4px 6px #48577D;
|
||||||
|
box-shadow: 4px 4px 6px #48577D;
|
||||||
|
|
||||||
|
-moz-border-radius: 15px;
|
||||||
|
-webkit-border-radius: 15px;
|
||||||
|
border-radius: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tutorial-nav {
|
||||||
|
margin-left: 175px;
|
||||||
|
color: black;
|
||||||
|
margin-top: 2em;
|
||||||
|
margin-bottom: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tutorial-nav a {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tutorial-nav a:hover {
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clear {
|
||||||
|
clear: both;
|
||||||
|
}
|
239
lib/angular/docs/css/font-awesome.css
vendored
Executable file
|
@ -0,0 +1,239 @@
|
||||||
|
/* Font Awesome
|
||||||
|
the iconic font designed for use with Twitter Bootstrap
|
||||||
|
-------------------------------------------------------
|
||||||
|
The full suite of pictographic icons, examples, and documentation
|
||||||
|
can be found at: http://fortawesome.github.com/Font-Awesome/
|
||||||
|
|
||||||
|
License
|
||||||
|
-------------------------------------------------------
|
||||||
|
The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0:
|
||||||
|
http://creativecommons.org/licenses/by/3.0/ A mention of
|
||||||
|
'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable
|
||||||
|
source code is considered acceptable attribution (most common on the web).
|
||||||
|
If human readable source code is not available to the end user, a mention in
|
||||||
|
an 'About' or 'Credits' screen is considered acceptable (most common in desktop
|
||||||
|
or mobile software).
|
||||||
|
|
||||||
|
Contact
|
||||||
|
-------------------------------------------------------
|
||||||
|
Email: dave@davegandy.com
|
||||||
|
Twitter: http://twitter.com/fortaweso_me
|
||||||
|
Work: http://lemonwi.se co-founder
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
src: url('../font/fontawesome-webfont.eot');
|
||||||
|
src: url('../font/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('../font/fontawesome-webfont.woff') format('woff'), url('../font/fontawesome-webfont.ttf') format('truetype'), url('../font/fontawesome-webfont.svgz#FontAwesomeRegular') format('svg'), url('../font/fontawesome-webfont.svg#FontAwesomeRegular') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
/* sprites.less reset */
|
||||||
|
[class^="icon-"], [class*=" icon-"] {
|
||||||
|
display: inline;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
line-height: inherit;
|
||||||
|
vertical-align: baseline;
|
||||||
|
background-image: none;
|
||||||
|
background-position: 0% 0%;
|
||||||
|
background-repeat: repeat;
|
||||||
|
}
|
||||||
|
li[class^="icon-"], li[class*=" icon-"] {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
/* Font Awesome styles
|
||||||
|
------------------------------------------------------- */
|
||||||
|
[class^="icon-"]:before, [class*=" icon-"]:before {
|
||||||
|
font-family: FontAwesome;
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: inherit;
|
||||||
|
}
|
||||||
|
a [class^="icon-"], a [class*=" icon-"] {
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: inherit;
|
||||||
|
}
|
||||||
|
/* makes the font 33% larger relative to the icon container */
|
||||||
|
.icon-large:before {
|
||||||
|
vertical-align: top;
|
||||||
|
font-size: 1.3333333333333333em;
|
||||||
|
}
|
||||||
|
.btn [class^="icon-"], .btn [class*=" icon-"] {
|
||||||
|
/* keeps button heights with and without icons the same */
|
||||||
|
line-height: .9em;
|
||||||
|
}
|
||||||
|
li [class^="icon-"], li [class*=" icon-"] {
|
||||||
|
display: inline-block;
|
||||||
|
width: 1.25em;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
li .icon-large[class^="icon-"], li .icon-large[class*=" icon-"] {
|
||||||
|
/* 1.5 increased font size for icon-large * 1.25 width */
|
||||||
|
width: 1.875em;
|
||||||
|
}
|
||||||
|
li[class^="icon-"], li[class*=" icon-"] {
|
||||||
|
margin-left: 0;
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
li[class^="icon-"]:before, li[class*=" icon-"]:before {
|
||||||
|
text-indent: -2em;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before {
|
||||||
|
text-indent: -1.3333333333333333em;
|
||||||
|
}
|
||||||
|
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
|
||||||
|
readers do not read off random characters that represent icons */
|
||||||
|
.icon-glass:before { content: "\f000"; }
|
||||||
|
.icon-music:before { content: "\f001"; }
|
||||||
|
.icon-search:before { content: "\f002"; }
|
||||||
|
.icon-envelope:before { content: "\f003"; }
|
||||||
|
.icon-heart:before { content: "\f004"; }
|
||||||
|
.icon-star:before { content: "\f005"; }
|
||||||
|
.icon-star-empty:before { content: "\f006"; }
|
||||||
|
.icon-user:before { content: "\f007"; }
|
||||||
|
.icon-film:before { content: "\f008"; }
|
||||||
|
.icon-th-large:before { content: "\f009"; }
|
||||||
|
.icon-th:before { content: "\f00a"; }
|
||||||
|
.icon-th-list:before { content: "\f00b"; }
|
||||||
|
.icon-ok:before { content: "\f00c"; }
|
||||||
|
.icon-remove:before { content: "\f00d"; }
|
||||||
|
.icon-zoom-in:before { content: "\f00e"; }
|
||||||
|
|
||||||
|
.icon-zoom-out:before { content: "\f010"; }
|
||||||
|
.icon-off:before { content: "\f011"; }
|
||||||
|
.icon-signal:before { content: "\f012"; }
|
||||||
|
.icon-cog:before { content: "\f013"; }
|
||||||
|
.icon-trash:before { content: "\f014"; }
|
||||||
|
.icon-home:before { content: "\f015"; }
|
||||||
|
.icon-file:before { content: "\f016"; }
|
||||||
|
.icon-time:before { content: "\f017"; }
|
||||||
|
.icon-road:before { content: "\f018"; }
|
||||||
|
.icon-download-alt:before { content: "\f019"; }
|
||||||
|
.icon-download:before { content: "\f01a"; }
|
||||||
|
.icon-upload:before { content: "\f01b"; }
|
||||||
|
.icon-inbox:before { content: "\f01c"; }
|
||||||
|
.icon-play-circle:before { content: "\f01d"; }
|
||||||
|
.icon-repeat:before { content: "\f01e"; }
|
||||||
|
|
||||||
|
/* \f020 is not a valid unicode character. all shifted one down */
|
||||||
|
.icon-refresh:before { content: "\f021"; }
|
||||||
|
.icon-list-alt:before { content: "\f022"; }
|
||||||
|
.icon-lock:before { content: "\f023"; }
|
||||||
|
.icon-flag:before { content: "\f024"; }
|
||||||
|
.icon-headphones:before { content: "\f025"; }
|
||||||
|
.icon-volume-off:before { content: "\f026"; }
|
||||||
|
.icon-volume-down:before { content: "\f027"; }
|
||||||
|
.icon-volume-up:before { content: "\f028"; }
|
||||||
|
.icon-qrcode:before { content: "\f029"; }
|
||||||
|
.icon-barcode:before { content: "\f02a"; }
|
||||||
|
.icon-tag:before { content: "\f02b"; }
|
||||||
|
.icon-tags:before { content: "\f02c"; }
|
||||||
|
.icon-book:before { content: "\f02d"; }
|
||||||
|
.icon-bookmark:before { content: "\f02e"; }
|
||||||
|
.icon-print:before { content: "\f02f"; }
|
||||||
|
|
||||||
|
.icon-camera:before { content: "\f030"; }
|
||||||
|
.icon-font:before { content: "\f031"; }
|
||||||
|
.icon-bold:before { content: "\f032"; }
|
||||||
|
.icon-italic:before { content: "\f033"; }
|
||||||
|
.icon-text-height:before { content: "\f034"; }
|
||||||
|
.icon-text-width:before { content: "\f035"; }
|
||||||
|
.icon-align-left:before { content: "\f036"; }
|
||||||
|
.icon-align-center:before { content: "\f037"; }
|
||||||
|
.icon-align-right:before { content: "\f038"; }
|
||||||
|
.icon-align-justify:before { content: "\f039"; }
|
||||||
|
.icon-list:before { content: "\f03a"; }
|
||||||
|
.icon-indent-left:before { content: "\f03b"; }
|
||||||
|
.icon-indent-right:before { content: "\f03c"; }
|
||||||
|
.icon-facetime-video:before { content: "\f03d"; }
|
||||||
|
.icon-picture:before { content: "\f03e"; }
|
||||||
|
|
||||||
|
.icon-pencil:before { content: "\f040"; }
|
||||||
|
.icon-map-marker:before { content: "\f041"; }
|
||||||
|
.icon-adjust:before { content: "\f042"; }
|
||||||
|
.icon-tint:before { content: "\f043"; }
|
||||||
|
.icon-edit:before { content: "\f044"; }
|
||||||
|
.icon-share:before { content: "\f045"; }
|
||||||
|
.icon-check:before { content: "\f046"; }
|
||||||
|
.icon-move:before { content: "\f047"; }
|
||||||
|
.icon-step-backward:before { content: "\f048"; }
|
||||||
|
.icon-fast-backward:before { content: "\f049"; }
|
||||||
|
.icon-backward:before { content: "\f04a"; }
|
||||||
|
.icon-play:before { content: "\f04b"; }
|
||||||
|
.icon-pause:before { content: "\f04c"; }
|
||||||
|
.icon-stop:before { content: "\f04d"; }
|
||||||
|
.icon-forward:before { content: "\f04e"; }
|
||||||
|
|
||||||
|
.icon-fast-forward:before { content: "\f050"; }
|
||||||
|
.icon-step-forward:before { content: "\f051"; }
|
||||||
|
.icon-eject:before { content: "\f052"; }
|
||||||
|
.icon-chevron-left:before { content: "\f053"; }
|
||||||
|
.icon-chevron-right:before { content: "\f054"; }
|
||||||
|
.icon-plus-sign:before { content: "\f055"; }
|
||||||
|
.icon-minus-sign:before { content: "\f056"; }
|
||||||
|
.icon-remove-sign:before { content: "\f057"; }
|
||||||
|
.icon-ok-sign:before { content: "\f058"; }
|
||||||
|
.icon-question-sign:before { content: "\f059"; }
|
||||||
|
.icon-info-sign:before { content: "\f05a"; }
|
||||||
|
.icon-screenshot:before { content: "\f05b"; }
|
||||||
|
.icon-remove-circle:before { content: "\f05c"; }
|
||||||
|
.icon-ok-circle:before { content: "\f05d"; }
|
||||||
|
.icon-ban-circle:before { content: "\f05e"; }
|
||||||
|
|
||||||
|
.icon-arrow-left:before { content: "\f060"; }
|
||||||
|
.icon-arrow-right:before { content: "\f061"; }
|
||||||
|
.icon-arrow-up:before { content: "\f062"; }
|
||||||
|
.icon-arrow-down:before { content: "\f063"; }
|
||||||
|
.icon-share-alt:before { content: "\f064"; }
|
||||||
|
.icon-resize-full:before { content: "\f065"; }
|
||||||
|
.icon-resize-small:before { content: "\f066"; }
|
||||||
|
.icon-plus:before { content: "\f067"; }
|
||||||
|
.icon-minus:before { content: "\f068"; }
|
||||||
|
.icon-asterisk:before { content: "\f069"; }
|
||||||
|
.icon-exclamation-sign:before { content: "\f06a"; }
|
||||||
|
.icon-gift:before { content: "\f06b"; }
|
||||||
|
.icon-leaf:before { content: "\f06c"; }
|
||||||
|
.icon-fire:before { content: "\f06d"; }
|
||||||
|
.icon-eye-open:before { content: "\f06e"; }
|
||||||
|
|
||||||
|
.icon-eye-close:before { content: "\f070"; }
|
||||||
|
.icon-warning-sign:before { content: "\f071"; }
|
||||||
|
.icon-plane:before { content: "\f072"; }
|
||||||
|
.icon-calendar:before { content: "\f073"; }
|
||||||
|
.icon-random:before { content: "\f074"; }
|
||||||
|
.icon-comment:before { content: "\f075"; }
|
||||||
|
.icon-magnet:before { content: "\f076"; }
|
||||||
|
.icon-chevron-up:before { content: "\f077"; }
|
||||||
|
.icon-chevron-down:before { content: "\f078"; }
|
||||||
|
.icon-retweet:before { content: "\f079"; }
|
||||||
|
.icon-shopping-cart:before { content: "\f07a"; }
|
||||||
|
.icon-folder-close:before { content: "\f07b"; }
|
||||||
|
.icon-folder-open:before { content: "\f07c"; }
|
||||||
|
.icon-resize-vertical:before { content: "\f07d"; }
|
||||||
|
.icon-resize-horizontal:before { content: "\f07e"; }
|
||||||
|
|
||||||
|
.icon-bar-chart:before { content: "\f080"; }
|
||||||
|
.icon-twitter-sign:before { content: "\f081"; }
|
||||||
|
.icon-facebook-sign:before { content: "\f082"; }
|
||||||
|
.icon-camera-retro:before { content: "\f083"; }
|
||||||
|
.icon-key:before { content: "\f084"; }
|
||||||
|
.icon-cogs:before { content: "\f085"; }
|
||||||
|
.icon-comments:before { content: "\f086"; }
|
||||||
|
.icon-thumbs-up:before { content: "\f087"; }
|
||||||
|
.icon-thumbs-down:before { content: "\f088"; }
|
||||||
|
.icon-star-half:before { content: "\f089"; }
|
||||||
|
.icon-heart-empty:before { content: "\f08a"; }
|
||||||
|
.icon-signout:before { content: "\f08b"; }
|
||||||
|
.icon-linkedin-sign:before { content: "\f08c"; }
|
||||||
|
.icon-pushpin:before { content: "\f08d"; }
|
||||||
|
.icon-external-link:before { content: "\f08e"; }
|
||||||
|
|
||||||
|
.icon-signin:before { content: "\f090"; }
|
||||||
|
.icon-trophy:before { content: "\f091"; }
|
||||||
|
.icon-github-sign:before { content: "\f092"; }
|
||||||
|
.icon-upload-alt:before { content: "\f093"; }
|
||||||
|
.icon-lemon:before { content: "\f094"; }
|
212
lib/angular/docs/docs-keywords.js
vendored
Normal file
44
lib/angular/docs/docs-scenario.html
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html xmlns:ng="http://angularjs.org">
|
||||||
|
<head>
|
||||||
|
<title>AngularJS Docs E2E Test Runner</title>
|
||||||
|
<script>
|
||||||
|
var production = location.hostname === 'docs.angularjs.org',
|
||||||
|
headEl = document.head,
|
||||||
|
angularVersion = {
|
||||||
|
current: '1.1.2', // rewrite during build
|
||||||
|
stable: '1.0.3'
|
||||||
|
};
|
||||||
|
|
||||||
|
addTag('script', {src: path('angular-scenario.js')}, function() {
|
||||||
|
addTag('script', {src: 'docs-scenario.js'}, function() {
|
||||||
|
angular.scenario.setUpAndRun();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function addTag(name, attributes, callback) {
|
||||||
|
var el = document.createElement(name),
|
||||||
|
attrName;
|
||||||
|
|
||||||
|
for (attrName in attributes) {
|
||||||
|
el.setAttribute(attrName, attributes[attrName]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (callback) {
|
||||||
|
el.onload = callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
headEl.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function path(name) {
|
||||||
|
return production
|
||||||
|
? 'http://code.angularjs.org/' + angularVersion.stable + '/' + name
|
||||||
|
: '../' + name;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
4606
lib/angular/docs/docs-scenario.js
vendored
Normal file
BIN
lib/angular/docs/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
lib/angular/docs/font/fontawesome-webfont.eot
Executable file
175
lib/angular/docs/font/fontawesome-webfont.svg
Executable file
|
@ -0,0 +1,175 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>
|
||||||
|
This is a custom SVG webfont generated by Font Squirrel.
|
||||||
|
Designer : Dave Gandy
|
||||||
|
Foundry : Fort Awesome
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="FontAwesomeRegular" horiz-adv-x="900" >
|
||||||
|
<font-face units-per-em="1000" ascent="750" descent="-250" />
|
||||||
|
<missing-glyph horiz-adv-x="250" />
|
||||||
|
<glyph unicode="
" horiz-adv-x="250" />
|
||||||
|
<glyph horiz-adv-x="0" />
|
||||||
|
<glyph horiz-adv-x="0" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="250" />
|
||||||
|
<glyph unicode="	" horiz-adv-x="250" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="250" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="375" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="751" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="375" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="751" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="250" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="187" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="125" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="125" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="93" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="150" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="41" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="150" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="187" />
|
||||||
|
<glyph unicode="" horiz-adv-x="500" d="M0 0v0v0v0v0z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M3 727q10 23 34 23h675q25 0 35 -23t-8 -41l-298 -298v-313h121q16 0 27 -11t11 -26q0 -16 -11 -27t-27 -11h-375q-15 0 -26 11t-11 27q0 15 11 26t26 11h122v313l-298 298q-18 18 -8 41z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="688" d="M0 112q0 24 11 44.5t30 35.5t45 24t55 9q13 0 24.5 -2t22.5 -5v388l500 144v-525q0 -23 -11 -43.5t-30 -36t-45 -24.5t-55 -9t-54.5 9t-44.5 24.5t-30 36t-11 43.5t11 43.5t30 35.5t44.5 24t54.5 9q24 0 47 -6v248l-312 -90v-377q0 -23 -11 -43.5t-30 -35.5t-45 -24 t-55 -9t-55 9t-45 24t-30 35.5t-11 43.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 437q0 65 24.5 122t67 99.5t99.5 67t122 24.5q64 0 121 -24.5t99.5 -67t67 -99.5t24.5 -122q0 -48 -13.5 -91t-38.5 -81l168 -167q9 -10 9 -23t-9 -22l-44 -44q-9 -9 -22 -9t-22 9l-168 168q-38 -25 -81 -38.5t-91 -13.5q-65 0 -122 24.5t-99.5 67t-67 99t-24.5 121.5z M125 437q0 -39 14.5 -73t40 -59.5t60 -40t73.5 -14.5t73 14.5t59.5 40t40 59.5t14.5 73t-14.5 73t-40 59.5t-59.5 40.5t-73 15t-73.5 -15t-60 -40.5t-40 -59.5t-14.5 -73zM194 437q0 25 9.5 46.5t25.5 37.5t37.5 25.5t46.5 9.5q10 0 16.5 -7t6.5 -17t-6.5 -16.5t-16.5 -6.5 q-30 0 -51 -21t-21 -51q0 -10 -6.5 -16.5t-16.5 -6.5t-17 6.5t-7 16.5z" />
|
||||||
|
<glyph unicode="" d="M0 56v587v32v19q0 23 16.5 39.5t39.5 16.5h19h750h19q23 0 39.5 -16.5t16.5 -39.5v-19v-30v-589q0 -23 -16.5 -39.5t-39.5 -16.5h-788q-23 0 -39.5 16.5t-16.5 39.5zM75 75h750v416q-15 -15 -28 -24q-29 -21 -61 -46t-64 -49q-19 -14 -36.5 -28t-32.5 -25q-3 -2 -6 -4.5 t-7 -5.5q-14 -11 -29.5 -22.5t-33.5 -22t-37.5 -17t-40.5 -6.5q-20 0 -39.5 6.5t-37 17t-33.5 22t-29 22.5q-4 3 -7 5.5t-6 4.5q-15 11 -32.5 25t-36.5 28q-32 24 -64 49t-61 46q-13 9 -28 24v-416zM75 643q0 -14 6 -30t16.5 -32t23 -30t26.5 -24q23 -17 49 -37l52 -38 q26 -20 50 -39t44 -34l22 -17q14 -11 28.5 -21t29 -17.5t27.5 -7.5h1h1q13 0 27.5 7.5t29 17.5t28.5 21l22 17q20 15 44 34t50 39l52 38q26 20 49 37q13 10 26 24t23.5 30t16.5 32t6 30v32h-750v-32z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="846" d="M0 519q0 64 20 108t52.5 71.5t73.5 39.5t83 12q30 0 59 -10t54 -25t45.5 -32.5t35.5 -32.5q15 15 35.5 32.5t45.5 32.5t54 25t59 10q42 0 83 -12t73.5 -39.5t52.5 -71.5t20 -108q0 -44 -16.5 -83.5t-36 -69.5t-37 -48t-18.5 -19l-289 -288q-11 -11 -26 -11t-26 11 l-290 288q-1 1 -18 19t-36.5 48t-36 69.5t-16.5 83.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="787" d="M0.5 465q4.5 13 25.5 16l238 35l106 215q10 20 23.5 20t22.5 -20l107 -215l237 -35q22 -3 26 -16t-11 -28l-172 -168l40 -236q4 -22 -7 -30t-30 3l-213 111l-212 -111q-20 -11 -31 -3t-7 30l41 236l-172 168q-16 15 -11.5 28z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="787" d="M0.5 465q4.5 13 25.5 16l238 34l106 216q9 19 23 19t23 -19l107 -216l237 -34q22 -3 26 -16t-11 -28l-172 -168l40 -236q3 -16 -2 -24.5t-16 -8.5q-7 0 -19 5l-213 112l-212 -112q-12 -5 -19 -5q-11 0 -16 8.5t-3 24.5l41 236l-172 168q-16 15 -11.5 28zM136 421l100 -98 l29 -27l-7 -39l-24 -139l124 66l35 18l35 -18l124 -66l-23 139l-7 39l28 27l101 98l-139 20l-39 6l-18 35l-62 126l-62 -126l-17 -35l-39 -6z" />
|
||||||
|
<glyph unicode="" d="M0 34v7q11 19 19.5 40t17.5 42t19.5 40t25.5 34q7 7 15.5 13.5t19.5 10.5t23.5 5t25.5 3q37 6 77.5 12.5t78.5 12.5q4 17 7 34.5t8 33.5q-8 11 -16 21.5t-15.5 23t-13.5 28.5t-9 37q-2 11 -5 32.5t-6 44t-5.5 41t-2.5 22.5q0 25 10.5 56t33 58t58 45.5t84.5 18.5 t84.5 -18.5t58 -45.5t33 -58t10.5 -56q0 -4 -2.5 -22.5t-5.5 -41t-6 -44t-5 -32.5q-3 -21 -9 -37t-13.5 -28.5t-16 -23t-15.5 -21.5q5 -16 8 -33.5t7 -34.5q38 -6 78.5 -12.5t77.5 -12.5q13 -2 25.5 -3t23.5 -5t19.5 -10.5t15.5 -13.5q15 -15 25.5 -34t19.5 -40t17.5 -42 t19.5 -40v-7q-14 -8 -26.5 -18.5t-30.5 -15.5h-786q-18 5 -30.5 15.5t-26.5 18.5z" />
|
||||||
|
<glyph unicode="" d="M0 56v638q0 23 16.5 39.5t39.5 16.5h788q23 0 39.5 -16.5t16.5 -39.5v-638q0 -23 -16.5 -39.5t-39.5 -16.5h-788q-23 0 -39.5 16.5t-16.5 39.5zM56 75q0 -8 5.5 -13.5t13.5 -5.5h75q8 0 13.5 5.5t5.5 13.5v75q0 8 -5.5 13.5t-13.5 5.5h-75q-8 0 -13.5 -5.5t-5.5 -13.5 v-75zM56 250q0 -8 5.5 -13.5t13.5 -5.5h75q8 0 13.5 5.5t5.5 13.5v75q0 8 -5.5 13.5t-13.5 5.5h-75q-8 0 -13.5 -5.5t-5.5 -13.5v-75zM56 425q0 -8 5.5 -13.5t13.5 -5.5h75q8 0 13.5 5.5t5.5 13.5v75q0 8 -5.5 13.5t-13.5 5.5h-75q-8 0 -13.5 -5.5t-5.5 -13.5v-75zM56 600 q0 -8 5.5 -13.5t13.5 -5.5h75q8 0 13.5 5.5t5.5 13.5v75q0 8 -5.5 13.5t-13.5 5.5h-75q-8 0 -13.5 -5.5t-5.5 -13.5v-75zM225 75q0 -8 5.5 -13.5t13.5 -5.5h412q8 0 13.5 5.5t5.5 13.5v250q0 8 -5.5 13.5t-13.5 5.5h-412q-8 0 -13.5 -5.5t-5.5 -13.5v-250zM225 425 q0 -8 5.5 -13.5t13.5 -5.5h412q8 0 13.5 5.5t5.5 13.5v250q0 8 -5.5 13.5t-13.5 5.5h-412q-8 0 -13.5 -5.5t-5.5 -13.5v-250zM731 75q0 -8 5.5 -13.5t13.5 -5.5h75q8 0 13.5 5.5t5.5 13.5v75q0 8 -5.5 13.5t-13.5 5.5h-75q-8 0 -13.5 -5.5t-5.5 -13.5v-75zM731 250 q0 -8 5.5 -13.5t13.5 -5.5h75q8 0 13.5 5.5t5.5 13.5v75q0 8 -5.5 13.5t-13.5 5.5h-75q-8 0 -13.5 -5.5t-5.5 -13.5v-75zM731 425q0 -8 5.5 -13.5t13.5 -5.5h75q8 0 13.5 5.5t5.5 13.5v75q0 8 -5.5 13.5t-13.5 5.5h-75q-8 0 -13.5 -5.5t-5.5 -13.5v-75zM731 600 q0 -8 5.5 -13.5t13.5 -5.5h75q8 0 13.5 5.5t5.5 13.5v75q0 8 -5.5 13.5t-13.5 5.5h-75q-8 0 -13.5 -5.5t-5.5 -13.5v-75z" />
|
||||||
|
<glyph unicode="" d="M0 38v262q0 16 11 27t27 11h337q16 0 27 -11t11 -27v-262q0 -16 -11 -27t-27 -11h-337q-16 0 -27 11t-11 27zM0 450v263q0 15 11 26t27 11h337q16 0 27 -11t11 -26v-263q0 -16 -11 -26.5t-27 -10.5h-337q-16 0 -27 10.5t-11 26.5zM488 38v262q0 16 10.5 27t26.5 11h338 q15 0 26 -11t11 -27v-262q0 -16 -11 -27t-26 -11h-338q-16 0 -26.5 11t-10.5 27zM488 450v263q0 15 10.5 26t26.5 11h338q15 0 26 -11t11 -26v-263q0 -16 -11 -26.5t-26 -10.5h-338q-16 0 -26.5 10.5t-10.5 26.5z" />
|
||||||
|
<glyph unicode="" d="M0 38v132q0 16 11 26.5t27 10.5h175q15 0 26 -10.5t11 -26.5v-132q0 -16 -11 -27t-26 -11h-175q-16 0 -27 11t-11 27zM0 320v110q0 16 11 26.5t27 10.5h175q15 0 26 -10.5t11 -26.5v-110q0 -16 -11 -27t-26 -11h-175q-16 0 -27 11t-11 27zM0 580v133q0 15 11 26t27 11 h175q15 0 26 -11t11 -26v-133q0 -16 -11 -27t-26 -11h-175q-16 0 -27 11t-11 27zM325 38v132q0 16 11 26.5t27 10.5h175q15 0 26 -10.5t11 -26.5v-132q0 -16 -11 -27t-26 -11h-175q-16 0 -27 11t-11 27zM325 320v110q0 16 11 26.5t27 10.5h175q15 0 26 -10.5t11 -26.5v-110 q0 -16 -11 -27t-26 -11h-175q-16 0 -27 11t-11 27zM325 580v133q0 15 11 26t27 11h175q15 0 26 -11t11 -26v-133q0 -16 -11 -27t-26 -11h-175q-16 0 -27 11t-11 27zM650 38v132q0 16 11 26.5t27 10.5h175q15 0 26 -10.5t11 -26.5v-132q0 -16 -11 -27t-26 -11h-175 q-16 0 -27 11t-11 27zM650 320v110q0 16 11 26.5t27 10.5h175q15 0 26 -10.5t11 -26.5v-110q0 -16 -11 -27t-26 -11h-175q-16 0 -27 11t-11 27zM650 580v133q0 15 11 26t27 11h175q15 0 26 -11t11 -26v-133q0 -16 -11 -27t-26 -11h-175q-16 0 -27 11t-11 27z" />
|
||||||
|
<glyph unicode="" d="M0 38v132q0 16 11 26.5t27 10.5h145q15 0 26 -10.5t11 -26.5v-132q0 -16 -11 -27t-26 -11h-145q-16 0 -27 11t-11 27zM0 320v110q0 16 11 26.5t27 10.5h145q15 0 26 -10.5t11 -26.5v-110q0 -16 -11 -27t-26 -11h-145q-16 0 -27 11t-11 27zM0 580v133q0 15 11 26t27 11 h145q15 0 26 -11t11 -26v-133q0 -16 -11 -27t-26 -11h-145q-16 0 -27 11t-11 27zM295 38v132q0 16 11 26.5t27 10.5h530q15 0 26 -10.5t11 -26.5v-132q0 -16 -11 -27t-26 -11h-530q-16 0 -27 11t-11 27zM295 320v110q0 16 11 26.5t27 10.5h530q15 0 26 -10.5t11 -26.5v-110 q0 -16 -11 -27t-26 -11h-530q-16 0 -27 11t-11 27zM295 580v133q0 15 11 26t27 11h530q15 0 26 -11t11 -26v-133q0 -16 -11 -27t-26 -11h-530q-16 0 -27 11t-11 27z" />
|
||||||
|
<glyph unicode="" d="M0 312.5q0 16.5 11 27.5l85 85q11 11 27.5 11t27.5 -11l178 -178q11 -11 27.5 -11t27.5 11l364 364q11 11 27.5 11t27.5 -11l85 -85q11 -11 11 -27.5t-11 -27.5l-444 -444q-11 -11 -30.5 -19t-35.5 -8h-43q-17 0 -36.5 8t-30.5 19l-257 258q-11 11 -11 27.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 94q0 19 14 33l248 249l-248 244q-14 14 -14 33t14 33l49 49q14 14 33 14t33 -14l246 -246l246 246q14 14 33 14t33 -14l49 -49q14 -14 14 -33t-14 -33l-248 -249l248 -244q14 -14 14 -32.5t-14 -32.5l-49 -50q-14 -14 -33 -14t-33 14l-246 247l-247 -247 q-14 -14 -32.5 -14t-32.5 14l-49 49q-14 14 -14 33z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 437q0 65 24.5 122t67 99.5t99.5 67t122 24.5q64 0 121 -24.5t99.5 -67t67 -99.5t24.5 -122q0 -48 -13.5 -91t-38.5 -81l168 -167q9 -10 9 -23t-9 -22l-44 -44q-9 -9 -22 -9t-22 9l-168 168q-38 -25 -81 -38.5t-91 -13.5q-65 0 -122 24.5t-99.5 67t-67 99t-24.5 121.5z M125 437q0 -39 14.5 -73t40 -59.5t60 -40t73.5 -14.5t73 14.5t59.5 40t40 59.5t14.5 73t-14.5 73t-40 59.5t-59.5 40.5t-73 15t-73.5 -15t-60 -40.5t-40 -59.5t-14.5 -73zM188 422v31q0 7 4.5 11.5t10.5 4.5h78v78q0 6 4.5 10.5t11.5 4.5h31q7 0 11.5 -4.5t4.5 -10.5v-78h78 q16 0 16 -16v-31q0 -16 -16 -16h-78v-78q0 -16 -16 -16h-31q-16 0 -16 16v78h-78q-6 0 -10.5 4.5t-4.5 11.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 437q0 65 24.5 122t67 99.5t99.5 67t122 24.5q64 0 121 -24.5t99.5 -67t67 -99.5t24.5 -122q0 -48 -13.5 -91t-38.5 -81l168 -167q9 -10 9 -23t-9 -22l-44 -44q-9 -9 -22 -9t-22 9l-168 168q-38 -25 -81 -38.5t-91 -13.5q-65 0 -122 24.5t-99.5 67t-67 99t-24.5 121.5z M125 437q0 -39 14.5 -73t40 -59.5t60 -40t73.5 -14.5t73 14.5t59.5 40t40 59.5t14.5 73t-14.5 73t-40 59.5t-59.5 40.5t-73 15t-73.5 -15t-60 -40.5t-40 -59.5t-14.5 -73zM188 422v31q0 7 4.5 11.5t10.5 4.5h219q16 0 16 -16v-31q0 -16 -16 -16h-219q-6 0 -10.5 4.5 t-4.5 11.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="713" d="M0 356q0 89 41 166.5t115 128.5q6 3 14 3q7 -1 12 -8l42 -62q10 -16 -5 -26q-51 -35 -78.5 -88t-27.5 -114q0 -50 19 -94.5t52 -77.5t77.5 -52t94.5 -19q51 0 95.5 19t77.5 52t52 77.5t19 94.5q0 61 -28 114t-79 88q-6 3 -8 12q-1 6 3 14l43 62q5 6 12 7.5t14 -2.5 q73 -51 114.5 -128.5t41.5 -166.5q0 -74 -28 -138.5t-76.5 -113t-113.5 -76.5t-139 -28t-138.5 28t-113 76.5t-76.5 113t-28 138.5zM300 394v337q0 19 19 19h75q8 0 13.5 -5.5t5.5 -13.5v-337q0 -8 -5.5 -13.5t-13.5 -5.5h-75q-19 0 -19 19z" />
|
||||||
|
<glyph unicode="" d="M0 19v127q0 8 5.5 13.5t13.5 5.5h94q8 0 13 -5.5t5 -13.5v-127q0 -8 -5 -13.5t-13 -5.5h-94q-19 0 -19 19zM192 19v212q0 8 5.5 13.5t13.5 5.5h94q8 0 13 -5.5t5 -13.5v-212q0 -8 -5 -13.5t-13 -5.5h-94q-8 0 -13.5 5.5t-5.5 13.5zM384 19v330q0 8 5.5 13.5t13.5 5.5h94 q8 0 13.5 -5.5t5.5 -13.5v-330q0 -8 -5.5 -13.5t-13.5 -5.5h-94q-8 0 -13.5 5.5t-5.5 13.5zM577 19v486q0 8 5 13.5t13 5.5h94q8 0 13.5 -5.5t5.5 -13.5v-486q0 -8 -5.5 -13.5t-13.5 -5.5h-94q-8 0 -13 5.5t-5 13.5zM769 19v712q0 19 19 19h93q19 0 19 -19v-712 q0 -19 -19 -19h-93q-19 0 -19 19z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="748" d="M0 320v111q0 7 7 9q19 5 39.5 8t40.5 5q4 0 8 0.5t9 1.5q5 14 10.5 27.5t12.5 27.5q-12 17 -26.5 36.5t-30.5 37.5q-5 5 0 12q19 23 40 44t44 40q5 5 12 0q11 -11 22.5 -20t23.5 -17q7 -5 14 -10.5t14 -10.5q26 14 55 23q3 28 6 51.5t8 45.5q2 8 9 8h111q9 0 9 -8 q4 -19 6.5 -38t5.5 -39l3 -20q14 -5 27.5 -10t26.5 -13q7 5 13 9.5t12 9.5q13 10 26 19t25 20q6 6 12 -1l11 -11q5 -5 11 -10q15 -14 30 -29.5t29 -32.5q4 -6 0 -12q-13 -15 -26 -32.5t-30 -40.5q15 -29 24 -58q12 -3 24.5 -4.5t25.5 -3.5q11 -2 23.5 -3.5t23.5 -3.5 q7 -2 7 -9v-111q0 -7 -7 -9q-18 -5 -38 -7.5t-40 -4.5q-5 -1 -9.5 -1.5t-9.5 -1.5q-5 -14 -10.5 -27.5t-12.5 -27.5q12 -17 26.5 -36.5t30.5 -37.5q5 -5 0 -12q-38 -47 -84 -84q-5 -5 -12 0q-11 11 -22.5 20t-23.5 17q-7 5 -14 10.5t-14 10.5q-26 -14 -55 -23 q-2 -23 -5.5 -48t-9.5 -49q-2 -8 -9 -8h-111q-7 0 -9 8q-3 19 -5.5 38t-5.5 39l-3 20q-14 5 -27.5 10t-26.5 13q-6 -5 -12.5 -9.5t-12.5 -9.5q-26 -18 -51 -39q-6 -6 -12 1q-5 5 -11 10.5t-11 10.5q-15 14 -30 29.5t-29 32.5q-5 6 0 12q15 18 29 37t27 36q-15 29 -24 58 q-12 3 -24.5 4.5t-24.5 3.5t-24.5 3.5t-23.5 3.5q-7 2 -7 9zM261 375q0 -24 9 -44.5t24.5 -35.5t36 -24t43.5 -9t43.5 9t35.5 24t24 35.5t9 44.5q0 23 -9 43.5t-24 35.5t-35.5 24t-43.5 9t-43.5 -9t-36 -24t-24.5 -35.5t-9 -43.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="648" d="M0 582q0 8 0.5 16t0.5 17q11 6 32.5 10t47 7t52.5 5t49 3q-2 16 -1 32t7 33q1 4 6 11.5t18.5 15t40 13t71.5 5.5t71.5 -5.5t40 -13t18 -15.5t6.5 -12q6 -17 7 -32.5t-1 -31.5q22 -1 49 -3t53 -5t47 -7t32 -10q1 -9 1 -17v-16v-16q0 -8 -1 -17q-10 -6 -30.5 -10t-45.5 -7 t-51 -5t-48 -3t-37 -1.5t-16 -0.5l-95 -1h-13h-28q-19 0 -54 1q-2 0 -16.5 0.5t-36.5 1.5t-48 3t-51 5t-45.5 7t-30.5 10q0 9 -0.5 17t-0.5 16zM67 484q41 -5 84.5 -7.5t75.5 -3.5q9 -1 23 -1h74h73q14 0 23 1q33 1 76.5 3.5t84.5 7.5q-5 -76 -8 -154.5t-7 -154.5 q-1 -19 -1.5 -42.5t-2 -45.5t-6 -40.5t-14.5 -28.5q-12 -11 -42 -14.5t-58 -3.5h-236q-29 0 -58.5 3.5t-41.5 14.5q-10 10 -14.5 28.5t-6 40.5t-2 45.5t-1.5 42.5q-4 76 -7.5 154.5t-7.5 154.5zM147 383q1 -15 1 -28t1 -22q0 -11 1 -19q2 -34 3.5 -68t3.5 -67q1 -8 1 -17 v-20v-12q0 -6 0.5 -14t1.5 -19q1 -8 9.5 -14t13.5 -6q5 -1 10 -1t8 -1h11q5 0 5 19v286q0 8 -5.5 13.5t-13.5 5.5l-33 2q-8 0 -13 -5t-5 -13zM255.5 657q0.5 -6 1.5 -15q9 1 20 1h47l67 -1q1 9 1.5 15t-0.5 11q-11 3 -29.5 4.5t-38.5 1.5t-38.5 -1.5t-29.5 -4.5 q-1 -5 -0.5 -11zM292 94q0 -8 5 -13.5t13 -5.5h28q8 0 13.5 5.5t5.5 13.5v285q0 8 -11 13t-14 5h-15q-3 0 -14 -5t-11 -13v-285zM432 94q0 -19 4 -19h11q3 1 13 1.5t15 0.5q5 1 8.5 6.5t4.5 13.5q0 11 0.5 19t0.5 14q0 7 1 12v20q0 9 1 17q2 33 3 66.5t3 67.5q0 9 1 20 q1 9 1.5 22t1.5 28q0 8 -5 13t-13 5l-33 -2q-8 0 -13 -5.5t-5 -13.5v-286z" />
|
||||||
|
<glyph unicode="" d="M1 384.5q3 11.5 13 19.5l412 338q11 8 24 8t24 -8l126 -104v58q0 19 19 19h112q19 0 19 -19v-180l136 -112q10 -8 13 -19.5t-1 -22.5q-10 -24 -36 -24h-75v-300q0 -16 -10.5 -27t-26.5 -11h-206v225h-188v-225h-206q-16 0 -27 11t-11 27v300h-75q-25 0 -35 24 q-4 11 -1 22.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="600" d="M0 56v638q0 23 16.5 39.5t39.5 16.5h219v-269q0 -23 16.5 -39.5t39.5 -16.5h269v-369q0 -23 -16.5 -39.5t-39.5 -16.5h-488q-23 0 -39.5 16.5t-16.5 39.5zM331 481v266h3l263 -263v-3h-266z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM113 375q0 -54 20.5 -102t56 -83.5t83.5 -56t102 -20.5t102 20.5t84 56t56.5 83.5 t20.5 102t-20.5 102t-56.5 84t-84 56.5t-102 20.5t-102 -20.5t-83.5 -56.5t-56 -84t-20.5 -102zM319 375v150q0 23 16.5 39.5t39.5 16.5t39.5 -16.5t16.5 -39.5v-127l90 -89q17 -17 17 -40t-17 -40q-8 -8 -18.5 -12t-21.5 -4t-21.5 4t-18.5 12l-106 106q-1 1 -1 2t-1 2 q-7 7 -10 14q-4 9 -4 22z" />
|
||||||
|
<glyph unicode="" d="M1 17l290 716q3 7 10.5 12t15.5 5h95l-4 -83h84l-4 83h95q8 0 15.5 -5t10.5 -12l290 -716q3 -7 -0.5 -12t-11.5 -5h-361l-13 250h-126l-13 -250h-361q-8 0 -11.5 5t-0.5 12zM394 389h112l-10 202h-92z" />
|
||||||
|
<glyph unicode="" d="M0 19v300q0 8 5.5 13.5t13.5 5.5h112q8 0 13.5 -5.5t5.5 -13.5v-169h600v169q0 8 5.5 13.5t13.5 5.5h112q8 0 13.5 -5.5t5.5 -13.5v-300q0 -19 -19 -19h-862q-19 0 -19 19zM169 461q3 8 19 8h150v244q0 15 10.5 26t26.5 11h150q16 0 27 -11t11 -26v-244h150q15 0 18 -8 t-8 -19l-246 -247q-11 -11 -27 -11t-27 11l-246 247q-11 11 -8 19z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM113 375q0 -54 20.5 -102t56 -83.5t83.5 -56t102 -20.5t102 20.5t84 56t56.5 83.5 t20.5 102t-20.5 102t-56.5 83.5t-84 56t-102 20.5t-102 -20.5t-83.5 -56t-56 -83.5t-20.5 -102zM206 349q4 10 24 10h79v185q0 8 5.5 13.5t13.5 5.5h94q8 0 13.5 -5.5t5.5 -13.5v-185h79q20 0 24 -10t-10 -24l-136 -136q-9 -9 -23 -9q-13 0 -23 9l-136 136q-14 14 -10 24z " />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM113 375q0 -54 20.5 -102t56 -83.5t83.5 -56t102 -20.5t102 20.5t84 56t56.5 83.5 t20.5 102t-20.5 102t-56.5 83.5t-84 56t-102 20.5t-102 -20.5t-83.5 -56t-56 -83.5t-20.5 -102zM206 401q-4 10 10 24l136 136q10 9 23 9q12 0 23 -9l136 -136q14 -14 10 -24t-24 -10h-79v-185q0 -8 -5.5 -13.5t-13.5 -5.5h-94q-8 0 -13.5 5.5t-5.5 13.5v185h-79 q-20 0 -24 10z" />
|
||||||
|
<glyph unicode="" d="M0 38v282q0 16 4.5 37t10.5 35l139 324q6 14 21.5 24t30.5 10h488q15 0 30.5 -10t21.5 -24l139 -324q6 -14 10.5 -35t4.5 -37v-282q0 -16 -11 -27t-26 -11h-825q-16 0 -27 11t-11 27zM116 339h189l56 -113h187l57 113h179q-1 2 -1 4.5t-1 4.5l-125 290h-414l-125 -291 q-1 -1 -1 -3.5t-1 -4.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM113 375q0 -54 20.5 -102t56 -83.5t83.5 -56t102 -20.5t102 20.5t84 56t56.5 83.5 t20.5 102t-20.5 102t-56.5 84t-84 56.5t-102 20.5t-102 -20.5t-83.5 -56.5t-56 -84t-20.5 -102zM258 220v310q0 9 8 14q8 4 15 0l269 -156q8 -3 8 -13t-8 -13l-269 -156q-4 -2 -8 -2q-3 0 -7 2q-8 5 -8 14z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="747" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5q66 0 127.5 -23t112.5 -65l76 76q16 16 27 11.5t11 -27.5v-217q0 -15 -11 -26q-10 -10 -25 -10l-217 -1q-23 0 -27.5 11.5t11.5 27.5l75 75q-35 26 -75.5 41t-84.5 15q-54 0 -102 -20.5t-83.5 -56.5t-56 -84t-20.5 -102 t20.5 -102t56 -83.5t83.5 -56t102 -20.5q49 0 93.5 17t79.5 47.5t58 72t29 90.5q1 6 7 12q7 5 14 4l75 -10q8 -1 12.5 -7t3.5 -14q-9 -69 -42 -128.5t-83 -103t-113.5 -68.5t-133.5 -25q-78 0 -146 29.5t-119 80.5t-80.5 119t-29.5 146z" />
|
||||||
|
<glyph unicode="" d="M3 160l70 206q4 13 18 20q15 6 28 2l206 -70q21 -7 21.5 -19t-19.5 -22l-95 -47q24 -36 57.5 -63t75.5 -41q51 -18 103 -13.5t97.5 26.5t80.5 61t53 90q2 8 8.5 11t14.5 1l71 -24q17 -7 12 -24q-25 -74 -75 -129t-114.5 -86.5t-139 -37.5t-147.5 19q-63 21 -113.5 62 t-84.5 98l-97 -47q-20 -11 -29.5 -2.5t-1.5 29.5zM95 495q25 73 75 128.5t114.5 87.5t138.5 38t148 -19q63 -22 113 -63t85 -98l97 48q20 10 29.5 1.5t1.5 -29.5l-70 -205q-4 -14 -18 -21q-15 -6 -28 -2l-206 70q-21 7 -21.5 19t19.5 22l95 47q-24 36 -58 63t-76 41 q-51 18 -103 13.5t-97 -26.5t-80 -61t-53 -90q-2 -8 -9 -11t-14 -1l-71 25q-8 2 -11 9t-1 14z" />
|
||||||
|
<glyph unicode="" d="M0 56v638q0 23 16.5 39.5t39.5 16.5h788q23 0 39.5 -16.5t16.5 -39.5v-638q0 -23 -16.5 -39.5t-39.5 -16.5h-788q-23 0 -39.5 16.5t-16.5 39.5zM75 75h750v525h-750v-525zM150 169v37q0 19 19 19h75q8 0 13.5 -5.5t5.5 -13.5v-37q0 -8 -5.5 -13.5t-13.5 -5.5h-75 q-19 0 -19 19zM150 319v37q0 19 19 19h75q8 0 13.5 -5.5t5.5 -13.5v-37q0 -8 -5.5 -13.5t-13.5 -5.5h-75q-19 0 -19 19zM150 469v37q0 19 19 19h75q8 0 13.5 -5.5t5.5 -13.5v-37q0 -8 -5.5 -13.5t-13.5 -5.5h-75q-19 0 -19 19zM338 169v37q0 8 5 13.5t13 5.5h375 q19 0 19 -19v-37q0 -19 -19 -19h-375q-8 0 -13 5.5t-5 13.5zM338 319v37q0 8 5 13.5t13 5.5h375q19 0 19 -19v-37q0 -19 -19 -19h-375q-8 0 -13 5.5t-5 13.5zM338 469v37q0 8 5 13.5t13 5.5h375q19 0 19 -19v-37q0 -19 -19 -19h-375q-8 0 -13 5.5t-5 13.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 56v300q0 23 16.5 40t39.5 17h57v85q0 52 20.5 98t56 80t83.5 54t102 20t102 -20t84 -54t56.5 -80t20.5 -98v-85h56q23 0 39.5 -17t16.5 -40v-300q0 -23 -16.5 -39.5t-39.5 -16.5h-638q-23 0 -39.5 16.5t-16.5 39.5zM225 413h300v85q0 29 -12 54.5t-32 44.5t-47.5 30 t-58.5 11t-58.5 -11t-47.5 -30t-32 -44.5t-12 -54.5v-85z" />
|
||||||
|
<glyph unicode="" d="M0 675q0 31 22 53t53 22t53 -22t22 -53q0 -20 -10 -36.5t-27 -27.5v-592q0 -8 -5.5 -13.5t-13.5 -5.5h-38q-8 0 -13 5.5t-5 13.5v592q-17 11 -27.5 27.5t-10.5 36.5zM150 203v364q0 16 9.5 32t23.5 24q51 27 92 42t70 22q34 8 61 9q33 0 60.5 -5.5t52.5 -14.5t48.5 -21 t48.5 -25q31 -14 71 -16q34 -2 80 7.5t101 42.5q14 8 23 3t9 -21v-365q0 -15 -9 -31.5t-23 -24.5q-55 -33 -101 -42.5t-80 -7.5q-40 2 -71 16q-25 13 -48.5 25t-48.5 21t-52.5 14.5t-60.5 5.5q-27 -1 -61 -9q-29 -7 -70 -22t-92 -43q-14 -8 -23.5 -2t-9.5 22z" />
|
||||||
|
<glyph unicode="" d="M0 356q0 54 18.5 104.5t50 94t75 79.5t93.5 62t104.5 40t108.5 14t108.5 -14t104.5 -40t93.5 -62t75 -79.5t50 -94t18.5 -104.5q0 -87 -36 -165l-13 -28l-81 -12q-13 -49 -52.5 -81t-92.5 -32v-19q0 -8 -5.5 -13.5t-13.5 -5.5h-38q-8 0 -13 5.5t-5 13.5v337q0 8 5 13.5 t13 5.5h38q8 0 13.5 -5.5t5.5 -13.5v-18q42 0 75.5 -21t53.5 -54l19 2q15 43 15 91q0 58 -31 109.5t-80 89.5t-109 60.5t-118 22.5t-118 -22.5t-108.5 -60.5t-79.5 -89.5t-31 -109.5q0 -46 14 -91l19 -2q20 33 53.5 54t75.5 21v18q0 8 5.5 13.5t13.5 5.5h38q8 0 13 -5.5 t5 -13.5v-337q0 -8 -5 -13.5t-13 -5.5h-38q-8 0 -13.5 5.5t-5.5 13.5v19q-53 0 -92.5 32t-52.5 81l-81 12l-13 28q-36 78 -36 165z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="425" d="M0 286v178q0 8 5.5 13.5t13.5 5.5h196l153 153q23 23 39.5 16t16.5 -39v-476q0 -32 -16.5 -39t-39.5 16l-153 153h-196q-8 0 -13.5 5.5t-5.5 13.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="600" d="M0 286v178q0 8 5.5 13.5t13.5 5.5h196l153 153q23 23 39.5 16t16.5 -39v-476q0 -32 -16.5 -39t-39.5 16l-153 153h-196q-8 0 -13.5 5.5t-5.5 13.5zM482 205q-4 15 4 29q39 67 39 141q0 73 -39 141q-8 14 -4 29t18 23t28.5 4t22.5 -18q49 -87 49 -179t-49 -179 q-11 -19 -33 -19q-8 0 -18 5q-14 8 -18 23z" />
|
||||||
|
<glyph unicode="" d="M0 286v178q0 8 5.5 13.5t13.5 5.5h196l153 153q23 23 39.5 16t16.5 -39v-476q0 -32 -16.5 -39t-39.5 16l-153 153h-196q-8 0 -13.5 5.5t-5.5 13.5zM482 205q-4 15 4 29q39 67 39 141q0 73 -39 141q-8 14 -4 29t18 23t28.5 4t22.5 -18q49 -87 49 -179t-49 -179 q-11 -19 -33 -19q-8 0 -18 5q-14 8 -18 23zM603 117q-3 15 5 29q67 105 67 229t-67 229q-8 14 -5 29t17 23t29 5t23 -17q38 -61 58 -129t20 -140t-20 -140t-58 -129q-5 -9 -14 -13.5t-18 -4.5q-11 0 -20 6q-14 8 -17 23zM723.5 30q-2.5 15 5.5 28q48 72 72 152t24 165 t-24 165t-72 152q-8 13 -5.5 28t16.5 24q13 8 28 5t24 -16q54 -81 81 -171.5t27 -186.5t-27 -186.5t-81 -171.5q-12 -17 -32 -17q-11 0 -20 6q-14 9 -16.5 24z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 0v341h341v-341h-341zM0 409v341h341v-341h-341zM68 68h205v205h-205v-205zM68 477h205v205h-205v-205zM136 136v69h69v-69h-69zM136 545v68h69v-68h-69zM409 0v341h204v-68h69v68h68v-205h-205v68h-68v-204h-68zM409 409v341h341v-341h-341zM477 477h205v205h-205 v-205zM545 0v68h68v-68h-68zM545 545v68h68v-68h-68zM682 0v68h68v-68h-68z" />
|
||||||
|
<glyph unicode="" d="M0 0v750h75v-750h-75zM111 0v750h18v-750h-18zM174 0v750h57v-750h-57zM266 0v750h38v-750h-38zM349 0v750h37v-750h-37zM441 0v750h18v-750h-18zM495 0v750h75v-750h-75zM596 0v750h38v-750h-38zM688 0v750h19v-750h-19zM771 0v750h18v-750h-18zM825 0v750h75v-750h-75z " />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 474v218q0 24 17 41t41 17h218q24 0 53 -12t46 -29l358 -358q17 -17 17 -41t-17 -41l-252 -252q-17 -17 -41 -17t-41 17l-358 358q-17 17 -29 46t-12 53zM94 600q0 -23 16.5 -39.5t39.5 -16.5t39.5 16.5t16.5 39.5t-16.5 39.5t-39.5 16.5t-39.5 -16.5t-16.5 -39.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="898" d="M0 475v217q0 24 17 41t41 17h217q24 0 53.5 -11.5t45.5 -29.5l321 -358q16 -17 16.5 -41t-16.5 -41l-252 -251q-17 -17 -41 -17.5t-41 17.5l-320 358q-16 18 -28.5 46.5t-12.5 52.5zM94 600q0 -23 16.5 -39.5t39.5 -16.5t39.5 16.5t16.5 39.5t-16.5 39.5t-39.5 16.5 t-39.5 -16.5t-16.5 -39.5zM379 749h83q24 0 53.5 -12t45.5 -29l321 -358q16 -18 16.5 -41.5t-16.5 -40.5l-252 -251q-17 -17 -41 -17.5t-41 17.5l-6 7l246 245q17 17 16.5 41t-16.5 41l-320 358q-15 16 -40.5 27t-48.5 13z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="835" d="M5 152q1 8 2 15.5t2 16.5q0 5 -2 10t-1 10q1 8 7.5 15.5t12.5 17.5q11 18 22 44t16 45q2 8 -0.5 15t-0.5 13q2 8 8 13.5t10 11.5q5 9 10.5 20.5t10.5 24t8 24.5t4 20t-1 16t0 14q3 8 10 13t12 12q5 6 10.5 17t11 24t9.5 25.5t5 22.5q1 6 -2 12t-1 13t9 14.5t13 15.5 q8 12 14 28.5t14.5 30t22.5 21t38 0.5l-1 -2q15 5 26 5h381q38 0 58 -28q20 -26 9 -63l-138 -442q-9 -31 -38 -52.5t-62 -21.5h-436q-5 0 -10 -1t-9 -6q-6 -10 0 -27q8 -21 29.5 -37t42.5 -16h462q14 0 28 10.5t18 23.5l151 482q2 8 2.5 14.5t-0.5 13.5q20 -7 30 -21 q20 -26 9 -63l-138 -442q-9 -32 -38 -53t-62 -21h-462q-20 0 -39 7t-36 19t-30 28.5t-20 35.5q-12 33 -1 62zM244 469q-5 -19 13 -19h300q8 0 15 5.5t9 13.5l12 37q2 8 -1.5 13.5t-11.5 5.5h-300q-8 0 -15.5 -5.5t-9.5 -13.5zM278 581q-2 -8 1.5 -13t11.5 -5h300q8 0 15 5 t10 13l11 38q2 8 -1.5 13.5t-11.5 5.5h-300q-8 0 -15 -5.5t-10 -13.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="600" d="M0 54v641q0 17 9 30.5t25 20.5q5 2 10 3t11 1h490q5 0 10.5 -1t10.5 -3q16 -7 25 -20.5t9 -30.5v-641q0 -17 -9 -30.5t-25 -19.5q-15 -7 -31.5 -3.5t-27.5 15.5l-207 207l-207 -207q-11 -12 -27.5 -15.5t-31.5 3.5q-16 7 -25 20t-9 30z" />
|
||||||
|
<glyph unicode="" d="M0 19v169q0 23 9 43.5t24.5 35.5t36 24t43.5 9h675q23 0 43.5 -9t35.5 -24t24 -35.5t9 -43.5v-169q0 -19 -19 -19h-862q-19 0 -19 19zM131 94q0 -8 5.5 -13t13.5 -5h600q8 0 13.5 5t5.5 13v19q0 8 -5.5 13.5t-13.5 5.5h-600q-8 0 -13.5 -5.5t-5.5 -13.5v-19zM150 356v357 q0 15 11 26t27 11h318v-187q0 -24 16.5 -40.5t39.5 -16.5h188v-150h-600zM562 563v187l188 -187h-188z" />
|
||||||
|
<glyph unicode="" d="M0 56v525q0 23 16.5 40t39.5 17h179l28 61q9 21 32.5 36t46.5 15h216q23 0 46.5 -15t32.5 -36l28 -61h179q23 0 39.5 -17t16.5 -40v-525q0 -23 -16.5 -39.5t-39.5 -16.5h-788q-23 0 -39.5 16.5t-16.5 39.5zM216 319q0 -49 18.5 -91.5t50 -74.5t74.5 -50.5t91 -18.5 t91 18.5t74.5 50.5t50 74.5t18.5 91.5q0 48 -18.5 91t-50 74.5t-74.5 50t-91 18.5t-91 -18.5t-74.5 -50t-50 -74.5t-18.5 -91zM291 319q0 33 12.5 62t34 50.5t50.5 34t62 12.5t62 -12.5t50.5 -34t34 -50.5t12.5 -62t-12.5 -62t-34 -51t-50.5 -34.5t-62 -12.5t-62 12.5 t-50.5 34.5t-34 51t-12.5 62z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="803" d="M0 0l1 39q5 2 14.5 4t23.5 4q45 9 53 16q8 5 24 33l114 300l135 354h36h26l5 -10l99 -235q16 -38 31 -74t29 -71t25.5 -63.5t20.5 -50.5q6 -14 14 -34t18 -46q11 -32 31 -73q12 -24 17 -28q10 -9 33 -12q12 -1 24 -4.5t26 -8.5q3 -18 3 -27v-5q0 -3 -1 -8q-21 0 -44 1 t-48 3q-26 2 -48.5 3t-42.5 1h-39q-16 0 -26 -1l-97 -5l-28 -1q0 10 0.5 19.5t1.5 18.5l63 13q28 7 33 12q6 4 6 13q0 7 -3 15l-23 56l-44 111l-218 1q-6 -14 -18 -47t-32 -87q-11 -31 -11 -41q0 -13 8 -21q7 -5 19.5 -8.5t30.5 -6.5q7 -2 41 -6v-29q0 -8 -1 -13 q-17 0 -59 2.5t-109 7.5l-24 -4q-21 -4 -40.5 -5.5t-39.5 -1.5h-10zM268 320q66 -1 105.5 -2t51.5 0l14 1q-9 25 -20 54.5t-25 63.5t-25 59.5t-19 42.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="693" d="M0 0l1 46q13 3 33 6q19 3 34 6.5t27 8.5q4 7 6.5 13t3.5 12q3 16 4 39.5t1 54.5l-1 243q-1 19 -1.5 68t-2.5 130q-2 43 -6 53q-2 4 -6 5q-10 7 -34 8q-11 0 -56 6l-2 41l128 3l187 6h22q4 1 8 1h6q3 0 10.5 -0.5t19.5 -0.5h37q45 0 94 -13q9 -2 21 -6.5t26 -12.5 q31 -15 51 -37q22 -23 32 -51q5 -14 7.5 -28.5t2.5 -30.5q0 -35 -16 -63q-15 -28 -46 -51q-8 -6 -26.5 -15t-47.5 -23q87 -20 131 -71q45 -51 45 -115q0 -35 -14 -79q-11 -32 -35 -57q-32 -35 -69 -53q-38 -17 -100 -29q-34 -6 -97 -5l-97 2q-31 1 -67.5 -1t-79.5 -5 q-12 -1 -45.5 -2t-88.5 -3zM262 693q0 -6 0.5 -15.5t1.5 -21.5q1 -25 2 -58.5t0 -77.5v-48v-38q12 -2 25.5 -3t28.5 -1q86 0 130 32t44 110q0 55 -42 91q-41 37 -126 37q-26 0 -64 -7zM266 223l2 -132q0 -8 5 -21q36 -16 69 -16q64 0 107 20q40 19 60 55q9 18 14 40t5 49 q0 55 -21 88q-29 46 -69 61q-39 16 -122 16q-18 0 -30 -1.5t-20 -3.5v-70v-85z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="515" d="M0 0l9 41q6 2 15.5 4.5t22.5 5.5q20 5 34.5 9.5t24.5 9.5q14 19 20 50l14 67l28 131l6 31q11 58 20 87t9 31l15 76l8 31l11 66l4 24v19q-22 11 -72 14q-7 0 -11.5 0.5t-8.5 0.5l10 51l159 -7q15 -1 24 -1h13q17 0 43.5 1t64.5 3q20 2 33.5 3t18.5 1q-1 -5 -1.5 -9.5 t-1.5 -9.5q-2 -5 -4 -11l-3 -14q-24 -8 -54 -15q-32 -8 -51 -15q-6 -16 -12 -43q-3 -12 -4.5 -22t-2.5 -18q-11 -49 -19.5 -86t-13.5 -63l-31 -152l-19 -77l-21 -115l-7 -22v-5q0 -3 1 -8q17 -4 31.5 -6.5t28.5 -4.5q2 0 10.5 -1t22.5 -3q-1 -9 -1.5 -16t-1.5 -13 q-1 -3 -2 -8t-3 -11q-4 0 -7 -0.5t-5 -0.5q-9 -1 -14 -1h-7h-5q-4 0 -9 2q-4 0 -22 2t-51 6l-99 1q-30 0 -88 -6q-19 -2 -31 -3t-18 -1z" />
|
||||||
|
<glyph unicode="" d="M0 562q7 18 17 54t22 90q4 16 6.5 26.5t4.5 15.5h28q2 -3 3 -5l2 -4q14 -28 20 -35q8 -2 63 -2q17 0 32.5 0.5t29.5 0.5l10 1l55 1l104 -1h141l27 5q5 4 13 26l2 6q1 3 3 8l21 1h5q3 0 8 -1q1 -19 0.5 -47.5t0.5 -67.5v-49v-28q0 -7 -0.5 -13.5t-1.5 -11.5 q-10 -4 -18 -5.5t-15 -3.5q-13 25 -26 63q-14 40 -18 45q-6 7 -13 10q-5 2 -30 2h-67h-15q-8 0 -17 -2q-3 -21 -3 -35l1 -74v-163l1 -175v-72q0 -35 5 -57q4 -2 10.5 -4t16.5 -4q2 0 10.5 -2t24.5 -6q13 -5 24 -9q2 -10 2 -16v-9v-5q0 -4 -1 -9h-17q-23 0 -43 1t-37 3 t-46.5 3t-72.5 1q-8 0 -28 -2t-53 -5q-14 -1 -22 -1.5t-12 -0.5q0 5 -0.5 8t-0.5 5l-1 12v5q9 15 39 24q46 13 66 24q2 5 3 12.5t2 15.5q2 33 3 86t0 125l-2 209q-1 44 -1 69.5t-2 35.5q0 4 -3 7q-2 3 -6 3q-8 2 -31 2h-62q-44 0 -58 -10q-20 -14 -59 -75q-11 -17 -17 -17 q-11 6 -17.5 11.5t-9.5 9.5zM675.5 112.5q2.5 6.5 15.5 6.5h59v512h-59q-13 0 -15.5 6.5t6.5 16.5l90 90q7 6 16 6q7 0 15 -6l90 -90q9 -10 6.5 -16.5t-16.5 -6.5h-58v-512h58q14 0 16.5 -6.5t-6.5 -15.5l-90 -91q-8 -6 -16 -6t-15 6l-90 91q-9 9 -6.5 15.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 114q0 9 6 15l91 90q9 10 15.5 7t6.5 -16v-59h512v59q0 13 6.5 16t16.5 -7l90 -90q6 -6 6 -15t-6 -15l-90 -91q-10 -9 -16.5 -6.5t-6.5 16.5v58h-512v-58q0 -14 -6.5 -16.5t-15.5 6.5l-91 91q-6 6 -6 15zM0 602q7 14 16.5 42.5t21.5 71.5q3 13 5.5 21t4.5 13h27 q4 -6 5 -7q13 -23 18 -28q1 0 17.5 -0.5t38.5 -0.5h44h36h60l9 1h53h99h203l26 3q6 5 12 22q1 2 2 4.5t3 6.5h19h14v-92v-39v-22q0 -6 -0.5 -10.5t-1.5 -9.5q-16 -5 -31 -7q-12 18 -25 50q-13 29 -17 36q-6 5 -13 7q-3 1 -20.5 1.5t-41.5 0.5h-50h-48h-14q-8 0 -17 -1 q-1 -9 -1.5 -16t-0.5 -12l2 -217l-1 -58q0 -30 6 -45q6 -3 26 -6q2 0 10 -2t22 -5q7 -2 13 -3.5t11 -3.5q1 -8 1.5 -12.5t0.5 -6.5t-0.5 -5t-0.5 -7h-16q-46 0 -77 3q-32 3 -115 3q-7 0 -26 -1.5t-51 -3.5q-13 -1 -21 -1.5t-12 -0.5q0 8 -1 10v10v4q10 13 36 19q44 10 64 20 q2 4 3 9.5t2 12.5q0 9 0.5 34.5t0.5 58.5t-0.5 69.5t-1 68t-1 52.5t-0.5 23q0 4 -3 6q-1 1 -6 3q-7 1 -29 1h-60q-10 0 -30.5 -0.5t-41.5 -1t-38 -2t-20 -3.5q-20 -12 -57 -60q-10 -14 -16 -14q-11 5 -17 9.5t-9 7.5z" />
|
||||||
|
<glyph unicode="" d="M0 38v56q0 15 11 26t27 11h825q15 0 26 -11t11 -26v-56q0 -16 -11 -27t-26 -11h-825q-16 0 -27 11t-11 27zM0 244v56q0 16 11 27t27 11h525q15 0 26 -11t11 -27v-56q0 -16 -11 -27t-26 -11h-525q-16 0 -27 11t-11 27zM0 450v56q0 16 11 27t27 11h750q15 0 26 -11t11 -27 v-56q0 -16 -11 -26.5t-26 -10.5h-750q-16 0 -27 10.5t-11 26.5zM0 656v57q0 15 11 26t27 11h450q15 0 26 -11t11 -26v-57q0 -15 -11 -26t-26 -11h-450q-16 0 -27 11t-11 26z" />
|
||||||
|
<glyph unicode="" d="M0 38v56q0 15 11 26t27 11h825q15 0 26 -11t11 -26v-56q0 -16 -11 -27t-26 -11h-825q-16 0 -27 11t-11 27zM38 450v56q0 16 10.5 27t26.5 11h750q16 0 27 -11t11 -27v-56q0 -16 -11 -26.5t-27 -10.5h-750q-16 0 -26.5 10.5t-10.5 26.5zM150 244v56q0 16 11 27t27 11h525 q15 0 26 -11t11 -27v-56q0 -16 -11 -27t-26 -11h-525q-16 0 -27 11t-11 27zM188 656v57q0 15 10.5 26t26.5 11h450q16 0 27 -11t11 -26v-57q0 -15 -11 -26t-27 -11h-450q-16 0 -26.5 11t-10.5 26z" />
|
||||||
|
<glyph unicode="" d="M0 38v56q0 15 11 26t27 11h825q15 0 26 -11t11 -26v-56q0 -16 -11 -27t-26 -11h-825q-16 0 -27 11t-11 27zM75 450v56q0 16 11 27t27 11h750q15 0 26 -11t11 -27v-56q0 -16 -11 -26.5t-26 -10.5h-750q-16 0 -27 10.5t-11 26.5zM300 244v56q0 16 11 27t27 11h525 q15 0 26 -11t11 -27v-56q0 -16 -11 -27t-26 -11h-525q-16 0 -27 11t-11 27zM375 656v57q0 15 11 26t27 11h450q15 0 26 -11t11 -26v-57q0 -15 -11 -26t-26 -11h-450q-16 0 -27 11t-11 26z" />
|
||||||
|
<glyph unicode="" d="M0 38v56q0 15 11 26t27 11h825q15 0 26 -11t11 -26v-56q0 -16 -11 -27t-26 -11h-825q-16 0 -27 11t-11 27zM0 244v56q0 16 11 27t27 11h825q15 0 26 -11t11 -27v-56q0 -16 -11 -27t-26 -11h-825q-16 0 -27 11t-11 27zM0 450v56q0 16 11 27t27 11h825q15 0 26 -11t11 -27 v-56q0 -16 -11 -26.5t-26 -10.5h-825q-16 0 -27 10.5t-11 26.5zM0 656v57q0 15 11 26t27 11h825q15 0 26 -11t11 -26v-57q0 -15 -11 -26t-26 -11h-825q-16 0 -27 11t-11 26z" />
|
||||||
|
<glyph unicode="" d="M0 38v56q0 15 11 26t27 11h75q15 0 26 -11t11 -26v-56q0 -16 -11 -27t-26 -11h-75q-16 0 -27 11t-11 27zM0 244v56q0 16 11 27t27 11h75q15 0 26 -11t11 -27v-56q0 -16 -11 -27t-26 -11h-75q-16 0 -27 11t-11 27zM0 450v56q0 16 11 27t27 11h75q15 0 26 -11t11 -27v-56 q0 -16 -11 -26.5t-26 -10.5h-75q-16 0 -27 10.5t-11 26.5zM0 656v57q0 15 11 26t27 11h75q15 0 26 -11t11 -26v-57q0 -15 -11 -26t-26 -11h-75q-16 0 -27 11t-11 26zM225 38v56q0 15 11 26t27 11h600q15 0 26 -11t11 -26v-56q0 -16 -11 -27t-26 -11h-600q-16 0 -27 11 t-11 27zM225 244v56q0 16 11 27t27 11h600q15 0 26 -11t11 -27v-56q0 -16 -11 -27t-26 -11h-600q-16 0 -27 11t-11 27zM225 450v56q0 16 11 27t27 11h600q15 0 26 -11t11 -27v-56q0 -16 -11 -26.5t-26 -10.5h-600q-16 0 -27 10.5t-11 26.5zM225 656v57q0 15 11 26t27 11h600 q15 0 26 -11t11 -26v-57q0 -15 -11 -26t-26 -11h-600q-16 0 -27 11t-11 26z" />
|
||||||
|
<glyph unicode="" d="M0 369v37q0 19 19 19h104v75q0 15 8 18t19 -8l105 -105q8 -8 8 -18q0 -9 -8 -17l-105 -105q-11 -11 -19 -8t-8 19v74h-104q-19 0 -19 19zM300 19v712q0 19 19 19h37q19 0 19 -19v-712q0 -19 -19 -19h-37q-19 0 -19 19zM450 38v56q0 15 11 26t27 11h375q15 0 26 -11 t11 -26v-56q0 -16 -11 -27t-26 -11h-375q-16 0 -27 11t-11 27zM450 244v56q0 16 11 27t27 11h300q15 0 26 -11t11 -27v-56q0 -16 -11 -27t-26 -11h-300q-16 0 -27 11t-11 27zM450 450v56q0 16 11 27t27 11h337q16 0 27 -11t11 -27v-56q0 -16 -11 -26.5t-27 -10.5h-337 q-16 0 -27 10.5t-11 26.5zM450 656v57q0 15 11 26t27 11h262q16 0 27 -11t11 -26v-57q0 -15 -11 -26t-27 -11h-262q-16 0 -27 11t-11 26z" />
|
||||||
|
<glyph unicode="" d="M0 38v56q0 15 11 26t26 11h375q16 0 27 -11t11 -26v-56q0 -16 -11 -27t-27 -11h-375q-15 0 -26 11t-11 27zM0 244v56q0 16 11 27t26 11h300q16 0 27 -11t11 -27v-56q0 -16 -11 -27t-27 -11h-300q-15 0 -26 11t-11 27zM0 450v56q0 16 11 27t26 11h338q15 0 26 -11t11 -27 v-56q0 -16 -11 -26.5t-26 -10.5h-338q-15 0 -26 10.5t-11 26.5zM0 656v57q0 15 11 26t26 11h263q15 0 26 -11t11 -26v-57q0 -15 -11 -26t-26 -11h-263q-15 0 -26 11t-11 26zM525 19v712q0 19 19 19h37q8 0 13.5 -5.5t5.5 -13.5v-712q0 -8 -5.5 -13.5t-13.5 -5.5h-37 q-19 0 -19 19zM637 363q0 8 7 17l106 105q11 11 18.5 8t7.5 -19v-74h105q8 0 13.5 -5.5t5.5 -13.5v-37q0 -8 -5.5 -13.5t-13.5 -5.5h-105v-75q0 -15 -7.5 -18.5t-18.5 7.5l-106 106q-7 9 -7 18z" />
|
||||||
|
<glyph unicode="" d="M-2 113v525q0 23 9 43.5t24.5 35.5t36 24t43.5 9h375q23 0 43.5 -9t36 -24t24.5 -35.5t9 -43.5v-169l251 272q9 9 20 9q5 0 11 -2q18 -8 18 -28v-690q0 -20 -18 -28q-17 -7 -31 7l-251 272v-168q0 -23 -9 -43.5t-24.5 -36t-36 -24.5t-43.5 -9h-375q-23 0 -43.5 9 t-36 24.5t-24.5 36t-9 43.5z" />
|
||||||
|
<glyph unicode="" d="M0 56v638q0 23 16.5 39.5t39.5 16.5h788q23 0 39.5 -16.5t16.5 -39.5v-638q0 -23 -16.5 -39.5t-39.5 -16.5h-788q-23 0 -39.5 16.5t-16.5 39.5zM75 75h750v600h-750v-600zM150 150v51l135 176l92 -76l173 262l200 -207v-206h-600zM150 524q0 32 22 54t54 22q31 0 53 -22 t22 -54q0 -31 -22 -53t-53 -22q-32 0 -54 22t-22 53z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 0l67 204l423 423l137 -137l-423 -423zM140 199q0 -6 5 -11q4 -4 11 -4q6 0 10 4l337 337q10 10 0 21q-5 5 -11 5t-10 -5l-337 -336q-5 -5 -5 -11zM538 675l58 58q17 17 41 17t41 -17l28 -27l27 -28q17 -17 17 -41t-17 -41l-58 -58z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="530" d="M0 485q0 55 21 103t57 84t84 57t103 21t103 -21t84 -57t57 -84t21 -103q0 -40 -12 -75t-30 -67l-179 -311q-18 -32 -44 -32t-44 32l-179 311q-18 32 -30 67.5t-12 74.5zM134 485q0 -27 10 -51t28 -42t42 -28t51 -10t51 10t41.5 28t28 42t10.5 51t-10.5 51t-28 41.5 t-41.5 28t-51 10.5t-51 -10.5t-42 -28t-28 -41.5t-10 -51z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM113 375q0 -54 20.5 -102t56 -83.5t83.5 -56t102 -20.5v525q-54 0 -102 -20.5 t-83.5 -56.5t-56 -84t-20.5 -102z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="531" d="M0 266q0 39 11 75t31 67q10 16 33 47t50.5 72.5t53.5 90.5t42 102q5 17 17.5 24.5t26.5 5.5q15 2 27.5 -5.5t17.5 -24.5q16 -53 42 -102t53.5 -90.5t50.5 -72.5t33 -47q20 -31 31 -67t11 -75q0 -55 -21 -103.5t-57 -84.5t-84.5 -57t-103.5 -21t-103 21t-84 57t-57 84.5 t-21 103.5zM116 207q0 -28 19.5 -47t47.5 -19q27 0 46.5 19t19.5 47q0 18 -10 36q-3 4 -9 11.5t-12.5 18t-13 23t-10.5 25.5q-4 9 -11 7q-9 2 -11 -7q-4 -13 -11 -25.5t-13.5 -23t-12.5 -18t-8 -11.5q-11 -17 -11 -36z" />
|
||||||
|
<glyph unicode="" d="M0 150v450q0 31 12 58.5t32 47.5t47.5 32t58.5 12h525q2 0 5 -0.5t5 -0.5l-93 -93h-442q-23 0 -39.5 -16.5t-16.5 -39.5v-450q0 -23 16.5 -39.5t39.5 -16.5h525q23 0 39.5 16.5t16.5 39.5v217l94 94v-311q0 -31 -12 -58t-32.5 -47.5t-47.5 -32.5t-58 -12h-525 q-31 0 -58.5 12t-47.5 32.5t-32 47.5t-12 58zM308 158l53 161l318 318l108 -108l-318 -318zM423 307q3 -4 8 -4t8 4l250 249q9 9 0 17t-17 0l-249 -249q-9 -9 0 -17zM733 691l45 46q14 14 33 14t32 -14l22 -22l22 -22q13 -14 13.5 -32.5t-13.5 -32.5l-46 -45z" />
|
||||||
|
<glyph unicode="" d="M0 150v450q0 31 12 58.5t32 47.5t47.5 32t58.5 12h408q-3 -15 -3 -31v-25q-80 -10 -151 -38h-254q-23 0 -39.5 -16.5t-16.5 -39.5v-450q0 -23 16.5 -39.5t39.5 -16.5h525q23 0 39.5 16.5t16.5 39.5v54q8 5 15.5 10.5t15.5 13.5l63 62v-140q0 -31 -12 -58t-32.5 -47.5 t-47.5 -32.5t-58 -12h-525q-31 0 -58.5 12t-47.5 32.5t-32 47.5t-12 58zM188 190v18q0 81 27.5 152.5t84.5 125t143.5 84.5t204.5 32v113q0 28 14 34t34 -14l191 -191q13 -12 13 -32q0 -19 -13 -31l-191 -191q-20 -20 -34 -14t-14 34v127q-101 0 -178 -21t-130 -57t-83 -85 t-38 -105q-2 -13 -15 -13q-12 0 -14 13q-2 11 -2 21z" />
|
||||||
|
<glyph unicode="" d="M0 150v450q0 31 12 58.5t32 47.5t47.5 32t58.5 12h525q13 0 25 -3l-91 -91h-459q-23 0 -39.5 -16.5t-16.5 -39.5v-450q0 -23 16.5 -39.5t39.5 -16.5h525q23 0 39.5 16.5t16.5 39.5v159l94 94v-253q0 -31 -12 -58t-32.5 -47.5t-47.5 -32.5t-58 -12h-525q-31 0 -58.5 12 t-47.5 32.5t-32 47.5t-12 58zM188 472q0 16 11 27l48 48q11 11 27 11t27 -11l166 -166l319 320q11 11 27.5 11t27.5 -11l48 -48q11 -11 11 -27t-11 -27l-347 -347l-48 -48q-11 -11 -27 -11t-27 11l-49 48l-192 193q-11 11 -11 27z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 12 8 20l121 120q12 13 21 9t9 -21v-80h169v168h-81q-17 0 -21 9t9 21l120 121q8 8 20 8t20 -8l121 -121q12 -12 8.5 -21t-21.5 -9h-81v-168h169v80q0 17 9 21t21 -9l121 -120q8 -8 8 -20t-8 -20l-121 -120q-12 -13 -21 -9.5t-9 21.5v83h-169v-171h81 q18 0 21.5 -9t-8.5 -21l-121 -121q-8 -8 -20 -8t-20 8l-120 121q-13 12 -9 21t21 9h81v171h-169v-83q0 -17 -9 -21t-21 9l-121 120q-8 8 -8 20z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="525" d="M0 37q0 -15 11 -26t26 -11h75q16 0 27 11t11 26v675q0 16 -11 27t-27 11h-75q-15 0 -26 -11t-11 -27v-675zM150 375q0 13 8 21l319 345q7 9 20 9q3 0 11 -2q17 -9 17 -29v-689q0 -20 -17 -28q-19 -7 -31 7l-319 344q-8 9 -8 22z" />
|
||||||
|
<glyph unicode="" d="M0 37q0 -15 11 -26t26 -11h75q16 0 27 11t11 26v675q0 16 -11 27t-27 11h-75q-15 0 -26 -11t-11 -27v-675zM150 375q0 13 8 21l319 345q7 9 20 9q3 0 11 -2q17 -9 17 -29v-689q0 -20 -17 -28q-19 -7 -31 7l-319 344q-8 9 -8 22zM525 375q0 13 8 21l319 345q7 9 20 9 q3 0 11 -2q17 -9 17 -29v-689q0 -20 -17 -28q-19 -7 -31 7l-319 344q-8 9 -8 22z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 374.5q0 12.5 8 21.5l319 345q7 9 20 9q5 0 11 -3q17 -7 17 -28v-689q0 -20 -17 -28q-18 -8 -31 7l-319 344q-8 9 -8 21.5zM375 374.5q0 12.5 8 21.5l319 345q7 9 20 9q5 0 11 -3q17 -7 17 -28v-689q0 -20 -17 -28q-18 -8 -31 7l-319 344q-8 9 -8 21.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="659" d="M0 34v682q0 19 17 29q18 11 34 0l591 -340q17 -12 17 -30t-17 -30l-591 -340q-8 -5 -17 -5t-17 5q-17 10 -17 29z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 34v682q0 14 10 24t24 10h239q14 0 24 -10t10 -24v-682q0 -14 -10 -24t-24 -10h-239q-14 0 -24 10t-10 24zM443 34v682q0 14 10 24t24 10h239q14 0 24 -10t10 -24v-682q0 -14 -10 -24t-24 -10h-239q-14 0 -24 10t-10 24z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 34v682q0 14 10 24t24 10h682q14 0 24 -10t10 -24v-682q0 -14 -10 -24t-24 -10h-682q-14 0 -24 10t-10 24z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 30v690q0 19 17 28q19 7 31 -7l319 -344q8 -9 8 -22t-8 -22l-319 -344q-8 -9 -20 -9q-3 0 -11 2q-17 8 -17 28zM375 30v690q0 19 17 28q19 7 31 -7l319 -344q8 -9 8 -22t-8 -22l-319 -344q-8 -9 -20 -9q-3 0 -11 2q-17 8 -17 28z" />
|
||||||
|
<glyph unicode="" d="M0 30v690q0 19 17 28q19 7 31 -7l319 -344q8 -9 8 -22t-8 -22l-319 -344q-8 -9 -20 -9q-3 0 -11 2q-17 8 -17 28zM375 30v690q0 19 17 28q19 7 31 -7l319 -344q8 -9 8 -22t-8 -22l-319 -344q-8 -9 -20 -9q-3 0 -11 2q-17 8 -17 28zM750 37q0 -15 11 -26t26 -11h75 q16 0 27 11t11 26v675q0 16 -11 27t-27 11h-75q-15 0 -26 -11t-11 -27v-675z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="525" d="M0 30v690q0 19 17 28q19 7 31 -7l319 -344q8 -9 8 -22t-8 -22l-319 -344q-8 -9 -20 -9q-3 0 -11 2q-17 8 -17 28zM375 37q0 -15 11 -26t26 -11h75q16 0 27 11t11 26v675q0 16 -11 27t-27 11h-75q-15 0 -26 -11t-11 -27v-675z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 34v97q0 14 10 24t24 10h682q14 0 24 -10t10 -24v-97q0 -14 -10 -24t-24 -10h-682q-14 0 -24 10t-10 24zM3 290q-9 21 7 37l341 341q10 10 24 10t24 -10l341 -341q16 -16 7 -37q-8 -21 -31 -21h-682q-23 0 -31 21z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="471" d="M0 373.5q0 18.5 14 32.5l328 329q14 14 33 14t33 -14l49 -49q14 -14 14 -33t-14 -33l-248 -249l248 -244q14 -14 14 -32.5t-14 -32.5l-49 -50q-14 -14 -33 -14t-33 14l-328 329q-14 14 -14 32.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="471" d="M0 95q0 19 14 33l248 248l-248 245q-14 14 -14 32.5t14 32.5l49 50q14 14 33 14t33 -14l328 -329q14 -14 14 -33t-14 -33l-328 -328q-14 -14 -33 -14t-33 14l-49 49q-14 14 -14 33z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM159 338q0 -7 4.5 -11.5t10.5 -4.5h147v-161q0 -7 4.5 -11.5t10.5 -4.5h78 q6 0 10.5 4.5t4.5 11.5v161h147q6 0 10.5 4.5t4.5 11.5v74q0 6 -4.5 10.5t-10.5 4.5h-147v162q0 7 -4.5 11.5t-10.5 4.5h-78q-6 0 -10.5 -4.5t-4.5 -11.5v-162h-147q-6 0 -10.5 -4.5t-4.5 -10.5v-74z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM159 338q0 -7 4.5 -11.5t10.5 -4.5h402q6 0 10.5 4.5t4.5 11.5v74q0 6 -4.5 10.5 t-10.5 4.5h-402q-6 0 -10.5 -4.5t-4.5 -10.5v-74z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 376q0 72 27.5 141t82.5 124t124 82t141 27t141 -27t124 -82t82.5 -124t27.5 -141t-27.5 -141t-82.5 -124t-124 -82.5t-141 -27.5t-141 27.5t-124 82.5t-82.5 124t-27.5 141zM185 240l55 -54q5 -5 11 -5t11 5l114 114l103 -104q5 -5 11 -5t11 5l53 53q11 11 0 22 l-104 103l115 115q11 11 0 22l-55 55q-11 11 -22 0l-114 -115l-104 104q-11 11 -22 0l-52 -53q-5 -5 -5 -11t5 -11l103 -103l-114 -115q-10 -10 0 -22z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM112 351.5q0 -9.5 7 -16.5l150 -150q7 -6 18 -11t21 -5h25q10 0 21 5t18 11l259 259 q7 7 7 16.5t-7 15.5l-50 50q-6 7 -15.5 7t-16.5 -7l-212 -213q-7 -7 -16.5 -7t-15.5 7l-104 104q-7 7 -16.5 7t-15.5 -7l-50 -49q-7 -7 -7 -16.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM250 531l44 -55q6 -4 10 -5q6 0 10 4q8 6 18 11q8 4 18.5 7.5t21.5 3.5 q20 0 33 -10.5t13 -26.5q0 -17 -11.5 -30.5t-28.5 -28.5q-11 -9 -22 -19.5t-20 -24t-15 -30t-6 -37.5v-30q0 -5 4.5 -9.5t9.5 -4.5h77q6 0 10 4.5t4 9.5v25q0 18 12 31t29 28q12 10 24 21.5t21.5 26.5t16 33t6.5 42q0 32 -13 57t-34.5 41.5t-48.5 25t-54 8.5 q-30 0 -53.5 -7.5t-40 -16.5t-25 -17t-9.5 -9q-9 -9 -1 -18zM315 132q0 -5 4.5 -9.5t9.5 -4.5h77q6 0 10 4.5t4 9.5v74q0 14 -14 14h-77q-5 0 -9.5 -4t-4.5 -10v-74z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM269 418q0 -14 14 -14h40v-192h-37q-5 0 -9.5 -4.5t-4.5 -9.5v-66q0 -5 4.5 -9.5 t9.5 -4.5h189q5 0 9.5 4.5t4.5 9.5v66q0 5 -4.5 9.5t-9.5 4.5h-36v271q0 6 -4.5 10t-9.5 4h-142q-14 0 -14 -14v-65zM322 555q0 -6 4.5 -10.5t10.5 -4.5h88q5 0 9.5 4.5t4.5 10.5v77q0 6 -4.5 10t-9.5 4h-88q-6 0 -10.5 -4t-4.5 -10v-77z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 338v75q0 8 5.5 13t13.5 5h80q9 41 29 77.5t48.5 65t65 48.5t77.5 29v80q0 19 19 19h75q8 0 13 -5.5t5 -13.5v-80q41 -9 77.5 -29t65 -48.5t48.5 -65t29 -77.5h80q8 0 13.5 -5t5.5 -13v-75q0 -19 -19 -19h-80q-9 -41 -29 -77.5t-48.5 -65t-65 -48.5t-77.5 -29v-80 q0 -8 -5 -13.5t-13 -5.5h-75q-19 0 -19 19v80q-41 9 -77.5 29t-65 48.5t-48.5 65t-29 77.5h-80q-19 0 -19 19zM178 319q14 -52 51.5 -89.5t89.5 -51.5v85q0 8 5.5 13t13.5 5h75q8 0 13 -5t5 -13v-85q52 14 89.5 51.5t51.5 89.5h-84q-19 0 -19 19v75q0 8 5.5 13t13.5 5h84 q-14 52 -51.5 89.5t-89.5 51.5v-84q0 -8 -5 -13.5t-13 -5.5h-75q-19 0 -19 19v84q-52 -14 -89.5 -51.5t-51.5 -89.5h85q8 0 13 -5t5 -13v-75q0 -8 -5 -13.5t-13 -5.5h-85z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM113 375q0 -54 20.5 -102t56 -83.5t83.5 -56t102 -20.5t102 20.5t84 56t56.5 83.5 t20.5 102t-20.5 102t-56.5 84t-84 56.5t-102 20.5t-102 -20.5t-83.5 -56.5t-56 -84t-20.5 -102zM212 466q0 8 5 14l53 53q6 5 14 5t13 -5l78 -78l78 78q6 5 14 5t13 -5l53 -53q5 -6 5 -14t-5 -13l-78 -78l78 -78q12 -14 0 -27l-53 -53q-14 -12 -27 0l-78 78l-78 -78 q-5 -5 -13 -5t-14 5l-53 53q-12 13 0 27l79 78l-79 78q-5 5 -5 13z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM113 375q0 -54 20.5 -102t56 -83.5t83.5 -56t102 -20.5t102 20.5t84 56t56.5 83.5 t20.5 102t-20.5 102t-56.5 84t-84 56.5t-102 20.5t-102 -20.5t-83.5 -56.5t-56 -84t-20.5 -102zM156 352q0 8 5 13l53 53q5 5 13 5t14 -5l83 -84q13 -12 27 0l158 159q6 5 14 5t13 -5l53 -53q5 -5 5 -13t-5 -14l-192 -192q-6 -5 -15 -9t-17 -4h-55q-8 0 -17 4t-15 9 l-117 117q-5 6 -5 14z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM113 375q0 -39 10.5 -74.5t30.5 -66.5l362 362q-31 20 -66.5 31t-74.5 11 q-54 0 -102 -20.5t-83.5 -56.5t-56 -84t-20.5 -102zM234 154q31 -20 66.5 -30.5t74.5 -10.5q54 0 102 20.5t84 56t56.5 83.5t20.5 102q0 39 -11 74.5t-31 66.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 19 14 33l328 329q14 14 33 14t33 -14l49 -49q14 -14 14 -33t-14 -33l-165 -165h411q20 0 33.5 -13.5t13.5 -33.5v-70q0 -19 -13.5 -32.5t-32.5 -13.5h-412l165 -165q14 -14 14 -33t-14 -33l-49 -49q-14 -14 -33 -14t-33 14l-328 328q-14 14 -14 33z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 341v70q0 19 13.5 32.5t32.5 13.5h412l-165 165q-14 14 -14 33t14 33l49 49q14 14 33 14t33 -14l328 -329q14 -14 14 -32.5t-14 -32.5l-328 -329q-14 -14 -33 -14t-33 14l-49 49q-14 14 -14 33t14 33l165 165h-412q-19 0 -32.5 13.5t-13.5 33.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M-0.5 375q-0.5 19 13.5 33l329 328q14 14 33 14t33 -14l328 -328q14 -14 14 -33t-14 -33l-49 -49q-14 -14 -32.5 -14t-32.5 14l-166 165v-412q0 -19 -13.5 -32.5t-32.5 -13.5h-70q-20 0 -33 13.5t-13 32.5v412l-165 -165q-14 -14 -33 -14t-33 14l-49 49q-14 14 -14.5 33z " />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 374q0 19 14 33l49 49q14 14 33 14t33 -14l165 -165v412q0 19 13.5 32.5t32.5 13.5h70q20 0 33 -13.5t13 -32.5v-412l166 165q14 14 32.5 14t32.5 -14l50 -49q14 -14 14 -33t-14 -33l-329 -328q-14 -14 -33 -14t-33 14l-328 328q-14 14 -14 33z" />
|
||||||
|
<glyph unicode="" d="M0 66q0 102 35 192t106.5 157.5t181 107t259.5 40.5v143q0 35 17.5 42.5t43.5 -17.5l240 -241q17 -16 17 -40q0 -23 -17 -40l-240 -241q-25 -25 -43 -17.5t-18 42.5v161q-128 -1 -225 -27.5t-164 -72t-105 -107t-48 -132.5q-2 -16 -18 -16h-1q-16 0 -18 16q-3 25 -3 50z " />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 42v255q0 26 13 31.5t32 -12.5l81 -81l134 134q6 6 15 6t16 -6l78 -78q6 -7 6 -16t-6 -15l-134 -134l81 -81q19 -19 13 -32t-32 -13h-254q-18 0 -30 12q-13 13 -13 30zM375 475q0 9 6 15l134 134l-81 81q-19 19 -13 32t32 13h254q18 0 30 -12q13 -13 13 -30v-255 q0 -26 -13 -31.5t-32 12.5l-81 81l-134 -133q-6 -7 -15 -7t-16 7l-78 77q-6 7 -6 16z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 99q0 9 6 16l134 133l-81 81q-19 19 -13 32t32 13h254q19 0 30 -12q13 -13 13 -30v-255q0 -26 -13 -31.5t-32 13.5l-81 81l-134 -134q-6 -7 -15 -7t-16 7l-78 78q-6 6 -6 15zM375 417v255q0 26 13 31.5t32 -13.5l81 -81l134 134q6 7 15 7t16 -7l78 -78q6 -6 6 -15 t-6 -16l-134 -133l81 -81q19 -19 13 -32t-32 -13h-254q-20 0 -30 12q-13 13 -13 30z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 340v70q0 19 13.5 32.5t32.5 13.5h248v247q0 20 13 33.5t33 13.5h70q19 0 32.5 -13.5t13.5 -32.5v-248h248q19 0 32.5 -13.5t13.5 -32.5v-70q0 -19 -13.5 -32.5t-32.5 -13.5h-248v-247q0 -20 -13.5 -33.5t-32.5 -13.5h-70q-19 0 -32.5 13.5t-13.5 32.5v248h-247 q-20 0 -33.5 13t-13.5 33z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 340v70q0 19 13.5 32.5t32.5 13.5h658q19 0 32.5 -13.5t13.5 -32.5v-70q0 -19 -13.5 -32.5t-32.5 -13.5h-657q-20 0 -33.5 13t-13.5 33z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="697" d="M1 497q-5 18 5 35l35 61q10 17 28.5 21.5t35.5 -4.5l162 -94v187q0 20 13.5 33.5t33.5 13.5h69q20 0 33.5 -13.5t13.5 -32.5v-188l162 94q17 9 35.5 4.5t28.5 -21.5l34 -61q10 -17 5.5 -35t-21.5 -28l-163 -94l163 -94q17 -10 21.5 -28t-4.5 -35l-35 -61 q-10 -17 -28.5 -21.5t-35.5 4.5l-162 94v-187q0 -20 -13.5 -33.5t-33.5 -13.5h-69q-20 0 -33.5 13.5t-13.5 32.5v188l-162 -94q-17 -10 -35.5 -5t-28.5 22l-35 61q-9 17 -4.5 35t21.5 28l163 94l-163 94q-17 10 -22 28z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 375q0 78 29.5 146t80.5 119t119 80.5t146 29.5t146 -29.5t119 -80.5t80.5 -119t29.5 -146t-29.5 -146t-80.5 -119t-119 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM316 613l6 -347q2 -14 15 -14h76q14 0 14 14l7 347q1 5 -4 10q-3 4 -10 4h-90 q-7 0 -10 -4q-4 -4 -4 -10zM319 125q0 -14 14 -14h85q5 0 9.5 4t4.5 10v82q0 6 -4.5 10t-9.5 4h-85q-14 0 -14 -14v-82z" />
|
||||||
|
<glyph unicode="" d="M0 281v188q0 8 5.5 13.5t13.5 5.5h258q-27 0 -51 10t-42 28t-28.5 42t-10.5 51t10.5 51t28.5 41.5t42 28t51 10.5q29 0 55 -11.5t43 -33.5l75 -97l75 97q17 22 43 33.5t55 11.5q27 0 51 -10.5t42 -28t28.5 -41.5t10.5 -51t-10.5 -51t-28.5 -42t-42 -28t-51 -10h258 q8 0 13.5 -5.5t5.5 -13.5v-188q0 -8 -5.5 -13t-13.5 -5h-56v-207q0 -23 -16.5 -39.5t-39.5 -16.5h-638q-23 0 -39.5 16.5t-16.5 39.5v207h-56q-8 0 -13.5 5t-5.5 13zM220 619q0 -23 17 -39.5t40 -16.5h113l-73 94q-5 5 -15 11.5t-25 6.5q-23 0 -40 -16.5t-17 -39.5zM356 105 q0 -15 11 -26t27 -11h112q16 0 27 11t11 26v383h-188v-383zM509 563h114q23 0 40 16.5t17 39.5t-17 39.5t-40 16.5q-15 0 -25 -6.5t-15 -11.5z" />
|
||||||
|
<glyph unicode="" d="M3 78q9 25 25.5 41.5t33.5 30.5q14 11 24 20.5t13 20.5q1 2 0 5t-5 11q-2 6 -5 13.5t-5 16.5q-12 75 6.5 139t56.5 114.5t91 86.5t111 56q38 14 83.5 16.5t95.5 3.5q28 0 59.5 1t60.5 5.5t53.5 13.5t39.5 25q10 10 18.5 19.5t18 16.5t20.5 11.5t27 4.5q23 0 33 -21 q62 -121 32 -283q-42 -228 -272 -347q-110 -57 -220 -57q-36 0 -72.5 6t-71.5 19q-11 4 -21.5 9.5t-21.5 10.5q-13 8 -26.5 14.5t-22.5 7.5q-5 -1 -11.5 -8t-13 -16.5t-12.5 -19t-10 -15.5q-6 -11 -12 -20t-11 -16q-11 -14 -29 -14h-2q-28 2 -39 17.5t-14 23.5q-13 18 -5 37 zM188.5 253.5q1.5 -15.5 13.5 -26.5q10 -9 24 -9q18 0 28 13q42 48 85.5 82t90.5 54.5t99.5 29t114.5 6.5q15 -2 26.5 9.5t12.5 26.5q0 16 -10.5 27.5t-26.5 11.5q-69 3 -130 -7t-116 -34t-104.5 -63t-97.5 -94q-11 -11 -9.5 -26.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="675" d="M0 214q0 58 30.5 119.5t82.5 111.5q-11 -75 0.5 -120.5t30.5 -71.5q22 -30 53 -44q-24 105 -14 204q4 42 15.5 87.5t34 90t58.5 85.5t89 74q-23 -49 -22 -90t11 -71q11 -35 34 -64q16 -19 30.5 -37.5t25 -42.5t16.5 -56.5t6 -78.5q-9 20 -27 32t-41 12q-32 0 -53.5 -22 t-21.5 -53q0 -16 5.5 -30t17 -25t30 -17t44.5 -6q44 4 77 31q13 12 25.5 29.5t20.5 43t10 60t-5 80.5h-1q52 -50 82.5 -111.5t30.5 -119.5q0 -54 -26.5 -94t-72.5 -66.5t-107 -40t-131 -13.5t-131.5 13.5t-107.5 40t-72.5 66.5t-26.5 94z" />
|
||||||
|
<glyph unicode="" d="M0 352.5q0 21.5 12 40.5q38 61 87 109.5t105.5 82t118.5 51t127 17.5q66 0 128 -17.5t118 -50.5t105 -81.5t88 -110.5q11 -19 11 -40.5t-11 -39.5q-39 -62 -88 -110.5t-105 -81.5t-118 -50.5t-128 -17.5q-65 0 -127 17.5t-118.5 51t-105.5 82t-87 109.5q-12 18 -12 39.5z M75 353q32 -51 73 -93t89 -71t101.5 -45t111.5 -16t111.5 16t101.5 45t89 71t73 93q-39 63 -91.5 110.5t-115.5 76.5q25 -29 39 -65t14 -78q0 -47 -17.5 -87.5t-48.5 -71.5t-72 -48.5t-87 -17.5q-47 0 -87.5 17.5t-71.5 48.5t-48.5 71.5t-17.5 87.5q0 38 12.5 72.5 t33.5 62.5q-57 -29 -106 -74.5t-86 -104.5zM300 397q0 -11 8 -19.5t20 -8.5t20 8.5t8 19.5q0 38 26 64t64 26q12 0 20 8.5t8 19.5q0 12 -8 20t-20 8q-30 0 -57 -11.5t-46.5 -31t-31 -46.5t-11.5 -57z" />
|
||||||
|
<glyph unicode="" d="M0 374.5q0 21.5 12 40.5q38 61 87 109.5t105.5 82t118.5 51t127 17.5q26 0 51.5 -3.5t50.5 -8.5l43 77q4 7 12 9q6 3 14 -1l65 -37q7 -4 9.5 -11.5t-1.5 -14.5l-378 -675q-3 -7 -11 -9q-2 -1 -5 -1t-9 2l-66 37q-7 4 -9 11.5t2 14.5l32 56q-71 33 -131.5 87t-106.5 127 q-12 18 -12 39.5zM75 375q40 -64 93.5 -112t117.5 -77l28 51q-42 31 -67.5 78t-25.5 104q0 38 12.5 72.5t33.5 63.5q-57 -30 -106 -75t-86 -105zM300 419q0 -11 8 -19.5t20 -8.5t20 8.5t8 19.5q0 38 26 64t64 26q12 0 20 8.5t8 19.5q0 12 -8 20t-20 8q-30 0 -57 -11.5 t-46.5 -31t-31 -46.5t-11.5 -57zM453 75l43 78q102 12 186.5 70.5t142.5 151.5q-53 83 -128 138l37 67q45 -32 84 -73t71 -92q11 -19 11 -40.5t-11 -39.5q-78 -124 -191.5 -191.5t-244.5 -68.5zM528 210l139 249q2 -10 3 -19.5t1 -20.5q0 -36 -10.5 -68.5t-29.5 -59.5 t-45.5 -48t-57.5 -33z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="850" d="M5 23.5q-14 23.5 6 56.5l368 637q18 33 46 33q26 0 46 -33l368 -637q19 -33 5.5 -56.5t-51.5 -23.5h-736q-38 0 -52 23.5zM160 113h530l-265 459zM370 434q0 6 4 10t9 4h84q5 0 9 -4t4 -10l-7 -182q0 -12 -13 -12h-70q-13 0 -13 12zM372 189q0 13 13 13h78q13 0 13 -13 l1 -49q0 -13 -13 -13h-78q-13 0 -13 13z" />
|
||||||
|
<glyph unicode="" d="M1 212l34 144q2 8 2 18t-2 18l-34 144q-2 8 2 13.5t12 5.5h45q8 0 17 -4.5t14 -10.5l85 -110q44 9 92 14t94 5h12l-61 283q-2 8 2.5 13t12.5 5h64q8 0 16 -4.5t12 -11.5l164 -285h157q29 0 58 -6.5t51.5 -17t36.5 -24t13 -27.5q1 -14 -13 -27.5t-36.5 -24t-51.5 -17 t-58 -6.5h-158l-163 -283q-4 -7 -12 -11.5t-16 -4.5h-64q-8 0 -12.5 5t-2.5 13l61 281h-12q-46 0 -94 5.5t-92 13.5l-85 -110q-12 -14 -31 -14h-45q-8 0 -12 5t-2 13z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 56v549q0 23 16.5 39.5t39.5 16.5h36v-69q0 -28 19.5 -47.5t47.5 -19.5h15q28 0 48 19.5t20 47.5v69h58v-69q0 -28 19.5 -47.5t47.5 -19.5h16q28 0 47.5 19.5t19.5 47.5v69h58v-69q0 -28 20 -47.5t48 -19.5h15q28 0 47.5 19.5t19.5 47.5v69h36q23 0 39.5 -16.5 t16.5 -39.5v-549q0 -23 -16.5 -39.5t-39.5 -16.5h-638q-23 0 -39.5 16.5t-16.5 39.5zM75 75h600v398h-600v-398zM129 592v128q0 12 9 21t21 9h15q13 0 21.5 -9t8.5 -21v-128q0 -12 -8.5 -20.5t-21.5 -8.5h-15q-12 0 -21 8.5t-9 20.5zM177 158q0 36 20 58.5t43.5 39t43.5 32 t20 36.5q0 20 -11.5 29t-28.5 9q-11 0 -20.5 -4.5t-16.5 -11.5q-4 -4 -7 -8t-6 -9l-34 23q7 14 20 27q11 11 27.5 19t40.5 8q35 0 61 -20.5t26 -58.5q0 -21 -9 -36.5t-23 -28t-30 -22.5t-30 -20t-23.5 -21t-9.5 -25h92v34h42v-73h-185q-1 6 -1.5 12t-0.5 11zM338 592v128 q0 12 8.5 21t20.5 9h16q12 0 21 -9t9 -21v-128q0 -12 -9 -20.5t-21 -8.5h-16q-12 0 -20.5 8.5t-8.5 20.5zM397 330v71h187v-34l-117 -232h-51l107 212q3 8 6 11l3 4v1q-3 0 -5 -1h-13h-75v-32h-42zM546 592v128q0 12 8.5 21t21.5 9h15q12 0 21 -9t9 -21v-128q0 -12 -9 -20.5 t-21 -8.5h-15q-13 0 -21.5 8.5t-8.5 20.5z" />
|
||||||
|
<glyph unicode="" d="M0 122v75q0 19 19 19h107q25 0 48.5 15.5t45.5 41t44 58.5t44 68q27 43 56 85.5t62 75.5t72 53.5t88 20.5h99v90q0 20 12 24t29 -10l163 -135q11 -9 11 -23q0 -13 -11 -22l-163 -136q-17 -14 -29 -10t-12 24v86h-99q-26 0 -49 -15.5t-45.5 -41t-44.5 -58.5t-44 -68 q-27 -44 -55.5 -86t-61.5 -75t-72.5 -53.5t-87.5 -20.5h-107q-8 0 -13.5 5t-5.5 13zM0 541v75q0 8 5.5 13.5t13.5 5.5h107q52 0 93.5 -23.5t76.5 -61.5q-18 -25 -34 -49.5t-31 -47.5q-25 31 -50.5 50t-54.5 19h-107q-8 0 -13.5 5.5t-5.5 13.5zM417 190q17 24 33 48.5 t31 48.5q25 -31 50.5 -50t54.5 -19h99v94q0 20 12 24t29 -10l163 -136q11 -9 11 -22q0 -14 -11 -23l-163 -135q-17 -14 -29 -10t-12 24v82h-99q-53 0 -93.5 23t-75.5 61z" />
|
||||||
|
<glyph unicode="" d="M0 421q0 68 35.5 128t96.5 104.5t143 70.5t175 26t175 -26t143 -70.5t96.5 -104.5t35.5 -128t-35.5 -128t-96.5 -104.5t-143 -70.5t-175 -26q-44 0 -84 6q-42 -32 -90.5 -55t-103.5 -35l-24 -4q-12 -2 -25 -4q-16 -2 -20 14v1q-2 7 3 11l9 10q10 11 19.5 21.5t17 24.5 t14 32.5t11.5 45.5q-81 45 -129 112.5t-48 148.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 311v139q0 8 5.5 13.5t13.5 5.5h187q8 0 13.5 -5.5t5.5 -13.5v-139q0 -13 11 -28t30.5 -28t47 -21.5t61.5 -8.5t61.5 8.5t47 21.5t30.5 28t11 28v139q0 8 5.5 13.5t13.5 5.5h187q8 0 13.5 -5.5t5.5 -13.5v-139q0 -65 -29.5 -121.5t-80.5 -98.5t-119 -66.5t-146 -24.5 t-146 24.5t-119 66.5t-80.5 98.5t-29.5 121.5zM0 544v187q0 19 19 19h187q19 0 19 -19v-187q0 -19 -19 -19h-187q-19 0 -19 19zM525 544v187q0 19 19 19h187q19 0 19 -19v-187q0 -19 -19 -19h-187q-19 0 -19 19z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M-0.5 173.5q-0.5 18.5 13.5 32.5l329 329q14 14 33 14t33 -14l328 -329q14 -14 14 -32.5t-14 -32.5l-49 -50q-14 -14 -33 -14t-33 14l-248 249l-244 -249q-14 -14 -33 -14t-33 14l-49 50q-14 14 -14.5 32.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 448.5q0 18.5 14 32.5l49 50q14 14 33 14t33 -14l248 -249l244 249q14 14 33 14t33 -14l49 -50q14 -14 14.5 -32.5t-13.5 -32.5l-329 -329q-14 -14 -33 -14t-33 14l-328 329q-14 14 -14 32.5z" />
|
||||||
|
<glyph unicode="" d="M1 502.5q-6 14.5 13 34.5l181 199q12 14 30 14t30 -14l181 -199q19 -20 13 -34.5t-32 -14.5h-117v-319h81q4 -5 6.5 -9.5t7.5 -9.5l119 -131h-327q-15 0 -26 11t-11 26v432h-117q-26 0 -32 14.5zM386 731h326q16 0 27 -11t11 -26v-431h117q26 0 32 -15t-13 -35l-181 -199 q-12 -14 -30 -14t-30 14l-181 199q-19 20 -13 35t32 15h117v318h-81q-4 5 -6.5 9.5t-7.5 9.5z" />
|
||||||
|
<glyph unicode="" d="M0 694v37q0 19 19 19h113q8 0 18.5 -2t17.5 -4q3 -2 7 -7t7.5 -11.5t6 -13t3.5 -10.5l13 -61h658q17 0 28 -13t8 -29l-53 -282q-3 -12 -13 -20.5t-24 -8.5h-529l17 -82q2 -8 8.5 -13t14.5 -5h418q8 0 13.5 -5.5t5.5 -13.5v-38q0 -8 -5.5 -13t-13.5 -5h-80h-318h-51 q-8 0 -18 1.5t-17 4.5q-3 1 -7 6.5t-7.5 12t-6 13t-3.5 10.5l-105 496q-2 8 -8.5 13t-14.5 5h-83q-19 0 -19 19zM284 56q0 23 16.5 40t39.5 17q24 0 40.5 -17t16.5 -40t-16.5 -39.5t-40.5 -16.5q-23 0 -39.5 16.5t-16.5 39.5zM602 56q0 23 16.5 40t39.5 17t39.5 -17 t16.5 -40t-16.5 -39.5t-39.5 -16.5t-39.5 16.5t-16.5 39.5z" />
|
||||||
|
<glyph unicode="" d="M0 56v638q0 23 16.5 39.5t39.5 16.5h338q23 0 39.5 -16.5t16.5 -39.5t16.5 -39.5t39.5 -16.5h338q23 0 39.5 -17t16.5 -40v-525q0 -23 -16.5 -39.5t-39.5 -16.5h-788q-23 0 -39.5 16.5t-16.5 39.5z" />
|
||||||
|
<glyph unicode="" d="M0 185v509q0 23 16.5 39.5t39.5 16.5h338q23 0 39.5 -16.5t16.5 -39.5t16.5 -39.5t39.5 -16.5h216q23 0 39.5 -17t16.5 -40v-108h-600q-18 0 -35 -6t-32 -16.5t-26 -25t-17 -31.5zM21 0l120 371q3 11 15 19t23 8h721l-127 -370q-3 -11 -15 -19.5t-23 -8.5h-714z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="375" d="M0.5 187q4.5 11 27.5 11h95v354h-95q-23 0 -27.5 10.5t11.5 26.5l150 151q10 10 26 10q15 0 25 -10l150 -151q16 -15 11.5 -26t-27.5 -11h-95v-354h95q23 0 27.5 -10.5t-11.5 -26.5l-150 -151q-10 -10 -26 -10q-15 0 -25 10l-150 151q-16 15 -11.5 26z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 357q0 15 10 25l151 151q15 15 26 10.5t11 -26.5v-96h354v96q0 22 10.5 26.5t26.5 -11.5l151 -150q10 -10 10 -25t-10 -25l-151 -151q-15 -16 -26 -11t-11 27v96h-354v-96q0 -22 -10.5 -26.5t-26.5 11.5l-151 150q-10 10 -10 25z" />
|
||||||
|
<glyph unicode="" d="M0 56v638q0 23 17 39.5t40 16.5h787q23 0 39.5 -16.5t16.5 -39.5v-638q0 -23 -16.5 -39.5t-39.5 -16.5h-787q-23 0 -40 16.5t-17 39.5zM75 75h750v600h-750v-600zM150 129v177h99v-177h-99zM317 129v379h98v-379h-98zM485 129v289h99v-289h-99zM651 129v450h99v-450h-99z " />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 94v562q0 19 7.5 36.5t20 30t29.5 20t36 7.5h563q39 0 66.5 -27.5t27.5 -66.5v-562q0 -20 -7.5 -37t-20 -29.5t-30 -20t-36.5 -7.5h-563q-19 0 -36 7.5t-29.5 20t-20 29.5t-7.5 37zM98 273q39 -54 97 -82.5t127 -28.5q47 0 90 13t78 36t60.5 55t37.5 70q40 3 63 28 q7 7 2 16q-4 9 -15 7h-2q11 11 15 22q4 10 -4 16q-7 7 -16 1q-4 -2 -14.5 -5t-22.5 -3q-2 0 -3.5 0.5t-3.5 0.5q0 1 -0.5 2t-0.5 2q-8 30 -28 54t-46 35q2 2 3 4t3 4q3 8 0 16q-1 3 -6 8t-17 4q-1 2 -3 4q-6 6 -12 4q-12 -2 -24 -6l-1 1q-7 4 -15 -1q-29 -18 -48 -49 t-33 -66q-17 15 -28 20q-30 17 -63 31t-75 30q-7 2 -12 -2q-5 -3 -7 -10q-1 -13 4 -28.5t19 -30.5q-12 -3 -10 -16q6 -33 33 -49l-6 -6q-7 -7 -2 -16q2 -6 13 -18.5t32 -18.5q-3 -6 -3 -11t1 -7q3 -16 19 -24q-18 -12 -38.5 -16.5t-41.5 -3t-40.5 10t-34.5 22.5q-4 4 -9.5 4 t-9.5 -4q-11 -9 -2 -19z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M1 94v562q0 19 7.5 36.5t20 30t29.5 20t36 7.5h563q39 0 66.5 -27.5t27.5 -66.5v-562q0 -20 -7.5 -37t-20 -29.5t-30 -20t-36.5 -7.5h-237v314h84q6 0 10.5 4t4.5 10l6 82q0 7 -4 12q-5 5 -11 5h-90v36q0 20 5 26.5t26 6.5q12 0 27 -2t29 -5q3 0 6.5 0.5t5.5 2.5 q5 3 7 11l11 79q2 14 -12 17q-44 12 -92 12q-147 0 -147 -143v-41h-50q-16 0 -16 -16v-82q0 -6 4.5 -10.5t11.5 -4.5h50v-314h-192q-19 0 -36 7.5t-29.5 20t-20 29.5t-7.5 37z" />
|
||||||
|
<glyph unicode="" d="M0 56v638q0 23 16.5 39.5t39.5 16.5h788q23 0 39.5 -16.5t16.5 -39.5v-638q0 -23 -16.5 -39.5t-39.5 -16.5h-788q-23 0 -39.5 16.5t-16.5 39.5zM75 78h750v56h-750v-56zM75 559h750v113h-467l-7 -45h-276v-68zM130 655h154v45h-154v-45zM272 346q0 -37 14 -69.5t38 -56.5 t56.5 -38t69.5 -14t69.5 14t56.5 38t38 56.5t14 69.5t-14 69.5t-38 56.5t-56.5 38t-69.5 14t-69.5 -14t-56.5 -38t-38 -56.5t-14 -69.5zM328 346q0 25 9.5 47.5t26 39t39 26t47.5 9.5t47.5 -9.5t39 -26t26 -39t9.5 -47.5t-9.5 -47.5t-26 -39t-39 -26t-47.5 -9.5t-47.5 9.5 t-39 26t-26 39t-9.5 47.5zM363 346q0 -8 6 -14t14 -6q9 0 15 6t6 14q0 20 13.5 33t32.5 13v1q9 0 15 6t6 14q0 9 -6 15t-15 6q-36 0 -61.5 -26t-25.5 -62z" />
|
||||||
|
<glyph unicode="" d="M0.5 391.5q-2.5 52.5 14 108.5t53.5 107q36 51 83.5 85t98 48t99.5 8t90 -35q36 -26 57 -63.5t27.5 -82.5t-1.5 -93.5t-32 -95.5l195 -139l47 65l-49 35q-7 5 -8.5 13t3.5 15l23 32q5 7 13 8.5t15 -3.5l163 -116q7 -5 8 -13t-4 -15l-23 -33q-5 -7 -13 -8.5t-15 3.5 l-48 35l-47 -65l116 -83q20 -14 24.5 -39t-10.5 -45q-14 -20 -38.5 -24t-44.5 10l-376 269q-37 -38 -80.5 -61.5t-88 -31.5t-87 -0.5t-78.5 33.5q-41 29 -62.5 74t-24 97.5zM109 374.5q3 -19.5 13.5 -37t27.5 -29.5t37 -16.5t39.5 -1t37 14t29.5 27.5q17 24 18 53t-12 54 q28 -5 55 5.5t45 35.5q12 17 16.5 37t1 39.5t-14 37t-27.5 29.5t-37 16.5t-39.5 1t-37 -14t-29.5 -27.5q-17 -25 -18.5 -54t12.5 -54q-28 5 -55 -5.5t-45 -35.5q-12 -17 -16 -36.5t-1 -39z" />
|
||||||
|
<glyph unicode="" d="M0 391v84q0 6 5 6q14 4 29.5 6t30.5 4q4 0 7 0.5t7 0.5q6 21 17 42q-9 14 -20 28t-23 28q-5 5 0 9q14 17 30 33.5t33 30.5q6 4 9 -1q8 -8 17 -14.5t18 -13.5l21 -15q21 11 42 17q2 21 4.5 39t6.5 35q0 5 6 5h84q7 0 7 -6q2 -14 4.5 -28.5t4.5 -29.5l2 -15q20 -6 41 -17 q8 7 19 14q10 8 19.5 15t18.5 15q6 4 9 -1q5 -4 9 -8l8 -8l22 -22q12 -12 23 -25q3 -5 0 -9q-10 -11 -20 -24.5t-23 -30.5q6 -11 10.5 -22t8.5 -22q8 -2 17.5 -3t19.5 -3l18 -2q9 -1 17 -3q6 -2 6 -7v-84q0 -5 -5 -7q-14 -3 -29.5 -5t-30.5 -4q-4 0 -14 -2q-6 -20 -17 -41 q9 -14 20 -28t23 -28q4 -5 0 -9q-14 -17 -30 -33.5t-33 -30.5q-6 -4 -9 1q-8 7 -17 14t-18 13q-5 5 -10.5 8.5t-10.5 7.5q-21 -11 -42 -17q-2 -17 -4 -36.5t-7 -37.5q-2 -5 -7 -5h-84q-6 0 -6 5q-3 14 -5 29l-4 30l-2 15q-20 6 -41 17q-5 -4 -9.5 -7t-9.5 -7 q-10 -8 -19.5 -15t-18.5 -15q-6 -4 -9 1q-5 4 -8 8l-9 8q-11 11 -22.5 22t-22.5 25q-4 4 0 8q12 14 22.5 28.5t19.5 27.5q-10 20 -18 44q-8 2 -17.5 3t-19.5 3l-18 2q-9 1 -18 3q-5 2 -5 7zM197 432q0 -35 25 -60t60 -25t60 25t25 60t-25 60t-60 25t-60 -25t-25 -60z M524 188q-2 6 4 8q11 4 21 8t21 8q1 5 1.5 9t2.5 9t3.5 8.5t3.5 8.5q-7 10 -13 19.5t-12 19.5q-3 5 2 8l62 56q4 4 9 1q9 -7 17.5 -14t17.5 -15q18 7 35 8q5 11 10.5 21t10.5 19q3 5 8 3l80 -25q5 -2 5 -8q-2 -11 -4 -21.5t-4 -21.5q8 -6 14 -13t11 -15q12 1 23 1.5t22 0.5 q5 0 7 -5l18 -83q2 -5 -4 -7q-11 -5 -21 -8.5t-21 -7.5q-1 -5 -1.5 -9t-2.5 -9t-3.5 -8.5t-3.5 -7.5q7 -10 13.5 -19.5t11.5 -19.5q2 -5 -2 -8l-62 -57q-4 -4 -9 0q-8 7 -17 14t-17 14q-20 -7 -37 -8q-5 -11 -10 -21t-10 -19q-3 -5 -8 -3l-80 25q-5 2 -5 8q2 11 3.5 22 t3.5 22q-14 12 -24 27q-12 -2 -23.5 -2.5t-22.5 0.5q-5 0 -7 5zM560 607q0 5 5 7q10 2 20 4.5t20 4.5q2 4 3 8t3 8t4.5 7t4.5 7q-5 10 -9 19.5t-8 18.5q-2 4 2 8l64 42q5 3 8 -1q8 -7 14.5 -14.5t13.5 -15.5q16 3 33 3q12 18 24 33q3 3 8 2l69 -34q5 -3 3 -8 q-2 -10 -5.5 -19t-6.5 -19q10 -13 18 -29q11 -1 21.5 -1.5t20.5 -2.5q5 -2 5 -6l5 -77q0 -4 -5 -6q-10 -2 -19.5 -4.5t-20.5 -4.5q-2 -4 -3 -7.5t-3 -7.5q-3 -7 -8 -14q5 -10 9 -19.5t8 -18.5q2 -5 -3 -8l-63 -42q-5 -3 -8 1q-13 12 -28 30q-8 -2 -16.5 -3t-17.5 0 q-6 -9 -12 -17.5t-12 -16.5q-3 -3 -8 -1l-69 34q-5 2 -3 7q3 10 6 19.5t7 19.5q-6 6 -10.5 13t-8.5 15q-11 1 -21.5 1.5t-20.5 2.5q-5 0 -5 6zM658 203q-7 -22 3.5 -42.5t33.5 -27.5q22 -8 42.5 2.5t27.5 33.5q8 22 -2.5 42.5t-33.5 28.5q-22 7 -42.5 -3.5t-28.5 -33.5z M681 564q7 -20 26 -30q20 -9 40 -2.5t29 25.5q10 20 3 40t-26 29q-19 10 -39 3t-30 -26t-3 -39z" />
|
||||||
|
<glyph unicode="" d="M0 483q0 55 29 103.5t78.5 85t116 57.5t142.5 21t142.5 -21t116 -57.5t78 -85t28.5 -103.5q0 -56 -28.5 -104.5t-78 -84.5t-116 -57t-142.5 -21q-18 0 -35 1.5t-34 3.5q-34 -26 -73 -45t-84 -29q-20 -5 -40 -6q-12 -2 -16 11v1q-2 5 1.5 9t7.5 8q17 17 30 37t21 64 q-66 36 -105 91t-39 121zM305 136q8 4 12 7q13 -2 25 -2h24q93 0 173 26.5t139.5 72.5t93.5 108.5t34 134.5q0 19 -3 39q45 -36 71 -81.5t26 -98.5q0 -66 -39 -120.5t-105 -91.5q8 -44 21 -63.5t30 -36.5q4 -5 7.5 -9t1.5 -9q-1 -6 -6 -9.5t-10 -2.5q-11 2 -20.5 3.5 t-19.5 3.5q-88 19 -157 73q-17 -2 -34 -3.5t-35 -1.5q-66 0 -123.5 16t-105.5 45z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="783" d="M0.5 222q-1.5 56 2 112t12.5 105q45 3 94 3t90 -10q6 -38 10 -91t5.5 -110t0.5 -111t-5 -94q-18 -2 -41.5 -2.5t-49 0.5t-50 1.5t-44.5 0.5q-10 38 -16.5 89t-8 107zM91 101q0 -16 11 -27t27 -11t26.5 11t10.5 27q0 15 -10.5 26t-26.5 11t-27 -11t-11 -26zM240 412 q22 10 35.5 19.5t24.5 21t22.5 26t30.5 34.5q16 16 28.5 26.5t23 20t19 20t17.5 25.5q16 29 21 65t13 68q0 7 7 11q19 3 35 -3.5t28 -17.5t19.5 -26t10.5 -28q6 -33 -1.5 -59.5t-19 -50.5t-22 -46.5t-11.5 -47.5q21 -9 51.5 -9.5t63.5 1t64 1.5t52 -8.5t28.5 -29t-5.5 -59.5 q0 -2 -2.5 -5.5t-5 -8t-4.5 -8.5l-2 -3q11 -11 16 -23t5 -20q1 -39 -32 -68q10 -15 11 -31.5t-4 -31.5t-14.5 -26.5t-21.5 -17.5q6 -34 -6 -58t-35.5 -38.5t-56.5 -20.5t-69 -6t-72.5 5t-67.5 14q-20 6 -39 14t-38.5 15t-41 11t-45.5 0q2 39 2.5 85t-1 93.5t-4.5 92.5t-7 82 z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="783" d="M1 452q-1 21 7.5 37.5t24.5 30.5q-9 15 -10 31.5t3.5 31.5t14 26.5t21.5 17.5q-6 34 6 58t35.5 38.5t56.5 20.5t69 6t72.5 -5t67.5 -14q20 -6 39 -14t38.5 -15t41 -10.5t45.5 0.5q-2 -39 -2.5 -85.5t1 -94t4 -92.5t7.5 -82q-22 -10 -35.5 -19.5t-24 -21t-22.5 -26 t-31 -33.5q-15 -17 -27.5 -27.5t-23 -20t-19.5 -19.5t-18 -26q-16 -29 -20.5 -65t-13.5 -68q0 -8 -7 -11q-20 -3 -35.5 3.5t-27.5 17.5t-19.5 25.5t-10.5 28.5q-6 33 1.5 59.5t19 50.5t22 47t11.5 48q-21 9 -51.5 9t-63.5 -1.5t-63.5 -1.5t-52 8.5t-29 29t5.5 59.5 q1 1 3.5 5.5t5 8.5t3.5 8l2 3q-11 11 -16 23t-5 20zM568 630q1 54 5 94q18 2 42 2.5t49.5 0t50 -1.5t44.5 -1q10 -38 16 -89t7.5 -106.5t-2 -112t-12.5 -105.5q-45 -3 -93.5 -3t-90.5 10q-6 38 -10 91t-5.5 110t-0.5 111zM617 650q0 -16 11 -27t27 -11q15 0 26 11t11 27 q0 15 -11 26t-26 11q-16 0 -27 -11t-11 -26z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="393" d="M0.5 465q4.5 13 25.5 16l238 34l106 216q9 19 23 19v-633l-212 -112q-20 -10 -31 -2t-7 30l41 236l-172 168q-16 15 -11.5 28z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="846" d="M0 519q0 64 20.5 108t53 71.5t73.5 39.5t82 12q30 0 59 -10t54 -25t45.5 -32.5t35.5 -32.5q15 15 36 32.5t46 32.5t53.5 25t58.5 10q42 0 83 -12t73.5 -39.5t52.5 -71.5t20 -108q0 -44 -16.5 -83.5t-36 -69.5t-37 -48t-18.5 -19l-288 -288q-13 -11 -27 -11q-15 0 -26 11 l-290 288q-1 1 -18 19t-36.5 48t-36 69.5t-16.5 83.5zM75 519q0 -32 13 -61.5t29 -53t29 -37.5l14 -14l263 -263l263 262q1 1 14 15t29 37.5t29 53t13 61.5q0 48 -14 78.5t-36.5 48t-50 23.5t-53.5 6q-25 0 -50.5 -12t-48 -29t-40 -34.5t-26.5 -28.5q-11 -14 -29 -14t-29 14 q-9 11 -26.5 28.5t-40 34.5t-48 29t-50.5 12q-26 0 -53.5 -6t-50 -23.5t-36.5 -48t-14 -78.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="825" d="M0 150v450q0 31 12 58t32.5 47.5t47.5 32.5t58 12h225v-94h-225q-23 0 -39.5 -16.5t-16.5 -39.5v-450q0 -23 16.5 -39.5t39.5 -16.5h225v-94h-225q-31 0 -58 12t-47.5 32.5t-32.5 47.5t-12 58zM248 285v180q0 16 11 26.5t27 10.5h209v143q0 20 19 28q19 7 32 -7l270 -270 q9 -9 9 -21.5t-9 -20.5l-270 -270q-9 -9 -21 -9q-5 0 -11 2q-19 8 -19 28v142h-209q-16 0 -27 11t-11 27z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 94v562q0 19 7.5 36.5t20 30t29.5 20t37 7.5h562q39 0 66.5 -27.5t27.5 -66.5v-562q0 -20 -7.5 -37t-20 -29.5t-30 -20t-36.5 -7.5h-562q-39 0 -66.5 27.5t-27.5 66.5zM101 582q0 -28 19.5 -47.5t46.5 -19.5q28 0 47.5 19.5t19.5 47.5q0 27 -19.5 46.5t-47.5 19.5 q-27 0 -46.5 -19.5t-19.5 -46.5zM104 117q0 -5 4.5 -9.5t9.5 -4.5h98q6 0 10 4.5t4 9.5v345q0 14 -14 14h-98q-5 0 -9.5 -4t-4.5 -10v-345zM283 117q0 -5 4.5 -9.5t9.5 -4.5h98q6 0 10 4.5t4 9.5v187q0 28 8 47q15 31 55 31q32 0 42 -19q7 -11 7 -35v-211q0 -5 4 -9.5 t10 -4.5h100q6 0 10 4.5t4 9.5v233q0 72 -42 104q-40 31 -103 31q-50 0 -85 -23q-4 -3 -13 -12v12q0 14 -14 14h-95q-5 0 -9.5 -4t-4.5 -10v-345z" />
|
||||||
|
<glyph unicode="" d="M1 461q4 38 21 80.5t47 82.5t65.5 68.5t71.5 43t68.5 14t56.5 -18.5q25 -18 34.5 -49.5t5.5 -70.5l141 -105q52 29 101.5 33.5t84.5 -21.5q25 -19 37.5 -50.5t11.5 -70.5t-14.5 -83.5t-39.5 -88.5l201 -193q5 -5 6 -12t-4 -12q-5 -8 -15 -8q-3 0 -9 2l-242 138 q-35 -37 -73.5 -63t-75.5 -38t-71 -9.5t-60 22.5q-35 26 -45 74.5t4 106.5l-141 106q-36 -15 -69 -15t-58 18q-24 18 -34 49.5t-6 69.5zM80 417.5q1 -7.5 8 -12.5q8 -7 22 -7q15 0 31.5 8t33.5 22t33.5 31.5t31.5 37.5q5 6 4 13.5t-8 12.5q-6 5 -13.5 4t-12.5 -8 q-37 -49 -65.5 -67.5t-34.5 -16.5q-6 5 -13.5 4t-12.5 -8q-5 -6 -4 -13.5zM219 368l170 -127q6 -4 11 -4q10 0 15 8q5 6 4 13.5t-7 12.5l-163 121q-15 -14 -30 -24zM393 141q-10 -16 4 -27q13 -10 33 -10q19 0 41 10t44.5 27t44.5 39t41 47q5 7 4 14.5t-8 12.5 q-6 5 -13.5 3.5t-12.5 -7.5q-24 -32 -48 -54.5t-45 -35.5t-36.5 -17t-22.5 2q-6 5 -13.5 3.5t-12.5 -7.5z" />
|
||||||
|
<glyph unicode="" d="M0 150v450q0 31 12 58.5t32 47.5t47.5 32t58.5 12h284q-1 -7 -2 -13.5t-1 -14.5v-43q0 -11 3 -23h-284q-23 0 -39.5 -16.5t-16.5 -39.5v-450q0 -23 16.5 -39.5t39.5 -16.5h525q23 0 39.5 16.5t16.5 39.5v166q20 -15 44 -24t50 -10v-132q0 -31 -12 -58t-32.5 -47.5 t-47.5 -32.5t-58 -12h-525q-31 0 -58.5 12t-47.5 32.5t-32 47.5t-12 58zM338 255q0 12 8 20l376 377h-131q-12 0 -20 8t-8 20v42q-1 11 7.5 19.5t20.5 8.5h281q11 0 19.5 -8.5t8.5 -19.5v-42v-239q0 -12 -8.5 -20.5t-19.5 -7.5h-42q-12 0 -20 8t-8 20v131l-377 -376 q-8 -8 -20 -8t-20 8l-39 39q-8 8 -8 20z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="825" d="M0 285v180q0 16 11 26.5t27 10.5h209v143q0 20 18 28q19 7 33 -7l270 -270q8 -9 8 -21.5t-8 -20.5l-270 -270q-9 -9 -21 -9q-4 0 -12 2q-18 8 -18 28v142h-209q-16 0 -27 11t-11 27zM450 0v94h225q23 0 39.5 16.5t16.5 39.5v450q0 23 -16.5 39.5t-39.5 16.5h-225v94h225 q31 0 58 -12t47.5 -32t32.5 -47.5t12 -58.5v-450q0 -31 -12 -58t-32.5 -47.5t-47.5 -32.5t-58 -12h-225z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="825" d="M0 509v91q0 16 11 26.5t27 10.5h158q-1 6 -1 13v11v2q0 26 2 43t7.5 26.5t15.5 13.5t27 4h331q16 0 26.5 -4t16 -13.5t7.5 -26.5t2 -43v-13q0 -6 -1 -13h158q16 0 27 -10.5t11 -26.5v-91q0 -31 -22 -64t-59.5 -62.5t-88 -52t-108.5 -31.5q-25 -5 -44.5 -20.5t-19.5 -34.5 q0 -17 8.5 -25t19 -15t19.5 -15.5t11 -25.5q2 -11 -1 -23q-2 -7 11.5 -11.5t33 -9t40 -11t31.5 -16.5q6 -5 9.5 -19.5t4.5 -31.5q1 -16 -3 -28.5t-14 -12.5h-481q-10 0 -14 12.5t-3 28.5q1 17 4.5 31.5t9.5 19.5q11 10 31 16.5t39.5 11t33.5 9t12 11.5t-2 12v11 q1 17 10.5 25.5t20.5 15.5t19.5 15t8.5 25q0 19 -19.5 34.5t-45.5 20.5q-57 10 -107.5 32.5t-88 51.5t-59.5 62t-22 64zM75 509q0 -10 11.5 -26.5t33 -34.5t52 -35t68.5 -29q-12 39 -21.5 85.5t-16.5 92.5h-127v-53zM585 384q38 12 68.5 29t52 35t33 34.5t11.5 26.5v53h-128 q-6 -46 -15.5 -92.5t-21.5 -85.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="750" d="M0 94v562q0 19 7.5 36.5t20 30t29.5 20t37 7.5h562q39 0 66.5 -27.5t27.5 -66.5v-562q0 -20 -7.5 -37t-20 -29.5t-30 -20t-36.5 -7.5h-562q-39 0 -66.5 27.5t-27.5 66.5zM94 321q0 -44 11 -82.5t41.5 -67t85.5 -45t143 -16.5t142.5 16.5t85.5 45t42 67t11 82.5 q0 73 -46 127q4 16 5 36t-1.5 39t-7.5 36t-12 29h-14q-42 -2 -74 -22t-63 -37l-7 1q-8 0 -18.5 1t-22 1.5t-20.5 0.5q-18 0 -35 -1t-33 -3q-31 17 -63 37t-74 22h-14q-8 -12 -12.5 -29t-7 -36t-1.5 -39t5 -36q-46 -54 -46 -127zM183 289q15 60 84 67q13 2 27 1.5t30 -1.5 q7 0 25.5 -1t25.5 -1t25.5 1t25.5 1q16 1 30 1.5t26 -1.5q70 -7 85 -67q8 -33 -3 -61.5t-24 -41.5q-20 -20 -66 -32t-99 -12t-99 12t-66 32q-13 13 -24 41.5t-3 61.5zM242 265q0 -23 11 -39t27 -16t27 16t11 39t-11 38.5t-27 15.5t-27 -15.5t-11 -38.5zM432 265 q0 -23 11 -39t27 -16t27 16t11 39t-11 38.5t-27 15.5t-27 -15.5t-11 -38.5z" />
|
||||||
|
<glyph unicode="" d="M0 19v300q0 8 5.5 13.5t13.5 5.5h112q8 0 13.5 -5.5t5.5 -13.5v-169h600v169q0 8 5.5 13.5t13.5 5.5h112q8 0 13.5 -5.5t5.5 -13.5v-300q0 -19 -19 -19h-862q-19 0 -19 19zM169 473.5q-3 7.5 8 18.5l246 247q11 11 27 11t27 -11l247 -247q11 -11 7.5 -18.5t-18.5 -7.5 h-150v-244q0 -16 -11 -27t-27 -11h-150q-16 0 -26.5 11t-10.5 27v244h-150q-16 0 -19 7.5z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="786" d="M1 251q-1 17 0.5 33.5t3.5 36.5q2 17 3.5 35t4.5 32q7 32 15 62.5t22 57.5q10 20 22 39.5t26 38.5q5 7 10.5 12t11.5 10l22 22q11 11 24 21t28 18t32 16q16 8 33 14.5t35 13.5q34 14 76 25l1 1q22 6 41.5 8.5t38.5 2.5q29 0 55 -4.5t52 -9.5q20 -4 41.5 -7.5t45.5 -3.5h1 q14 0 30.5 2.5t32.5 2.5q12 0 22 -3t16 -12q11 -15 12.5 -35t-0.5 -37t-4 -34.5t1 -35.5q2 -11 5.5 -19t7.5 -18q4 -9 5.5 -19.5t3.5 -20.5q9 -51 7.5 -95.5t-11.5 -83t-27.5 -72.5t-39.5 -65q-18 -24 -38.5 -47.5t-45 -44.5t-54 -38t-65.5 -29q-37 -13 -77.5 -16.5 t-77.5 -5.5h-15q-51 0 -95 8t-94 8h-2q-17 0 -37.5 -5t-40.5 -6h-1q-18 0 -32 8.5t-21 20.5q-10 17 -8.5 35.5t6.5 33.5t5 32.5t-2.5 37t-6 39.5t-4.5 40z" />
|
||||||
|
<glyph unicode="" horiz-adv-x="1000" />
|
||||||
|
</font>
|
||||||
|
</defs></svg>
|
After Width: | Height: | Size: 72 KiB |
BIN
lib/angular/docs/font/fontawesome-webfont.svgz
Executable file
BIN
lib/angular/docs/font/fontawesome-webfont.ttf
Executable file
BIN
lib/angular/docs/font/fontawesome-webfont.woff
Executable file
BIN
lib/angular/docs/img/AngularJS-small.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
lib/angular/docs/img/One_Way_Data_Binding.png
Normal file
After Width: | Height: | Size: 32 KiB |
BIN
lib/angular/docs/img/Two_Way_Data_Binding.png
Normal file
After Width: | Height: | Size: 49 KiB |
BIN
lib/angular/docs/img/angular_parts.png
Normal file
After Width: | Height: | Size: 57 KiB |
BIN
lib/angular/docs/img/bullet.png
Executable file
After Width: | Height: | Size: 212 B |
BIN
lib/angular/docs/img/form_data_flow.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
lib/angular/docs/img/glyphicons-halflings-white.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
lib/angular/docs/img/glyphicons-halflings.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
lib/angular/docs/img/guide/about_model_final.png
Normal file
After Width: | Height: | Size: 54 KiB |
BIN
lib/angular/docs/img/guide/about_view_final.png
Normal file
After Width: | Height: | Size: 232 KiB |
BIN
lib/angular/docs/img/guide/concepts-controller.png
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
lib/angular/docs/img/guide/concepts-directive.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
lib/angular/docs/img/guide/concepts-model.png
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
lib/angular/docs/img/guide/concepts-module-injector.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
lib/angular/docs/img/guide/concepts-runtime.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
lib/angular/docs/img/guide/concepts-scope.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
lib/angular/docs/img/guide/concepts-startup.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
lib/angular/docs/img/guide/concepts-view.png
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
lib/angular/docs/img/guide/di_sequence_final.png
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
lib/angular/docs/img/guide/dom_scope_final.png
Normal file
After Width: | Height: | Size: 122 KiB |
BIN
lib/angular/docs/img/guide/hashbang_vs_regular_url.jpg
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
lib/angular/docs/img/guide/scenario_runner.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
lib/angular/docs/img/guide/simple_scope_final.png
Normal file
After Width: | Height: | Size: 117 KiB |
BIN
lib/angular/docs/img/helloworld.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
lib/angular/docs/img/helloworld_2way.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
lib/angular/docs/img/tutorial/catalog_screen.png
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
lib/angular/docs/img/tutorial/tutorial_00.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
lib/angular/docs/img/tutorial/tutorial_00_final.png
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
lib/angular/docs/img/tutorial/tutorial_02.png
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
lib/angular/docs/img/tutorial/tutorial_03.png
Normal file
After Width: | Height: | Size: 122 KiB |
BIN
lib/angular/docs/img/tutorial/tutorial_04.png
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
lib/angular/docs/img/tutorial/tutorial_07_final.png
Normal file
After Width: | Height: | Size: 196 KiB |
BIN
lib/angular/docs/img/tutorial/tutorial_08-09_final.png
Normal file
After Width: | Height: | Size: 209 KiB |
BIN
lib/angular/docs/img/tutorial/tutorial_10-11_final.png
Normal file
After Width: | Height: | Size: 205 KiB |
BIN
lib/angular/docs/img/tutorial/xhr_service_final.png
Normal file
After Width: | Height: | Size: 141 KiB |
339
lib/angular/docs/index-debug.html
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
<!doctype html>
|
||||||
|
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 8]> <html class="no-js lt-ie9 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if gt IE 8]><!--> <html class="no-js ng-app: docsApp;" lang="en" ng-controller="DocsController"> <!--<![endif]-->
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="Description"
|
||||||
|
content="AngularJS is what HTML would have been, had it been designed for building web-apps.
|
||||||
|
Declarative templates with data-binding, MVC, dependency injection and great
|
||||||
|
testability story all implemented with pure client-side JavaScript!">
|
||||||
|
<meta name="fragment" content="!">
|
||||||
|
<title ng-bind-template="AngularJS: {{partialTitle}}">AngularJS</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// dynamically add base tag as well as css and javascript files.
|
||||||
|
// we can't add css/js the usual way, because some browsers (FF) eagerly prefetch resources
|
||||||
|
// before the base attribute is added, causing 404 and terribly slow loading of the docs app.
|
||||||
|
(function() {
|
||||||
|
var indexFile = (location.pathname.match(/\/(index[^\.]*\.html)/) || ['', ''])[1],
|
||||||
|
rUrl = /(#!\/|api|guide|misc|tutorial|cookbook|index[^\.]*\.html).*$/,
|
||||||
|
baseUrl = location.href.replace(rUrl, indexFile),
|
||||||
|
jQuery = /index-jq[^\.]*\.html$/.test(baseUrl),
|
||||||
|
debug = /index[^\.]*-debug\.html$/.test(baseUrl),
|
||||||
|
production = location.hostname === 'docs.angularjs.org',
|
||||||
|
headEl = document.getElementsByTagName('head')[0],
|
||||||
|
sync = true,
|
||||||
|
angularVersion = {
|
||||||
|
current: '1.1.2', // rewrite during build
|
||||||
|
stable: '1.0.3'
|
||||||
|
};
|
||||||
|
|
||||||
|
addTag('base', {href: baseUrl});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/bootstrap.min.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/font-awesome.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/docs.css', type: 'text/css'});
|
||||||
|
if (jQuery) addTag('script', {src: debug ? 'js/jquery.js' : 'js/jquery.min.js'});
|
||||||
|
addTag('script', {src: path('angular.js')}, sync);
|
||||||
|
addTag('script', {src: path('angular-resource.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-cookies.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-sanitize.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap-prettify.js') }, sync);
|
||||||
|
addTag('script', {src: 'js/docs.js'}, sync);
|
||||||
|
addTag('script', {src: 'docs-keywords.js'}, sync);
|
||||||
|
|
||||||
|
function path(name) {
|
||||||
|
if (production) {
|
||||||
|
if (name.match(/^angular(-\w+)?\.js/) && !name.match(/bootstrap/)) {
|
||||||
|
name = '//ajax.googleapis.com/ajax/libs/angularjs/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
} else {
|
||||||
|
name = 'http://code.angularjs.org/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
return '../' + name.replace(/\.js$/, debug ? '.js' : '.min.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
function addTag(name, attributes, sync) {
|
||||||
|
var el = document.createElement(name),
|
||||||
|
attrName;
|
||||||
|
|
||||||
|
for (attrName in attributes) {
|
||||||
|
el.setAttribute(attrName, attributes[attrName]);
|
||||||
|
}
|
||||||
|
|
||||||
|
sync ? document.write(outerHTML(el)) : headEl.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
function outerHTML(node){
|
||||||
|
// if IE, Chrome take the internal method otherwise build one
|
||||||
|
return node.outerHTML || (
|
||||||
|
function(n){
|
||||||
|
var div = document.createElement('div'), h;
|
||||||
|
div.appendChild(n);
|
||||||
|
h = div.innerHTML;
|
||||||
|
div = null;
|
||||||
|
return h;
|
||||||
|
})(node);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
// force page reload when new update is available
|
||||||
|
window.applicationCache && window.applicationCache.addEventListener('updateready', function(e) {
|
||||||
|
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
|
||||||
|
window.applicationCache.swapCache();
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
|
// GA asynchronous tracker
|
||||||
|
var _gaq = _gaq || [];
|
||||||
|
_gaq.push(['_setAccount', 'UA-8594346-3']);
|
||||||
|
_gaq.push(['_setDomainName', '.angularjs.org']);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="http://angularjs.org" style="padding-top: 6px; padding-bottom: 0px;">
|
||||||
|
<img class="AngularJS-small" src="http://angularjs.org/img/AngularJS-small.png">
|
||||||
|
</a>
|
||||||
|
<ul class="nav">
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li><a href="http://angularjs.org"><i class="icon-home icon-white"></i> Home</a></li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-eye-open icon-white"></i> Learn <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li class="disabled"><a href="http://angularjs.org/">Why AngularJS?</a></li>
|
||||||
|
<li><a href="http://www.youtube.com/user/angularjs">Watch</a></li>
|
||||||
|
<li><a href="tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://builtwith.angularjs.org/">Case Studies</a></li>
|
||||||
|
<li><a href="misc/faq">FAQ</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown active">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-book icon-white"></i> Develop <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://docs.angularjs.org/tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/guide/">Developer Guide</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/api/">API Reference</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/misc/contribute">Contribute</a></li>
|
||||||
|
<li><a href="http://code.angularjs.org/">Download</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-comment icon-white"></i> Discuss <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://groups.google.com/group/angular">Mailing List</a></li>
|
||||||
|
<li><a href="http://webchat.freenode.net/?channels=angularjs&uio=d4">Chat Room</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://twitter.com/#!/angularjs">Twitter</a></li>
|
||||||
|
<li><a href="https://plus.google.com/110323587230527980117">Google+</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js">GitHub</a></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js/issues">Issue Tracker</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
</ul>
|
||||||
|
<form class="navbar-search pull-right" method="GET" action="https://www.google.com/search">
|
||||||
|
<input type="text" name="as_q" class="search-query" placeholder="Search">
|
||||||
|
<input type="hidden" name="as_sitesearch" value="angularjs.org">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div role="main" class="container">
|
||||||
|
<div class="row clear-navbar"></div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span12">
|
||||||
|
<!--[if lt IE 7]>
|
||||||
|
<p class="alert alert-error">Your browser is <em>ancient!</em>
|
||||||
|
<a href="http://browsehappy.com/">Upgrade to a different browser</a> or
|
||||||
|
<a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to
|
||||||
|
experience this site.
|
||||||
|
</p>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<div class="alert">
|
||||||
|
You are using an old version of Internet Explorer.
|
||||||
|
For better and safer browsing experience please <a href="http://www.microsoft.com/IE9">upgrade IE</a>
|
||||||
|
or install <a href="http://google.com/chrome">Google Chrome browser</a>.
|
||||||
|
</div>
|
||||||
|
<![endif]-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span3">
|
||||||
|
<form class="well form-search" ng-submit="submitForm()">
|
||||||
|
<div class="dropdown search"
|
||||||
|
ng-class="{open: focused && bestMatch.rank > 0 && bestMatch.page != currentPage}">
|
||||||
|
<input type="text" ng-model="search" placeholder="search the docs"
|
||||||
|
tabindex="1" accesskey="s" class="input-medium search-query" focused="focused">
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li>
|
||||||
|
<a href="{{bestMatch.page.url}}">{{bestMatch.page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div ng-show="search">Filtered results:</div>
|
||||||
|
|
||||||
|
<ul class="nav nav-list" ng-hide="page">
|
||||||
|
<li ng-repeat="page in pages" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<ul class="nav nav-list well" ng-repeat="module in modules">
|
||||||
|
<li class="nav-header module">
|
||||||
|
<a class="guide" href="{{URL.module}}">module</a>
|
||||||
|
<a class="code" href="{{module.url}}">{{module.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.directives">
|
||||||
|
<a href="{{URL.directive}}" class="guide">directive</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.directives" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.filters">
|
||||||
|
<a href="{{URL.filter}}" class="guide">filter</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.filters" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.services">
|
||||||
|
<a href="{{URL.service}}" class="guide">service</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="service in module.services" ng-class="navClass(service.instance, service.provider)">
|
||||||
|
<a ng-show="service.provider" class="pull-right" href="{{service.provider.url}}" tabindex="2"><i class="icon-cog"></i></a>
|
||||||
|
<a href="{{service.instance.url}}" tabindex="2">{{service.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.types">
|
||||||
|
<a href="{{URL.type}}" class="guide">Types</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.types" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.globals">
|
||||||
|
<a href="{{URL.api}}" class="global guide">global APIs</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.globals" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.id}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="span9">
|
||||||
|
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
<li ng-repeat="crumb in breadcrumb">
|
||||||
|
<span ng-hide="crumb.url">{{crumb.name}}</span>
|
||||||
|
<a ng-show="crumb.url" href="{{crumb.url}}">{{crumb.name}}</a>
|
||||||
|
<span ng-show="crumb.url" class="divider">/</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="loading" ng-show="loading">Loading...</div>
|
||||||
|
|
||||||
|
<div ng-hide="loading" ng-include src="currentPage.partialUrl" onload="afterPartialLoaded()" autoscroll class="content"></div>
|
||||||
|
|
||||||
|
<div id="disqus" class="disqus">
|
||||||
|
<h2>Discussion</h2>
|
||||||
|
<div id="disqus_thread" class="content-panel-content"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="fader" ng-show="subpage" style="display: none"></div>
|
||||||
|
<div id="subpage" ng-show="subpage" style="display: none">
|
||||||
|
<div>
|
||||||
|
<h2>Would you like full offline support for this AngularJS Docs App?</h2>
|
||||||
|
<a ng-click="subpage=false">✕</a>
|
||||||
|
<p>
|
||||||
|
If you want to be able to access the entire AngularJS documentation offline, click the
|
||||||
|
button below. This will reload the current page and trigger background downloads of all the
|
||||||
|
necessary files (approximately 3.5MB). The next time you load the docs, the browser will
|
||||||
|
use these cached files.
|
||||||
|
<br><br>
|
||||||
|
This feature is supported on all modern browsers, except for IE9 which lacks application
|
||||||
|
cache support.
|
||||||
|
</p>
|
||||||
|
<button id="cacheButton" ng-click="enableOffline()">Let me have them all!</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<p class="pull-right"><a href="#">Back to top</a></p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Super-powered by Google ©2010-2012
|
||||||
|
( <a id="version"
|
||||||
|
ng-href="https://github.com/angular/angular.js/blob/master/CHANGELOG.md#{{versionNumber}}"
|
||||||
|
ng-bind-template="v{{version}}">
|
||||||
|
</a>
|
||||||
|
<!-- TODO(i): enable
|
||||||
|
<a ng-hide="offlineEnabled" ng-click ="subpage = true">(enable offline support)</a>
|
||||||
|
<span ng-show="offlineEnabled">(offline support enabled)</span>
|
||||||
|
-->
|
||||||
|
)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Code licensed under the
|
||||||
|
<a href="https://github.com/angular/angular.js/blob/master/LICENSE" target="_blank">The
|
||||||
|
MIT License</a>. Documentation licensed under <a
|
||||||
|
href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
339
lib/angular/docs/index-jq-debug.html
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
<!doctype html>
|
||||||
|
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 8]> <html class="no-js lt-ie9 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if gt IE 8]><!--> <html class="no-js ng-app: docsApp;" lang="en" ng-controller="DocsController"> <!--<![endif]-->
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="Description"
|
||||||
|
content="AngularJS is what HTML would have been, had it been designed for building web-apps.
|
||||||
|
Declarative templates with data-binding, MVC, dependency injection and great
|
||||||
|
testability story all implemented with pure client-side JavaScript!">
|
||||||
|
<meta name="fragment" content="!">
|
||||||
|
<title ng-bind-template="AngularJS: {{partialTitle}}">AngularJS</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// dynamically add base tag as well as css and javascript files.
|
||||||
|
// we can't add css/js the usual way, because some browsers (FF) eagerly prefetch resources
|
||||||
|
// before the base attribute is added, causing 404 and terribly slow loading of the docs app.
|
||||||
|
(function() {
|
||||||
|
var indexFile = (location.pathname.match(/\/(index[^\.]*\.html)/) || ['', ''])[1],
|
||||||
|
rUrl = /(#!\/|api|guide|misc|tutorial|cookbook|index[^\.]*\.html).*$/,
|
||||||
|
baseUrl = location.href.replace(rUrl, indexFile),
|
||||||
|
jQuery = /index-jq[^\.]*\.html$/.test(baseUrl),
|
||||||
|
debug = /index[^\.]*-debug\.html$/.test(baseUrl),
|
||||||
|
production = location.hostname === 'docs.angularjs.org',
|
||||||
|
headEl = document.getElementsByTagName('head')[0],
|
||||||
|
sync = true,
|
||||||
|
angularVersion = {
|
||||||
|
current: '1.1.2', // rewrite during build
|
||||||
|
stable: '1.0.3'
|
||||||
|
};
|
||||||
|
|
||||||
|
addTag('base', {href: baseUrl});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/bootstrap.min.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/font-awesome.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/docs.css', type: 'text/css'});
|
||||||
|
if (jQuery) addTag('script', {src: debug ? 'js/jquery.js' : 'js/jquery.min.js'});
|
||||||
|
addTag('script', {src: path('angular.js')}, sync);
|
||||||
|
addTag('script', {src: path('angular-resource.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-cookies.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-sanitize.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap-prettify.js') }, sync);
|
||||||
|
addTag('script', {src: 'js/docs.js'}, sync);
|
||||||
|
addTag('script', {src: 'docs-keywords.js'}, sync);
|
||||||
|
|
||||||
|
function path(name) {
|
||||||
|
if (production) {
|
||||||
|
if (name.match(/^angular(-\w+)?\.js/) && !name.match(/bootstrap/)) {
|
||||||
|
name = '//ajax.googleapis.com/ajax/libs/angularjs/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
} else {
|
||||||
|
name = 'http://code.angularjs.org/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
return '../' + name.replace(/\.js$/, debug ? '.js' : '.min.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
function addTag(name, attributes, sync) {
|
||||||
|
var el = document.createElement(name),
|
||||||
|
attrName;
|
||||||
|
|
||||||
|
for (attrName in attributes) {
|
||||||
|
el.setAttribute(attrName, attributes[attrName]);
|
||||||
|
}
|
||||||
|
|
||||||
|
sync ? document.write(outerHTML(el)) : headEl.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
function outerHTML(node){
|
||||||
|
// if IE, Chrome take the internal method otherwise build one
|
||||||
|
return node.outerHTML || (
|
||||||
|
function(n){
|
||||||
|
var div = document.createElement('div'), h;
|
||||||
|
div.appendChild(n);
|
||||||
|
h = div.innerHTML;
|
||||||
|
div = null;
|
||||||
|
return h;
|
||||||
|
})(node);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
// force page reload when new update is available
|
||||||
|
window.applicationCache && window.applicationCache.addEventListener('updateready', function(e) {
|
||||||
|
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
|
||||||
|
window.applicationCache.swapCache();
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
|
// GA asynchronous tracker
|
||||||
|
var _gaq = _gaq || [];
|
||||||
|
_gaq.push(['_setAccount', 'UA-8594346-3']);
|
||||||
|
_gaq.push(['_setDomainName', '.angularjs.org']);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="http://angularjs.org" style="padding-top: 6px; padding-bottom: 0px;">
|
||||||
|
<img class="AngularJS-small" src="http://angularjs.org/img/AngularJS-small.png">
|
||||||
|
</a>
|
||||||
|
<ul class="nav">
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li><a href="http://angularjs.org"><i class="icon-home icon-white"></i> Home</a></li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-eye-open icon-white"></i> Learn <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li class="disabled"><a href="http://angularjs.org/">Why AngularJS?</a></li>
|
||||||
|
<li><a href="http://www.youtube.com/user/angularjs">Watch</a></li>
|
||||||
|
<li><a href="tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://builtwith.angularjs.org/">Case Studies</a></li>
|
||||||
|
<li><a href="misc/faq">FAQ</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown active">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-book icon-white"></i> Develop <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://docs.angularjs.org/tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/guide/">Developer Guide</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/api/">API Reference</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/misc/contribute">Contribute</a></li>
|
||||||
|
<li><a href="http://code.angularjs.org/">Download</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-comment icon-white"></i> Discuss <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://groups.google.com/group/angular">Mailing List</a></li>
|
||||||
|
<li><a href="http://webchat.freenode.net/?channels=angularjs&uio=d4">Chat Room</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://twitter.com/#!/angularjs">Twitter</a></li>
|
||||||
|
<li><a href="https://plus.google.com/110323587230527980117">Google+</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js">GitHub</a></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js/issues">Issue Tracker</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
</ul>
|
||||||
|
<form class="navbar-search pull-right" method="GET" action="https://www.google.com/search">
|
||||||
|
<input type="text" name="as_q" class="search-query" placeholder="Search">
|
||||||
|
<input type="hidden" name="as_sitesearch" value="angularjs.org">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div role="main" class="container">
|
||||||
|
<div class="row clear-navbar"></div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span12">
|
||||||
|
<!--[if lt IE 7]>
|
||||||
|
<p class="alert alert-error">Your browser is <em>ancient!</em>
|
||||||
|
<a href="http://browsehappy.com/">Upgrade to a different browser</a> or
|
||||||
|
<a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to
|
||||||
|
experience this site.
|
||||||
|
</p>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<div class="alert">
|
||||||
|
You are using an old version of Internet Explorer.
|
||||||
|
For better and safer browsing experience please <a href="http://www.microsoft.com/IE9">upgrade IE</a>
|
||||||
|
or install <a href="http://google.com/chrome">Google Chrome browser</a>.
|
||||||
|
</div>
|
||||||
|
<![endif]-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span3">
|
||||||
|
<form class="well form-search" ng-submit="submitForm()">
|
||||||
|
<div class="dropdown search"
|
||||||
|
ng-class="{open: focused && bestMatch.rank > 0 && bestMatch.page != currentPage}">
|
||||||
|
<input type="text" ng-model="search" placeholder="search the docs"
|
||||||
|
tabindex="1" accesskey="s" class="input-medium search-query" focused="focused">
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li>
|
||||||
|
<a href="{{bestMatch.page.url}}">{{bestMatch.page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div ng-show="search">Filtered results:</div>
|
||||||
|
|
||||||
|
<ul class="nav nav-list" ng-hide="page">
|
||||||
|
<li ng-repeat="page in pages" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<ul class="nav nav-list well" ng-repeat="module in modules">
|
||||||
|
<li class="nav-header module">
|
||||||
|
<a class="guide" href="{{URL.module}}">module</a>
|
||||||
|
<a class="code" href="{{module.url}}">{{module.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.directives">
|
||||||
|
<a href="{{URL.directive}}" class="guide">directive</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.directives" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.filters">
|
||||||
|
<a href="{{URL.filter}}" class="guide">filter</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.filters" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.services">
|
||||||
|
<a href="{{URL.service}}" class="guide">service</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="service in module.services" ng-class="navClass(service.instance, service.provider)">
|
||||||
|
<a ng-show="service.provider" class="pull-right" href="{{service.provider.url}}" tabindex="2"><i class="icon-cog"></i></a>
|
||||||
|
<a href="{{service.instance.url}}" tabindex="2">{{service.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.types">
|
||||||
|
<a href="{{URL.type}}" class="guide">Types</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.types" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.globals">
|
||||||
|
<a href="{{URL.api}}" class="global guide">global APIs</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.globals" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.id}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="span9">
|
||||||
|
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
<li ng-repeat="crumb in breadcrumb">
|
||||||
|
<span ng-hide="crumb.url">{{crumb.name}}</span>
|
||||||
|
<a ng-show="crumb.url" href="{{crumb.url}}">{{crumb.name}}</a>
|
||||||
|
<span ng-show="crumb.url" class="divider">/</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="loading" ng-show="loading">Loading...</div>
|
||||||
|
|
||||||
|
<div ng-hide="loading" ng-include src="currentPage.partialUrl" onload="afterPartialLoaded()" autoscroll class="content"></div>
|
||||||
|
|
||||||
|
<div id="disqus" class="disqus">
|
||||||
|
<h2>Discussion</h2>
|
||||||
|
<div id="disqus_thread" class="content-panel-content"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="fader" ng-show="subpage" style="display: none"></div>
|
||||||
|
<div id="subpage" ng-show="subpage" style="display: none">
|
||||||
|
<div>
|
||||||
|
<h2>Would you like full offline support for this AngularJS Docs App?</h2>
|
||||||
|
<a ng-click="subpage=false">✕</a>
|
||||||
|
<p>
|
||||||
|
If you want to be able to access the entire AngularJS documentation offline, click the
|
||||||
|
button below. This will reload the current page and trigger background downloads of all the
|
||||||
|
necessary files (approximately 3.5MB). The next time you load the docs, the browser will
|
||||||
|
use these cached files.
|
||||||
|
<br><br>
|
||||||
|
This feature is supported on all modern browsers, except for IE9 which lacks application
|
||||||
|
cache support.
|
||||||
|
</p>
|
||||||
|
<button id="cacheButton" ng-click="enableOffline()">Let me have them all!</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<p class="pull-right"><a href="#">Back to top</a></p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Super-powered by Google ©2010-2012
|
||||||
|
( <a id="version"
|
||||||
|
ng-href="https://github.com/angular/angular.js/blob/master/CHANGELOG.md#{{versionNumber}}"
|
||||||
|
ng-bind-template="v{{version}}">
|
||||||
|
</a>
|
||||||
|
<!-- TODO(i): enable
|
||||||
|
<a ng-hide="offlineEnabled" ng-click ="subpage = true">(enable offline support)</a>
|
||||||
|
<span ng-show="offlineEnabled">(offline support enabled)</span>
|
||||||
|
-->
|
||||||
|
)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Code licensed under the
|
||||||
|
<a href="https://github.com/angular/angular.js/blob/master/LICENSE" target="_blank">The
|
||||||
|
MIT License</a>. Documentation licensed under <a
|
||||||
|
href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
339
lib/angular/docs/index-jq-nocache.html
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
<!doctype html>
|
||||||
|
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 8]> <html class="no-js lt-ie9 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if gt IE 8]><!--> <html class="no-js ng-app: docsApp;" lang="en" ng-controller="DocsController"> <!--<![endif]-->
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="Description"
|
||||||
|
content="AngularJS is what HTML would have been, had it been designed for building web-apps.
|
||||||
|
Declarative templates with data-binding, MVC, dependency injection and great
|
||||||
|
testability story all implemented with pure client-side JavaScript!">
|
||||||
|
<meta name="fragment" content="!">
|
||||||
|
<title ng-bind-template="AngularJS: {{partialTitle}}">AngularJS</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// dynamically add base tag as well as css and javascript files.
|
||||||
|
// we can't add css/js the usual way, because some browsers (FF) eagerly prefetch resources
|
||||||
|
// before the base attribute is added, causing 404 and terribly slow loading of the docs app.
|
||||||
|
(function() {
|
||||||
|
var indexFile = (location.pathname.match(/\/(index[^\.]*\.html)/) || ['', ''])[1],
|
||||||
|
rUrl = /(#!\/|api|guide|misc|tutorial|cookbook|index[^\.]*\.html).*$/,
|
||||||
|
baseUrl = location.href.replace(rUrl, indexFile),
|
||||||
|
jQuery = /index-jq[^\.]*\.html$/.test(baseUrl),
|
||||||
|
debug = /index[^\.]*-debug\.html$/.test(baseUrl),
|
||||||
|
production = location.hostname === 'docs.angularjs.org',
|
||||||
|
headEl = document.getElementsByTagName('head')[0],
|
||||||
|
sync = true,
|
||||||
|
angularVersion = {
|
||||||
|
current: '1.1.2', // rewrite during build
|
||||||
|
stable: '1.0.3'
|
||||||
|
};
|
||||||
|
|
||||||
|
addTag('base', {href: baseUrl});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/bootstrap.min.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/font-awesome.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/docs.css', type: 'text/css'});
|
||||||
|
if (jQuery) addTag('script', {src: debug ? 'js/jquery.js' : 'js/jquery.min.js'});
|
||||||
|
addTag('script', {src: path('angular.js')}, sync);
|
||||||
|
addTag('script', {src: path('angular-resource.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-cookies.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-sanitize.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap-prettify.js') }, sync);
|
||||||
|
addTag('script', {src: 'js/docs.js'}, sync);
|
||||||
|
addTag('script', {src: 'docs-keywords.js'}, sync);
|
||||||
|
|
||||||
|
function path(name) {
|
||||||
|
if (production) {
|
||||||
|
if (name.match(/^angular(-\w+)?\.js/) && !name.match(/bootstrap/)) {
|
||||||
|
name = '//ajax.googleapis.com/ajax/libs/angularjs/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
} else {
|
||||||
|
name = 'http://code.angularjs.org/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
return '../' + name.replace(/\.js$/, debug ? '.js' : '.min.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
function addTag(name, attributes, sync) {
|
||||||
|
var el = document.createElement(name),
|
||||||
|
attrName;
|
||||||
|
|
||||||
|
for (attrName in attributes) {
|
||||||
|
el.setAttribute(attrName, attributes[attrName]);
|
||||||
|
}
|
||||||
|
|
||||||
|
sync ? document.write(outerHTML(el)) : headEl.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
function outerHTML(node){
|
||||||
|
// if IE, Chrome take the internal method otherwise build one
|
||||||
|
return node.outerHTML || (
|
||||||
|
function(n){
|
||||||
|
var div = document.createElement('div'), h;
|
||||||
|
div.appendChild(n);
|
||||||
|
h = div.innerHTML;
|
||||||
|
div = null;
|
||||||
|
return h;
|
||||||
|
})(node);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
// force page reload when new update is available
|
||||||
|
window.applicationCache && window.applicationCache.addEventListener('updateready', function(e) {
|
||||||
|
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
|
||||||
|
window.applicationCache.swapCache();
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
|
// GA asynchronous tracker
|
||||||
|
var _gaq = _gaq || [];
|
||||||
|
_gaq.push(['_setAccount', 'UA-8594346-3']);
|
||||||
|
_gaq.push(['_setDomainName', '.angularjs.org']);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="http://angularjs.org" style="padding-top: 6px; padding-bottom: 0px;">
|
||||||
|
<img class="AngularJS-small" src="http://angularjs.org/img/AngularJS-small.png">
|
||||||
|
</a>
|
||||||
|
<ul class="nav">
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li><a href="http://angularjs.org"><i class="icon-home icon-white"></i> Home</a></li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-eye-open icon-white"></i> Learn <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li class="disabled"><a href="http://angularjs.org/">Why AngularJS?</a></li>
|
||||||
|
<li><a href="http://www.youtube.com/user/angularjs">Watch</a></li>
|
||||||
|
<li><a href="tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://builtwith.angularjs.org/">Case Studies</a></li>
|
||||||
|
<li><a href="misc/faq">FAQ</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown active">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-book icon-white"></i> Develop <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://docs.angularjs.org/tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/guide/">Developer Guide</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/api/">API Reference</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/misc/contribute">Contribute</a></li>
|
||||||
|
<li><a href="http://code.angularjs.org/">Download</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-comment icon-white"></i> Discuss <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://groups.google.com/group/angular">Mailing List</a></li>
|
||||||
|
<li><a href="http://webchat.freenode.net/?channels=angularjs&uio=d4">Chat Room</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://twitter.com/#!/angularjs">Twitter</a></li>
|
||||||
|
<li><a href="https://plus.google.com/110323587230527980117">Google+</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js">GitHub</a></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js/issues">Issue Tracker</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
</ul>
|
||||||
|
<form class="navbar-search pull-right" method="GET" action="https://www.google.com/search">
|
||||||
|
<input type="text" name="as_q" class="search-query" placeholder="Search">
|
||||||
|
<input type="hidden" name="as_sitesearch" value="angularjs.org">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div role="main" class="container">
|
||||||
|
<div class="row clear-navbar"></div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span12">
|
||||||
|
<!--[if lt IE 7]>
|
||||||
|
<p class="alert alert-error">Your browser is <em>ancient!</em>
|
||||||
|
<a href="http://browsehappy.com/">Upgrade to a different browser</a> or
|
||||||
|
<a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to
|
||||||
|
experience this site.
|
||||||
|
</p>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<div class="alert">
|
||||||
|
You are using an old version of Internet Explorer.
|
||||||
|
For better and safer browsing experience please <a href="http://www.microsoft.com/IE9">upgrade IE</a>
|
||||||
|
or install <a href="http://google.com/chrome">Google Chrome browser</a>.
|
||||||
|
</div>
|
||||||
|
<![endif]-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span3">
|
||||||
|
<form class="well form-search" ng-submit="submitForm()">
|
||||||
|
<div class="dropdown search"
|
||||||
|
ng-class="{open: focused && bestMatch.rank > 0 && bestMatch.page != currentPage}">
|
||||||
|
<input type="text" ng-model="search" placeholder="search the docs"
|
||||||
|
tabindex="1" accesskey="s" class="input-medium search-query" focused="focused">
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li>
|
||||||
|
<a href="{{bestMatch.page.url}}">{{bestMatch.page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div ng-show="search">Filtered results:</div>
|
||||||
|
|
||||||
|
<ul class="nav nav-list" ng-hide="page">
|
||||||
|
<li ng-repeat="page in pages" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<ul class="nav nav-list well" ng-repeat="module in modules">
|
||||||
|
<li class="nav-header module">
|
||||||
|
<a class="guide" href="{{URL.module}}">module</a>
|
||||||
|
<a class="code" href="{{module.url}}">{{module.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.directives">
|
||||||
|
<a href="{{URL.directive}}" class="guide">directive</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.directives" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.filters">
|
||||||
|
<a href="{{URL.filter}}" class="guide">filter</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.filters" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.services">
|
||||||
|
<a href="{{URL.service}}" class="guide">service</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="service in module.services" ng-class="navClass(service.instance, service.provider)">
|
||||||
|
<a ng-show="service.provider" class="pull-right" href="{{service.provider.url}}" tabindex="2"><i class="icon-cog"></i></a>
|
||||||
|
<a href="{{service.instance.url}}" tabindex="2">{{service.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.types">
|
||||||
|
<a href="{{URL.type}}" class="guide">Types</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.types" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.globals">
|
||||||
|
<a href="{{URL.api}}" class="global guide">global APIs</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.globals" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.id}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="span9">
|
||||||
|
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
<li ng-repeat="crumb in breadcrumb">
|
||||||
|
<span ng-hide="crumb.url">{{crumb.name}}</span>
|
||||||
|
<a ng-show="crumb.url" href="{{crumb.url}}">{{crumb.name}}</a>
|
||||||
|
<span ng-show="crumb.url" class="divider">/</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="loading" ng-show="loading">Loading...</div>
|
||||||
|
|
||||||
|
<div ng-hide="loading" ng-include src="currentPage.partialUrl" onload="afterPartialLoaded()" autoscroll class="content"></div>
|
||||||
|
|
||||||
|
<div id="disqus" class="disqus">
|
||||||
|
<h2>Discussion</h2>
|
||||||
|
<div id="disqus_thread" class="content-panel-content"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="fader" ng-show="subpage" style="display: none"></div>
|
||||||
|
<div id="subpage" ng-show="subpage" style="display: none">
|
||||||
|
<div>
|
||||||
|
<h2>Would you like full offline support for this AngularJS Docs App?</h2>
|
||||||
|
<a ng-click="subpage=false">✕</a>
|
||||||
|
<p>
|
||||||
|
If you want to be able to access the entire AngularJS documentation offline, click the
|
||||||
|
button below. This will reload the current page and trigger background downloads of all the
|
||||||
|
necessary files (approximately 3.5MB). The next time you load the docs, the browser will
|
||||||
|
use these cached files.
|
||||||
|
<br><br>
|
||||||
|
This feature is supported on all modern browsers, except for IE9 which lacks application
|
||||||
|
cache support.
|
||||||
|
</p>
|
||||||
|
<button id="cacheButton" ng-click="enableOffline()">Let me have them all!</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<p class="pull-right"><a href="#">Back to top</a></p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Super-powered by Google ©2010-2012
|
||||||
|
( <a id="version"
|
||||||
|
ng-href="https://github.com/angular/angular.js/blob/master/CHANGELOG.md#{{versionNumber}}"
|
||||||
|
ng-bind-template="v{{version}}">
|
||||||
|
</a>
|
||||||
|
<!-- TODO(i): enable
|
||||||
|
<a ng-hide="offlineEnabled" ng-click ="subpage = true">(enable offline support)</a>
|
||||||
|
<span ng-show="offlineEnabled">(offline support enabled)</span>
|
||||||
|
-->
|
||||||
|
)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Code licensed under the
|
||||||
|
<a href="https://github.com/angular/angular.js/blob/master/LICENSE" target="_blank">The
|
||||||
|
MIT License</a>. Documentation licensed under <a
|
||||||
|
href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
339
lib/angular/docs/index-jq.html
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
<!doctype html>
|
||||||
|
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 8]> <html class="no-js lt-ie9 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if gt IE 8]><!--> <html class="no-js ng-app: docsApp;" lang="en" ng-controller="DocsController"> <!--<![endif]-->
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="Description"
|
||||||
|
content="AngularJS is what HTML would have been, had it been designed for building web-apps.
|
||||||
|
Declarative templates with data-binding, MVC, dependency injection and great
|
||||||
|
testability story all implemented with pure client-side JavaScript!">
|
||||||
|
<meta name="fragment" content="!">
|
||||||
|
<title ng-bind-template="AngularJS: {{partialTitle}}">AngularJS</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// dynamically add base tag as well as css and javascript files.
|
||||||
|
// we can't add css/js the usual way, because some browsers (FF) eagerly prefetch resources
|
||||||
|
// before the base attribute is added, causing 404 and terribly slow loading of the docs app.
|
||||||
|
(function() {
|
||||||
|
var indexFile = (location.pathname.match(/\/(index[^\.]*\.html)/) || ['', ''])[1],
|
||||||
|
rUrl = /(#!\/|api|guide|misc|tutorial|cookbook|index[^\.]*\.html).*$/,
|
||||||
|
baseUrl = location.href.replace(rUrl, indexFile),
|
||||||
|
jQuery = /index-jq[^\.]*\.html$/.test(baseUrl),
|
||||||
|
debug = /index[^\.]*-debug\.html$/.test(baseUrl),
|
||||||
|
production = location.hostname === 'docs.angularjs.org',
|
||||||
|
headEl = document.getElementsByTagName('head')[0],
|
||||||
|
sync = true,
|
||||||
|
angularVersion = {
|
||||||
|
current: '1.1.2', // rewrite during build
|
||||||
|
stable: '1.0.3'
|
||||||
|
};
|
||||||
|
|
||||||
|
addTag('base', {href: baseUrl});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/bootstrap.min.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/font-awesome.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/docs.css', type: 'text/css'});
|
||||||
|
if (jQuery) addTag('script', {src: debug ? 'js/jquery.js' : 'js/jquery.min.js'});
|
||||||
|
addTag('script', {src: path('angular.js')}, sync);
|
||||||
|
addTag('script', {src: path('angular-resource.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-cookies.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-sanitize.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap-prettify.js') }, sync);
|
||||||
|
addTag('script', {src: 'js/docs.js'}, sync);
|
||||||
|
addTag('script', {src: 'docs-keywords.js'}, sync);
|
||||||
|
|
||||||
|
function path(name) {
|
||||||
|
if (production) {
|
||||||
|
if (name.match(/^angular(-\w+)?\.js/) && !name.match(/bootstrap/)) {
|
||||||
|
name = '//ajax.googleapis.com/ajax/libs/angularjs/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
} else {
|
||||||
|
name = 'http://code.angularjs.org/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
return '../' + name.replace(/\.js$/, debug ? '.js' : '.min.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
function addTag(name, attributes, sync) {
|
||||||
|
var el = document.createElement(name),
|
||||||
|
attrName;
|
||||||
|
|
||||||
|
for (attrName in attributes) {
|
||||||
|
el.setAttribute(attrName, attributes[attrName]);
|
||||||
|
}
|
||||||
|
|
||||||
|
sync ? document.write(outerHTML(el)) : headEl.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
function outerHTML(node){
|
||||||
|
// if IE, Chrome take the internal method otherwise build one
|
||||||
|
return node.outerHTML || (
|
||||||
|
function(n){
|
||||||
|
var div = document.createElement('div'), h;
|
||||||
|
div.appendChild(n);
|
||||||
|
h = div.innerHTML;
|
||||||
|
div = null;
|
||||||
|
return h;
|
||||||
|
})(node);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
// force page reload when new update is available
|
||||||
|
window.applicationCache && window.applicationCache.addEventListener('updateready', function(e) {
|
||||||
|
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
|
||||||
|
window.applicationCache.swapCache();
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
|
// GA asynchronous tracker
|
||||||
|
var _gaq = _gaq || [];
|
||||||
|
_gaq.push(['_setAccount', 'UA-8594346-3']);
|
||||||
|
_gaq.push(['_setDomainName', '.angularjs.org']);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="http://angularjs.org" style="padding-top: 6px; padding-bottom: 0px;">
|
||||||
|
<img class="AngularJS-small" src="http://angularjs.org/img/AngularJS-small.png">
|
||||||
|
</a>
|
||||||
|
<ul class="nav">
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li><a href="http://angularjs.org"><i class="icon-home icon-white"></i> Home</a></li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-eye-open icon-white"></i> Learn <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li class="disabled"><a href="http://angularjs.org/">Why AngularJS?</a></li>
|
||||||
|
<li><a href="http://www.youtube.com/user/angularjs">Watch</a></li>
|
||||||
|
<li><a href="tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://builtwith.angularjs.org/">Case Studies</a></li>
|
||||||
|
<li><a href="misc/faq">FAQ</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown active">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-book icon-white"></i> Develop <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://docs.angularjs.org/tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/guide/">Developer Guide</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/api/">API Reference</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/misc/contribute">Contribute</a></li>
|
||||||
|
<li><a href="http://code.angularjs.org/">Download</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-comment icon-white"></i> Discuss <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://groups.google.com/group/angular">Mailing List</a></li>
|
||||||
|
<li><a href="http://webchat.freenode.net/?channels=angularjs&uio=d4">Chat Room</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://twitter.com/#!/angularjs">Twitter</a></li>
|
||||||
|
<li><a href="https://plus.google.com/110323587230527980117">Google+</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js">GitHub</a></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js/issues">Issue Tracker</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
</ul>
|
||||||
|
<form class="navbar-search pull-right" method="GET" action="https://www.google.com/search">
|
||||||
|
<input type="text" name="as_q" class="search-query" placeholder="Search">
|
||||||
|
<input type="hidden" name="as_sitesearch" value="angularjs.org">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div role="main" class="container">
|
||||||
|
<div class="row clear-navbar"></div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span12">
|
||||||
|
<!--[if lt IE 7]>
|
||||||
|
<p class="alert alert-error">Your browser is <em>ancient!</em>
|
||||||
|
<a href="http://browsehappy.com/">Upgrade to a different browser</a> or
|
||||||
|
<a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to
|
||||||
|
experience this site.
|
||||||
|
</p>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<div class="alert">
|
||||||
|
You are using an old version of Internet Explorer.
|
||||||
|
For better and safer browsing experience please <a href="http://www.microsoft.com/IE9">upgrade IE</a>
|
||||||
|
or install <a href="http://google.com/chrome">Google Chrome browser</a>.
|
||||||
|
</div>
|
||||||
|
<![endif]-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span3">
|
||||||
|
<form class="well form-search" ng-submit="submitForm()">
|
||||||
|
<div class="dropdown search"
|
||||||
|
ng-class="{open: focused && bestMatch.rank > 0 && bestMatch.page != currentPage}">
|
||||||
|
<input type="text" ng-model="search" placeholder="search the docs"
|
||||||
|
tabindex="1" accesskey="s" class="input-medium search-query" focused="focused">
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li>
|
||||||
|
<a href="{{bestMatch.page.url}}">{{bestMatch.page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div ng-show="search">Filtered results:</div>
|
||||||
|
|
||||||
|
<ul class="nav nav-list" ng-hide="page">
|
||||||
|
<li ng-repeat="page in pages" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<ul class="nav nav-list well" ng-repeat="module in modules">
|
||||||
|
<li class="nav-header module">
|
||||||
|
<a class="guide" href="{{URL.module}}">module</a>
|
||||||
|
<a class="code" href="{{module.url}}">{{module.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.directives">
|
||||||
|
<a href="{{URL.directive}}" class="guide">directive</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.directives" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.filters">
|
||||||
|
<a href="{{URL.filter}}" class="guide">filter</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.filters" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.services">
|
||||||
|
<a href="{{URL.service}}" class="guide">service</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="service in module.services" ng-class="navClass(service.instance, service.provider)">
|
||||||
|
<a ng-show="service.provider" class="pull-right" href="{{service.provider.url}}" tabindex="2"><i class="icon-cog"></i></a>
|
||||||
|
<a href="{{service.instance.url}}" tabindex="2">{{service.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.types">
|
||||||
|
<a href="{{URL.type}}" class="guide">Types</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.types" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.globals">
|
||||||
|
<a href="{{URL.api}}" class="global guide">global APIs</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.globals" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.id}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="span9">
|
||||||
|
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
<li ng-repeat="crumb in breadcrumb">
|
||||||
|
<span ng-hide="crumb.url">{{crumb.name}}</span>
|
||||||
|
<a ng-show="crumb.url" href="{{crumb.url}}">{{crumb.name}}</a>
|
||||||
|
<span ng-show="crumb.url" class="divider">/</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="loading" ng-show="loading">Loading...</div>
|
||||||
|
|
||||||
|
<div ng-hide="loading" ng-include src="currentPage.partialUrl" onload="afterPartialLoaded()" autoscroll class="content"></div>
|
||||||
|
|
||||||
|
<div id="disqus" class="disqus">
|
||||||
|
<h2>Discussion</h2>
|
||||||
|
<div id="disqus_thread" class="content-panel-content"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="fader" ng-show="subpage" style="display: none"></div>
|
||||||
|
<div id="subpage" ng-show="subpage" style="display: none">
|
||||||
|
<div>
|
||||||
|
<h2>Would you like full offline support for this AngularJS Docs App?</h2>
|
||||||
|
<a ng-click="subpage=false">✕</a>
|
||||||
|
<p>
|
||||||
|
If you want to be able to access the entire AngularJS documentation offline, click the
|
||||||
|
button below. This will reload the current page and trigger background downloads of all the
|
||||||
|
necessary files (approximately 3.5MB). The next time you load the docs, the browser will
|
||||||
|
use these cached files.
|
||||||
|
<br><br>
|
||||||
|
This feature is supported on all modern browsers, except for IE9 which lacks application
|
||||||
|
cache support.
|
||||||
|
</p>
|
||||||
|
<button id="cacheButton" ng-click="enableOffline()">Let me have them all!</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<p class="pull-right"><a href="#">Back to top</a></p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Super-powered by Google ©2010-2012
|
||||||
|
( <a id="version"
|
||||||
|
ng-href="https://github.com/angular/angular.js/blob/master/CHANGELOG.md#{{versionNumber}}"
|
||||||
|
ng-bind-template="v{{version}}">
|
||||||
|
</a>
|
||||||
|
<!-- TODO(i): enable
|
||||||
|
<a ng-hide="offlineEnabled" ng-click ="subpage = true">(enable offline support)</a>
|
||||||
|
<span ng-show="offlineEnabled">(offline support enabled)</span>
|
||||||
|
-->
|
||||||
|
)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Code licensed under the
|
||||||
|
<a href="https://github.com/angular/angular.js/blob/master/LICENSE" target="_blank">The
|
||||||
|
MIT License</a>. Documentation licensed under <a
|
||||||
|
href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
339
lib/angular/docs/index-nocache.html
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
<!doctype html>
|
||||||
|
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 8]> <html class="no-js lt-ie9 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if gt IE 8]><!--> <html class="no-js ng-app: docsApp;" lang="en" ng-controller="DocsController"> <!--<![endif]-->
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="Description"
|
||||||
|
content="AngularJS is what HTML would have been, had it been designed for building web-apps.
|
||||||
|
Declarative templates with data-binding, MVC, dependency injection and great
|
||||||
|
testability story all implemented with pure client-side JavaScript!">
|
||||||
|
<meta name="fragment" content="!">
|
||||||
|
<title ng-bind-template="AngularJS: {{partialTitle}}">AngularJS</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// dynamically add base tag as well as css and javascript files.
|
||||||
|
// we can't add css/js the usual way, because some browsers (FF) eagerly prefetch resources
|
||||||
|
// before the base attribute is added, causing 404 and terribly slow loading of the docs app.
|
||||||
|
(function() {
|
||||||
|
var indexFile = (location.pathname.match(/\/(index[^\.]*\.html)/) || ['', ''])[1],
|
||||||
|
rUrl = /(#!\/|api|guide|misc|tutorial|cookbook|index[^\.]*\.html).*$/,
|
||||||
|
baseUrl = location.href.replace(rUrl, indexFile),
|
||||||
|
jQuery = /index-jq[^\.]*\.html$/.test(baseUrl),
|
||||||
|
debug = /index[^\.]*-debug\.html$/.test(baseUrl),
|
||||||
|
production = location.hostname === 'docs.angularjs.org',
|
||||||
|
headEl = document.getElementsByTagName('head')[0],
|
||||||
|
sync = true,
|
||||||
|
angularVersion = {
|
||||||
|
current: '1.1.2', // rewrite during build
|
||||||
|
stable: '1.0.3'
|
||||||
|
};
|
||||||
|
|
||||||
|
addTag('base', {href: baseUrl});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/bootstrap.min.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/font-awesome.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/docs.css', type: 'text/css'});
|
||||||
|
if (jQuery) addTag('script', {src: debug ? 'js/jquery.js' : 'js/jquery.min.js'});
|
||||||
|
addTag('script', {src: path('angular.js')}, sync);
|
||||||
|
addTag('script', {src: path('angular-resource.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-cookies.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-sanitize.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap-prettify.js') }, sync);
|
||||||
|
addTag('script', {src: 'js/docs.js'}, sync);
|
||||||
|
addTag('script', {src: 'docs-keywords.js'}, sync);
|
||||||
|
|
||||||
|
function path(name) {
|
||||||
|
if (production) {
|
||||||
|
if (name.match(/^angular(-\w+)?\.js/) && !name.match(/bootstrap/)) {
|
||||||
|
name = '//ajax.googleapis.com/ajax/libs/angularjs/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
} else {
|
||||||
|
name = 'http://code.angularjs.org/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
return '../' + name.replace(/\.js$/, debug ? '.js' : '.min.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
function addTag(name, attributes, sync) {
|
||||||
|
var el = document.createElement(name),
|
||||||
|
attrName;
|
||||||
|
|
||||||
|
for (attrName in attributes) {
|
||||||
|
el.setAttribute(attrName, attributes[attrName]);
|
||||||
|
}
|
||||||
|
|
||||||
|
sync ? document.write(outerHTML(el)) : headEl.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
function outerHTML(node){
|
||||||
|
// if IE, Chrome take the internal method otherwise build one
|
||||||
|
return node.outerHTML || (
|
||||||
|
function(n){
|
||||||
|
var div = document.createElement('div'), h;
|
||||||
|
div.appendChild(n);
|
||||||
|
h = div.innerHTML;
|
||||||
|
div = null;
|
||||||
|
return h;
|
||||||
|
})(node);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
// force page reload when new update is available
|
||||||
|
window.applicationCache && window.applicationCache.addEventListener('updateready', function(e) {
|
||||||
|
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
|
||||||
|
window.applicationCache.swapCache();
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
|
// GA asynchronous tracker
|
||||||
|
var _gaq = _gaq || [];
|
||||||
|
_gaq.push(['_setAccount', 'UA-8594346-3']);
|
||||||
|
_gaq.push(['_setDomainName', '.angularjs.org']);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="http://angularjs.org" style="padding-top: 6px; padding-bottom: 0px;">
|
||||||
|
<img class="AngularJS-small" src="http://angularjs.org/img/AngularJS-small.png">
|
||||||
|
</a>
|
||||||
|
<ul class="nav">
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li><a href="http://angularjs.org"><i class="icon-home icon-white"></i> Home</a></li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-eye-open icon-white"></i> Learn <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li class="disabled"><a href="http://angularjs.org/">Why AngularJS?</a></li>
|
||||||
|
<li><a href="http://www.youtube.com/user/angularjs">Watch</a></li>
|
||||||
|
<li><a href="tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://builtwith.angularjs.org/">Case Studies</a></li>
|
||||||
|
<li><a href="misc/faq">FAQ</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown active">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-book icon-white"></i> Develop <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://docs.angularjs.org/tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/guide/">Developer Guide</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/api/">API Reference</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/misc/contribute">Contribute</a></li>
|
||||||
|
<li><a href="http://code.angularjs.org/">Download</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-comment icon-white"></i> Discuss <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://groups.google.com/group/angular">Mailing List</a></li>
|
||||||
|
<li><a href="http://webchat.freenode.net/?channels=angularjs&uio=d4">Chat Room</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://twitter.com/#!/angularjs">Twitter</a></li>
|
||||||
|
<li><a href="https://plus.google.com/110323587230527980117">Google+</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js">GitHub</a></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js/issues">Issue Tracker</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
</ul>
|
||||||
|
<form class="navbar-search pull-right" method="GET" action="https://www.google.com/search">
|
||||||
|
<input type="text" name="as_q" class="search-query" placeholder="Search">
|
||||||
|
<input type="hidden" name="as_sitesearch" value="angularjs.org">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div role="main" class="container">
|
||||||
|
<div class="row clear-navbar"></div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span12">
|
||||||
|
<!--[if lt IE 7]>
|
||||||
|
<p class="alert alert-error">Your browser is <em>ancient!</em>
|
||||||
|
<a href="http://browsehappy.com/">Upgrade to a different browser</a> or
|
||||||
|
<a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to
|
||||||
|
experience this site.
|
||||||
|
</p>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<div class="alert">
|
||||||
|
You are using an old version of Internet Explorer.
|
||||||
|
For better and safer browsing experience please <a href="http://www.microsoft.com/IE9">upgrade IE</a>
|
||||||
|
or install <a href="http://google.com/chrome">Google Chrome browser</a>.
|
||||||
|
</div>
|
||||||
|
<![endif]-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span3">
|
||||||
|
<form class="well form-search" ng-submit="submitForm()">
|
||||||
|
<div class="dropdown search"
|
||||||
|
ng-class="{open: focused && bestMatch.rank > 0 && bestMatch.page != currentPage}">
|
||||||
|
<input type="text" ng-model="search" placeholder="search the docs"
|
||||||
|
tabindex="1" accesskey="s" class="input-medium search-query" focused="focused">
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li>
|
||||||
|
<a href="{{bestMatch.page.url}}">{{bestMatch.page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div ng-show="search">Filtered results:</div>
|
||||||
|
|
||||||
|
<ul class="nav nav-list" ng-hide="page">
|
||||||
|
<li ng-repeat="page in pages" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<ul class="nav nav-list well" ng-repeat="module in modules">
|
||||||
|
<li class="nav-header module">
|
||||||
|
<a class="guide" href="{{URL.module}}">module</a>
|
||||||
|
<a class="code" href="{{module.url}}">{{module.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.directives">
|
||||||
|
<a href="{{URL.directive}}" class="guide">directive</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.directives" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.filters">
|
||||||
|
<a href="{{URL.filter}}" class="guide">filter</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.filters" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.services">
|
||||||
|
<a href="{{URL.service}}" class="guide">service</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="service in module.services" ng-class="navClass(service.instance, service.provider)">
|
||||||
|
<a ng-show="service.provider" class="pull-right" href="{{service.provider.url}}" tabindex="2"><i class="icon-cog"></i></a>
|
||||||
|
<a href="{{service.instance.url}}" tabindex="2">{{service.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.types">
|
||||||
|
<a href="{{URL.type}}" class="guide">Types</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.types" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.globals">
|
||||||
|
<a href="{{URL.api}}" class="global guide">global APIs</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.globals" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.id}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="span9">
|
||||||
|
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
<li ng-repeat="crumb in breadcrumb">
|
||||||
|
<span ng-hide="crumb.url">{{crumb.name}}</span>
|
||||||
|
<a ng-show="crumb.url" href="{{crumb.url}}">{{crumb.name}}</a>
|
||||||
|
<span ng-show="crumb.url" class="divider">/</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="loading" ng-show="loading">Loading...</div>
|
||||||
|
|
||||||
|
<div ng-hide="loading" ng-include src="currentPage.partialUrl" onload="afterPartialLoaded()" autoscroll class="content"></div>
|
||||||
|
|
||||||
|
<div id="disqus" class="disqus">
|
||||||
|
<h2>Discussion</h2>
|
||||||
|
<div id="disqus_thread" class="content-panel-content"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="fader" ng-show="subpage" style="display: none"></div>
|
||||||
|
<div id="subpage" ng-show="subpage" style="display: none">
|
||||||
|
<div>
|
||||||
|
<h2>Would you like full offline support for this AngularJS Docs App?</h2>
|
||||||
|
<a ng-click="subpage=false">✕</a>
|
||||||
|
<p>
|
||||||
|
If you want to be able to access the entire AngularJS documentation offline, click the
|
||||||
|
button below. This will reload the current page and trigger background downloads of all the
|
||||||
|
necessary files (approximately 3.5MB). The next time you load the docs, the browser will
|
||||||
|
use these cached files.
|
||||||
|
<br><br>
|
||||||
|
This feature is supported on all modern browsers, except for IE9 which lacks application
|
||||||
|
cache support.
|
||||||
|
</p>
|
||||||
|
<button id="cacheButton" ng-click="enableOffline()">Let me have them all!</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<p class="pull-right"><a href="#">Back to top</a></p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Super-powered by Google ©2010-2012
|
||||||
|
( <a id="version"
|
||||||
|
ng-href="https://github.com/angular/angular.js/blob/master/CHANGELOG.md#{{versionNumber}}"
|
||||||
|
ng-bind-template="v{{version}}">
|
||||||
|
</a>
|
||||||
|
<!-- TODO(i): enable
|
||||||
|
<a ng-hide="offlineEnabled" ng-click ="subpage = true">(enable offline support)</a>
|
||||||
|
<span ng-show="offlineEnabled">(offline support enabled)</span>
|
||||||
|
-->
|
||||||
|
)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Code licensed under the
|
||||||
|
<a href="https://github.com/angular/angular.js/blob/master/LICENSE" target="_blank">The
|
||||||
|
MIT License</a>. Documentation licensed under <a
|
||||||
|
href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
339
lib/angular/docs/index.html
Normal file
|
@ -0,0 +1,339 @@
|
||||||
|
<!doctype html>
|
||||||
|
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if IE 8]> <html class="no-js lt-ie9 ng-app: docsApp;" lang="en" ng-controller="DocsController"> <![endif]-->
|
||||||
|
<!--[if gt IE 8]><!--> <html class="no-js ng-app: docsApp;" lang="en" ng-controller="DocsController"> <!--<![endif]-->
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<meta name="Description"
|
||||||
|
content="AngularJS is what HTML would have been, had it been designed for building web-apps.
|
||||||
|
Declarative templates with data-binding, MVC, dependency injection and great
|
||||||
|
testability story all implemented with pure client-side JavaScript!">
|
||||||
|
<meta name="fragment" content="!">
|
||||||
|
<title ng-bind-template="AngularJS: {{partialTitle}}">AngularJS</title>
|
||||||
|
<script type="text/javascript">
|
||||||
|
// dynamically add base tag as well as css and javascript files.
|
||||||
|
// we can't add css/js the usual way, because some browsers (FF) eagerly prefetch resources
|
||||||
|
// before the base attribute is added, causing 404 and terribly slow loading of the docs app.
|
||||||
|
(function() {
|
||||||
|
var indexFile = (location.pathname.match(/\/(index[^\.]*\.html)/) || ['', ''])[1],
|
||||||
|
rUrl = /(#!\/|api|guide|misc|tutorial|cookbook|index[^\.]*\.html).*$/,
|
||||||
|
baseUrl = location.href.replace(rUrl, indexFile),
|
||||||
|
jQuery = /index-jq[^\.]*\.html$/.test(baseUrl),
|
||||||
|
debug = /index[^\.]*-debug\.html$/.test(baseUrl),
|
||||||
|
production = location.hostname === 'docs.angularjs.org',
|
||||||
|
headEl = document.getElementsByTagName('head')[0],
|
||||||
|
sync = true,
|
||||||
|
angularVersion = {
|
||||||
|
current: '1.1.2', // rewrite during build
|
||||||
|
stable: '1.0.3'
|
||||||
|
};
|
||||||
|
|
||||||
|
addTag('base', {href: baseUrl});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/bootstrap.min.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/font-awesome.css', type: 'text/css'});
|
||||||
|
addTag('link', {rel: 'stylesheet', href: 'css/docs.css', type: 'text/css'});
|
||||||
|
if (jQuery) addTag('script', {src: debug ? 'js/jquery.js' : 'js/jquery.min.js'});
|
||||||
|
addTag('script', {src: path('angular.js')}, sync);
|
||||||
|
addTag('script', {src: path('angular-resource.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-cookies.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-sanitize.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap.js') }, sync);
|
||||||
|
addTag('script', {src: path('angular-bootstrap-prettify.js') }, sync);
|
||||||
|
addTag('script', {src: 'js/docs.js'}, sync);
|
||||||
|
addTag('script', {src: 'docs-keywords.js'}, sync);
|
||||||
|
|
||||||
|
function path(name) {
|
||||||
|
if (production) {
|
||||||
|
if (name.match(/^angular(-\w+)?\.js/) && !name.match(/bootstrap/)) {
|
||||||
|
name = '//ajax.googleapis.com/ajax/libs/angularjs/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
} else {
|
||||||
|
name = 'http://code.angularjs.org/' +
|
||||||
|
angularVersion.stable +
|
||||||
|
'/' +
|
||||||
|
name.replace(/\.js$/, '.min.js');
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
return '../' + name.replace(/\.js$/, debug ? '.js' : '.min.js');
|
||||||
|
}
|
||||||
|
|
||||||
|
function addTag(name, attributes, sync) {
|
||||||
|
var el = document.createElement(name),
|
||||||
|
attrName;
|
||||||
|
|
||||||
|
for (attrName in attributes) {
|
||||||
|
el.setAttribute(attrName, attributes[attrName]);
|
||||||
|
}
|
||||||
|
|
||||||
|
sync ? document.write(outerHTML(el)) : headEl.appendChild(el);
|
||||||
|
}
|
||||||
|
|
||||||
|
function outerHTML(node){
|
||||||
|
// if IE, Chrome take the internal method otherwise build one
|
||||||
|
return node.outerHTML || (
|
||||||
|
function(n){
|
||||||
|
var div = document.createElement('div'), h;
|
||||||
|
div.appendChild(n);
|
||||||
|
h = div.innerHTML;
|
||||||
|
div = null;
|
||||||
|
return h;
|
||||||
|
})(node);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
|
|
||||||
|
// force page reload when new update is available
|
||||||
|
window.applicationCache && window.applicationCache.addEventListener('updateready', function(e) {
|
||||||
|
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
|
||||||
|
window.applicationCache.swapCache();
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
|
// GA asynchronous tracker
|
||||||
|
var _gaq = _gaq || [];
|
||||||
|
_gaq.push(['_setAccount', 'UA-8594346-3']);
|
||||||
|
_gaq.push(['_setDomainName', '.angularjs.org']);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<div class="navbar navbar-fixed-top">
|
||||||
|
<div class="navbar-inner">
|
||||||
|
<div class="container">
|
||||||
|
<a class="brand" href="http://angularjs.org" style="padding-top: 6px; padding-bottom: 0px;">
|
||||||
|
<img class="AngularJS-small" src="http://angularjs.org/img/AngularJS-small.png">
|
||||||
|
</a>
|
||||||
|
<ul class="nav">
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li><a href="http://angularjs.org"><i class="icon-home icon-white"></i> Home</a></li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-eye-open icon-white"></i> Learn <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li class="disabled"><a href="http://angularjs.org/">Why AngularJS?</a></li>
|
||||||
|
<li><a href="http://www.youtube.com/user/angularjs">Watch</a></li>
|
||||||
|
<li><a href="tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://builtwith.angularjs.org/">Case Studies</a></li>
|
||||||
|
<li><a href="misc/faq">FAQ</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown active">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-book icon-white"></i> Develop <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://docs.angularjs.org/tutorial">Tutorial</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/guide/">Developer Guide</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/api/">API Reference</a></li>
|
||||||
|
<li><a href="http://docs.angularjs.org/misc/contribute">Contribute</a></li>
|
||||||
|
<li><a href="http://code.angularjs.org/">Download</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
<li class="dropdown">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
<i class="icon-comment icon-white"></i> Discuss <b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li><a href="http://groups.google.com/group/angular">Mailing List</a></li>
|
||||||
|
<li><a href="http://webchat.freenode.net/?channels=angularjs&uio=d4">Chat Room</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://twitter.com/#!/angularjs">Twitter</a></li>
|
||||||
|
<li><a href="https://plus.google.com/110323587230527980117">Google+</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js">GitHub</a></li>
|
||||||
|
<li><a href="https://github.com/angular/angular.js/issues">Issue Tracker</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="divider-vertical"></li>
|
||||||
|
</ul>
|
||||||
|
<form class="navbar-search pull-right" method="GET" action="https://www.google.com/search">
|
||||||
|
<input type="text" name="as_q" class="search-query" placeholder="Search">
|
||||||
|
<input type="hidden" name="as_sitesearch" value="angularjs.org">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<div role="main" class="container">
|
||||||
|
<div class="row clear-navbar"></div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span12">
|
||||||
|
<!--[if lt IE 7]>
|
||||||
|
<p class="alert alert-error">Your browser is <em>ancient!</em>
|
||||||
|
<a href="http://browsehappy.com/">Upgrade to a different browser</a> or
|
||||||
|
<a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to
|
||||||
|
experience this site.
|
||||||
|
</p>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<div class="alert">
|
||||||
|
You are using an old version of Internet Explorer.
|
||||||
|
For better and safer browsing experience please <a href="http://www.microsoft.com/IE9">upgrade IE</a>
|
||||||
|
or install <a href="http://google.com/chrome">Google Chrome browser</a>.
|
||||||
|
</div>
|
||||||
|
<![endif]-->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="span3">
|
||||||
|
<form class="well form-search" ng-submit="submitForm()">
|
||||||
|
<div class="dropdown search"
|
||||||
|
ng-class="{open: focused && bestMatch.rank > 0 && bestMatch.page != currentPage}">
|
||||||
|
<input type="text" ng-model="search" placeholder="search the docs"
|
||||||
|
tabindex="1" accesskey="s" class="input-medium search-query" focused="focused">
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li>
|
||||||
|
<a href="{{bestMatch.page.url}}">{{bestMatch.page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="spacer"></div>
|
||||||
|
<div ng-show="search">Filtered results:</div>
|
||||||
|
|
||||||
|
<ul class="nav nav-list" ng-hide="page">
|
||||||
|
<li ng-repeat="page in pages" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<ul class="nav nav-list well" ng-repeat="module in modules">
|
||||||
|
<li class="nav-header module">
|
||||||
|
<a class="guide" href="{{URL.module}}">module</a>
|
||||||
|
<a class="code" href="{{module.url}}">{{module.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.directives">
|
||||||
|
<a href="{{URL.directive}}" class="guide">directive</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.directives" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.filters">
|
||||||
|
<a href="{{URL.filter}}" class="guide">filter</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.filters" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.services">
|
||||||
|
<a href="{{URL.service}}" class="guide">service</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="service in module.services" ng-class="navClass(service.instance, service.provider)">
|
||||||
|
<a ng-show="service.provider" class="pull-right" href="{{service.provider.url}}" tabindex="2"><i class="icon-cog"></i></a>
|
||||||
|
<a href="{{service.instance.url}}" tabindex="2">{{service.name}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.types">
|
||||||
|
<a href="{{URL.type}}" class="guide">Types</a>
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.types" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.shortName}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-header section" ng-show="module.globals">
|
||||||
|
<a href="{{URL.api}}" class="global guide">global APIs</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li ng-repeat="page in module.globals" ng-class="navClass(page)">
|
||||||
|
<a href="{{page.url}}" tabindex="2">{{page.id}}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="span9">
|
||||||
|
|
||||||
|
<ul class="breadcrumb">
|
||||||
|
<li ng-repeat="crumb in breadcrumb">
|
||||||
|
<span ng-hide="crumb.url">{{crumb.name}}</span>
|
||||||
|
<a ng-show="crumb.url" href="{{crumb.url}}">{{crumb.name}}</a>
|
||||||
|
<span ng-show="crumb.url" class="divider">/</span>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="loading" ng-show="loading">Loading...</div>
|
||||||
|
|
||||||
|
<div ng-hide="loading" ng-include src="currentPage.partialUrl" onload="afterPartialLoaded()" autoscroll class="content"></div>
|
||||||
|
|
||||||
|
<div id="disqus" class="disqus">
|
||||||
|
<h2>Discussion</h2>
|
||||||
|
<div id="disqus_thread" class="content-panel-content"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="fader" ng-show="subpage" style="display: none"></div>
|
||||||
|
<div id="subpage" ng-show="subpage" style="display: none">
|
||||||
|
<div>
|
||||||
|
<h2>Would you like full offline support for this AngularJS Docs App?</h2>
|
||||||
|
<a ng-click="subpage=false">✕</a>
|
||||||
|
<p>
|
||||||
|
If you want to be able to access the entire AngularJS documentation offline, click the
|
||||||
|
button below. This will reload the current page and trigger background downloads of all the
|
||||||
|
necessary files (approximately 3.5MB). The next time you load the docs, the browser will
|
||||||
|
use these cached files.
|
||||||
|
<br><br>
|
||||||
|
This feature is supported on all modern browsers, except for IE9 which lacks application
|
||||||
|
cache support.
|
||||||
|
</p>
|
||||||
|
<button id="cacheButton" ng-click="enableOffline()">Let me have them all!</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<div class="container">
|
||||||
|
<p class="pull-right"><a href="#">Back to top</a></p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Super-powered by Google ©2010-2012
|
||||||
|
( <a id="version"
|
||||||
|
ng-href="https://github.com/angular/angular.js/blob/master/CHANGELOG.md#{{versionNumber}}"
|
||||||
|
ng-bind-template="v{{version}}">
|
||||||
|
</a>
|
||||||
|
<!-- TODO(i): enable
|
||||||
|
<a ng-hide="offlineEnabled" ng-click ="subpage = true">(enable offline support)</a>
|
||||||
|
<span ng-show="offlineEnabled">(offline support enabled)</span>
|
||||||
|
-->
|
||||||
|
)
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Code licensed under the
|
||||||
|
<a href="https://github.com/angular/angular.js/blob/master/LICENSE" target="_blank">The
|
||||||
|
MIT License</a>. Documentation licensed under <a
|
||||||
|
href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
572
lib/angular/docs/js/docs.js
vendored
Normal file
|
@ -0,0 +1,572 @@
|
||||||
|
var docsApp = {
|
||||||
|
controller: {},
|
||||||
|
directive: {},
|
||||||
|
serviceFactory: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
docsApp.directive.focused = function($timeout) {
|
||||||
|
return function(scope, element, attrs) {
|
||||||
|
element[0].focus();
|
||||||
|
element.bind('focus', function() {
|
||||||
|
scope.$apply(attrs.focused + '=true');
|
||||||
|
});
|
||||||
|
element.bind('blur', function() {
|
||||||
|
// have to use $timeout, so that we close the drop-down after the user clicks,
|
||||||
|
// otherwise when the user clicks we process the closing before we process the click.
|
||||||
|
$timeout(function() {
|
||||||
|
scope.$eval(attrs.focused + '=false');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
scope.$eval(attrs.focused + '=true')
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
docsApp.directive.code = function() {
|
||||||
|
return { restrict:'E', terminal: true };
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
docsApp.directive.sourceEdit = function(getEmbeddedTemplate) {
|
||||||
|
return {
|
||||||
|
template: '<div class="btn-group pull-right">' +
|
||||||
|
'<a class="btn dropdown-toggle btn-primary" data-toggle="dropdown" href>' +
|
||||||
|
' <i class="icon-pencil icon-white"></i> Edit<span class="caret"></span>' +
|
||||||
|
'</a>' +
|
||||||
|
'<ul class="dropdown-menu">' +
|
||||||
|
' <li><a ng-click="plunkr($event)" href="">In Plunkr</a></li>' +
|
||||||
|
' <li><a ng-click="fiddle($event)" href="">In JsFiddle</a></li>' +
|
||||||
|
'</ul>' +
|
||||||
|
'</div>',
|
||||||
|
scope: true,
|
||||||
|
controller: function($scope, $attrs, openJsFiddle, openPlunkr) {
|
||||||
|
var sources = {
|
||||||
|
module: $attrs.sourceEdit,
|
||||||
|
deps: read($attrs.sourceEditDeps),
|
||||||
|
html: read($attrs.sourceEditHtml),
|
||||||
|
css: read($attrs.sourceEditCss),
|
||||||
|
js: read($attrs.sourceEditJs),
|
||||||
|
unit: read($attrs.sourceEditUnit),
|
||||||
|
scenario: read($attrs.sourceEditScenario)
|
||||||
|
};
|
||||||
|
$scope.fiddle = function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
openJsFiddle(sources);
|
||||||
|
};
|
||||||
|
$scope.plunkr = function(e) {
|
||||||
|
e.stopPropagation();
|
||||||
|
openPlunkr(sources);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function read(text) {
|
||||||
|
var files = [];
|
||||||
|
angular.forEach(text ? text.split(' ') : [], function(refId) {
|
||||||
|
// refId is index.html-343, so we need to strip the unique ID when exporting the name
|
||||||
|
files.push({name: refId.replace(/-\d+$/, ''), content: getEmbeddedTemplate(refId)});
|
||||||
|
});
|
||||||
|
return files;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
docsApp.directive.docTutorialNav = function(templateMerge) {
|
||||||
|
var pages = [
|
||||||
|
'',
|
||||||
|
'step_00', 'step_01', 'step_02', 'step_03', 'step_04',
|
||||||
|
'step_05', 'step_06', 'step_07', 'step_08', 'step_09',
|
||||||
|
'step_10', 'step_11', 'the_end'
|
||||||
|
];
|
||||||
|
return {
|
||||||
|
compile: function(element, attrs) {
|
||||||
|
var seq = 1 * attrs.docTutorialNav,
|
||||||
|
props = {
|
||||||
|
seq: seq,
|
||||||
|
prev: pages[seq],
|
||||||
|
next: pages[2 + seq],
|
||||||
|
diffLo: seq ? (seq - 1): '0~1',
|
||||||
|
diffHi: seq
|
||||||
|
};
|
||||||
|
|
||||||
|
element.addClass('btn-group');
|
||||||
|
element.addClass('tutorial-nav');
|
||||||
|
element.append(templateMerge(
|
||||||
|
'<li class="btn btn-primary"><a href="tutorial/{{prev}}"><i class="icon-step-backward"></i> Previous</a></li>\n' +
|
||||||
|
'<li class="btn btn-primary"><a href="http://angular.github.com/angular-phonecat/step-{{seq}}/app"><i class="icon-play"></i> Live Demo</a></li>\n' +
|
||||||
|
'<li class="btn btn-primary"><a href="https://github.com/angular/angular-phonecat/compare/step-{{diffLo}}...step-{{diffHi}}"><i class="icon-search"></i> Code Diff</a></li>\n' +
|
||||||
|
'<li class="btn btn-primary"><a href="tutorial/{{next}}">Next <i class="icon-step-forward"></i></a></li>', props));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
docsApp.directive.docTutorialReset = function() {
|
||||||
|
function tab(name, command, id, step) {
|
||||||
|
return '' +
|
||||||
|
' <div class=\'tab-pane well\' title="' + name + '" value="' + id + '">\n' +
|
||||||
|
' <ol>\n' +
|
||||||
|
' <li><p>Reset the workspace to step ' + step + '.</p>' +
|
||||||
|
' <pre>' + command + '</pre></li>\n' +
|
||||||
|
' <li><p>Refresh your browser or check the app out on <a href="http://angular.github.com/angular-phonecat/step-' + step + '/app">Angular\'s server</a>.</p></li>\n' +
|
||||||
|
' </ol>\n' +
|
||||||
|
' </div>\n';
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
compile: function(element, attrs) {
|
||||||
|
var step = attrs.docTutorialReset;
|
||||||
|
element.html(
|
||||||
|
'<div ng-hide="show">' +
|
||||||
|
'<p><a href="" ng-click="show=true;$event.stopPropagation()">Workspace Reset Instructions ➤</a></p>' +
|
||||||
|
'</div>\n' +
|
||||||
|
'<div class="tabbable" ng-show="show" ng-model="$cookies.platformPreference">\n' +
|
||||||
|
tab('Git on Mac/Linux', 'git checkout -f step-' + step, 'gitUnix', step) +
|
||||||
|
tab('Git on Windows', 'git checkout -f step-' + step, 'gitWin', step) +
|
||||||
|
'</div>\n');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
docsApp.serviceFactory.angularUrls = function($document) {
|
||||||
|
var urls = {};
|
||||||
|
|
||||||
|
angular.forEach($document.find('script'), function(script) {
|
||||||
|
var match = script.src.match(/^.*\/(angular[^\/]*\.js)$/);
|
||||||
|
if (match) {
|
||||||
|
urls[match[1].replace(/(\-\d.*)?(\.min)?\.js$/, '.js')] = match[0];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return urls;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
docsApp.serviceFactory.formPostData = function($document) {
|
||||||
|
return function(url, fields) {
|
||||||
|
var form = angular.element('<form style="display: none;" method="post" action="' + url + '" target="_blank"></form>');
|
||||||
|
angular.forEach(fields, function(value, name) {
|
||||||
|
var input = angular.element('<input type="hidden" name="' + name + '">');
|
||||||
|
input.attr('value', value);
|
||||||
|
form.append(input);
|
||||||
|
});
|
||||||
|
$document.find('body').append(form);
|
||||||
|
form[0].submit();
|
||||||
|
form.remove();
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
docsApp.serviceFactory.openPlunkr = function(templateMerge, formPostData, angularUrls) {
|
||||||
|
return function(content) {
|
||||||
|
var allFiles = [].concat(content.js, content.css, content.html);
|
||||||
|
var indexHtmlContent = '<!doctype html>\n' +
|
||||||
|
'<html ng-app>\n' +
|
||||||
|
' <head>\n' +
|
||||||
|
' <script src="{{angularJSUrl}}"></script>\n' +
|
||||||
|
'{{scriptDeps}}\n' +
|
||||||
|
' </head>\n' +
|
||||||
|
' <body>\n\n' +
|
||||||
|
'{{indexContents}}' +
|
||||||
|
'\n\n </body>\n' +
|
||||||
|
'</html>\n';
|
||||||
|
var scriptDeps = '';
|
||||||
|
angular.forEach(content.deps, function(file) {
|
||||||
|
if (file.name !== 'angular.js') {
|
||||||
|
scriptDeps += ' <script src="' + file.name + '"></script>\n'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
indexProp = {
|
||||||
|
angularJSUrl: angularUrls['angular.js'],
|
||||||
|
scriptDeps: scriptDeps,
|
||||||
|
indexContents: content.html[0].content
|
||||||
|
};
|
||||||
|
var postData = {};
|
||||||
|
angular.forEach(allFiles, function(file, index) {
|
||||||
|
if (file.content && file.name != 'index.html') {
|
||||||
|
postData['files[' + file.name + ']'] = file.content;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
postData['files[index.html]'] = templateMerge(indexHtmlContent, indexProp);
|
||||||
|
postData['tags[]'] = "angularjs";
|
||||||
|
|
||||||
|
postData.private = true;
|
||||||
|
postData.description = 'AngularJS Example Plunkr';
|
||||||
|
|
||||||
|
formPostData('http://plnkr.co/edit/?p=preview', postData);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
docsApp.serviceFactory.openJsFiddle = function(templateMerge, formPostData, angularUrls) {
|
||||||
|
|
||||||
|
var HTML = '<div ng-app=\"{{module}}\">\n{{html:2}}</div>',
|
||||||
|
CSS = '</style> <!-- Ugly Hack due to jsFiddle issue: http://goo.gl/BUfGZ --> \n' +
|
||||||
|
'{{head:0}}<style>\n.ng-invalid { border: 1px solid red; }\n{{css}}',
|
||||||
|
SCRIPT = '{{script}}',
|
||||||
|
SCRIPT_CACHE = '\n\n<!-- {{name}} -->\n<script type="text/ng-template" id="{{name}}">\n{{content:2}}</script>';
|
||||||
|
|
||||||
|
return function(content) {
|
||||||
|
var prop = {
|
||||||
|
module: content.module,
|
||||||
|
html: '',
|
||||||
|
css: '',
|
||||||
|
script: ''
|
||||||
|
};
|
||||||
|
|
||||||
|
prop.head = templateMerge('<script src="{{url}}"></script>', {url: angularUrls['angular.js']});
|
||||||
|
|
||||||
|
angular.forEach(content.html, function(file, index) {
|
||||||
|
if (index) {
|
||||||
|
prop.html += templateMerge(SCRIPT_CACHE, file);
|
||||||
|
} else {
|
||||||
|
prop.html += file.content;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
angular.forEach(content.js, function(file, index) {
|
||||||
|
prop.script += file.content;
|
||||||
|
});
|
||||||
|
|
||||||
|
angular.forEach(content.css, function(file, index) {
|
||||||
|
prop.css += file.content;
|
||||||
|
});
|
||||||
|
|
||||||
|
formPostData("http://jsfiddle.net/api/post/library/pure/", {
|
||||||
|
title: 'AngularJS Example',
|
||||||
|
html: templateMerge(HTML, prop),
|
||||||
|
js: templateMerge(SCRIPT, prop),
|
||||||
|
css: templateMerge(CSS, prop)
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
docsApp.serviceFactory.sections = function sections() {
|
||||||
|
var sections = {
|
||||||
|
guide: [],
|
||||||
|
api: [],
|
||||||
|
tutorial: [],
|
||||||
|
misc: [],
|
||||||
|
cookbook: [],
|
||||||
|
getPage: function(sectionId, partialId) {
|
||||||
|
var pages = sections[sectionId];
|
||||||
|
|
||||||
|
partialId = partialId || 'index';
|
||||||
|
|
||||||
|
for (var i = 0, ii = pages.length; i < ii; i++) {
|
||||||
|
if (pages[i].id == partialId) {
|
||||||
|
return pages[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
angular.forEach(NG_PAGES, function(page) {
|
||||||
|
page.url = page.section + '/' + page.id;
|
||||||
|
if (page.id == 'angular.Module') {
|
||||||
|
page.partialUrl = 'partials/api/angular.IModule.html';
|
||||||
|
} else {
|
||||||
|
page.partialUrl = 'partials/' + page.url + '.html';
|
||||||
|
}
|
||||||
|
|
||||||
|
sections[page.section].push(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
return sections;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
docsApp.controller.DocsController = function($scope, $location, $window, $cookies, sections) {
|
||||||
|
var OFFLINE_COOKIE_NAME = 'ng-offline',
|
||||||
|
DOCS_PATH = /^\/(api)|(guide)|(cookbook)|(misc)|(tutorial)/,
|
||||||
|
INDEX_PATH = /^(\/|\/index[^\.]*.html)$/,
|
||||||
|
GLOBALS = /^angular\.([^\.]+)$/,
|
||||||
|
MODULE = /^((?:(?!^angular\.)[^\.])+)$/,
|
||||||
|
MODULE_MOCK = /^angular\.mock\.([^\.]+)$/,
|
||||||
|
MODULE_DIRECTIVE = /^((?:(?!^angular\.)[^\.])+)\.directive:([^\.]+)$/,
|
||||||
|
MODULE_DIRECTIVE_INPUT = /^((?:(?!^angular\.)[^\.])+)\.directive:input\.([^\.]+)$/,
|
||||||
|
MODULE_FILTER = /^((?:(?!^angular\.)[^\.])+)\.filter:([^\.]+)$/,
|
||||||
|
MODULE_SERVICE = /^((?:(?!^angular\.)[^\.])+)\.([^\.]+?)(Provider)?$/,
|
||||||
|
MODULE_TYPE = /^((?:(?!^angular\.)[^\.])+)\..+\.([A-Z][^\.]+)$/,
|
||||||
|
URL = {
|
||||||
|
module: 'guide/module',
|
||||||
|
directive: 'guide/directive',
|
||||||
|
input: 'api/ng.directive:input',
|
||||||
|
filter: 'guide/dev_guide.templates.filters',
|
||||||
|
service: 'guide/dev_guide.services',
|
||||||
|
type: 'guide/types'
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
Publish methods
|
||||||
|
***********************************/
|
||||||
|
|
||||||
|
$scope.navClass = function(page1, page2) {
|
||||||
|
return {
|
||||||
|
last: this.$last,
|
||||||
|
active: page1 && this.currentPage == page1 || page2 && this.currentPage == page2
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
$scope.submitForm = function() {
|
||||||
|
$scope.bestMatch && $location.path($scope.bestMatch.page.url);
|
||||||
|
};
|
||||||
|
|
||||||
|
$scope.afterPartialLoaded = function() {
|
||||||
|
var currentPageId = $location.path();
|
||||||
|
$scope.partialTitle = $scope.currentPage.shortName;
|
||||||
|
$window._gaq.push(['_trackPageview', currentPageId]);
|
||||||
|
loadDisqus(currentPageId);
|
||||||
|
};
|
||||||
|
|
||||||
|
/** stores a cookie that is used by apache to decide which manifest ot send */
|
||||||
|
$scope.enableOffline = function() {
|
||||||
|
//The cookie will be good for one year!
|
||||||
|
var date = new Date();
|
||||||
|
date.setTime(date.getTime()+(365*24*60*60*1000));
|
||||||
|
var expires = "; expires="+date.toGMTString();
|
||||||
|
var value = angular.version.full;
|
||||||
|
document.cookie = OFFLINE_COOKIE_NAME + "="+value+expires+"; path=" + $location.path;
|
||||||
|
|
||||||
|
//force the page to reload so server can serve new manifest file
|
||||||
|
window.location.reload(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
Watches
|
||||||
|
***********************************/
|
||||||
|
|
||||||
|
var SECTION_NAME = {
|
||||||
|
api: 'API Reference',
|
||||||
|
guide: 'Developer Guide',
|
||||||
|
misc: 'Miscellaneous',
|
||||||
|
tutorial: 'Tutorial',
|
||||||
|
cookbook: 'Examples'
|
||||||
|
};
|
||||||
|
$scope.$watch(function docsPathWatch() {return $location.path(); }, function docsPathWatchAction(path) {
|
||||||
|
// ignore non-doc links which are used in examples
|
||||||
|
if (DOCS_PATH.test(path)) {
|
||||||
|
var parts = path.split('/'),
|
||||||
|
sectionId = parts[1],
|
||||||
|
partialId = parts[2],
|
||||||
|
sectionName = SECTION_NAME[sectionId] || sectionId,
|
||||||
|
page = sections.getPage(sectionId, partialId);
|
||||||
|
|
||||||
|
$scope.currentPage = sections.getPage(sectionId, partialId);
|
||||||
|
|
||||||
|
if (!$scope.currentPage) {
|
||||||
|
$scope.partialTitle = 'Error: Page Not Found!';
|
||||||
|
}
|
||||||
|
|
||||||
|
updateSearch();
|
||||||
|
|
||||||
|
|
||||||
|
// Update breadcrumbs
|
||||||
|
var breadcrumb = $scope.breadcrumb = [],
|
||||||
|
match;
|
||||||
|
|
||||||
|
if (partialId) {
|
||||||
|
breadcrumb.push({ name: sectionName, url: sectionId });
|
||||||
|
if (partialId == 'angular.Module') {
|
||||||
|
breadcrumb.push({ name: 'angular.Module' });
|
||||||
|
} else if (match = partialId.match(GLOBALS)) {
|
||||||
|
breadcrumb.push({ name: partialId });
|
||||||
|
} else if (match = partialId.match(MODULE)) {
|
||||||
|
breadcrumb.push({ name: match[1] });
|
||||||
|
} else if (match = partialId.match(MODULE_FILTER)) {
|
||||||
|
breadcrumb.push({ name: match[1], url: sectionId + '/' + match[1] });
|
||||||
|
breadcrumb.push({ name: match[2] });
|
||||||
|
} else if (match = partialId.match(MODULE_DIRECTIVE)) {
|
||||||
|
breadcrumb.push({ name: match[1], url: sectionId + '/' + match[1] });
|
||||||
|
breadcrumb.push({ name: match[2] });
|
||||||
|
} else if (match = partialId.match(MODULE_DIRECTIVE_INPUT)) {
|
||||||
|
breadcrumb.push({ name: match[1], url: sectionId + '/' + match[1] });
|
||||||
|
breadcrumb.push({ name: 'input', url: URL.input });
|
||||||
|
breadcrumb.push({ name: match[2] });
|
||||||
|
} else if (match = partialId.match(MODULE_TYPE)) {
|
||||||
|
breadcrumb.push({ name: match[1], url: sectionId + '/' + match[1] });
|
||||||
|
breadcrumb.push({ name: match[2] });
|
||||||
|
} else if (match = partialId.match(MODULE_SERVICE)) {
|
||||||
|
breadcrumb.push({ name: match[1], url: sectionId + '/' + match[1] });
|
||||||
|
breadcrumb.push({ name: match[2] + (match[3] || '') });
|
||||||
|
} else if (match = partialId.match(MODULE_MOCK)) {
|
||||||
|
breadcrumb.push({ name: 'angular.mock.' + match[1] });
|
||||||
|
} else {
|
||||||
|
breadcrumb.push({ name: page.shortName });
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
breadcrumb.push({ name: sectionName });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.$watch('search', updateSearch);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
Initialize
|
||||||
|
***********************************/
|
||||||
|
|
||||||
|
$scope.versionNumber = angular.version.full;
|
||||||
|
$scope.version = angular.version.full + " " + angular.version.codeName;
|
||||||
|
$scope.subpage = false;
|
||||||
|
$scope.offlineEnabled = ($cookies[OFFLINE_COOKIE_NAME] == angular.version.full);
|
||||||
|
$scope.futurePartialTitle = null;
|
||||||
|
$scope.loading = 0;
|
||||||
|
$scope.URL = URL;
|
||||||
|
$scope.$cookies = $cookies;
|
||||||
|
|
||||||
|
$cookies.platformPreference = $cookies.platformPreference || 'gitUnix';
|
||||||
|
|
||||||
|
if (!$location.path() || INDEX_PATH.test($location.path())) {
|
||||||
|
$location.path('/api').replace();
|
||||||
|
}
|
||||||
|
// bind escape to hash reset callback
|
||||||
|
angular.element(window).bind('keydown', function(e) {
|
||||||
|
if (e.keyCode === 27) {
|
||||||
|
$scope.$apply(function() {
|
||||||
|
$scope.subpage = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/**********************************
|
||||||
|
Private methods
|
||||||
|
***********************************/
|
||||||
|
|
||||||
|
function updateSearch() {
|
||||||
|
var cache = {},
|
||||||
|
pages = sections[$location.path().split('/')[1]],
|
||||||
|
modules = $scope.modules = [],
|
||||||
|
otherPages = $scope.pages = [],
|
||||||
|
search = $scope.search,
|
||||||
|
bestMatch = {page: null, rank:0};
|
||||||
|
|
||||||
|
angular.forEach(pages, function(page) {
|
||||||
|
var match,
|
||||||
|
id = page.id;
|
||||||
|
|
||||||
|
if (!(match = rank(page, search))) return;
|
||||||
|
|
||||||
|
if (match.rank > bestMatch.rank) {
|
||||||
|
bestMatch = match;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (page.id == 'index') {
|
||||||
|
//skip
|
||||||
|
} else if (page.section != 'api') {
|
||||||
|
otherPages.push(page);
|
||||||
|
} else if (id == 'angular.Module') {
|
||||||
|
module('ng').types.push(page);
|
||||||
|
} else if (match = id.match(GLOBALS)) {
|
||||||
|
module('ng').globals.push(page);
|
||||||
|
} else if (match = id.match(MODULE)) {
|
||||||
|
module(match[1]);
|
||||||
|
} else if (match = id.match(MODULE_FILTER)) {
|
||||||
|
module(match[1]).filters.push(page);
|
||||||
|
} else if (match = id.match(MODULE_DIRECTIVE)) {
|
||||||
|
module(match[1]).directives.push(page);
|
||||||
|
} else if (match = id.match(MODULE_DIRECTIVE_INPUT)) {
|
||||||
|
module(match[1]).directives.push(page);
|
||||||
|
} else if (match = id.match(MODULE_SERVICE)) {
|
||||||
|
module(match[1]).service(match[2])[match[3] ? 'provider' : 'instance'] = page;
|
||||||
|
} else if (match = id.match(MODULE_TYPE)) {
|
||||||
|
module(match[1]).types.push(page);
|
||||||
|
} else if (match = id.match(MODULE_MOCK)) {
|
||||||
|
module('ngMock').globals.push(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$scope.bestMatch = bestMatch;
|
||||||
|
|
||||||
|
/*************/
|
||||||
|
|
||||||
|
function module(name) {
|
||||||
|
var module = cache[name];
|
||||||
|
if (!module) {
|
||||||
|
module = cache[name] = {
|
||||||
|
name: name,
|
||||||
|
url: 'api/' + name,
|
||||||
|
globals: [],
|
||||||
|
directives: [],
|
||||||
|
services: [],
|
||||||
|
service: function(name) {
|
||||||
|
var service = cache[this.name + ':' + name];
|
||||||
|
if (!service) {
|
||||||
|
service = {name: name};
|
||||||
|
cache[this.name + ':' + name] = service;
|
||||||
|
this.services.push(service);
|
||||||
|
}
|
||||||
|
return service;
|
||||||
|
},
|
||||||
|
types: [],
|
||||||
|
filters: []
|
||||||
|
}
|
||||||
|
modules.push(module);
|
||||||
|
}
|
||||||
|
return module;
|
||||||
|
}
|
||||||
|
|
||||||
|
function rank(page, terms) {
|
||||||
|
var ranking = {page: page, rank:0},
|
||||||
|
keywords = page.keywords,
|
||||||
|
title = page.shortName.toLowerCase();
|
||||||
|
|
||||||
|
terms && angular.forEach(terms.toLowerCase().split(' '), function(term) {
|
||||||
|
var index;
|
||||||
|
|
||||||
|
if (ranking) {
|
||||||
|
if (keywords.indexOf(term) == -1) {
|
||||||
|
ranking = null;
|
||||||
|
} else {
|
||||||
|
ranking.rank ++; // one point for each term found
|
||||||
|
if ((index = title.indexOf(term)) != -1) {
|
||||||
|
ranking.rank += 20 - index; // ten points if you match title
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return ranking;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function loadDisqus(currentPageId) {
|
||||||
|
// http://docs.disqus.com/help/2/
|
||||||
|
window.disqus_shortname = 'angularjs-next';
|
||||||
|
window.disqus_identifier = currentPageId;
|
||||||
|
window.disqus_url = 'http://docs.angularjs.org' + currentPageId;
|
||||||
|
|
||||||
|
if ($location.host() == 'localhost') {
|
||||||
|
return; // don't display disqus on localhost, comment this out if needed
|
||||||
|
//window.disqus_developer = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// http://docs.disqus.com/developers/universal/
|
||||||
|
(function() {
|
||||||
|
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
|
||||||
|
dsq.src = 'http://angularjs.disqus.com/embed.js';
|
||||||
|
(document.getElementsByTagName('head')[0] ||
|
||||||
|
document.getElementsByTagName('body')[0]).appendChild(dsq);
|
||||||
|
})();
|
||||||
|
|
||||||
|
angular.element(document.getElementById('disqus_thread')).html('');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
angular.module('docsApp', ['ngResource', 'ngCookies', 'ngSanitize', 'bootstrap', 'bootstrapPrettify']).
|
||||||
|
config(function($locationProvider) {
|
||||||
|
$locationProvider.html5Mode(true).hashPrefix('!');
|
||||||
|
}).
|
||||||
|
factory(docsApp.serviceFactory).
|
||||||
|
directive(docsApp.directive).
|
||||||
|
controller(docsApp.controller);
|
9440
lib/angular/docs/js/jquery.js
vendored
Normal file
2
lib/angular/docs/js/jquery.min.js
vendored
Normal file
4
lib/angular/docs/offline.html
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<h2>OFFLINE</h2>
|
||||||
|
|
||||||
|
<p>This page is currently unavailable because your are offline.</p>
|
||||||
|
<p>Please connect to the Internet and reload the page.</p>
|
169
lib/angular/docs/partials/api/AUTO.$injector.html
Normal file
|
@ -0,0 +1,169 @@
|
||||||
|
<h1><code ng:non-bindable="">$injector</code>
|
||||||
|
<span class="hint">(service in module <code ng:non-bindable="">AUTO</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p><code>$injector</code> is used to retrieve object instances as defined by
|
||||||
|
<a href="api/AUTO.$provide"><code>provider</code></a>, instantiate types, invoke methods,
|
||||||
|
and load modules.</p>
|
||||||
|
|
||||||
|
<p>The following always holds true:</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">
|
||||||
|
var $injector = angular.injector();
|
||||||
|
expect($injector.get('$injector')).toBe($injector);
|
||||||
|
expect($injector.invoke(function($injector){
|
||||||
|
return $injector;
|
||||||
|
}).toBe($injector);
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h3>Injection Function Annotation</h3>
|
||||||
|
|
||||||
|
<p>JavaScript does not have annotations, and annotations are needed for dependency injection. The
|
||||||
|
following ways are all valid way of annotating function with injection arguments and are equivalent.</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">
|
||||||
|
// inferred (only works if code not minified/obfuscated)
|
||||||
|
$inject.invoke(function(serviceA){});
|
||||||
|
|
||||||
|
// annotated
|
||||||
|
function explicit(serviceA) {};
|
||||||
|
explicit.$inject = ['serviceA'];
|
||||||
|
$inject.invoke(explicit);
|
||||||
|
|
||||||
|
// inline
|
||||||
|
$inject.invoke(['serviceA', function(serviceA){}]);
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h4>Inference</h4>
|
||||||
|
|
||||||
|
<p>In JavaScript calling <code>toString()</code> on a function returns the function definition. The definition can then be
|
||||||
|
parsed and the function arguments can be extracted. <em>NOTE:</em> This does not work with minification, and obfuscation
|
||||||
|
tools since these tools change the argument names.</p>
|
||||||
|
|
||||||
|
<h4><code>$inject</code> Annotation</h4>
|
||||||
|
|
||||||
|
<p>By adding a <code>$inject</code> property onto a function the injection parameters can be specified.</p>
|
||||||
|
|
||||||
|
<h4>Inline</h4>
|
||||||
|
|
||||||
|
<p>As an array of injection names, where the last item in the array is the function to call.</p></div>
|
||||||
|
<div class="member method"><h2 id="Methods">Methods</h2>
|
||||||
|
<ul class="methods"><li><h3 id="annotate">annotate(fn)</h3>
|
||||||
|
<div class="annotate"><p>Returns an array of service names which the function is requesting for injection. This API is used by the injector
|
||||||
|
to determine which services need to be injected into the function when the function is invoked. There are three
|
||||||
|
ways in which the function can be annotated with the needed dependencies.</p>
|
||||||
|
|
||||||
|
<h4>Argument names</h4>
|
||||||
|
|
||||||
|
<p>The simplest form is to extract the dependencies from the arguments of the function. This is done by converting
|
||||||
|
the function into a string using <code>toString()</code> method and extracting the argument names.
|
||||||
|
<pre class="prettyprint linenums">
|
||||||
|
// Given
|
||||||
|
function MyController($scope, $route) {
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
|
||||||
|
// Then
|
||||||
|
expect(injector.annotate(MyController)).toEqual(['$scope', '$route']);
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>This method does not work with code minfication / obfuscation. For this reason the following annotation strategies
|
||||||
|
are supported.</p>
|
||||||
|
|
||||||
|
<h4>The <code>$injector</code> property</h4>
|
||||||
|
|
||||||
|
<p>If a function has an <code>$inject</code> property and its value is an array of strings, then the strings represent names of
|
||||||
|
services to be injected into the function.
|
||||||
|
<pre class="prettyprint linenums">
|
||||||
|
// Given
|
||||||
|
var MyController = function(obfuscatedScope, obfuscatedRoute) {
|
||||||
|
// ...
|
||||||
|
}
|
||||||
|
// Define function dependencies
|
||||||
|
MyController.$inject = ['$scope', '$route'];
|
||||||
|
|
||||||
|
// Then
|
||||||
|
expect(injector.annotate(MyController)).toEqual(['$scope', '$route']);
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h4>The array notation</h4>
|
||||||
|
|
||||||
|
<p>It is often desirable to inline Injected functions and that's when setting the <code>$inject</code> property is very
|
||||||
|
inconvenient. In these situations using the array notation to specify the dependencies in a way that survives
|
||||||
|
minification is a better choice:</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">
|
||||||
|
// We wish to write this (not minification / obfuscation safe)
|
||||||
|
injector.invoke(function($compile, $rootScope) {
|
||||||
|
// ...
|
||||||
|
});
|
||||||
|
|
||||||
|
// We are forced to write break inlining
|
||||||
|
var tmpFn = function(obfuscatedCompile, obfuscatedRootScope) {
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
tmpFn.$inject = ['$compile', '$rootScope'];
|
||||||
|
injector.invoke(tempFn);
|
||||||
|
|
||||||
|
// To better support inline function the inline annotation is supported
|
||||||
|
injector.invoke(['$compile', '$rootScope', function(obfCompile, obfRootScope) {
|
||||||
|
// ...
|
||||||
|
}]);
|
||||||
|
|
||||||
|
// Therefore
|
||||||
|
expect(injector.annotate(
|
||||||
|
['$compile', '$rootScope', function(obfus_$compile, obfus_$rootScope) {}])
|
||||||
|
).toEqual(['$compile', '$rootScope']);
|
||||||
|
</pre><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">fn – {function|Array.<string|Function>} – </code>
|
||||||
|
<p>Function for which dependent service names need to be retrieved as described
|
||||||
|
above.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Array.<string>}</code>
|
||||||
|
– <p>The names of the services which the function requires.</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="get">get(name)</h3>
|
||||||
|
<div class="get"><p>Return an instance of the service.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>The name of the instance to retrieve.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{*}</code>
|
||||||
|
– <p>The instance.</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="instantiate">instantiate(Type, locals)</h3>
|
||||||
|
<div class="instantiate"><p>Create a new instance of JS type. The method takes a constructor function invokes the new operator and supplies
|
||||||
|
all of the arguments to the constructor function as specified by the constructor annotation.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">Type – {function} – </code>
|
||||||
|
<p>Annotated constructor function.</p></li>
|
||||||
|
<li><code ng:non-bindable="">locals<i>(optional)</i> – {Object=} – </code>
|
||||||
|
<p>Optional object. If preset then any argument names are read from this object first, before
|
||||||
|
the <code>$injector</code> is consulted.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Object}</code>
|
||||||
|
– <p>new instance of <code>Type</code>.</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="invoke">invoke(fn, self, locals)</h3>
|
||||||
|
<div class="invoke"><p>Invoke the method and supply the method arguments from the <code>$injector</code>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">fn – {!function} – </code>
|
||||||
|
<p>The function to invoke. The function arguments come form the function annotation.</p></li>
|
||||||
|
<li><code ng:non-bindable="">self<i>(optional)</i> – {Object=} – </code>
|
||||||
|
<p>The <code>this</code> for the invoked method.</p></li>
|
||||||
|
<li><code ng:non-bindable="">locals<i>(optional)</i> – {Object=} – </code>
|
||||||
|
<p>Optional object. If preset then any argument names are read from this object first, before
|
||||||
|
the <code>$injector</code> is consulted.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{*}</code>
|
||||||
|
– <p>the value returned by the invoked <code>fn</code> function.</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
138
lib/angular/docs/partials/api/AUTO.$provide.html
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
<h1><code ng:non-bindable="">$provide</code>
|
||||||
|
<span class="hint">(service in module <code ng:non-bindable="">AUTO</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Use <code>$provide</code> to register new providers with the <code>$injector</code>. The providers are the factories for the instance.
|
||||||
|
The providers share the same name as the instance they create with the <code>Provider</code> suffixed to them.</p>
|
||||||
|
|
||||||
|
<p>A provider is an object with a <code>$get()</code> method. The injector calls the <code>$get</code> method to create a new instance of
|
||||||
|
a service. The Provider can have additional methods which would allow for configuration of the provider.</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">
|
||||||
|
function GreetProvider() {
|
||||||
|
var salutation = 'Hello';
|
||||||
|
|
||||||
|
this.salutation = function(text) {
|
||||||
|
salutation = text;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.$get = function() {
|
||||||
|
return function (name) {
|
||||||
|
return salutation + ' ' + name + '!';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('Greeter', function(){
|
||||||
|
|
||||||
|
beforeEach(module(function($provide) {
|
||||||
|
$provide.provider('greet', GreetProvider);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should greet', inject(function(greet) {
|
||||||
|
expect(greet('angular')).toEqual('Hello angular!');
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should allow configuration of salutation', function() {
|
||||||
|
module(function(greetProvider) {
|
||||||
|
greetProvider.salutation('Ahoj');
|
||||||
|
});
|
||||||
|
inject(function(greet) {
|
||||||
|
expect(greet('angular')).toEqual('Ahoj angular!');
|
||||||
|
});
|
||||||
|
)};
|
||||||
|
|
||||||
|
});
|
||||||
|
</pre></div>
|
||||||
|
<div class="member method"><h2 id="Methods">Methods</h2>
|
||||||
|
<ul class="methods"><li><h3 id="constant">constant(name, value)</h3>
|
||||||
|
<div class="constant"><p>A constant value, but unlike <a href="api/AUTO.$provide#value"><code>value</code></a> it can be injected
|
||||||
|
into configuration function (other modules) and it is not interceptable by
|
||||||
|
<a href="api/AUTO.$provide#decorator"><code>decorator</code></a>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>The name of the constant.</p></li>
|
||||||
|
<li><code ng:non-bindable="">value – {*} – </code>
|
||||||
|
<p>The constant value.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Object}</code>
|
||||||
|
– <p>registered instance</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="decorator">decorator(name, decorator)</h3>
|
||||||
|
<div class="decorator"><p>Decoration of service, allows the decorator to intercept the service instance creation. The
|
||||||
|
returned instance may be the original instance, or a new instance which delegates to the
|
||||||
|
original instance.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>The name of the service to decorate.</p></li>
|
||||||
|
<li><code ng:non-bindable="">decorator – {function()} – </code>
|
||||||
|
<p>This function will be invoked when the service needs to be
|
||||||
|
instanciated. The function is called using the <a href="api/AUTO.$injector#invoke"><code>injector.invoke</code></a> method and is therefore fully injectable. Local injection arguments:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>$delegate</code> - The original service instance, which can be monkey patched, configured,
|
||||||
|
decorated or delegated to.</li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="factory">factory(name, $getFn)</h3>
|
||||||
|
<div class="factory"><p>A short hand for configuring services if only <code>$get</code> method is required.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>The name of the instance.</p></li>
|
||||||
|
<li><code ng:non-bindable="">$getFn – {function()} – </code>
|
||||||
|
<p>The $getFn for the instance creation. Internally this is a short hand for
|
||||||
|
<code>$provide.provider(name, {$get: $getFn})</code>.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Object}</code>
|
||||||
|
– <p>registered provider instance</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="provider">provider(name, provider)</h3>
|
||||||
|
<div class="provider"><p>Register a provider for a service. The providers can be retrieved and can have additional configuration methods.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>The name of the instance. NOTE: the provider will be available under <code>name + 'Provider'</code> key.</p></li>
|
||||||
|
<li><code ng:non-bindable="">provider – {(Object|function())} – </code>
|
||||||
|
<p>If the provider is:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>Object</code>: then it should have a <code>$get</code> method. The <code>$get</code> method will be invoked using
|
||||||
|
<a href="api/AUTO.$injector#invoke"><code>$injector.invoke()</code></a> when an instance needs to be created.</li>
|
||||||
|
<li><code>Constructor</code>: a new instance of the provider will be created using
|
||||||
|
<a href="api/AUTO.$injector#instantiate"><code>$injector.instantiate()</code></a>, then treated as <code>object</code>.</li>
|
||||||
|
</ul></li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Object}</code>
|
||||||
|
– <p>registered provider instance</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="service">service(name, constructor)</h3>
|
||||||
|
<div class="service"><p>A short hand for registering service of given class.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>The name of the instance.</p></li>
|
||||||
|
<li><code ng:non-bindable="">constructor – {Function} – </code>
|
||||||
|
<p>A class (constructor function) that will be instantiated.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Object}</code>
|
||||||
|
– <p>registered provider instance</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="value">value(name, value)</h3>
|
||||||
|
<div class="value"><p>A short hand for configuring services if the <code>$get</code> method is a constant.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>The name of the instance.</p></li>
|
||||||
|
<li><code ng:non-bindable="">value – {*} – </code>
|
||||||
|
<p>The value.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Object}</code>
|
||||||
|
– <p>registered provider instance</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
4
lib/angular/docs/partials/api/AUTO.html
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<h1><code ng:non-bindable=""></code>
|
||||||
|
<span class="hint"></span>
|
||||||
|
</h1>
|
||||||
|
<div><p>Implicit module which gets automatically added to each <a href="api/AUTO.$injector"><code>$injector</code></a>.</p></div>
|
116
lib/angular/docs/partials/api/angular.IModule.html
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
<h1><code ng:non-bindable="">Module</code>
|
||||||
|
<span class="hint">(Type in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Interface for configuring angular <a href="api/angular.module"><code>modules</code></a>.</p></div>
|
||||||
|
<div class="member method"><h2 id="Methods">Methods</h2>
|
||||||
|
<ul class="methods"><li><h3 id="config">config(configFn)</h3>
|
||||||
|
<div class="config"><p>Use this method to register work which needs to be performed on module loading.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">configFn – {Function} – </code>
|
||||||
|
<p>Execute this function on module load. Useful for service
|
||||||
|
configuration.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="constant">constant(name, object)</h3>
|
||||||
|
<div class="constant"><p>Because the constant are fixed, they get applied before other provide methods.
|
||||||
|
See <a href="api/AUTO.$provide#constant"><code>$provide.constant()</code></a>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>constant name</p></li>
|
||||||
|
<li><code ng:non-bindable="">object – {*} – </code>
|
||||||
|
<p>Constant value.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="controller">controller(name, constructor)</h3>
|
||||||
|
<div class="controller"><p>See <a href="api/ng.$controllerProvider#register"><code>$controllerProvider.register()</code></a>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>Controller name.</p></li>
|
||||||
|
<li><code ng:non-bindable="">constructor – {Function} – </code>
|
||||||
|
<p>Controller constructor function.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="directive">directive(name, directiveFactory)</h3>
|
||||||
|
<div class="directive"><p>See <a href="api/ng.$compileProvider#directive"><code>$compileProvider.directive()</code></a>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>directive name</p></li>
|
||||||
|
<li><code ng:non-bindable="">directiveFactory – {Function} – </code>
|
||||||
|
<p>Factory function for creating new instance of
|
||||||
|
directives.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="factory">factory(name, providerFunction)</h3>
|
||||||
|
<div class="factory"><p>See <a href="api/AUTO.$provide#factory"><code>$provide.factory()</code></a>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>service name</p></li>
|
||||||
|
<li><code ng:non-bindable="">providerFunction – {Function} – </code>
|
||||||
|
<p>Function for creating new instance of the service.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="filter">filter(name, filterFactory)</h3>
|
||||||
|
<div class="filter"><p>See <a href="api/ng.$filterProvider#register"><code>$filterProvider.register()</code></a>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>Filter name.</p></li>
|
||||||
|
<li><code ng:non-bindable="">filterFactory – {Function} – </code>
|
||||||
|
<p>Factory function for creating new instance of filter.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="provider">provider(name, providerType)</h3>
|
||||||
|
<div class="provider"><p>See <a href="api/AUTO.$provide#provider"><code>$provide.provider()</code></a>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>service name</p></li>
|
||||||
|
<li><code ng:non-bindable="">providerType – {Function} – </code>
|
||||||
|
<p>Construction function for creating new instance of the service.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="run">run(initializationFn)</h3>
|
||||||
|
<div class="run"><p>Use this method to register work which should be performed when the injector is done
|
||||||
|
loading all modules.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">initializationFn – {Function} – </code>
|
||||||
|
<p>Execute this function after injector creation.
|
||||||
|
Useful for application initialization.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="service">service(name, constructor)</h3>
|
||||||
|
<div class="service"><p>See <a href="api/AUTO.$provide#service"><code>$provide.service()</code></a>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>service name</p></li>
|
||||||
|
<li><code ng:non-bindable="">constructor – {Function} – </code>
|
||||||
|
<p>A constructor function that will be instantiated.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="value">value(name, object)</h3>
|
||||||
|
<div class="value"><p>See <a href="api/AUTO.$provide#value"><code>$provide.value()</code></a>.</p><h4 id="Parameters">Parameters</h4>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">name – {string} – </code>
|
||||||
|
<p>service name</p></li>
|
||||||
|
<li><code ng:non-bindable="">object – {*} – </code>
|
||||||
|
<p>Service instance object.</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="member property"><h2 id="Properties">Properties</h2>
|
||||||
|
<ul class="properties"><li><h3 id="name">name</h3>
|
||||||
|
<div class="name"><h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{string}</code>
|
||||||
|
– <p>Name of the module.</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li><h3 id="requires">requires</h3>
|
||||||
|
<div class="requires"><p>Holds the list of modules which the injector will load before the current module is loaded.</p><h4 id="Returns">Returns</h4>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Array.<string>}</code>
|
||||||
|
– <p>List of module names which must be loaded before this module.</p></div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
23
lib/angular/docs/partials/api/angular.bind.html
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.bind</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Returns a function which calls function <code>fn</code> bound to <code>self</code> (<code>self</code> becomes the <code>this</code> for
|
||||||
|
<code>fn</code>). You can supply optional <code>args</code> that are are prebound to the function. This feature is also
|
||||||
|
known as <a href="http://en.wikipedia.org/wiki/Currying">function currying</a>.</p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.bind(self, fn, args);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">self – {Object} – </code>
|
||||||
|
<p>Context which <code>fn</code> should be evaluated in.</p></li>
|
||||||
|
<li><code ng:non-bindable="">fn – {function()} – </code>
|
||||||
|
<p>Function to be bound.</p></li>
|
||||||
|
<li><code ng:non-bindable="">args – {...*} – </code>
|
||||||
|
<p>Optional arguments to be prebound to the <code>fn</code> function call.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{function()}</code>
|
||||||
|
– <p>Function that wraps the <code>fn</code> with all the specified bindings.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
21
lib/angular/docs/partials/api/angular.bootstrap.html
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.bootstrap</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Use this function to manually start up angular application.</p>
|
||||||
|
|
||||||
|
<p>See: <a href="guide/bootstrap">Bootstrap</a></p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.bootstrap(element[, modules]);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">element – {Element} – </code>
|
||||||
|
<p>DOM element which is the root of angular application.</p></li>
|
||||||
|
<li><code ng:non-bindable="">modules<i>(optional)</i> – {Array<String|Function>=} – </code>
|
||||||
|
<p>an array of module declarations. See: <a href="api/angular.module"><code>modules</code></a></p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{AUTO.$injector}</code>
|
||||||
|
– <p>Returns the newly created injector for this app.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
31
lib/angular/docs/partials/api/angular.copy.html
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.copy</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Creates a deep copy of <code>source</code>, which should be an object or an array.</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>If no destination is supplied, a copy of the object or array is created.</li>
|
||||||
|
<li>If a destination is provided, all of its elements (for array) or properties (for objects)
|
||||||
|
are deleted and then all elements/properties from the source are copied to it.</li>
|
||||||
|
<li>If <code>source</code> is not an object or array, <code>source</code> is returned.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>Note: this function is used to augment the Object type in Angular expressions. See
|
||||||
|
<a href="api/ng.$filter"><code>ng.$filter</code></a> for more information about Angular arrays.</p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.copy(source[, destination]);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">source – {*} – </code>
|
||||||
|
<p>The source that will be used to make a copy.
|
||||||
|
Can be any type, including primitives, <code>null</code>, and <code>undefined</code>.</p></li>
|
||||||
|
<li><code ng:non-bindable="">destination<i>(optional)</i> – {(Object|Array)=} – </code>
|
||||||
|
<p>Destination into which the source is copied. If
|
||||||
|
provided, must be of the same type as <code>source</code>.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{*}</code>
|
||||||
|
– <p>The copy or updated <code>destination</code>, if <code>destination</code> was specified.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
80
lib/angular/docs/partials/api/angular.element.html
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.element</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Wraps a raw DOM element or HTML string as a <a href="http://jquery.com">jQuery</a> element.
|
||||||
|
<code>angular.element</code> can be either an alias for <a href="http://api.jquery.com/jQuery/">jQuery</a> function, if
|
||||||
|
jQuery is available, or a function that wraps the element or string in Angular's jQuery lite
|
||||||
|
implementation (commonly referred to as jqLite).</p>
|
||||||
|
|
||||||
|
<p>Real jQuery always takes precedence over jqLite, provided it was loaded before <code>DOMContentLoaded</code>
|
||||||
|
event fired.</p>
|
||||||
|
|
||||||
|
<p>jqLite is a tiny, API-compatible subset of jQuery that allows
|
||||||
|
Angular to manipulate the DOM. jqLite implements only the most commonly needed functionality
|
||||||
|
within a very small footprint, so only a subset of the jQuery API - methods, arguments and
|
||||||
|
invocation styles - are supported.</p>
|
||||||
|
|
||||||
|
<p>Note: All element references in Angular are always wrapped with jQuery or jqLite; they are never
|
||||||
|
raw DOM references.</p>
|
||||||
|
|
||||||
|
<h4>Angular's jQuery lite provides the following methods:</h4>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a href="http://api.jquery.com/addClass/">addClass()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/after/">after()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/append/">append()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/attr/">attr()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/bind/">bind()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/children/">children()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/clone/">clone()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/contents/">contents()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/css/">css()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/data/">data()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/eq/">eq()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/find/">find()</a> - Limited to lookups by tag name.</li>
|
||||||
|
<li><a href="http://api.jquery.com/hasClass/">hasClass()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/html/">html()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/next/">next()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/parent/">parent()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/prepend/">prepend()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/prop/">prop()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/ready/">ready()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/remove/">remove()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/removeAttr/">removeAttr()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/removeClass/">removeClass()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/removeData/">removeData()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/replaceWith/">replaceWith()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/text/">text()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/toggleClass/">toggleClass()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/triggerHandler/">triggerHandler()</a> - Doesn't pass native event objects to handlers.</li>
|
||||||
|
<li><a href="http://api.jquery.com/unbind/">unbind()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/val/">val()</a></li>
|
||||||
|
<li><a href="http://api.jquery.com/wrap/">wrap()</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h4>In addtion to the above, Angular provides additional methods to both jQuery and jQuery lite:</h4>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><code>controller(name)</code> - retrieves the controller of the current element or its parent. By default
|
||||||
|
retrieves controller associated with the <code>ngController</code> directive. If <code>name</code> is provided as
|
||||||
|
camelCase directive name, then the controller for this directive will be retrieved (e.g.
|
||||||
|
<code>'ngModel'</code>).</li>
|
||||||
|
<li><code>injector()</code> - retrieves the injector of the current element or its parent.</li>
|
||||||
|
<li><code>scope()</code> - retrieves the <a href="api/ng.$rootScope.Scope"><code>scope</code></a> of the current
|
||||||
|
element or its parent.</li>
|
||||||
|
<li><code>inheritedData()</code> - same as <code>data()</code>, but walks up the DOM until a value is found or the top
|
||||||
|
parent element is reached.</li>
|
||||||
|
</ul></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.element(element);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">element – {string|DOMElement} – </code>
|
||||||
|
<p>HTML string or DOMElement to be wrapped into jQuery.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Object}</code>
|
||||||
|
– <p>jQuery object.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
33
lib/angular/docs/partials/api/angular.equals.html
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.equals</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Determines if two objects or two values are equivalent. Supports value types, arrays and
|
||||||
|
objects.</p>
|
||||||
|
|
||||||
|
<p>Two objects or values are considered equivalent if at least one of the following is true:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Both objects or values pass <code>===</code> comparison.</li>
|
||||||
|
<li>Both objects or values are of the same type and all of their properties pass <code>===</code> comparison.</li>
|
||||||
|
<li>Both values are NaN. (In JavasScript, NaN == NaN => false. But we consider two NaN as equal)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>During a property comparision, properties of <code>function</code> type and properties with names
|
||||||
|
that begin with <code>$</code> are ignored.</p>
|
||||||
|
|
||||||
|
<p>Scope and DOMWindow objects are being compared only be identify (<code>===</code>).</p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.equals(o1, o2);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">o1 – {*} – </code>
|
||||||
|
<p>Object or value to compare.</p></li>
|
||||||
|
<li><code ng:non-bindable="">o2 – {*} – </code>
|
||||||
|
<p>Object or value to compare.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{boolean}</code>
|
||||||
|
– <p>True if arguments are equal.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
17
lib/angular/docs/partials/api/angular.extend.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.extend</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Extends the destination object <code>dst</code> by copying all of the properties from the <code>src</code> object(s)
|
||||||
|
to <code>dst</code>. You can specify multiple <code>src</code> objects.</p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.extend(dst, src);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">dst – {Object} – </code>
|
||||||
|
<p>Destination object.</p></li>
|
||||||
|
<li><code ng:non-bindable="">src – {...Object} – </code>
|
||||||
|
<p>Source object(s).</p></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
35
lib/angular/docs/partials/api/angular.forEach.html
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.forEach</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Invokes the <code>iterator</code> function once for each item in <code>obj</code> collection, which can be either an
|
||||||
|
object or an array. The <code>iterator</code> function is invoked with <code>iterator(value, key)</code>, where <code>value</code>
|
||||||
|
is the value of an object property or an array element and <code>key</code> is the object property key or
|
||||||
|
array element index. Specifying a <code>context</code> for the function is optional.</p>
|
||||||
|
|
||||||
|
<p>Note: this function was previously known as <code>angular.foreach</code>.</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">
|
||||||
|
var values = {name: 'misko', gender: 'male'};
|
||||||
|
var log = [];
|
||||||
|
angular.forEach(values, function(value, key){
|
||||||
|
this.push(key + ': ' + value);
|
||||||
|
}, log);
|
||||||
|
expect(log).toEqual(['name: misko', 'gender:male']);
|
||||||
|
</pre></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.forEach(obj, iterator[, context]);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">obj – {Object|Array} – </code>
|
||||||
|
<p>Object to iterate over.</p></li>
|
||||||
|
<li><code ng:non-bindable="">iterator – {Function} – </code>
|
||||||
|
<p>Iterator function.</p></li>
|
||||||
|
<li><code ng:non-bindable="">context<i>(optional)</i> – {Object=} – </code>
|
||||||
|
<p>Object to become context (<code>this</code>) for the iterator function.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Object|Array}</code>
|
||||||
|
– <p>Reference to <code>obj</code>.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
17
lib/angular/docs/partials/api/angular.fromJson.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.fromJson</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Deserializes a JSON string.</p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.fromJson(json);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">json – {string} – </code>
|
||||||
|
<p>JSON string to deserialize.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{Object|Array|Date|string|number}</code>
|
||||||
|
– <p>Deserialized thingy.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
17
lib/angular/docs/partials/api/angular.identity.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.identity</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>A function that returns its first argument. This function is useful when writing code in the
|
||||||
|
functional style.</p>
|
||||||
|
|
||||||
|
<pre class="prettyprint linenums">
|
||||||
|
function transformer(transformationFn, value) {
|
||||||
|
return (transformationFn || identity)(value);
|
||||||
|
};
|
||||||
|
</pre></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.identity();</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
32
lib/angular/docs/partials/api/angular.injector.html
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.injector</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Creates an injector function that can be used for retrieving services as well as for
|
||||||
|
dependency injection (see <a href="guide/di">dependency injection</a>).</p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.injector(modules);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">modules – {Array.<string|Function>} – </code>
|
||||||
|
<p>A list of module functions or their aliases. See
|
||||||
|
<a href="api/angular.module"><code>angular.module</code></a>. The <code>ng</code> module must be explicitly added.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{function()}</code>
|
||||||
|
– <p>Injector function. See <a href="api/AUTO.$injector"><code>$injector</code></a>.</p></div>
|
||||||
|
</div>
|
||||||
|
<h2 id="Example">Example</h2>
|
||||||
|
<div class="example"><p>Typical usage
|
||||||
|
<pre class="prettyprint linenums">
|
||||||
|
// create an injector
|
||||||
|
var $injector = angular.injector(['ng']);
|
||||||
|
|
||||||
|
// use the injector to kick off your application
|
||||||
|
// use the type inference to auto inject arguments, or use implicit injection
|
||||||
|
$injector.invoke(function($rootScope, $compile, $document){
|
||||||
|
$compile($document)($rootScope);
|
||||||
|
$rootScope.$digest();
|
||||||
|
});
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
17
lib/angular/docs/partials/api/angular.isArray.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.isArray</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Determines if a reference is an <code>Array</code>.</p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.isArray(value);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">value – {*} – </code>
|
||||||
|
<p>Reference to check.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{boolean}</code>
|
||||||
|
– <p>True if <code>value</code> is an <code>Array</code>.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
17
lib/angular/docs/partials/api/angular.isDate.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.isDate</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Determines if a value is a date.</p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.isDate(value);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">value – {*} – </code>
|
||||||
|
<p>Reference to check.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{boolean}</code>
|
||||||
|
– <p>True if <code>value</code> is a <code>Date</code>.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
17
lib/angular/docs/partials/api/angular.isDefined.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<h1><code ng:non-bindable="">angular.isDefined</code>
|
||||||
|
<span class="hint">(API in module <code ng:non-bindable="">ng</code>
|
||||||
|
)</span>
|
||||||
|
</h1>
|
||||||
|
<div><h2 id="Description">Description</h2>
|
||||||
|
<div class="description"><p>Determines if a reference is defined.</p></div>
|
||||||
|
<h2 id="Usage">Usage</h2>
|
||||||
|
<div class="usage"><pre class="prettyprint linenums">angular.isDefined(value);</pre>
|
||||||
|
<h3 id="Parameters">Parameters</h3>
|
||||||
|
<ul class="parameters"><li><code ng:non-bindable="">value – {*} – </code>
|
||||||
|
<p>Reference to check.</p></li>
|
||||||
|
</ul>
|
||||||
|
<h3 id="Returns">Returns</h3>
|
||||||
|
<div class="returns"><code ng:non-bindable="">{boolean}</code>
|
||||||
|
– <p>True if <code>value</code> is defined.</p></div>
|
||||||
|
</div>
|
||||||
|
</div>
|