mirror of
https://github.com/arnaucube/commonroutesApp.git
synced 2026-02-07 19:46:44 +01:00
geolocation added on offerCar and travel page
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-autocomplete.md-THEME_NAME-theme {
|
||||
background: '{{background-A100}}'; }
|
||||
md-autocomplete.md-THEME_NAME-theme[disabled]:not([md-floating-label]) {
|
||||
background: '{{background-100}}'; }
|
||||
md-autocomplete.md-THEME_NAME-theme button md-icon path {
|
||||
fill: '{{background-600}}'; }
|
||||
md-autocomplete.md-THEME_NAME-theme button:after {
|
||||
background: '{{background-600-0.3}}'; }
|
||||
|
||||
.md-autocomplete-suggestions-container.md-THEME_NAME-theme {
|
||||
background: '{{background-A100}}'; }
|
||||
.md-autocomplete-suggestions-container.md-THEME_NAME-theme li {
|
||||
color: '{{background-900}}'; }
|
||||
.md-autocomplete-suggestions-container.md-THEME_NAME-theme li .highlight {
|
||||
color: '{{background-600}}'; }
|
||||
.md-autocomplete-suggestions-container.md-THEME_NAME-theme li:hover, .md-autocomplete-suggestions-container.md-THEME_NAME-theme li.selected {
|
||||
background: '{{background-200}}'; }
|
||||
6
www/lib/angular-material/modules/js/autocomplete/autocomplete-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/autocomplete/autocomplete-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-autocomplete.md-THEME_NAME-theme{background:'{{background-A100}}'}md-autocomplete.md-THEME_NAME-theme[disabled]:not([md-floating-label]){background:'{{background-100}}'}md-autocomplete.md-THEME_NAME-theme button md-icon path{fill:'{{background-600}}'}md-autocomplete.md-THEME_NAME-theme button:after{background:'{{background-600-0.3}}'}.md-autocomplete-suggestions-container.md-THEME_NAME-theme{background:'{{background-A100}}'}.md-autocomplete-suggestions-container.md-THEME_NAME-theme li{color:'{{background-900}}'}.md-autocomplete-suggestions-container.md-THEME_NAME-theme li .highlight{color:'{{background-600}}'}.md-autocomplete-suggestions-container.md-THEME_NAME-theme li.selected,.md-autocomplete-suggestions-container.md-THEME_NAME-theme li:hover{background:'{{background-200}}'}
|
||||
@@ -0,0 +1,244 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
@-webkit-keyframes md-autocomplete-list-out {
|
||||
0% {
|
||||
-webkit-animation-timing-function: linear;
|
||||
animation-timing-function: linear; }
|
||||
50% {
|
||||
opacity: 0;
|
||||
height: 40px;
|
||||
-webkit-animation-timing-function: ease-in;
|
||||
animation-timing-function: ease-in; }
|
||||
100% {
|
||||
height: 0;
|
||||
opacity: 0; } }
|
||||
|
||||
@keyframes md-autocomplete-list-out {
|
||||
0% {
|
||||
-webkit-animation-timing-function: linear;
|
||||
animation-timing-function: linear; }
|
||||
50% {
|
||||
opacity: 0;
|
||||
height: 40px;
|
||||
-webkit-animation-timing-function: ease-in;
|
||||
animation-timing-function: ease-in; }
|
||||
100% {
|
||||
height: 0;
|
||||
opacity: 0; } }
|
||||
|
||||
@-webkit-keyframes md-autocomplete-list-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
height: 0;
|
||||
-webkit-animation-timing-function: ease-out;
|
||||
animation-timing-function: ease-out; }
|
||||
50% {
|
||||
opacity: 0;
|
||||
height: 40px; }
|
||||
100% {
|
||||
opacity: 1;
|
||||
height: 40px; } }
|
||||
|
||||
@keyframes md-autocomplete-list-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
height: 0;
|
||||
-webkit-animation-timing-function: ease-out;
|
||||
animation-timing-function: ease-out; }
|
||||
50% {
|
||||
opacity: 0;
|
||||
height: 40px; }
|
||||
100% {
|
||||
opacity: 1;
|
||||
height: 40px; } }
|
||||
|
||||
md-autocomplete {
|
||||
border-radius: 2px;
|
||||
display: block;
|
||||
height: 40px;
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
min-width: 190px; }
|
||||
md-autocomplete[disabled] input {
|
||||
cursor: default; }
|
||||
md-autocomplete[md-floating-label] {
|
||||
border-radius: 0;
|
||||
background: transparent;
|
||||
height: auto; }
|
||||
md-autocomplete[md-floating-label] md-input-container {
|
||||
padding-bottom: 0px; }
|
||||
md-autocomplete[md-floating-label] md-autocomplete-wrap {
|
||||
height: auto; }
|
||||
md-autocomplete[md-floating-label] button {
|
||||
position: absolute;
|
||||
top: auto;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
width: 30px;
|
||||
height: 30px; }
|
||||
md-autocomplete md-autocomplete-wrap {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
height: 40px; }
|
||||
md-autocomplete md-autocomplete-wrap.md-menu-showing {
|
||||
z-index: 51; }
|
||||
md-autocomplete md-autocomplete-wrap md-input-container, md-autocomplete md-autocomplete-wrap input {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1 1 0%;
|
||||
flex: 1 1 0%;
|
||||
box-sizing: border-box;
|
||||
min-width: 0; }
|
||||
md-autocomplete md-autocomplete-wrap md-progress-linear {
|
||||
position: absolute;
|
||||
bottom: -2px;
|
||||
left: 0; }
|
||||
md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline {
|
||||
bottom: 40px;
|
||||
right: 2px;
|
||||
left: 2px;
|
||||
width: auto; }
|
||||
md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
-webkit-transition: none;
|
||||
transition: none; }
|
||||
md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container {
|
||||
-webkit-transition: none;
|
||||
transition: none;
|
||||
height: 3px; }
|
||||
md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter {
|
||||
-webkit-transition: opacity 0.15s linear;
|
||||
transition: opacity 0.15s linear; }
|
||||
md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active {
|
||||
opacity: 1; }
|
||||
md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave {
|
||||
-webkit-transition: opacity 0.15s linear;
|
||||
transition: opacity 0.15s linear; }
|
||||
md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active {
|
||||
opacity: 0; }
|
||||
md-autocomplete input:not(.md-input) {
|
||||
font-size: 14px;
|
||||
box-sizing: border-box;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
width: 100%;
|
||||
padding: 0 15px;
|
||||
line-height: 40px;
|
||||
height: 40px; }
|
||||
md-autocomplete input:not(.md-input)::-ms-clear {
|
||||
display: none; }
|
||||
md-autocomplete button {
|
||||
position: relative;
|
||||
line-height: 20px;
|
||||
text-align: center;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
cursor: pointer;
|
||||
border: none;
|
||||
border-radius: 50%;
|
||||
padding: 0;
|
||||
font-size: 12px;
|
||||
background: transparent;
|
||||
margin: auto 5px; }
|
||||
md-autocomplete button:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
right: -6px;
|
||||
bottom: -6px;
|
||||
left: -6px;
|
||||
border-radius: 50%;
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
opacity: 0;
|
||||
-webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); }
|
||||
md-autocomplete button:focus {
|
||||
outline: none; }
|
||||
md-autocomplete button:focus:after {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
opacity: 1; }
|
||||
md-autocomplete button md-icon {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate3d(-50%, -50%, 0) scale(0.9);
|
||||
transform: translate3d(-50%, -50%, 0) scale(0.9); }
|
||||
md-autocomplete button md-icon path {
|
||||
stroke-width: 0; }
|
||||
md-autocomplete button.ng-enter {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
-webkit-transition: -webkit-transform 0.15s ease-out;
|
||||
transition: -webkit-transform 0.15s ease-out;
|
||||
transition: transform 0.15s ease-out;
|
||||
transition: transform 0.15s ease-out, -webkit-transform 0.15s ease-out; }
|
||||
md-autocomplete button.ng-enter.ng-enter-active {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
md-autocomplete button.ng-leave {
|
||||
-webkit-transition: -webkit-transform 0.15s ease-out;
|
||||
transition: -webkit-transform 0.15s ease-out;
|
||||
transition: transform 0.15s ease-out;
|
||||
transition: transform 0.15s ease-out, -webkit-transform 0.15s ease-out; }
|
||||
md-autocomplete button.ng-leave.ng-leave-active {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
@media screen and (-ms-high-contrast: active) {
|
||||
md-autocomplete input {
|
||||
border: 1px solid #fff; }
|
||||
md-autocomplete li:focus {
|
||||
color: #fff; } }
|
||||
|
||||
.md-virtual-repeat-container.md-autocomplete-suggestions-container {
|
||||
position: absolute;
|
||||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
|
||||
height: 225.5px;
|
||||
max-height: 225.5px;
|
||||
z-index: 100; }
|
||||
|
||||
.md-virtual-repeat-container.md-not-found {
|
||||
height: 48px; }
|
||||
|
||||
.md-autocomplete-suggestions {
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
padding: 0; }
|
||||
.md-autocomplete-suggestions li {
|
||||
font-size: 14px;
|
||||
overflow: hidden;
|
||||
padding: 0 15px;
|
||||
line-height: 48px;
|
||||
height: 48px;
|
||||
-webkit-transition: background 0.15s linear;
|
||||
transition: background 0.15s linear;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis; }
|
||||
.md-autocomplete-suggestions li:focus {
|
||||
outline: none; }
|
||||
.md-autocomplete-suggestions li:not(.md-not-found-wrapper) {
|
||||
cursor: pointer; }
|
||||
|
||||
@media screen and (-ms-high-contrast: active) {
|
||||
md-autocomplete,
|
||||
.md-autocomplete-suggestions {
|
||||
border: 1px solid #fff; } }
|
||||
1510
www/lib/angular-material/modules/js/autocomplete/autocomplete.js
vendored
Normal file
1510
www/lib/angular-material/modules/js/autocomplete/autocomplete.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
6
www/lib/angular-material/modules/js/autocomplete/autocomplete.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/autocomplete/autocomplete.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
www/lib/angular-material/modules/js/autocomplete/autocomplete.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/autocomplete/autocomplete.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "angular-material-autocomplete",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560",
|
||||
"angular-material-icon": "1.1.0-master-2b98560",
|
||||
"angular-material-virtualRepeat": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-backdrop {
|
||||
background-color: '{{background-900-0.0}}'; }
|
||||
md-backdrop.md-opaque.md-THEME_NAME-theme {
|
||||
background-color: '{{background-900-1.0}}'; }
|
||||
6
www/lib/angular-material/modules/js/backdrop/backdrop-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/backdrop/backdrop-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-backdrop{background-color:'{{background-900-0.0}}'}md-backdrop.md-opaque.md-THEME_NAME-theme{background-color:'{{background-900-1.0}}'}
|
||||
42
www/lib/angular-material/modules/js/backdrop/backdrop.css
Normal file
42
www/lib/angular-material/modules/js/backdrop/backdrop.css
Normal file
@@ -0,0 +1,42 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-backdrop {
|
||||
-webkit-transition: opacity 450ms;
|
||||
transition: opacity 450ms;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 50; }
|
||||
md-backdrop.md-menu-backdrop {
|
||||
position: fixed !important;
|
||||
z-index: 99; }
|
||||
md-backdrop.md-select-backdrop {
|
||||
z-index: 81;
|
||||
-webkit-transition-duration: 0;
|
||||
transition-duration: 0; }
|
||||
md-backdrop.md-dialog-backdrop {
|
||||
z-index: 79; }
|
||||
md-backdrop.md-bottom-sheet-backdrop {
|
||||
z-index: 69; }
|
||||
md-backdrop.md-sidenav-backdrop {
|
||||
z-index: 59; }
|
||||
md-backdrop.md-click-catcher {
|
||||
position: absolute; }
|
||||
md-backdrop.md-opaque {
|
||||
opacity: .48; }
|
||||
md-backdrop.md-opaque.ng-enter {
|
||||
opacity: 0; }
|
||||
md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active {
|
||||
opacity: .48; }
|
||||
md-backdrop.md-opaque.ng-leave {
|
||||
opacity: .48;
|
||||
-webkit-transition: opacity 400ms;
|
||||
transition: opacity 400ms; }
|
||||
md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active {
|
||||
opacity: 0; }
|
||||
94
www/lib/angular-material/modules/js/backdrop/backdrop.js
vendored
Normal file
94
www/lib/angular-material/modules/js/backdrop/backdrop.js
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
* @ngdoc module
|
||||
* @name material.components.backdrop
|
||||
* @description Backdrop
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdBackdrop
|
||||
* @module material.components.backdrop
|
||||
*
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* `<md-backdrop>` is a backdrop element used by other components, such as dialog and bottom sheet.
|
||||
* Apply class `opaque` to make the backdrop use the theme backdrop color.
|
||||
*
|
||||
*/
|
||||
|
||||
angular
|
||||
.module('material.components.backdrop', ['material.core'])
|
||||
.directive('mdBackdrop', ["$mdTheming", "$mdUtil", "$animate", "$rootElement", "$window", "$log", "$$rAF", "$document", function BackdropDirective($mdTheming, $mdUtil, $animate, $rootElement, $window, $log, $$rAF, $document) {
|
||||
var ERROR_CSS_POSITION = '<md-backdrop> may not work properly in a scrolled, static-positioned parent container.';
|
||||
|
||||
return {
|
||||
restrict: 'E',
|
||||
link: postLink
|
||||
};
|
||||
|
||||
function postLink(scope, element, attrs) {
|
||||
// backdrop may be outside the $rootElement, tell ngAnimate to animate regardless
|
||||
if ($animate.pin) $animate.pin(element, $rootElement);
|
||||
|
||||
var bodyStyles;
|
||||
|
||||
$$rAF(function() {
|
||||
// If body scrolling has been disabled using mdUtil.disableBodyScroll(),
|
||||
// adjust the 'backdrop' height to account for the fixed 'body' top offset.
|
||||
// Note that this can be pretty expensive and is better done inside the $$rAF.
|
||||
bodyStyles = $window.getComputedStyle($document[0].body);
|
||||
|
||||
if (bodyStyles.position === 'fixed') {
|
||||
var resizeHandler = $mdUtil.debounce(function(){
|
||||
bodyStyles = $window.getComputedStyle($document[0].body);
|
||||
resize();
|
||||
}, 60, null, false);
|
||||
|
||||
resize();
|
||||
angular.element($window).on('resize', resizeHandler);
|
||||
|
||||
scope.$on('$destroy', function() {
|
||||
angular.element($window).off('resize', resizeHandler);
|
||||
});
|
||||
}
|
||||
|
||||
// Often $animate.enter() is used to append the backDrop element
|
||||
// so let's wait until $animate is done...
|
||||
var parent = element.parent();
|
||||
|
||||
if (parent.length) {
|
||||
if (parent[0].nodeName === 'BODY') {
|
||||
element.css('position', 'fixed');
|
||||
}
|
||||
|
||||
var styles = $window.getComputedStyle(parent[0]);
|
||||
|
||||
if (styles.position === 'static') {
|
||||
// backdrop uses position:absolute and will not work properly with parent position:static (default)
|
||||
$log.warn(ERROR_CSS_POSITION);
|
||||
}
|
||||
|
||||
// Only inherit the parent if the backdrop has a parent.
|
||||
$mdTheming.inherit(element, parent);
|
||||
}
|
||||
});
|
||||
|
||||
function resize() {
|
||||
var viewportHeight = parseInt(bodyStyles.height, 10) + Math.abs(parseInt(bodyStyles.top, 10));
|
||||
element.css('height', viewportHeight + 'px');
|
||||
}
|
||||
}
|
||||
|
||||
}]);
|
||||
|
||||
})(window, window.angular);
|
||||
6
www/lib/angular-material/modules/js/backdrop/backdrop.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/backdrop/backdrop.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-backdrop{-webkit-transition:opacity .45s;transition:opacity .45s;position:absolute;top:0;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-select-backdrop{z-index:81;-webkit-transition-duration:0;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-click-catcher{position:absolute}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;-webkit-transition:opacity .4s;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}
|
||||
7
www/lib/angular-material/modules/js/backdrop/backdrop.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/backdrop/backdrop.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/
|
||||
!function(e,t,n){"use strict";t.module("material.components.backdrop",["material.core"]).directive("mdBackdrop",["$mdTheming","$mdUtil","$animate","$rootElement","$window","$log","$$rAF","$document",function(e,n,o,i,r,a,d,c){function p(p,l,m){function u(){var e=parseInt(f.height,10)+Math.abs(parseInt(f.top,10));l.css("height",e+"px")}o.pin&&o.pin(l,i);var f;d(function(){if(f=r.getComputedStyle(c[0].body),"fixed"===f.position){var o=n.debounce(function(){f=r.getComputedStyle(c[0].body),u()},60,null,!1);u(),t.element(r).on("resize",o),p.$on("$destroy",function(){t.element(r).off("resize",o)})}var i=l.parent();if(i.length){"BODY"===i[0].nodeName&&l.css("position","fixed");var d=r.getComputedStyle(i[0]);"static"===d.position&&a.warn(s),e.inherit(l,i)}})}var s="<md-backdrop> may not work properly in a scrolled, static-positioned parent container.";return{restrict:"E",link:p}}])}(window,window.angular);
|
||||
7
www/lib/angular-material/modules/js/backdrop/bower.json
Normal file
7
www/lib/angular-material/modules/js/backdrop/bower.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "angular-material-backdrop",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-bottom-sheet.md-THEME_NAME-theme {
|
||||
background-color: '{{background-50}}';
|
||||
border-top-color: '{{background-300}}'; }
|
||||
md-bottom-sheet.md-THEME_NAME-theme.md-list md-list-item {
|
||||
color: '{{foreground-1}}'; }
|
||||
md-bottom-sheet.md-THEME_NAME-theme .md-subheader {
|
||||
background-color: '{{background-50}}'; }
|
||||
md-bottom-sheet.md-THEME_NAME-theme .md-subheader {
|
||||
color: '{{foreground-1}}'; }
|
||||
6
www/lib/angular-material/modules/js/bottomSheet/bottomSheet-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/bottomSheet/bottomSheet-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-bottom-sheet.md-THEME_NAME-theme{background-color:'{{background-50}}';border-top-color:'{{background-300}}'}md-bottom-sheet.md-THEME_NAME-theme.md-list md-list-item{color:'{{foreground-1}}'}md-bottom-sheet.md-THEME_NAME-theme .md-subheader{background-color:'{{background-50}}';color:'{{foreground-1}}'}
|
||||
174
www/lib/angular-material/modules/js/bottomSheet/bottomSheet.css
Normal file
174
www/lib/angular-material/modules/js/bottomSheet/bottomSheet.css
Normal file
@@ -0,0 +1,174 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-bottom-sheet {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
padding: 8px 16px 88px 16px;
|
||||
z-index: 70;
|
||||
border-top-width: 1px;
|
||||
border-top-style: solid;
|
||||
-webkit-transform: translate3d(0, 80px, 0);
|
||||
transform: translate3d(0, 80px, 0);
|
||||
-webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
-webkit-transition-property: -webkit-transform;
|
||||
transition-property: -webkit-transform;
|
||||
transition-property: transform;
|
||||
transition-property: transform, -webkit-transform; }
|
||||
md-bottom-sheet.md-has-header {
|
||||
padding-top: 0; }
|
||||
md-bottom-sheet.ng-enter {
|
||||
opacity: 0;
|
||||
-webkit-transform: translate3d(0, 100%, 0);
|
||||
transform: translate3d(0, 100%, 0); }
|
||||
md-bottom-sheet.ng-enter-active {
|
||||
opacity: 1;
|
||||
display: block;
|
||||
-webkit-transform: translate3d(0, 80px, 0) !important;
|
||||
transform: translate3d(0, 80px, 0) !important; }
|
||||
md-bottom-sheet.ng-leave-active {
|
||||
-webkit-transform: translate3d(0, 100%, 0) !important;
|
||||
transform: translate3d(0, 100%, 0) !important;
|
||||
-webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
|
||||
md-bottom-sheet .md-subheader {
|
||||
background-color: transparent;
|
||||
font-family: Roboto, "Helvetica Neue", sans-serif;
|
||||
line-height: 56px;
|
||||
padding: 0;
|
||||
white-space: nowrap; }
|
||||
md-bottom-sheet md-inline-icon {
|
||||
display: inline-block;
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
fill: #444; }
|
||||
md-bottom-sheet md-list-item {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
outline: none; }
|
||||
md-bottom-sheet md-list-item:hover {
|
||||
cursor: pointer; }
|
||||
md-bottom-sheet.md-list md-list-item {
|
||||
padding: 0;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-grid-row-align: center;
|
||||
align-items: center;
|
||||
height: 48px; }
|
||||
md-bottom-sheet.md-grid {
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
padding-top: 0; }
|
||||
md-bottom-sheet.md-grid md-list {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-webkit-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
-webkit-transition: all 0.5s;
|
||||
transition: all 0.5s;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center; }
|
||||
md-bottom-sheet.md-grid md-list-item {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-grid-row-align: center;
|
||||
align-items: center;
|
||||
-webkit-transition: all 0.5s;
|
||||
transition: all 0.5s;
|
||||
height: 96px;
|
||||
margin-top: 8px;
|
||||
margin-bottom: 8px;
|
||||
/* Mixin for how many grid items to show per row */ }
|
||||
@media (max-width: 960px) {
|
||||
md-bottom-sheet.md-grid md-list-item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1 1 33.33333%;
|
||||
flex: 1 1 33.33333%;
|
||||
max-width: 33.33333%; }
|
||||
md-bottom-sheet.md-grid md-list-item:nth-of-type(3n + 1) {
|
||||
-webkit-box-align: start;
|
||||
-webkit-align-items: flex-start;
|
||||
-ms-grid-row-align: flex-start;
|
||||
align-items: flex-start; }
|
||||
md-bottom-sheet.md-grid md-list-item:nth-of-type(3n) {
|
||||
-webkit-box-align: end;
|
||||
-webkit-align-items: flex-end;
|
||||
-ms-grid-row-align: flex-end;
|
||||
align-items: flex-end; } }
|
||||
@media (min-width: 960px) and (max-width: 1279px) {
|
||||
md-bottom-sheet.md-grid md-list-item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1 1 25%;
|
||||
flex: 1 1 25%;
|
||||
max-width: 25%; } }
|
||||
@media (min-width: 1280px) and (max-width: 1919px) {
|
||||
md-bottom-sheet.md-grid md-list-item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1 1 16.66667%;
|
||||
flex: 1 1 16.66667%;
|
||||
max-width: 16.66667%; } }
|
||||
@media (min-width: 1920px) {
|
||||
md-bottom-sheet.md-grid md-list-item {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1 1 14.28571%;
|
||||
flex: 1 1 14.28571%;
|
||||
max-width: 14.28571%; } }
|
||||
md-bottom-sheet.md-grid md-list-item::before {
|
||||
display: none; }
|
||||
md-bottom-sheet.md-grid md-list-item .md-list-item-content {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
width: 48px;
|
||||
padding-bottom: 16px; }
|
||||
md-bottom-sheet.md-grid md-list-item .md-grid-item-content {
|
||||
border: 1px solid transparent;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
width: 80px; }
|
||||
md-bottom-sheet.md-grid md-list-item .md-grid-text {
|
||||
font-weight: 400;
|
||||
line-height: 16px;
|
||||
font-size: 13px;
|
||||
margin: 0;
|
||||
white-space: nowrap;
|
||||
width: 64px;
|
||||
text-align: center;
|
||||
text-transform: none;
|
||||
padding-top: 8px; }
|
||||
|
||||
@media screen and (-ms-high-contrast: active) {
|
||||
md-bottom-sheet {
|
||||
border: 1px solid #fff; } }
|
||||
301
www/lib/angular-material/modules/js/bottomSheet/bottomSheet.js
vendored
Normal file
301
www/lib/angular-material/modules/js/bottomSheet/bottomSheet.js
vendored
Normal file
@@ -0,0 +1,301 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.bottomSheet
|
||||
* @description
|
||||
* BottomSheet
|
||||
*/
|
||||
MdBottomSheetDirective.$inject = ["$mdBottomSheet"];
|
||||
MdBottomSheetProvider.$inject = ["$$interimElementProvider"];
|
||||
angular
|
||||
.module('material.components.bottomSheet', [
|
||||
'material.core',
|
||||
'material.components.backdrop'
|
||||
])
|
||||
.directive('mdBottomSheet', MdBottomSheetDirective)
|
||||
.provider('$mdBottomSheet', MdBottomSheetProvider);
|
||||
|
||||
/* ngInject */
|
||||
function MdBottomSheetDirective($mdBottomSheet) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
link : function postLink(scope, element) {
|
||||
element.addClass('_md'); // private md component indicator for styling
|
||||
|
||||
// When navigation force destroys an interimElement, then
|
||||
// listen and $destroy() that interim instance...
|
||||
scope.$on('$destroy', function() {
|
||||
$mdBottomSheet.destroy();
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @ngdoc service
|
||||
* @name $mdBottomSheet
|
||||
* @module material.components.bottomSheet
|
||||
*
|
||||
* @description
|
||||
* `$mdBottomSheet` opens a bottom sheet over the app and provides a simple promise API.
|
||||
*
|
||||
* ## Restrictions
|
||||
*
|
||||
* - The bottom sheet's template must have an outer `<md-bottom-sheet>` element.
|
||||
* - Add the `md-grid` class to the bottom sheet for a grid layout.
|
||||
* - Add the `md-list` class to the bottom sheet for a list layout.
|
||||
*
|
||||
* @usage
|
||||
* <hljs lang="html">
|
||||
* <div ng-controller="MyController">
|
||||
* <md-button ng-click="openBottomSheet()">
|
||||
* Open a Bottom Sheet!
|
||||
* </md-button>
|
||||
* </div>
|
||||
* </hljs>
|
||||
* <hljs lang="js">
|
||||
* var app = angular.module('app', ['ngMaterial']);
|
||||
* app.controller('MyController', function($scope, $mdBottomSheet) {
|
||||
* $scope.openBottomSheet = function() {
|
||||
* $mdBottomSheet.show({
|
||||
* template: '<md-bottom-sheet>Hello!</md-bottom-sheet>'
|
||||
* });
|
||||
* };
|
||||
* });
|
||||
* </hljs>
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $mdBottomSheet#show
|
||||
*
|
||||
* @description
|
||||
* Show a bottom sheet with the specified options.
|
||||
*
|
||||
* @param {object} options An options object, with the following properties:
|
||||
*
|
||||
* - `templateUrl` - `{string=}`: The url of an html template file that will
|
||||
* be used as the content of the bottom sheet. Restrictions: the template must
|
||||
* have an outer `md-bottom-sheet` element.
|
||||
* - `template` - `{string=}`: Same as templateUrl, except this is an actual
|
||||
* template string.
|
||||
* - `scope` - `{object=}`: the scope to link the template / controller to. If none is specified, it will create a new child scope.
|
||||
* This scope will be destroyed when the bottom sheet is removed unless `preserveScope` is set to true.
|
||||
* - `preserveScope` - `{boolean=}`: whether to preserve the scope when the element is removed. Default is false
|
||||
* - `controller` - `{string=}`: The controller to associate with this bottom sheet.
|
||||
* - `locals` - `{string=}`: An object containing key/value pairs. The keys will
|
||||
* be used as names of values to inject into the controller. For example,
|
||||
* `locals: {three: 3}` would inject `three` into the controller with the value
|
||||
* of 3.
|
||||
* - `clickOutsideToClose` - `{boolean=}`: Whether the user can click outside the bottom sheet to
|
||||
* close it. Default true.
|
||||
* - `disableBackdrop` - `{boolean=}`: When set to true, the bottomsheet will not show a backdrop.
|
||||
* - `escapeToClose` - `{boolean=}`: Whether the user can press escape to close the bottom sheet.
|
||||
* Default true.
|
||||
* - `resolve` - `{object=}`: Similar to locals, except it takes promises as values
|
||||
* and the bottom sheet will not open until the promises resolve.
|
||||
* - `controllerAs` - `{string=}`: An alias to assign the controller to on the scope.
|
||||
* - `parent` - `{element=}`: The element to append the bottom sheet to. The `parent` may be a `function`, `string`,
|
||||
* `object`, or null. Defaults to appending to the body of the root element (or the root element) of the application.
|
||||
* e.g. angular.element(document.getElementById('content')) or "#content"
|
||||
* - `disableParentScroll` - `{boolean=}`: Whether to disable scrolling while the bottom sheet is open.
|
||||
* Default true.
|
||||
*
|
||||
* @returns {promise} A promise that can be resolved with `$mdBottomSheet.hide()` or
|
||||
* rejected with `$mdBottomSheet.cancel()`.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $mdBottomSheet#hide
|
||||
*
|
||||
* @description
|
||||
* Hide the existing bottom sheet and resolve the promise returned from
|
||||
* `$mdBottomSheet.show()`. This call will close the most recently opened/current bottomsheet (if any).
|
||||
*
|
||||
* @param {*=} response An argument for the resolved promise.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $mdBottomSheet#cancel
|
||||
*
|
||||
* @description
|
||||
* Hide the existing bottom sheet and reject the promise returned from
|
||||
* `$mdBottomSheet.show()`.
|
||||
*
|
||||
* @param {*=} response An argument for the rejected promise.
|
||||
*
|
||||
*/
|
||||
|
||||
function MdBottomSheetProvider($$interimElementProvider) {
|
||||
// how fast we need to flick down to close the sheet, pixels/ms
|
||||
bottomSheetDefaults.$inject = ["$animate", "$mdConstant", "$mdUtil", "$mdTheming", "$mdBottomSheet", "$rootElement", "$mdGesture", "$log"];
|
||||
var CLOSING_VELOCITY = 0.5;
|
||||
var PADDING = 80; // same as css
|
||||
|
||||
return $$interimElementProvider('$mdBottomSheet')
|
||||
.setDefaults({
|
||||
methods: ['disableParentScroll', 'escapeToClose', 'clickOutsideToClose'],
|
||||
options: bottomSheetDefaults
|
||||
});
|
||||
|
||||
/* ngInject */
|
||||
function bottomSheetDefaults($animate, $mdConstant, $mdUtil, $mdTheming, $mdBottomSheet, $rootElement,
|
||||
$mdGesture, $log) {
|
||||
var backdrop;
|
||||
|
||||
return {
|
||||
themable: true,
|
||||
onShow: onShow,
|
||||
onRemove: onRemove,
|
||||
disableBackdrop: false,
|
||||
escapeToClose: true,
|
||||
clickOutsideToClose: true,
|
||||
disableParentScroll: true
|
||||
};
|
||||
|
||||
|
||||
function onShow(scope, element, options, controller) {
|
||||
|
||||
element = $mdUtil.extractElementByName(element, 'md-bottom-sheet');
|
||||
|
||||
// prevent tab focus or click focus on the bottom-sheet container
|
||||
element.attr('tabindex',"-1");
|
||||
|
||||
// Once the md-bottom-sheet has `ng-cloak` applied on his template the opening animation will not work properly.
|
||||
// This is a very common problem, so we have to notify the developer about this.
|
||||
if (element.hasClass('ng-cloak')) {
|
||||
var message = '$mdBottomSheet: using `<md-bottom-sheet ng-cloak >` will affect the bottom-sheet opening animations.';
|
||||
$log.warn( message, element[0] );
|
||||
}
|
||||
|
||||
if (!options.disableBackdrop) {
|
||||
// Add a backdrop that will close on click
|
||||
backdrop = $mdUtil.createBackdrop(scope, "md-bottom-sheet-backdrop md-opaque");
|
||||
|
||||
// Prevent mouse focus on backdrop; ONLY programatic focus allowed.
|
||||
// This allows clicks on backdrop to propogate to the $rootElement and
|
||||
// ESC key events to be detected properly.
|
||||
|
||||
backdrop[0].tabIndex = -1;
|
||||
|
||||
if (options.clickOutsideToClose) {
|
||||
backdrop.on('click', function() {
|
||||
$mdUtil.nextTick($mdBottomSheet.cancel,true);
|
||||
});
|
||||
}
|
||||
|
||||
$mdTheming.inherit(backdrop, options.parent);
|
||||
|
||||
$animate.enter(backdrop, options.parent, null);
|
||||
}
|
||||
|
||||
var bottomSheet = new BottomSheet(element, options.parent);
|
||||
options.bottomSheet = bottomSheet;
|
||||
|
||||
$mdTheming.inherit(bottomSheet.element, options.parent);
|
||||
|
||||
if (options.disableParentScroll) {
|
||||
options.restoreScroll = $mdUtil.disableScrollAround(bottomSheet.element, options.parent);
|
||||
}
|
||||
|
||||
return $animate.enter(bottomSheet.element, options.parent, backdrop)
|
||||
.then(function() {
|
||||
var focusable = $mdUtil.findFocusTarget(element) || angular.element(
|
||||
element[0].querySelector('button') ||
|
||||
element[0].querySelector('a') ||
|
||||
element[0].querySelector($mdUtil.prefixer('ng-click', true))
|
||||
) || backdrop;
|
||||
|
||||
if (options.escapeToClose) {
|
||||
options.rootElementKeyupCallback = function(e) {
|
||||
if (e.keyCode === $mdConstant.KEY_CODE.ESCAPE) {
|
||||
$mdUtil.nextTick($mdBottomSheet.cancel,true);
|
||||
}
|
||||
};
|
||||
|
||||
$rootElement.on('keyup', options.rootElementKeyupCallback);
|
||||
focusable && focusable.focus();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function onRemove(scope, element, options) {
|
||||
|
||||
var bottomSheet = options.bottomSheet;
|
||||
|
||||
if (!options.disableBackdrop) $animate.leave(backdrop);
|
||||
return $animate.leave(bottomSheet.element).then(function() {
|
||||
if (options.disableParentScroll) {
|
||||
options.restoreScroll();
|
||||
delete options.restoreScroll;
|
||||
}
|
||||
|
||||
bottomSheet.cleanup();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* BottomSheet class to apply bottom-sheet behavior to an element
|
||||
*/
|
||||
function BottomSheet(element, parent) {
|
||||
var deregister = $mdGesture.register(parent, 'drag', { horizontal: false });
|
||||
parent.on('$md.dragstart', onDragStart)
|
||||
.on('$md.drag', onDrag)
|
||||
.on('$md.dragend', onDragEnd);
|
||||
|
||||
return {
|
||||
element: element,
|
||||
cleanup: function cleanup() {
|
||||
deregister();
|
||||
parent.off('$md.dragstart', onDragStart);
|
||||
parent.off('$md.drag', onDrag);
|
||||
parent.off('$md.dragend', onDragEnd);
|
||||
}
|
||||
};
|
||||
|
||||
function onDragStart(ev) {
|
||||
// Disable transitions on transform so that it feels fast
|
||||
element.css($mdConstant.CSS.TRANSITION_DURATION, '0ms');
|
||||
}
|
||||
|
||||
function onDrag(ev) {
|
||||
var transform = ev.pointer.distanceY;
|
||||
if (transform < 5) {
|
||||
// Slow down drag when trying to drag up, and stop after PADDING
|
||||
transform = Math.max(-PADDING, transform / 2);
|
||||
}
|
||||
element.css($mdConstant.CSS.TRANSFORM, 'translate3d(0,' + (PADDING + transform) + 'px,0)');
|
||||
}
|
||||
|
||||
function onDragEnd(ev) {
|
||||
if (ev.pointer.distanceY > 0 &&
|
||||
(ev.pointer.distanceY > 20 || Math.abs(ev.pointer.velocityY) > CLOSING_VELOCITY)) {
|
||||
var distanceRemaining = element.prop('offsetHeight') - ev.pointer.distanceY;
|
||||
var transitionDuration = Math.min(distanceRemaining / ev.pointer.velocityY * 0.75, 500);
|
||||
element.css($mdConstant.CSS.TRANSITION_DURATION, transitionDuration + 'ms');
|
||||
$mdUtil.nextTick($mdBottomSheet.cancel,true);
|
||||
} else {
|
||||
element.css($mdConstant.CSS.TRANSITION_DURATION, '');
|
||||
element.css($mdConstant.CSS.TRANSFORM, '');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})(window, window.angular);
|
||||
6
www/lib/angular-material/modules/js/bottomSheet/bottomSheet.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/bottomSheet/bottomSheet.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-bottom-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 16px 88px;z-index:70;border-top-width:1px;border-top-style:solid;-webkit-transform:translate3d(0,80px,0);transform:translate3d(0,80px,0);-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1);-webkit-transition-property:-webkit-transform;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;-webkit-transform:translate3d(0,80px,0)!important;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{-webkit-transform:translate3d(0,100%,0)!important;transform:translate3d(0,100%,0)!important;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;font-family:Roboto,Helvetica Neue,sans-serif;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:-webkit-box;display:-webkit-flex;display:flex;outline:none}md-bottom-sheet md-list-item:hover{cursor:pointer}md-bottom-sheet.md-list md-list-item{padding:0;-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap}md-bottom-sheet.md-grid md-list,md-bottom-sheet.md-grid md-list-item{-webkit-box-direction:normal;-webkit-transition:all .5s;transition:all .5s;-webkit-box-align:center;-webkit-align-items:center;align-items:center}md-bottom-sheet.md-grid md-list-item{-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column;-ms-grid-row-align:center;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 33.33333%;flex:1 1 33.33333%;max-width:33.33333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){-webkit-box-align:start;-webkit-align-items:flex-start;-ms-grid-row-align:flex-start;align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){-webkit-box-align:end;-webkit-align-items:flex-end;-ms-grid-row-align:flex-end;align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 25%;flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 16.66667%;flex:1 1 16.66667%;max-width:16.66667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{-webkit-box-flex:1;-webkit-flex:1 1 14.28571%;flex:1 1 14.28571%;max-width:14.28571%}}md-bottom-sheet.md-grid md-list-item:before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content,md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}
|
||||
7
www/lib/angular-material/modules/js/bottomSheet/bottomSheet.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/bottomSheet/bottomSheet.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/
|
||||
!function(e,t,o){"use strict";function n(e){return{restrict:"E",link:function(t,o){o.addClass("_md"),t.$on("$destroy",function(){e.destroy()})}}}function r(e){function o(e,o,a,c,i,l,s,d){function m(n,r,s,m){if(r=a.extractElementByName(r,"md-bottom-sheet"),r.attr("tabindex","-1"),r.hasClass("ng-cloak")){var u="$mdBottomSheet: using `<md-bottom-sheet ng-cloak >` will affect the bottom-sheet opening animations.";d.warn(u,r[0])}s.disableBackdrop||(p=a.createBackdrop(n,"md-bottom-sheet-backdrop md-opaque"),p[0].tabIndex=-1,s.clickOutsideToClose&&p.on("click",function(){a.nextTick(i.cancel,!0)}),c.inherit(p,s.parent),e.enter(p,s.parent,null));var f=new S(r,s.parent);return s.bottomSheet=f,c.inherit(f.element,s.parent),s.disableParentScroll&&(s.restoreScroll=a.disableScrollAround(f.element,s.parent)),e.enter(f.element,s.parent,p).then(function(){var e=a.findFocusTarget(r)||t.element(r[0].querySelector("button")||r[0].querySelector("a")||r[0].querySelector(a.prefixer("ng-click",!0)))||p;s.escapeToClose&&(s.rootElementKeyupCallback=function(e){e.keyCode===o.KEY_CODE.ESCAPE&&a.nextTick(i.cancel,!0)},l.on("keyup",s.rootElementKeyupCallback),e&&e.focus())})}function u(t,o,n){var r=n.bottomSheet;return n.disableBackdrop||e.leave(p),e.leave(r.element).then(function(){n.disableParentScroll&&(n.restoreScroll(),delete n.restoreScroll),r.cleanup()})}function S(e,t){function c(t){e.css(o.CSS.TRANSITION_DURATION,"0ms")}function l(t){var n=t.pointer.distanceY;n<5&&(n=Math.max(-r,n/2)),e.css(o.CSS.TRANSFORM,"translate3d(0,"+(r+n)+"px,0)")}function d(t){if(t.pointer.distanceY>0&&(t.pointer.distanceY>20||Math.abs(t.pointer.velocityY)>n)){var r=e.prop("offsetHeight")-t.pointer.distanceY,c=Math.min(r/t.pointer.velocityY*.75,500);e.css(o.CSS.TRANSITION_DURATION,c+"ms"),a.nextTick(i.cancel,!0)}else e.css(o.CSS.TRANSITION_DURATION,""),e.css(o.CSS.TRANSFORM,"")}var m=s.register(t,"drag",{horizontal:!1});return t.on("$md.dragstart",c).on("$md.drag",l).on("$md.dragend",d),{element:e,cleanup:function(){m(),t.off("$md.dragstart",c),t.off("$md.drag",l),t.off("$md.dragend",d)}}}var p;return{themable:!0,onShow:m,onRemove:u,disableBackdrop:!1,escapeToClose:!0,clickOutsideToClose:!0,disableParentScroll:!0}}o.$inject=["$animate","$mdConstant","$mdUtil","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture","$log"];var n=.5,r=80;return e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","clickOutsideToClose"],options:o})}n.$inject=["$mdBottomSheet"],r.$inject=["$$interimElementProvider"],t.module("material.components.bottomSheet",["material.core","material.components.backdrop"]).directive("mdBottomSheet",n).provider("$mdBottomSheet",r)}(window,window.angular);
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "angular-material-bottomSheet",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560",
|
||||
"angular-material-backdrop": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
7
www/lib/angular-material/modules/js/button/bower.json
Normal file
7
www/lib/angular-material/modules/js/button/bower.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "angular-material-button",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
.md-button.md-THEME_NAME-theme:not([disabled]):hover {
|
||||
background-color: '{{background-500-0.2}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme:not([disabled]).md-focused {
|
||||
background-color: '{{background-500-0.2}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover {
|
||||
background-color: transparent; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme.md-fab {
|
||||
background-color: '{{accent-color}}';
|
||||
color: '{{accent-contrast}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-fab md-icon {
|
||||
color: '{{accent-contrast}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover {
|
||||
background-color: '{{accent-A700}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused {
|
||||
background-color: '{{accent-A700}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme.md-primary {
|
||||
color: '{{primary-color}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-primary.md-raised, .md-button.md-THEME_NAME-theme.md-primary.md-fab {
|
||||
color: '{{primary-contrast}}';
|
||||
background-color: '{{primary-color}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]) md-icon {
|
||||
color: '{{primary-contrast}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]):hover {
|
||||
background-color: '{{primary-600}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]).md-focused {
|
||||
background-color: '{{primary-600}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon {
|
||||
color: '{{primary-color}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme.md-fab {
|
||||
background-color: '{{accent-color}}';
|
||||
color: '{{accent-contrast}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon {
|
||||
color: '{{accent-contrast}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover {
|
||||
background-color: '{{accent-A700}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused {
|
||||
background-color: '{{accent-A700}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme.md-raised {
|
||||
color: '{{background-900}}';
|
||||
background-color: '{{background-50}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-raised:not([disabled]) md-icon {
|
||||
color: '{{background-900}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover {
|
||||
background-color: '{{background-50}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused {
|
||||
background-color: '{{background-200}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme.md-warn {
|
||||
color: '{{warn-color}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-warn.md-raised, .md-button.md-THEME_NAME-theme.md-warn.md-fab {
|
||||
color: '{{warn-contrast}}';
|
||||
background-color: '{{warn-color}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]) md-icon {
|
||||
color: '{{warn-contrast}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]):hover {
|
||||
background-color: '{{warn-600}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]).md-focused {
|
||||
background-color: '{{warn-600}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-warn:not([disabled]) md-icon {
|
||||
color: '{{warn-color}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme.md-accent {
|
||||
color: '{{accent-color}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-accent.md-raised, .md-button.md-THEME_NAME-theme.md-accent.md-fab {
|
||||
color: '{{accent-contrast}}';
|
||||
background-color: '{{accent-color}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]) md-icon {
|
||||
color: '{{accent-contrast}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]):hover {
|
||||
background-color: '{{accent-A700}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]).md-focused {
|
||||
background-color: '{{accent-A700}}'; }
|
||||
.md-button.md-THEME_NAME-theme.md-accent:not([disabled]) md-icon {
|
||||
color: '{{accent-color}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme[disabled], .md-button.md-THEME_NAME-theme.md-raised[disabled], .md-button.md-THEME_NAME-theme.md-fab[disabled], .md-button.md-THEME_NAME-theme.md-accent[disabled], .md-button.md-THEME_NAME-theme.md-warn[disabled] {
|
||||
color: '{{foreground-3}}';
|
||||
cursor: default; }
|
||||
.md-button.md-THEME_NAME-theme[disabled] md-icon, .md-button.md-THEME_NAME-theme.md-raised[disabled] md-icon, .md-button.md-THEME_NAME-theme.md-fab[disabled] md-icon, .md-button.md-THEME_NAME-theme.md-accent[disabled] md-icon, .md-button.md-THEME_NAME-theme.md-warn[disabled] md-icon {
|
||||
color: '{{foreground-3}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme.md-raised[disabled], .md-button.md-THEME_NAME-theme.md-fab[disabled] {
|
||||
background-color: '{{foreground-4}}'; }
|
||||
|
||||
.md-button.md-THEME_NAME-theme[disabled] {
|
||||
background-color: transparent; }
|
||||
|
||||
._md a.md-THEME_NAME-theme:not(.md-button).md-primary {
|
||||
color: '{{primary-color}}'; }
|
||||
._md a.md-THEME_NAME-theme:not(.md-button).md-primary:hover {
|
||||
color: '{{primary-700}}'; }
|
||||
|
||||
._md a.md-THEME_NAME-theme:not(.md-button).md-accent {
|
||||
color: '{{accent-color}}'; }
|
||||
._md a.md-THEME_NAME-theme:not(.md-button).md-accent:hover {
|
||||
color: '{{accent-700}}'; }
|
||||
|
||||
._md a.md-THEME_NAME-theme:not(.md-button).md-accent {
|
||||
color: '{{accent-color}}'; }
|
||||
._md a.md-THEME_NAME-theme:not(.md-button).md-accent:hover {
|
||||
color: '{{accent-A700}}'; }
|
||||
|
||||
._md a.md-THEME_NAME-theme:not(.md-button).md-warn {
|
||||
color: '{{warn-color}}'; }
|
||||
._md a.md-THEME_NAME-theme:not(.md-button).md-warn:hover {
|
||||
color: '{{warn-700}}'; }
|
||||
6
www/lib/angular-material/modules/js/button/button-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/button/button-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/.md-button.md-THEME_NAME-theme:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme:not([disabled]):hover{background-color:'{{background-500-0.2}}'}.md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover{background-color:transparent}.md-button.md-THEME_NAME-theme.md-fab md-icon{color:'{{accent-contrast}}'}.md-button.md-THEME_NAME-theme.md-primary{color:'{{primary-color}}'}.md-button.md-THEME_NAME-theme.md-primary.md-fab,.md-button.md-THEME_NAME-theme.md-primary.md-raised{color:'{{primary-contrast}}';background-color:'{{primary-color}}'}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]) md-icon{color:'{{primary-contrast}}'}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]):hover{background-color:'{{primary-600}}'}.md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon{color:'{{primary-color}}'}.md-button.md-THEME_NAME-theme.md-fab{background-color:'{{accent-color}}';color:'{{accent-contrast}}'}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon{color:'{{accent-contrast}}'}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover{background-color:'{{accent-A700}}'}.md-button.md-THEME_NAME-theme.md-raised{color:'{{background-900}}';background-color:'{{background-50}}'}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]) md-icon{color:'{{background-900}}'}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover{background-color:'{{background-50}}'}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused{background-color:'{{background-200}}'}.md-button.md-THEME_NAME-theme.md-warn{color:'{{warn-color}}'}.md-button.md-THEME_NAME-theme.md-warn.md-fab,.md-button.md-THEME_NAME-theme.md-warn.md-raised{color:'{{warn-contrast}}';background-color:'{{warn-color}}'}.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]) md-icon{color:'{{warn-contrast}}'}.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]):hover{background-color:'{{warn-600}}'}.md-button.md-THEME_NAME-theme.md-warn:not([disabled]) md-icon{color:'{{warn-color}}'}.md-button.md-THEME_NAME-theme.md-accent{color:'{{accent-color}}'}.md-button.md-THEME_NAME-theme.md-accent.md-fab,.md-button.md-THEME_NAME-theme.md-accent.md-raised{color:'{{accent-contrast}}';background-color:'{{accent-color}}'}.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]) md-icon{color:'{{accent-contrast}}'}.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]):hover{background-color:'{{accent-A700}}'}.md-button.md-THEME_NAME-theme.md-accent:not([disabled]) md-icon{color:'{{accent-color}}'}.md-button.md-THEME_NAME-theme.md-accent[disabled],.md-button.md-THEME_NAME-theme.md-fab[disabled],.md-button.md-THEME_NAME-theme.md-raised[disabled],.md-button.md-THEME_NAME-theme.md-warn[disabled],.md-button.md-THEME_NAME-theme[disabled]{color:'{{foreground-3}}';cursor:default}.md-button.md-THEME_NAME-theme.md-accent[disabled] md-icon,.md-button.md-THEME_NAME-theme.md-fab[disabled] md-icon,.md-button.md-THEME_NAME-theme.md-raised[disabled] md-icon,.md-button.md-THEME_NAME-theme.md-warn[disabled] md-icon,.md-button.md-THEME_NAME-theme[disabled] md-icon{color:'{{foreground-3}}'}.md-button.md-THEME_NAME-theme.md-fab[disabled],.md-button.md-THEME_NAME-theme.md-raised[disabled]{background-color:'{{foreground-4}}'}.md-button.md-THEME_NAME-theme[disabled]{background-color:transparent}._md a.md-THEME_NAME-theme:not(.md-button).md-primary{color:'{{primary-color}}'}._md a.md-THEME_NAME-theme:not(.md-button).md-primary:hover{color:'{{primary-700}}'}._md a.md-THEME_NAME-theme:not(.md-button).md-accent:hover{color:'{{accent-700}}'}._md a.md-THEME_NAME-theme:not(.md-button).md-accent{color:'{{accent-color}}'}._md a.md-THEME_NAME-theme:not(.md-button).md-accent:hover{color:'{{accent-A700}}'}._md a.md-THEME_NAME-theme:not(.md-button).md-warn{color:'{{warn-color}}'}._md a.md-THEME_NAME-theme:not(.md-button).md-warn:hover{color:'{{warn-700}}'}
|
||||
197
www/lib/angular-material/modules/js/button/button.css
Normal file
197
www/lib/angular-material/modules/js/button/button.css
Normal file
@@ -0,0 +1,197 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
button.md-button::-moz-focus-inner {
|
||||
border: 0; }
|
||||
|
||||
.md-button {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
/** Alignment adjustments */
|
||||
min-height: 36px;
|
||||
min-width: 88px;
|
||||
line-height: 36px;
|
||||
vertical-align: middle;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-grid-row-align: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
border-radius: 3px;
|
||||
box-sizing: border-box;
|
||||
/* Reset default button appearance */
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
outline: none;
|
||||
border: 0;
|
||||
/** Custom styling for button */
|
||||
padding: 0 6px;
|
||||
margin: 6px 8px;
|
||||
background: transparent;
|
||||
color: currentColor;
|
||||
white-space: nowrap;
|
||||
/* Uppercase text content */
|
||||
text-transform: uppercase;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
font-style: inherit;
|
||||
font-variant: inherit;
|
||||
font-family: inherit;
|
||||
text-decoration: none;
|
||||
overflow: hidden;
|
||||
-webkit-transition: box-shadow 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: box-shadow 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); }
|
||||
.md-button:focus {
|
||||
outline: none; }
|
||||
.md-button:hover, .md-button:focus {
|
||||
text-decoration: none; }
|
||||
.md-button.ng-hide, .md-button.ng-leave {
|
||||
-webkit-transition: none;
|
||||
transition: none; }
|
||||
.md-button.md-cornered {
|
||||
border-radius: 0; }
|
||||
.md-button.md-icon {
|
||||
padding: 0;
|
||||
background: none; }
|
||||
.md-button.md-raised:not([disabled]) {
|
||||
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); }
|
||||
.md-button.md-icon-button {
|
||||
margin: 0 6px;
|
||||
height: 40px;
|
||||
min-width: 0;
|
||||
line-height: 24px;
|
||||
padding: 8px;
|
||||
width: 40px;
|
||||
border-radius: 50%; }
|
||||
.md-button.md-icon-button .md-ripple-container {
|
||||
border-radius: 50%;
|
||||
background-clip: padding-box;
|
||||
overflow: hidden;
|
||||
-webkit-mask-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC"); }
|
||||
.md-button.md-fab {
|
||||
z-index: 20;
|
||||
line-height: 56px;
|
||||
min-width: 0;
|
||||
width: 56px;
|
||||
height: 56px;
|
||||
vertical-align: middle;
|
||||
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
|
||||
border-radius: 50%;
|
||||
background-clip: padding-box;
|
||||
overflow: hidden;
|
||||
-webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
-webkit-transition-property: background-color, box-shadow, -webkit-transform;
|
||||
transition-property: background-color, box-shadow, -webkit-transform;
|
||||
transition-property: background-color, box-shadow, transform;
|
||||
transition-property: background-color, box-shadow, transform, -webkit-transform; }
|
||||
.md-button.md-fab.md-fab-bottom-right {
|
||||
top: auto;
|
||||
right: 20px;
|
||||
bottom: 20px;
|
||||
left: auto;
|
||||
position: absolute; }
|
||||
.md-button.md-fab.md-fab-bottom-left {
|
||||
top: auto;
|
||||
right: auto;
|
||||
bottom: 20px;
|
||||
left: 20px;
|
||||
position: absolute; }
|
||||
.md-button.md-fab.md-fab-top-right {
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
bottom: auto;
|
||||
left: auto;
|
||||
position: absolute; }
|
||||
.md-button.md-fab.md-fab-top-left {
|
||||
top: 20px;
|
||||
right: auto;
|
||||
bottom: auto;
|
||||
left: 20px;
|
||||
position: absolute; }
|
||||
.md-button.md-fab .md-ripple-container {
|
||||
border-radius: 50%;
|
||||
background-clip: padding-box;
|
||||
overflow: hidden;
|
||||
-webkit-mask-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC"); }
|
||||
.md-button.md-fab.md-mini {
|
||||
line-height: 40px;
|
||||
width: 40px;
|
||||
height: 40px; }
|
||||
.md-button.md-fab.ng-hide, .md-button.md-fab.ng-leave {
|
||||
-webkit-transition: none;
|
||||
transition: none; }
|
||||
.md-button:not([disabled]).md-raised.md-focused, .md-button:not([disabled]).md-fab.md-focused {
|
||||
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); }
|
||||
.md-button:not([disabled]).md-raised:active, .md-button:not([disabled]).md-fab:active {
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.4); }
|
||||
.md-button .md-ripple-container {
|
||||
border-radius: 3px;
|
||||
background-clip: padding-box;
|
||||
overflow: hidden;
|
||||
-webkit-mask-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC"); }
|
||||
|
||||
.md-button.md-icon-button md-icon,
|
||||
button.md-button.md-fab md-icon {
|
||||
display: block; }
|
||||
|
||||
.md-toast-open-top .md-button.md-fab-top-left,
|
||||
.md-toast-open-top .md-button.md-fab-top-right {
|
||||
-webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
-webkit-transform: translate3d(0, 42px, 0);
|
||||
transform: translate3d(0, 42px, 0); }
|
||||
.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused, .md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,
|
||||
.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,
|
||||
.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover {
|
||||
-webkit-transform: translate3d(0, 41px, 0);
|
||||
transform: translate3d(0, 41px, 0); }
|
||||
|
||||
.md-toast-open-bottom .md-button.md-fab-bottom-left,
|
||||
.md-toast-open-bottom .md-button.md-fab-bottom-right {
|
||||
-webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
-webkit-transform: translate3d(0, -42px, 0);
|
||||
transform: translate3d(0, -42px, 0); }
|
||||
.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused, .md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,
|
||||
.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,
|
||||
.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover {
|
||||
-webkit-transform: translate3d(0, -43px, 0);
|
||||
transform: translate3d(0, -43px, 0); }
|
||||
|
||||
.md-button-group {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
width: 100%; }
|
||||
.md-button-group > .md-button {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
width: 0;
|
||||
border-width: 1px 0px 1px 1px;
|
||||
border-radius: 0;
|
||||
text-align: center;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap; }
|
||||
.md-button-group > .md-button:first-child {
|
||||
border-radius: 2px 0px 0px 2px; }
|
||||
.md-button-group > .md-button:last-child {
|
||||
border-right-width: 1px;
|
||||
border-radius: 0px 2px 2px 0px; }
|
||||
|
||||
@media screen and (-ms-high-contrast: active) {
|
||||
.md-button.md-raised,
|
||||
.md-button.md-fab {
|
||||
border: 1px solid #fff; } }
|
||||
198
www/lib/angular-material/modules/js/button/button.js
vendored
Normal file
198
www/lib/angular-material/modules/js/button/button.js
vendored
Normal file
@@ -0,0 +1,198 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.button
|
||||
* @description
|
||||
*
|
||||
* Button
|
||||
*/
|
||||
MdButtonDirective.$inject = ["$mdButtonInkRipple", "$mdTheming", "$mdAria", "$timeout"];
|
||||
MdAnchorDirective.$inject = ["$mdTheming"];
|
||||
angular
|
||||
.module('material.components.button', [ 'material.core' ])
|
||||
.directive('mdButton', MdButtonDirective)
|
||||
.directive('a', MdAnchorDirective);
|
||||
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* `a` is an anchor directive used to inherit theme colors for md-primary, md-accent, etc.
|
||||
*
|
||||
* @usage
|
||||
*
|
||||
* <hljs lang="html">
|
||||
* <md-content md-theme="myTheme">
|
||||
* <a href="#chapter1" class="md-accent"></a>
|
||||
* </md-content>
|
||||
* </hljs>
|
||||
*/
|
||||
function MdAnchorDirective($mdTheming) {
|
||||
return {
|
||||
restrict : 'E',
|
||||
link : function postLink(scope, element) {
|
||||
// Make sure to inherit theme so stand-alone anchors
|
||||
// support theme colors for md-primary, md-accent, etc.
|
||||
$mdTheming(element);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdButton
|
||||
* @module material.components.button
|
||||
*
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* `<md-button>` is a button directive with optional ink ripples (default enabled).
|
||||
*
|
||||
* If you supply a `href` or `ng-href` attribute, it will become an `<a>` element. Otherwise, it
|
||||
* will become a `<button>` element. As per the
|
||||
* [Material Design specifications](https://material.google.com/style/color.html#color-color-palette)
|
||||
* the FAB button background is filled with the accent color [by default]. The primary color palette
|
||||
* may be used with the `md-primary` class.
|
||||
*
|
||||
* Developers can also change the color palette of the button, by using the following classes
|
||||
* - `md-primary`
|
||||
* - `md-accent`
|
||||
* - `md-warn`
|
||||
*
|
||||
* See for example
|
||||
*
|
||||
* <hljs lang="html">
|
||||
* <md-button class="md-primary">Primary Button</md-button>
|
||||
* </hljs>
|
||||
*
|
||||
* Button can be also raised, which means that they will use the current color palette to fill the button.
|
||||
*
|
||||
* <hljs lang="html">
|
||||
* <md-button class="md-accent md-raised">Raised and Accent Button</md-button>
|
||||
* </hljs>
|
||||
*
|
||||
* It is also possible to disable the focus effect on the button, by using the following markup.
|
||||
*
|
||||
* <hljs lang="html">
|
||||
* <md-button class="md-no-focus">No Focus Style</md-button>
|
||||
* </hljs>
|
||||
*
|
||||
* @param {boolean=} md-no-ink If present, disable ripple ink effects.
|
||||
* @param {expression=} ng-disabled En/Disable based on the expression
|
||||
* @param {string=} md-ripple-size Overrides the default ripple size logic. Options: `full`, `partial`, `auto`
|
||||
* @param {string=} aria-label Adds alternative text to button for accessibility, useful for icon buttons.
|
||||
* If no default text is found, a warning will be logged.
|
||||
*
|
||||
* @usage
|
||||
*
|
||||
* Regular buttons:
|
||||
*
|
||||
* <hljs lang="html">
|
||||
* <md-button> Flat Button </md-button>
|
||||
* <md-button href="http://google.com"> Flat link </md-button>
|
||||
* <md-button class="md-raised"> Raised Button </md-button>
|
||||
* <md-button ng-disabled="true"> Disabled Button </md-button>
|
||||
* <md-button>
|
||||
* <md-icon md-svg-src="your/icon.svg"></md-icon>
|
||||
* Register Now
|
||||
* </md-button>
|
||||
* </hljs>
|
||||
*
|
||||
* FAB buttons:
|
||||
*
|
||||
* <hljs lang="html">
|
||||
* <md-button class="md-fab" aria-label="FAB">
|
||||
* <md-icon md-svg-src="your/icon.svg"></md-icon>
|
||||
* </md-button>
|
||||
* <!-- mini-FAB -->
|
||||
* <md-button class="md-fab md-mini" aria-label="Mini FAB">
|
||||
* <md-icon md-svg-src="your/icon.svg"></md-icon>
|
||||
* </md-button>
|
||||
* <!-- Button with SVG Icon -->
|
||||
* <md-button class="md-icon-button" aria-label="Custom Icon Button">
|
||||
* <md-icon md-svg-icon="path/to/your.svg"></md-icon>
|
||||
* </md-button>
|
||||
* </hljs>
|
||||
*/
|
||||
function MdButtonDirective($mdButtonInkRipple, $mdTheming, $mdAria, $timeout) {
|
||||
|
||||
return {
|
||||
restrict: 'EA',
|
||||
replace: true,
|
||||
transclude: true,
|
||||
template: getTemplate,
|
||||
link: postLink
|
||||
};
|
||||
|
||||
function isAnchor(attr) {
|
||||
return angular.isDefined(attr.href) || angular.isDefined(attr.ngHref) || angular.isDefined(attr.ngLink) || angular.isDefined(attr.uiSref);
|
||||
}
|
||||
|
||||
function getTemplate(element, attr) {
|
||||
if (isAnchor(attr)) {
|
||||
return '<a class="md-button" ng-transclude></a>';
|
||||
} else {
|
||||
//If buttons don't have type="button", they will submit forms automatically.
|
||||
var btnType = (typeof attr.type === 'undefined') ? 'button' : attr.type;
|
||||
return '<button class="md-button" type="' + btnType + '" ng-transclude></button>';
|
||||
}
|
||||
}
|
||||
|
||||
function postLink(scope, element, attr) {
|
||||
$mdTheming(element);
|
||||
$mdButtonInkRipple.attach(scope, element);
|
||||
|
||||
// Use async expect to support possible bindings in the button label
|
||||
$mdAria.expectWithoutText(element, 'aria-label');
|
||||
|
||||
// For anchor elements, we have to set tabindex manually when the
|
||||
// element is disabled
|
||||
if (isAnchor(attr) && angular.isDefined(attr.ngDisabled) ) {
|
||||
scope.$watch(attr.ngDisabled, function(isDisabled) {
|
||||
element.attr('tabindex', isDisabled ? -1 : 0);
|
||||
});
|
||||
}
|
||||
|
||||
// disabling click event when disabled is true
|
||||
element.on('click', function(e){
|
||||
if (attr.disabled === true) {
|
||||
e.preventDefault();
|
||||
e.stopImmediatePropagation();
|
||||
}
|
||||
});
|
||||
|
||||
if (!element.hasClass('md-no-focus')) {
|
||||
// restrict focus styles to the keyboard
|
||||
scope.mouseActive = false;
|
||||
element.on('mousedown', function() {
|
||||
scope.mouseActive = true;
|
||||
$timeout(function(){
|
||||
scope.mouseActive = false;
|
||||
}, 100);
|
||||
})
|
||||
.on('focus', function() {
|
||||
if (scope.mouseActive === false) {
|
||||
element.addClass('md-focused');
|
||||
}
|
||||
})
|
||||
.on('blur', function(ev) {
|
||||
element.removeClass('md-focused');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})(window, window.angular);
|
||||
6
www/lib/angular-material/modules/js/button/button.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/button/button.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
www/lib/angular-material/modules/js/button/button.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/button/button.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/
|
||||
!function(n,t,e){"use strict";function i(n){return{restrict:"E",link:function(t,e){n(e)}}}function o(n,e,i,o){function u(n){return t.isDefined(n.href)||t.isDefined(n.ngHref)||t.isDefined(n.ngLink)||t.isDefined(n.uiSref)}function c(n,t){if(u(t))return'<a class="md-button" ng-transclude></a>';var e="undefined"==typeof t.type?"button":t.type;return'<button class="md-button" type="'+e+'" ng-transclude></button>'}function a(c,a,s){e(a),n.attach(c,a),i.expectWithoutText(a,"aria-label"),u(s)&&t.isDefined(s.ngDisabled)&&c.$watch(s.ngDisabled,function(n){a.attr("tabindex",n?-1:0)}),a.on("click",function(n){s.disabled===!0&&(n.preventDefault(),n.stopImmediatePropagation())}),a.hasClass("md-no-focus")||(c.mouseActive=!1,a.on("mousedown",function(){c.mouseActive=!0,o(function(){c.mouseActive=!1},100)}).on("focus",function(){c.mouseActive===!1&&a.addClass("md-focused")}).on("blur",function(n){a.removeClass("md-focused")}))}return{restrict:"EA",replace:!0,transclude:!0,template:c,link:a}}o.$inject=["$mdButtonInkRipple","$mdTheming","$mdAria","$timeout"],i.$inject=["$mdTheming"],t.module("material.components.button",["material.core"]).directive("mdButton",o).directive("a",i)}(window,window.angular);
|
||||
7
www/lib/angular-material/modules/js/card/bower.json
Normal file
7
www/lib/angular-material/modules/js/card/bower.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "angular-material-card",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-card.md-THEME_NAME-theme {
|
||||
color: '{{foreground-1}}';
|
||||
background-color: '{{background-hue-1}}';
|
||||
border-radius: 2px; }
|
||||
md-card.md-THEME_NAME-theme .md-card-image {
|
||||
border-radius: 2px 2px 0 0; }
|
||||
md-card.md-THEME_NAME-theme md-card-header md-card-avatar md-icon {
|
||||
color: '{{background-color}}';
|
||||
background-color: '{{foreground-3}}'; }
|
||||
md-card.md-THEME_NAME-theme md-card-header md-card-header-text .md-subhead {
|
||||
color: '{{foreground-2}}'; }
|
||||
md-card.md-THEME_NAME-theme md-card-title md-card-title-text:not(:only-child) .md-subhead {
|
||||
color: '{{foreground-2}}'; }
|
||||
6
www/lib/angular-material/modules/js/card/card-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/card/card-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-card.md-THEME_NAME-theme{color:'{{foreground-1}}';background-color:'{{background-hue-1}}';border-radius:2px}md-card.md-THEME_NAME-theme .md-card-image{border-radius:2px 2px 0 0}md-card.md-THEME_NAME-theme md-card-header md-card-avatar md-icon{color:'{{background-color}}';background-color:'{{foreground-3}}'}md-card.md-THEME_NAME-theme md-card-header md-card-header-text .md-subhead,md-card.md-THEME_NAME-theme md-card-title md-card-title-text:not(:only-child) .md-subhead{color:'{{foreground-2}}'}
|
||||
199
www/lib/angular-material/modules/js/card/card.css
Normal file
199
www/lib/angular-material/modules/js/card/card.css
Normal file
@@ -0,0 +1,199 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-card {
|
||||
box-sizing: border-box;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
margin: 8px;
|
||||
box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 2px 1px -1px rgba(0, 0, 0, 0.12); }
|
||||
md-card md-card-header {
|
||||
padding: 16px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row; }
|
||||
md-card md-card-header:first-child md-card-avatar {
|
||||
margin-right: 12px; }
|
||||
[dir=rtl] md-card md-card-header:first-child md-card-avatar {
|
||||
margin-right: auto;
|
||||
margin-left: 12px; }
|
||||
md-card md-card-header:last-child md-card-avatar {
|
||||
margin-left: 12px; }
|
||||
[dir=rtl] md-card md-card-header:last-child md-card-avatar {
|
||||
margin-left: auto;
|
||||
margin-right: 12px; }
|
||||
md-card md-card-header md-card-avatar {
|
||||
width: 40px;
|
||||
height: 40px; }
|
||||
md-card md-card-header md-card-avatar .md-user-avatar,
|
||||
md-card md-card-header md-card-avatar md-icon {
|
||||
border-radius: 50%; }
|
||||
md-card md-card-header md-card-avatar md-icon {
|
||||
padding: 8px; }
|
||||
md-card md-card-header md-card-avatar + md-card-header-text {
|
||||
max-height: 40px; }
|
||||
md-card md-card-header md-card-avatar + md-card-header-text .md-title {
|
||||
font-size: 14px; }
|
||||
md-card md-card-header md-card-header-text {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column; }
|
||||
md-card md-card-header md-card-header-text .md-subhead {
|
||||
font-size: 14px; }
|
||||
md-card > img,
|
||||
md-card > md-card-header img,
|
||||
md-card md-card-title-media img {
|
||||
box-sizing: border-box;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-flex: 0;
|
||||
-webkit-flex: 0 0 auto;
|
||||
flex: 0 0 auto;
|
||||
width: 100%;
|
||||
height: auto; }
|
||||
md-card md-card-title {
|
||||
padding: 24px 16px 16px;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1 1 auto;
|
||||
flex: 1 1 auto;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row; }
|
||||
md-card md-card-title + md-card-content {
|
||||
padding-top: 0; }
|
||||
md-card md-card-title md-card-title-text {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex; }
|
||||
md-card md-card-title md-card-title-text .md-subhead {
|
||||
padding-top: 0;
|
||||
font-size: 14px; }
|
||||
md-card md-card-title md-card-title-text:only-child .md-subhead {
|
||||
padding-top: 12px; }
|
||||
md-card md-card-title md-card-title-media {
|
||||
margin-top: -8px; }
|
||||
md-card md-card-title md-card-title-media .md-media-sm {
|
||||
height: 80px;
|
||||
width: 80px; }
|
||||
md-card md-card-title md-card-title-media .md-media-md {
|
||||
height: 112px;
|
||||
width: 112px; }
|
||||
md-card md-card-title md-card-title-media .md-media-lg {
|
||||
height: 152px;
|
||||
width: 152px; }
|
||||
md-card md-card-content {
|
||||
display: block;
|
||||
padding: 16px; }
|
||||
md-card md-card-content > p:first-child {
|
||||
margin-top: 0; }
|
||||
md-card md-card-content > p:last-child {
|
||||
margin-bottom: 0; }
|
||||
md-card md-card-content .md-media-xl {
|
||||
height: 240px;
|
||||
width: 240px; }
|
||||
md-card .md-actions, md-card md-card-actions {
|
||||
margin: 8px; }
|
||||
md-card .md-actions.layout-column .md-button:not(.md-icon-button), md-card md-card-actions.layout-column .md-button:not(.md-icon-button) {
|
||||
margin: 2px 0; }
|
||||
md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type, md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type {
|
||||
margin-top: 0; }
|
||||
md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type, md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type {
|
||||
margin-bottom: 0; }
|
||||
md-card .md-actions.layout-column .md-button.md-icon-button, md-card md-card-actions.layout-column .md-button.md-icon-button {
|
||||
margin-top: 6px;
|
||||
margin-bottom: 6px; }
|
||||
md-card .md-actions md-card-icon-actions, md-card md-card-actions md-card-icon-actions {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
-webkit-box-pack: start;
|
||||
-webkit-justify-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row; }
|
||||
md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button), md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button) {
|
||||
margin: 0 4px; }
|
||||
md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type, md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type {
|
||||
margin-left: 0; }
|
||||
[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type, [dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type {
|
||||
margin-left: auto;
|
||||
margin-right: 0; }
|
||||
md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type, md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type {
|
||||
margin-right: 0; }
|
||||
[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type, [dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type {
|
||||
margin-right: auto;
|
||||
margin-left: 0; }
|
||||
md-card .md-actions:not(.layout-column) .md-button.md-icon-button, md-card md-card-actions:not(.layout-column) .md-button.md-icon-button {
|
||||
margin-left: 6px;
|
||||
margin-right: 6px; }
|
||||
md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type, md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type {
|
||||
margin-left: 12px; }
|
||||
[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type, [dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type {
|
||||
margin-left: auto;
|
||||
margin-right: 12px; }
|
||||
md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type, md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type {
|
||||
margin-right: 12px; }
|
||||
[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type, [dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type {
|
||||
margin-right: auto;
|
||||
margin-left: 12px; }
|
||||
md-card .md-actions:not(.layout-column) .md-button + md-card-icon-actions, md-card md-card-actions:not(.layout-column) .md-button + md-card-icon-actions {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
flex: 1;
|
||||
-webkit-box-pack: end;
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row; }
|
||||
md-card md-card-footer {
|
||||
margin-top: auto;
|
||||
padding: 16px; }
|
||||
|
||||
@media screen and (-ms-high-contrast: active) {
|
||||
md-card {
|
||||
border: 1px solid #fff; } }
|
||||
|
||||
.md-image-no-fill > img {
|
||||
width: auto;
|
||||
height: auto; }
|
||||
143
www/lib/angular-material/modules/js/card/card.js
vendored
Normal file
143
www/lib/angular-material/modules/js/card/card.js
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.card
|
||||
*
|
||||
* @description
|
||||
* Card components.
|
||||
*/
|
||||
mdCardDirective.$inject = ["$mdTheming"];
|
||||
angular.module('material.components.card', [
|
||||
'material.core'
|
||||
])
|
||||
.directive('mdCard', mdCardDirective);
|
||||
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdCard
|
||||
* @module material.components.card
|
||||
*
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* The `<md-card>` directive is a container element used within `<md-content>` containers.
|
||||
*
|
||||
* An image included as a direct descendant will fill the card's width. If you want to avoid this,
|
||||
* you can add the `md-image-no-fill` class to the parent element. The `<md-card-content>`
|
||||
* container will wrap text content and provide padding. An `<md-card-footer>` element can be
|
||||
* optionally included to put content flush against the bottom edge of the card.
|
||||
*
|
||||
* Action buttons can be included in an `<md-card-actions>` element, similar to `<md-dialog-actions>`.
|
||||
* You can then position buttons using layout attributes.
|
||||
*
|
||||
* Card is built with:
|
||||
* * `<md-card-header>` - Header for the card, holds avatar, text and squared image
|
||||
* - `<md-card-avatar>` - Card avatar
|
||||
* - `md-user-avatar` - Class for user image
|
||||
* - `<md-icon>`
|
||||
* - `<md-card-header-text>` - Contains elements for the card description
|
||||
* - `md-title` - Class for the card title
|
||||
* - `md-subhead` - Class for the card sub header
|
||||
* * `<img>` - Image for the card
|
||||
* * `<md-card-title>` - Card content title
|
||||
* - `<md-card-title-text>`
|
||||
* - `md-headline` - Class for the card content title
|
||||
* - `md-subhead` - Class for the card content sub header
|
||||
* - `<md-card-title-media>` - Squared image within the title
|
||||
* - `md-media-sm` - Class for small image
|
||||
* - `md-media-md` - Class for medium image
|
||||
* - `md-media-lg` - Class for large image
|
||||
* * `<md-card-content>` - Card content
|
||||
* - `md-media-xl` - Class for extra large image
|
||||
* * `<md-card-actions>` - Card actions
|
||||
* - `<md-card-icon-actions>` - Icon actions
|
||||
*
|
||||
* Cards have constant width and variable heights; where the maximum height is limited to what can
|
||||
* fit within a single view on a platform, but it can temporarily expand as needed.
|
||||
*
|
||||
* @usage
|
||||
* ### Card with optional footer
|
||||
* <hljs lang="html">
|
||||
* <md-card>
|
||||
* <img src="card-image.png" class="md-card-image" alt="image caption">
|
||||
* <md-card-content>
|
||||
* <h2>Card headline</h2>
|
||||
* <p>Card content</p>
|
||||
* </md-card-content>
|
||||
* <md-card-footer>
|
||||
* Card footer
|
||||
* </md-card-footer>
|
||||
* </md-card>
|
||||
* </hljs>
|
||||
*
|
||||
* ### Card with actions
|
||||
* <hljs lang="html">
|
||||
* <md-card>
|
||||
* <img src="card-image.png" class="md-card-image" alt="image caption">
|
||||
* <md-card-content>
|
||||
* <h2>Card headline</h2>
|
||||
* <p>Card content</p>
|
||||
* </md-card-content>
|
||||
* <md-card-actions layout="row" layout-align="end center">
|
||||
* <md-button>Action 1</md-button>
|
||||
* <md-button>Action 2</md-button>
|
||||
* </md-card-actions>
|
||||
* </md-card>
|
||||
* </hljs>
|
||||
*
|
||||
* ### Card with header, image, title actions and content
|
||||
* <hljs lang="html">
|
||||
* <md-card>
|
||||
* <md-card-header>
|
||||
* <md-card-avatar>
|
||||
* <img class="md-user-avatar" src="avatar.png"/>
|
||||
* </md-card-avatar>
|
||||
* <md-card-header-text>
|
||||
* <span class="md-title">Title</span>
|
||||
* <span class="md-subhead">Sub header</span>
|
||||
* </md-card-header-text>
|
||||
* </md-card-header>
|
||||
* <img ng-src="card-image.png" class="md-card-image" alt="image caption">
|
||||
* <md-card-title>
|
||||
* <md-card-title-text>
|
||||
* <span class="md-headline">Card headline</span>
|
||||
* <span class="md-subhead">Card subheader</span>
|
||||
* </md-card-title-text>
|
||||
* </md-card-title>
|
||||
* <md-card-actions layout="row" layout-align="start center">
|
||||
* <md-button>Action 1</md-button>
|
||||
* <md-button>Action 2</md-button>
|
||||
* <md-card-icon-actions>
|
||||
* <md-button class="md-icon-button" aria-label="icon">
|
||||
* <md-icon md-svg-icon="icon"></md-icon>
|
||||
* </md-button>
|
||||
* </md-card-icon-actions>
|
||||
* </md-card-actions>
|
||||
* <md-card-content>
|
||||
* <p>
|
||||
* Card content
|
||||
* </p>
|
||||
* </md-card-content>
|
||||
* </md-card>
|
||||
* </hljs>
|
||||
*/
|
||||
function mdCardDirective($mdTheming) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
link: function ($scope, $element, attr) {
|
||||
$element.addClass('_md'); // private md component indicator for styling
|
||||
$mdTheming($element);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
})(window, window.angular);
|
||||
6
www/lib/angular-material/modules/js/card/card.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/card/card.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
www/lib/angular-material/modules/js/card/card.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/card/card.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/
|
||||
!function(n,i,t){"use strict";function e(n){return{restrict:"E",link:function(i,t,e){t.addClass("_md"),n(t)}}}e.$inject=["$mdTheming"],i.module("material.components.card",["material.core"]).directive("mdCard",e)}(window,window.angular);
|
||||
7
www/lib/angular-material/modules/js/checkbox/bower.json
Normal file
7
www/lib/angular-material/modules/js/checkbox/bower.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "angular-material-checkbox",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-checkbox.md-THEME_NAME-theme .md-ripple {
|
||||
color: '{{accent-A700}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme.md-checked .md-ripple {
|
||||
color: '{{background-600}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme.md-checked.md-focused .md-container:before {
|
||||
background-color: '{{accent-color-0.26}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme .md-ink-ripple {
|
||||
color: '{{foreground-2}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme.md-checked .md-ink-ripple {
|
||||
color: '{{accent-color-0.87}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not(.md-checked) .md-icon {
|
||||
border-color: '{{foreground-2}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme.md-checked .md-icon {
|
||||
background-color: '{{accent-color-0.87}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme.md-checked .md-icon:after {
|
||||
border-color: '{{accent-contrast-0.87}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ripple {
|
||||
color: '{{primary-600}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ripple {
|
||||
color: '{{background-600}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ink-ripple {
|
||||
color: '{{foreground-2}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple {
|
||||
color: '{{primary-color-0.87}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary:not(.md-checked) .md-icon {
|
||||
border-color: '{{foreground-2}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon {
|
||||
background-color: '{{primary-color-0.87}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked.md-focused .md-container:before {
|
||||
background-color: '{{primary-color-0.26}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon:after {
|
||||
border-color: '{{primary-contrast-0.87}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-indeterminate[disabled] .md-container {
|
||||
color: '{{foreground-3}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ripple {
|
||||
color: '{{warn-600}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ink-ripple {
|
||||
color: '{{foreground-2}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple {
|
||||
color: '{{warn-color-0.87}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn:not(.md-checked) .md-icon {
|
||||
border-color: '{{foreground-2}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon {
|
||||
background-color: '{{warn-color-0.87}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before {
|
||||
background-color: '{{warn-color-0.26}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon:after {
|
||||
border-color: '{{background-200}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme[disabled]:not(.md-checked) .md-icon {
|
||||
border-color: '{{foreground-3}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon {
|
||||
background-color: '{{foreground-3}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon:after {
|
||||
border-color: '{{background-200}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme[disabled] .md-icon:after {
|
||||
border-color: '{{foreground-3}}'; }
|
||||
|
||||
md-checkbox.md-THEME_NAME-theme[disabled] .md-label {
|
||||
color: '{{foreground-3}}'; }
|
||||
6
www/lib/angular-material/modules/js/checkbox/checkbox-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/checkbox/checkbox-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-checkbox.md-THEME_NAME-theme .md-ripple{color:'{{accent-A700}}'}md-checkbox.md-THEME_NAME-theme.md-checked .md-ripple{color:'{{background-600}}'}md-checkbox.md-THEME_NAME-theme.md-checked.md-focused .md-container:before{background-color:'{{accent-color-0.26}}'}md-checkbox.md-THEME_NAME-theme .md-ink-ripple{color:'{{foreground-2}}'}md-checkbox.md-THEME_NAME-theme.md-checked .md-ink-ripple{color:'{{accent-color-0.87}}'}md-checkbox.md-THEME_NAME-theme:not(.md-checked) .md-icon{border-color:'{{foreground-2}}'}md-checkbox.md-THEME_NAME-theme.md-checked .md-icon{background-color:'{{accent-color-0.87}}'}md-checkbox.md-THEME_NAME-theme.md-checked .md-icon:after{border-color:'{{accent-contrast-0.87}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ripple{color:'{{primary-600}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ripple{color:'{{background-600}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ink-ripple{color:'{{foreground-2}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple{color:'{{primary-color-0.87}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary:not(.md-checked) .md-icon{border-color:'{{foreground-2}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon{background-color:'{{primary-color-0.87}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked.md-focused .md-container:before{background-color:'{{primary-color-0.26}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon:after{border-color:'{{primary-contrast-0.87}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-indeterminate[disabled] .md-container{color:'{{foreground-3}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ripple{color:'{{warn-600}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ink-ripple{color:'{{foreground-2}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple{color:'{{warn-color-0.87}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn:not(.md-checked) .md-icon{border-color:'{{foreground-2}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon{background-color:'{{warn-color-0.87}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before{background-color:'{{warn-color-0.26}}'}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon:after{border-color:'{{background-200}}'}md-checkbox.md-THEME_NAME-theme[disabled]:not(.md-checked) .md-icon{border-color:'{{foreground-3}}'}md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon{background-color:'{{foreground-3}}'}md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon:after{border-color:'{{background-200}}'}md-checkbox.md-THEME_NAME-theme[disabled] .md-icon:after{border-color:'{{foreground-3}}'}md-checkbox.md-THEME_NAME-theme[disabled] .md-label{color:'{{foreground-3}}'}
|
||||
150
www/lib/angular-material/modules/js/checkbox/checkbox.css
Normal file
150
www/lib/angular-material/modules/js/checkbox/checkbox.css
Normal file
@@ -0,0 +1,150 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
.md-inline-form md-checkbox {
|
||||
margin: 19px 0 18px; }
|
||||
|
||||
md-checkbox {
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
margin-bottom: 16px;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
outline: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
position: relative;
|
||||
min-width: 20px;
|
||||
min-height: 20px;
|
||||
margin-left: 0;
|
||||
margin-right: 16px; }
|
||||
[dir=rtl] md-checkbox {
|
||||
margin-left: 16px; }
|
||||
[dir=rtl] md-checkbox {
|
||||
margin-right: 0; }
|
||||
md-checkbox:last-of-type {
|
||||
margin-left: 0;
|
||||
margin-right: 0; }
|
||||
md-checkbox.md-focused:not([disabled]) .md-container:before {
|
||||
left: -8px;
|
||||
top: -8px;
|
||||
right: -8px;
|
||||
bottom: -8px; }
|
||||
md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before {
|
||||
background-color: rgba(0, 0, 0, 0.12); }
|
||||
md-checkbox.md-align-top-left > div.md-container {
|
||||
top: 12px; }
|
||||
md-checkbox .md-container {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
left: 0;
|
||||
right: auto; }
|
||||
[dir=rtl] md-checkbox .md-container {
|
||||
left: auto; }
|
||||
[dir=rtl] md-checkbox .md-container {
|
||||
right: 0; }
|
||||
md-checkbox .md-container:before {
|
||||
box-sizing: border-box;
|
||||
background-color: transparent;
|
||||
border-radius: 50%;
|
||||
content: '';
|
||||
position: absolute;
|
||||
display: block;
|
||||
height: auto;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
-webkit-transition: all 0.5s;
|
||||
transition: all 0.5s;
|
||||
width: auto; }
|
||||
md-checkbox .md-container:after {
|
||||
box-sizing: border-box;
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
right: -10px;
|
||||
bottom: -10px;
|
||||
left: -10px; }
|
||||
md-checkbox .md-container .md-ripple-container {
|
||||
position: absolute;
|
||||
display: block;
|
||||
width: auto;
|
||||
height: auto;
|
||||
left: -15px;
|
||||
top: -15px;
|
||||
right: -15px;
|
||||
bottom: -15px; }
|
||||
md-checkbox .md-icon {
|
||||
box-sizing: border-box;
|
||||
-webkit-transition: 240ms;
|
||||
transition: 240ms;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-radius: 2px; }
|
||||
md-checkbox.md-checked .md-icon {
|
||||
border-color: transparent; }
|
||||
md-checkbox.md-checked .md-icon:after {
|
||||
box-sizing: border-box;
|
||||
-webkit-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
position: absolute;
|
||||
left: 4.66667px;
|
||||
top: 0.22222px;
|
||||
display: table;
|
||||
width: 6.66667px;
|
||||
height: 13.33333px;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-top: 0;
|
||||
border-left: 0;
|
||||
content: ''; }
|
||||
md-checkbox[disabled] {
|
||||
cursor: default; }
|
||||
md-checkbox.md-indeterminate .md-icon:after {
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
display: table;
|
||||
width: 12px;
|
||||
height: 2px;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-top: 0;
|
||||
border-left: 0;
|
||||
content: ''; }
|
||||
md-checkbox .md-label {
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
white-space: normal;
|
||||
-webkit-user-select: text;
|
||||
-moz-user-select: text;
|
||||
-ms-user-select: text;
|
||||
user-select: text;
|
||||
margin-left: 30px;
|
||||
margin-right: 0; }
|
||||
[dir=rtl] md-checkbox .md-label {
|
||||
margin-left: 0; }
|
||||
[dir=rtl] md-checkbox .md-label {
|
||||
margin-right: 30px; }
|
||||
214
www/lib/angular-material/modules/js/checkbox/checkbox.js
vendored
Normal file
214
www/lib/angular-material/modules/js/checkbox/checkbox.js
vendored
Normal file
@@ -0,0 +1,214 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.checkbox
|
||||
* @description Checkbox module!
|
||||
*/
|
||||
MdCheckboxDirective.$inject = ["inputDirective", "$mdAria", "$mdConstant", "$mdTheming", "$mdUtil", "$timeout"];
|
||||
angular
|
||||
.module('material.components.checkbox', ['material.core'])
|
||||
.directive('mdCheckbox', MdCheckboxDirective);
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdCheckbox
|
||||
* @module material.components.checkbox
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* The checkbox directive is used like the normal [angular checkbox](https://docs.angularjs.org/api/ng/input/input%5Bcheckbox%5D).
|
||||
*
|
||||
* As per the [material design spec](http://www.google.com/design/spec/style/color.html#color-color-schemes)
|
||||
* the checkbox is in the accent color by default. The primary color palette may be used with
|
||||
* the `md-primary` class.
|
||||
*
|
||||
* @param {string} ng-model Assignable angular expression to data-bind to.
|
||||
* @param {string=} name Property name of the form under which the control is published.
|
||||
* @param {expression=} ng-true-value The value to which the expression should be set when selected.
|
||||
* @param {expression=} ng-false-value The value to which the expression should be set when not selected.
|
||||
* @param {string=} ng-change Angular expression to be executed when input changes due to user interaction with the input element.
|
||||
* @param {boolean=} md-no-ink Use of attribute indicates use of ripple ink effects
|
||||
* @param {string=} aria-label Adds label to checkbox for accessibility.
|
||||
* Defaults to checkbox's text. If no default text is found, a warning will be logged.
|
||||
* @param {expression=} md-indeterminate This determines when the checkbox should be rendered as 'indeterminate'.
|
||||
* If a truthy expression or no value is passed in the checkbox renders in the md-indeterminate state.
|
||||
* If falsy expression is passed in it just looks like a normal unchecked checkbox.
|
||||
* The indeterminate, checked, and unchecked states are mutually exclusive. A box cannot be in any two states at the same time.
|
||||
* Adding the 'md-indeterminate' attribute overrides any checked/unchecked rendering logic.
|
||||
* When using the 'md-indeterminate' attribute use 'ng-checked' to define rendering logic instead of using 'ng-model'.
|
||||
* @param {expression=} ng-checked If this expression evaluates as truthy, the 'md-checked' css class is added to the checkbox and it
|
||||
* will appear checked.
|
||||
*
|
||||
* @usage
|
||||
* <hljs lang="html">
|
||||
* <md-checkbox ng-model="isChecked" aria-label="Finished?">
|
||||
* Finished ?
|
||||
* </md-checkbox>
|
||||
*
|
||||
* <md-checkbox md-no-ink ng-model="hasInk" aria-label="No Ink Effects">
|
||||
* No Ink Effects
|
||||
* </md-checkbox>
|
||||
*
|
||||
* <md-checkbox ng-disabled="true" ng-model="isDisabled" aria-label="Disabled">
|
||||
* Disabled
|
||||
* </md-checkbox>
|
||||
*
|
||||
* </hljs>
|
||||
*
|
||||
*/
|
||||
function MdCheckboxDirective(inputDirective, $mdAria, $mdConstant, $mdTheming, $mdUtil, $timeout) {
|
||||
inputDirective = inputDirective[0];
|
||||
|
||||
return {
|
||||
restrict: 'E',
|
||||
transclude: true,
|
||||
require: '?ngModel',
|
||||
priority: 210, // Run before ngAria
|
||||
template:
|
||||
'<div class="md-container" md-ink-ripple md-ink-ripple-checkbox>' +
|
||||
'<div class="md-icon"></div>' +
|
||||
'</div>' +
|
||||
'<div ng-transclude class="md-label"></div>',
|
||||
compile: compile
|
||||
};
|
||||
|
||||
// **********************************************************
|
||||
// Private Methods
|
||||
// **********************************************************
|
||||
|
||||
function compile (tElement, tAttrs) {
|
||||
tAttrs.$set('tabindex', tAttrs.tabindex || '0');
|
||||
tAttrs.$set('type', 'checkbox');
|
||||
tAttrs.$set('role', tAttrs.type);
|
||||
|
||||
return {
|
||||
pre: function(scope, element) {
|
||||
// Attach a click handler during preLink, in order to immediately stop propagation
|
||||
// (especially for ng-click) when the checkbox is disabled.
|
||||
element.on('click', function(e) {
|
||||
if (this.hasAttribute('disabled')) {
|
||||
e.stopImmediatePropagation();
|
||||
}
|
||||
});
|
||||
},
|
||||
post: postLink
|
||||
};
|
||||
|
||||
function postLink(scope, element, attr, ngModelCtrl) {
|
||||
var isIndeterminate;
|
||||
ngModelCtrl = ngModelCtrl || $mdUtil.fakeNgModel();
|
||||
$mdTheming(element);
|
||||
|
||||
// Redirect focus events to the root element, because IE11 is always focusing the container element instead
|
||||
// of the md-checkbox element. This causes issues when using ngModelOptions: `updateOnBlur`
|
||||
element.children().on('focus', function() {
|
||||
element.focus();
|
||||
});
|
||||
|
||||
if ($mdUtil.parseAttributeBoolean(attr.mdIndeterminate)) {
|
||||
setIndeterminateState();
|
||||
scope.$watch(attr.mdIndeterminate, setIndeterminateState);
|
||||
}
|
||||
|
||||
if (attr.ngChecked) {
|
||||
scope.$watch(scope.$eval.bind(scope, attr.ngChecked), function(value) {
|
||||
ngModelCtrl.$setViewValue(value);
|
||||
ngModelCtrl.$render();
|
||||
});
|
||||
}
|
||||
|
||||
$$watchExpr('ngDisabled', 'tabindex', {
|
||||
true: '-1',
|
||||
false: attr.tabindex
|
||||
});
|
||||
|
||||
$mdAria.expectWithText(element, 'aria-label');
|
||||
|
||||
// Reuse the original input[type=checkbox] directive from Angular core.
|
||||
// This is a bit hacky as we need our own event listener and own render
|
||||
// function.
|
||||
inputDirective.link.pre(scope, {
|
||||
on: angular.noop,
|
||||
0: {}
|
||||
}, attr, [ngModelCtrl]);
|
||||
|
||||
scope.mouseActive = false;
|
||||
element.on('click', listener)
|
||||
.on('keypress', keypressHandler)
|
||||
.on('mousedown', function() {
|
||||
scope.mouseActive = true;
|
||||
$timeout(function() {
|
||||
scope.mouseActive = false;
|
||||
}, 100);
|
||||
})
|
||||
.on('focus', function() {
|
||||
if (scope.mouseActive === false) {
|
||||
element.addClass('md-focused');
|
||||
}
|
||||
})
|
||||
.on('blur', function() {
|
||||
element.removeClass('md-focused');
|
||||
});
|
||||
|
||||
ngModelCtrl.$render = render;
|
||||
|
||||
function $$watchExpr(expr, htmlAttr, valueOpts) {
|
||||
if (attr[expr]) {
|
||||
scope.$watch(attr[expr], function(val) {
|
||||
if (valueOpts[val]) {
|
||||
element.attr(htmlAttr, valueOpts[val]);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function keypressHandler(ev) {
|
||||
var keyCode = ev.which || ev.keyCode;
|
||||
if (keyCode === $mdConstant.KEY_CODE.SPACE || keyCode === $mdConstant.KEY_CODE.ENTER) {
|
||||
ev.preventDefault();
|
||||
element.addClass('md-focused');
|
||||
listener(ev);
|
||||
}
|
||||
}
|
||||
|
||||
function listener(ev) {
|
||||
// skipToggle boolean is used by the switch directive to prevent the click event
|
||||
// when releasing the drag. There will be always a click if releasing the drag over the checkbox
|
||||
if (element[0].hasAttribute('disabled') || scope.skipToggle) {
|
||||
return;
|
||||
}
|
||||
|
||||
scope.$apply(function() {
|
||||
// Toggle the checkbox value...
|
||||
var viewValue = attr.ngChecked ? attr.checked : !ngModelCtrl.$viewValue;
|
||||
|
||||
ngModelCtrl.$setViewValue(viewValue, ev && ev.type);
|
||||
ngModelCtrl.$render();
|
||||
});
|
||||
}
|
||||
|
||||
function render() {
|
||||
// Cast the $viewValue to a boolean since it could be undefined
|
||||
element.toggleClass('md-checked', !!ngModelCtrl.$viewValue && !isIndeterminate);
|
||||
}
|
||||
|
||||
function setIndeterminateState(newValue) {
|
||||
isIndeterminate = newValue !== false;
|
||||
if (isIndeterminate) {
|
||||
element.attr('aria-checked', 'mixed');
|
||||
}
|
||||
element.toggleClass('md-indeterminate', isIndeterminate);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})(window, window.angular);
|
||||
6
www/lib/angular-material/modules/js/checkbox/checkbox.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/checkbox/checkbox.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{box-sizing:border-box;display:inline-block;margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}[dir=rtl] md-checkbox{margin-left:16px;margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto;right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;-webkit-transition:all .5s;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox .md-icon{box-sizing:border-box;-webkit-transition:.24s;transition:.24s;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{box-sizing:border-box;-webkit-transform:rotate(45deg);transform:rotate(45deg);position:absolute;left:4.66667px;top:.22222px;display:table;width:6.66667px;height:13.33333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox[disabled]{cursor:default}md-checkbox.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;vertical-align:middle;white-space:normal;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;margin-left:30px;margin-right:0}[dir=rtl] md-checkbox .md-label{margin-left:0;margin-right:30px}
|
||||
7
www/lib/angular-material/modules/js/checkbox/checkbox.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/checkbox/checkbox.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/
|
||||
!function(e,t,n){"use strict";function i(e,n,i,o,c,d){function a(a,r){function s(a,r,s,u){function l(e,t,n){s[e]&&a.$watch(s[e],function(e){n[e]&&r.attr(t,n[e])})}function m(e){var t=e.which||e.keyCode;t!==i.KEY_CODE.SPACE&&t!==i.KEY_CODE.ENTER||(e.preventDefault(),r.addClass("md-focused"),f(e))}function f(e){r[0].hasAttribute("disabled")||a.skipToggle||a.$apply(function(){var t=s.ngChecked?s.checked:!u.$viewValue;u.$setViewValue(t,e&&e.type),u.$render()})}function p(){r.toggleClass("md-checked",!!u.$viewValue&&!$)}function h(e){$=e!==!1,$&&r.attr("aria-checked","mixed"),r.toggleClass("md-indeterminate",$)}var $;u=u||c.fakeNgModel(),o(r),r.children().on("focus",function(){r.focus()}),c.parseAttributeBoolean(s.mdIndeterminate)&&(h(),a.$watch(s.mdIndeterminate,h)),s.ngChecked&&a.$watch(a.$eval.bind(a,s.ngChecked),function(e){u.$setViewValue(e),u.$render()}),l("ngDisabled","tabindex",{"true":"-1","false":s.tabindex}),n.expectWithText(r,"aria-label"),e.link.pre(a,{on:t.noop,0:{}},s,[u]),a.mouseActive=!1,r.on("click",f).on("keypress",m).on("mousedown",function(){a.mouseActive=!0,d(function(){a.mouseActive=!1},100)}).on("focus",function(){a.mouseActive===!1&&r.addClass("md-focused")}).on("blur",function(){r.removeClass("md-focused")}),u.$render=p}return r.$set("tabindex",r.tabindex||"0"),r.$set("type","checkbox"),r.$set("role",r.type),{pre:function(e,t){t.on("click",function(e){this.hasAttribute("disabled")&&e.stopImmediatePropagation()})},post:s}}return e=e[0],{restrict:"E",transclude:!0,require:"?ngModel",priority:210,template:'<div class="md-container" md-ink-ripple md-ink-ripple-checkbox><div class="md-icon"></div></div><div ng-transclude class="md-label"></div>',compile:a}}i.$inject=["inputDirective","$mdAria","$mdConstant","$mdTheming","$mdUtil","$timeout"],t.module("material.components.checkbox",["material.core"]).directive("mdCheckbox",i)}(window,window.angular);
|
||||
8
www/lib/angular-material/modules/js/chips/bower.json
Normal file
8
www/lib/angular-material/modules/js/chips/bower.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "angular-material-chips",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560",
|
||||
"angular-material-autocomplete": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-chips.md-THEME_NAME-theme .md-chips {
|
||||
box-shadow: 0 1px '{{foreground-4}}'; }
|
||||
md-chips.md-THEME_NAME-theme .md-chips.md-focused {
|
||||
box-shadow: 0 2px '{{primary-color}}'; }
|
||||
md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input {
|
||||
color: '{{foreground-1}}'; }
|
||||
md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-webkit-input-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-moz-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-moz-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-ms-input-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-webkit-input-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
|
||||
md-chips.md-THEME_NAME-theme md-chip {
|
||||
background: '{{background-300}}';
|
||||
color: '{{background-800}}'; }
|
||||
md-chips.md-THEME_NAME-theme md-chip md-icon {
|
||||
color: '{{background-700}}'; }
|
||||
md-chips.md-THEME_NAME-theme md-chip.md-focused {
|
||||
background: '{{primary-color}}';
|
||||
color: '{{primary-contrast}}'; }
|
||||
md-chips.md-THEME_NAME-theme md-chip.md-focused md-icon {
|
||||
color: '{{primary-contrast}}'; }
|
||||
md-chips.md-THEME_NAME-theme md-chip._md-chip-editing {
|
||||
background: transparent;
|
||||
color: '{{background-800}}'; }
|
||||
|
||||
md-chips.md-THEME_NAME-theme md-chip-remove .md-button md-icon path {
|
||||
fill: '{{background-500}}'; }
|
||||
|
||||
.md-contact-suggestion span.md-contact-email {
|
||||
color: '{{background-400}}'; }
|
||||
6
www/lib/angular-material/modules/js/chips/chips-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/chips/chips-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-chips.md-THEME_NAME-theme .md-chips{box-shadow:0 1px '{{foreground-4}}'}md-chips.md-THEME_NAME-theme .md-chips.md-focused{box-shadow:0 2px '{{primary-color}}'}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input{color:'{{foreground-1}}'}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-moz-placeholder,md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-moz-placeholder{color:'{{foreground-3}}'}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-ms-input-placeholder{color:'{{foreground-3}}'}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-webkit-input-placeholder{color:'{{foreground-3}}'}md-chips.md-THEME_NAME-theme md-chip{background:'{{background-300}}';color:'{{background-800}}'}md-chips.md-THEME_NAME-theme md-chip md-icon{color:'{{background-700}}'}md-chips.md-THEME_NAME-theme md-chip.md-focused{background:'{{primary-color}}';color:'{{primary-contrast}}'}md-chips.md-THEME_NAME-theme md-chip.md-focused md-icon{color:'{{primary-contrast}}'}md-chips.md-THEME_NAME-theme md-chip._md-chip-editing{background:transparent;color:'{{background-800}}'}md-chips.md-THEME_NAME-theme md-chip-remove .md-button md-icon path{fill:'{{background-500}}'}.md-contact-suggestion span.md-contact-email{color:'{{background-400}}'}
|
||||
186
www/lib/angular-material/modules/js/chips/chips.css
Normal file
186
www/lib/angular-material/modules/js/chips/chips.css
Normal file
@@ -0,0 +1,186 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
.md-contact-chips .md-chips md-chip {
|
||||
padding: 0 25px 0 0; }
|
||||
[dir=rtl] .md-contact-chips .md-chips md-chip {
|
||||
padding: 0 0 0 25px; }
|
||||
.md-contact-chips .md-chips md-chip .md-contact-avatar {
|
||||
float: left; }
|
||||
[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar {
|
||||
float: right; }
|
||||
.md-contact-chips .md-chips md-chip .md-contact-avatar img {
|
||||
height: 32px;
|
||||
border-radius: 16px; }
|
||||
.md-contact-chips .md-chips md-chip .md-contact-name {
|
||||
display: inline-block;
|
||||
height: 32px;
|
||||
margin-left: 8px; }
|
||||
[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name {
|
||||
margin-left: auto;
|
||||
margin-right: 8px; }
|
||||
|
||||
.md-contact-suggestion {
|
||||
height: 56px; }
|
||||
.md-contact-suggestion img {
|
||||
height: 40px;
|
||||
border-radius: 20px;
|
||||
margin-top: 8px; }
|
||||
.md-contact-suggestion .md-contact-name {
|
||||
margin-left: 8px;
|
||||
width: 120px; }
|
||||
[dir=rtl] .md-contact-suggestion .md-contact-name {
|
||||
margin-left: auto;
|
||||
margin-right: 8px; }
|
||||
.md-contact-suggestion .md-contact-name, .md-contact-suggestion .md-contact-email {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis; }
|
||||
|
||||
.md-contact-chips-suggestions li {
|
||||
height: 100%; }
|
||||
|
||||
.md-chips {
|
||||
display: block;
|
||||
font-family: Roboto, "Helvetica Neue", sans-serif;
|
||||
font-size: 16px;
|
||||
padding: 0 0 8px 3px;
|
||||
vertical-align: middle; }
|
||||
.md-chips:after {
|
||||
content: '';
|
||||
display: table;
|
||||
clear: both; }
|
||||
[dir=rtl] .md-chips {
|
||||
padding: 0 3px 8px 0; }
|
||||
.md-chips.md-readonly .md-chip-input-container {
|
||||
min-height: 32px; }
|
||||
.md-chips:not(.md-readonly) {
|
||||
cursor: text; }
|
||||
.md-chips.md-removable md-chip {
|
||||
padding-right: 22px; }
|
||||
[dir=rtl] .md-chips.md-removable md-chip {
|
||||
padding-right: 0;
|
||||
padding-left: 22px; }
|
||||
.md-chips.md-removable md-chip .md-chip-content {
|
||||
padding-right: 4px; }
|
||||
[dir=rtl] .md-chips.md-removable md-chip .md-chip-content {
|
||||
padding-right: 0;
|
||||
padding-left: 4px; }
|
||||
.md-chips md-chip {
|
||||
cursor: default;
|
||||
border-radius: 16px;
|
||||
display: block;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
margin: 8px 8px 0 0;
|
||||
padding: 0 12px 0 12px;
|
||||
float: left;
|
||||
box-sizing: border-box;
|
||||
max-width: 100%;
|
||||
position: relative; }
|
||||
[dir=rtl] .md-chips md-chip {
|
||||
margin: 8px 0 0 8px; }
|
||||
[dir=rtl] .md-chips md-chip {
|
||||
float: right; }
|
||||
.md-chips md-chip .md-chip-content {
|
||||
display: block;
|
||||
float: left;
|
||||
white-space: nowrap;
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis; }
|
||||
[dir=rtl] .md-chips md-chip .md-chip-content {
|
||||
float: right; }
|
||||
.md-chips md-chip .md-chip-content:focus {
|
||||
outline: none; }
|
||||
.md-chips md-chip._md-chip-content-edit-is-enabled {
|
||||
-webkit-user-select: none;
|
||||
/* webkit (safari, chrome) browsers */
|
||||
-moz-user-select: none;
|
||||
/* mozilla browsers */
|
||||
-khtml-user-select: none;
|
||||
/* webkit (konqueror) browsers */
|
||||
-ms-user-select: none;
|
||||
/* IE10+ */ }
|
||||
.md-chips md-chip .md-chip-remove-container {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
line-height: 22px; }
|
||||
[dir=rtl] .md-chips md-chip .md-chip-remove-container {
|
||||
right: auto;
|
||||
left: 0; }
|
||||
.md-chips md-chip .md-chip-remove {
|
||||
text-align: center;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
background: transparent;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
margin: 0;
|
||||
position: relative; }
|
||||
.md-chips md-chip .md-chip-remove md-icon {
|
||||
height: 18px;
|
||||
width: 18px;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate3d(-50%, -50%, 0);
|
||||
transform: translate3d(-50%, -50%, 0); }
|
||||
.md-chips .md-chip-input-container {
|
||||
display: block;
|
||||
line-height: 32px;
|
||||
margin: 8px 8px 0 0;
|
||||
padding: 0;
|
||||
float: left; }
|
||||
[dir=rtl] .md-chips .md-chip-input-container {
|
||||
margin: 8px 0 0 8px; }
|
||||
[dir=rtl] .md-chips .md-chip-input-container {
|
||||
float: right; }
|
||||
.md-chips .md-chip-input-container input:not([type]), .md-chips .md-chip-input-container input[type="email"], .md-chips .md-chip-input-container input[type="number"], .md-chips .md-chip-input-container input[type="tel"], .md-chips .md-chip-input-container input[type="url"], .md-chips .md-chip-input-container input[type="text"] {
|
||||
border: 0;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0; }
|
||||
.md-chips .md-chip-input-container input:not([type]):focus, .md-chips .md-chip-input-container input[type="email"]:focus, .md-chips .md-chip-input-container input[type="number"]:focus, .md-chips .md-chip-input-container input[type="tel"]:focus, .md-chips .md-chip-input-container input[type="url"]:focus, .md-chips .md-chip-input-container input[type="text"]:focus {
|
||||
outline: none; }
|
||||
.md-chips .md-chip-input-container md-autocomplete, .md-chips .md-chip-input-container md-autocomplete-wrap {
|
||||
background: transparent;
|
||||
height: 32px; }
|
||||
.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap {
|
||||
box-shadow: none; }
|
||||
.md-chips .md-chip-input-container md-autocomplete input {
|
||||
position: relative; }
|
||||
.md-chips .md-chip-input-container input {
|
||||
border: 0;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0; }
|
||||
.md-chips .md-chip-input-container input:focus {
|
||||
outline: none; }
|
||||
.md-chips .md-chip-input-container md-autocomplete, .md-chips .md-chip-input-container md-autocomplete-wrap {
|
||||
height: 32px; }
|
||||
.md-chips .md-chip-input-container md-autocomplete {
|
||||
box-shadow: none; }
|
||||
.md-chips .md-chip-input-container md-autocomplete input {
|
||||
position: relative; }
|
||||
.md-chips .md-chip-input-container:not(:first-child) {
|
||||
margin: 8px 8px 0 0; }
|
||||
[dir=rtl] .md-chips .md-chip-input-container:not(:first-child) {
|
||||
margin: 8px 0 0 8px; }
|
||||
.md-chips .md-chip-input-container input {
|
||||
background: transparent;
|
||||
border-width: 0; }
|
||||
.md-chips md-autocomplete button {
|
||||
display: none; }
|
||||
|
||||
@media screen and (-ms-high-contrast: active) {
|
||||
.md-chip-input-container,
|
||||
md-chip {
|
||||
border: 1px solid #fff; }
|
||||
.md-chip-input-container md-autocomplete {
|
||||
border: none; } }
|
||||
1551
www/lib/angular-material/modules/js/chips/chips.js
vendored
Normal file
1551
www/lib/angular-material/modules/js/chips/chips.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
6
www/lib/angular-material/modules/js/chips/chips.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/chips/chips.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px;padding:0 0 8px 3px;vertical-align:middle}.md-chips:after{content:'';display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px;float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:none}.md-chips md-chip._md-chip-content-edit-is-enabled{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:transparent;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px;float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=number],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=url]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=number]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=url]:focus{outline:none}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:transparent;height:32px}.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:focus{outline:none}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{height:32px}.md-chips .md-chip-input-container md-autocomplete{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips .md-chip-input-container input{background:transparent;border-width:0}.md-chips md-autocomplete button{display:none}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}
|
||||
7
www/lib/angular-material/modules/js/chips/chips.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/chips/chips.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
7
www/lib/angular-material/modules/js/colors/bower.json
Normal file
7
www/lib/angular-material/modules/js/colors/bower.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "angular-material-colors",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
411
www/lib/angular-material/modules/js/colors/colors.js
vendored
Normal file
411
www/lib/angular-material/modules/js/colors/colors.js
vendored
Normal file
@@ -0,0 +1,411 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* Use a RegExp to check if the `md-colors="<expression>"` is static string
|
||||
* or one that should be observed and dynamically interpolated.
|
||||
*/
|
||||
MdColorsDirective.$inject = ["$mdColors", "$mdUtil", "$log", "$parse"];
|
||||
MdColorsService.$inject = ["$mdTheming", "$mdUtil", "$log"];
|
||||
var STATIC_COLOR_EXPRESSION = /^{((\s|,)*?["'a-zA-Z-]+?\s*?:\s*?('|")[a-zA-Z0-9-.]*('|"))+\s*}$/;
|
||||
var colorPalettes = null;
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.colors
|
||||
*
|
||||
* @description
|
||||
* Define $mdColors service and a `md-colors=""` attribute directive
|
||||
*/
|
||||
angular
|
||||
.module('material.components.colors', ['material.core'])
|
||||
.directive('mdColors', MdColorsDirective)
|
||||
.service('$mdColors', MdColorsService);
|
||||
|
||||
/**
|
||||
* @ngdoc service
|
||||
* @name $mdColors
|
||||
* @module material.components.colors
|
||||
*
|
||||
* @description
|
||||
* With only defining themes, one couldn't get non ngMaterial elements colored with Material colors,
|
||||
* `$mdColors` service is used by the md-color directive to convert the 1..n color expressions to RGBA values and will apply
|
||||
* those values to element as CSS property values.
|
||||
*
|
||||
* @usage
|
||||
* <hljs lang="js">
|
||||
* angular.controller('myCtrl', function ($mdColors) {
|
||||
* var color = $mdColors.getThemeColor('myTheme-red-200-0.5');
|
||||
* ...
|
||||
* });
|
||||
* </hljs>
|
||||
*
|
||||
*/
|
||||
function MdColorsService($mdTheming, $mdUtil, $log) {
|
||||
colorPalettes = colorPalettes || Object.keys($mdTheming.PALETTES);
|
||||
|
||||
// Publish service instance
|
||||
return {
|
||||
applyThemeColors: applyThemeColors,
|
||||
getThemeColor: getThemeColor,
|
||||
hasTheme: hasTheme
|
||||
};
|
||||
|
||||
// ********************************************
|
||||
// Internal Methods
|
||||
// ********************************************
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $mdColors#applyThemeColors
|
||||
*
|
||||
* @description
|
||||
* Gets a color json object, keys are css properties and values are string of the wanted color
|
||||
* Then calculate the rgba() values based on the theme color parts
|
||||
*
|
||||
* @param {DOMElement} element the element to apply the styles on.
|
||||
* @param {object} colorExpression json object, keys are css properties and values are string of the wanted color,
|
||||
* for example: `{color: 'red-A200-0.3'}`.
|
||||
*
|
||||
* @usage
|
||||
* <hljs lang="js">
|
||||
* app.directive('myDirective', function($mdColors) {
|
||||
* return {
|
||||
* ...
|
||||
* link: function (scope, elem) {
|
||||
* $mdColors.applyThemeColors(elem, {color: 'red'});
|
||||
* }
|
||||
* }
|
||||
* });
|
||||
* </hljs>
|
||||
*/
|
||||
function applyThemeColors(element, colorExpression) {
|
||||
try {
|
||||
if (colorExpression) {
|
||||
// Assign the calculate RGBA color values directly as inline CSS
|
||||
element.css(interpolateColors(colorExpression));
|
||||
}
|
||||
} catch (e) {
|
||||
$log.error(e.message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @ngdoc method
|
||||
* @name $mdColors#getThemeColor
|
||||
*
|
||||
* @description
|
||||
* Get parsed color from expression
|
||||
*
|
||||
* @param {string} expression string of a color expression (for instance `'red-700-0.8'`)
|
||||
*
|
||||
* @returns {string} a css color expression (for instance `rgba(211, 47, 47, 0.8)`)
|
||||
*
|
||||
* @usage
|
||||
* <hljs lang="js">
|
||||
* angular.controller('myCtrl', function ($mdColors) {
|
||||
* var color = $mdColors.getThemeColor('myTheme-red-200-0.5');
|
||||
* ...
|
||||
* });
|
||||
* </hljs>
|
||||
*/
|
||||
function getThemeColor(expression) {
|
||||
var color = extractColorOptions(expression);
|
||||
|
||||
return parseColor(color);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the parsed color
|
||||
* @param color hashmap of color definitions
|
||||
* @param contrast whether use contrast color for foreground
|
||||
* @returns rgba color string
|
||||
*/
|
||||
function parseColor(color, contrast) {
|
||||
contrast = contrast || false;
|
||||
var rgbValues = $mdTheming.PALETTES[color.palette][color.hue];
|
||||
|
||||
rgbValues = contrast ? rgbValues.contrast : rgbValues.value;
|
||||
|
||||
return $mdUtil.supplant('rgba({0}, {1}, {2}, {3})',
|
||||
[rgbValues[0], rgbValues[1], rgbValues[2], rgbValues[3] || color.opacity]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert the color expression into an object with scope-interpolated values
|
||||
* Then calculate the rgba() values based on the theme color parts
|
||||
*
|
||||
* @results Hashmap of CSS properties with associated `rgba( )` string vales
|
||||
*
|
||||
*
|
||||
*/
|
||||
function interpolateColors(themeColors) {
|
||||
var rgbColors = {};
|
||||
|
||||
var hasColorProperty = themeColors.hasOwnProperty('color');
|
||||
|
||||
angular.forEach(themeColors, function (value, key) {
|
||||
var color = extractColorOptions(value);
|
||||
var hasBackground = key.indexOf('background') > -1;
|
||||
|
||||
rgbColors[key] = parseColor(color);
|
||||
if (hasBackground && !hasColorProperty) {
|
||||
rgbColors.color = parseColor(color, true);
|
||||
}
|
||||
});
|
||||
|
||||
return rgbColors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if expression has defined theme
|
||||
* e.g.
|
||||
* 'myTheme-primary' => true
|
||||
* 'red-800' => false
|
||||
*/
|
||||
function hasTheme(expression) {
|
||||
return angular.isDefined($mdTheming.THEMES[expression.split('-')[0]]);
|
||||
}
|
||||
|
||||
/**
|
||||
* For the evaluated expression, extract the color parts into a hash map
|
||||
*/
|
||||
function extractColorOptions(expression) {
|
||||
var parts = expression.split('-');
|
||||
var hasTheme = angular.isDefined($mdTheming.THEMES[parts[0]]);
|
||||
var theme = hasTheme ? parts.splice(0, 1)[0] : $mdTheming.defaultTheme();
|
||||
|
||||
return {
|
||||
theme: theme,
|
||||
palette: extractPalette(parts, theme),
|
||||
hue: extractHue(parts, theme),
|
||||
opacity: parts[2] || 1
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate the theme palette name
|
||||
*/
|
||||
function extractPalette(parts, theme) {
|
||||
// If the next section is one of the palettes we assume it's a two word palette
|
||||
// Two word palette can be also written in camelCase, forming camelCase to dash-case
|
||||
|
||||
var isTwoWord = parts.length > 1 && colorPalettes.indexOf(parts[1]) !== -1;
|
||||
var palette = parts[0].replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
|
||||
|
||||
if (isTwoWord) palette = parts[0] + '-' + parts.splice(1, 1);
|
||||
|
||||
if (colorPalettes.indexOf(palette) === -1) {
|
||||
// If the palette is not in the palette list it's one of primary/accent/warn/background
|
||||
var scheme = $mdTheming.THEMES[theme].colors[palette];
|
||||
if (!scheme) {
|
||||
throw new Error($mdUtil.supplant('mdColors: couldn\'t find \'{palette}\' in the palettes.', {palette: palette}));
|
||||
}
|
||||
palette = scheme.name;
|
||||
}
|
||||
|
||||
return palette;
|
||||
}
|
||||
|
||||
function extractHue(parts, theme) {
|
||||
var themeColors = $mdTheming.THEMES[theme].colors;
|
||||
|
||||
if (parts[1] === 'hue') {
|
||||
var hueNumber = parseInt(parts.splice(2, 1)[0], 10);
|
||||
|
||||
if (hueNumber < 1 || hueNumber > 3) {
|
||||
throw new Error($mdUtil.supplant('mdColors: \'hue-{hueNumber}\' is not a valid hue, can be only \'hue-1\', \'hue-2\' and \'hue-3\'', {hueNumber: hueNumber}));
|
||||
}
|
||||
parts[1] = 'hue-' + hueNumber;
|
||||
|
||||
if (!(parts[0] in themeColors)) {
|
||||
throw new Error($mdUtil.supplant('mdColors: \'hue-x\' can only be used with [{availableThemes}], but was used with \'{usedTheme}\'', {
|
||||
availableThemes: Object.keys(themeColors).join(', '),
|
||||
usedTheme: parts[0]
|
||||
}));
|
||||
}
|
||||
|
||||
return themeColors[parts[0]].hues[parts[1]];
|
||||
}
|
||||
|
||||
return parts[1] || themeColors[parts[0] in themeColors ? parts[0] : 'primary'].hues['default'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdColors
|
||||
* @module material.components.colors
|
||||
*
|
||||
* @restrict A
|
||||
*
|
||||
* @description
|
||||
* `mdColors` directive will apply the theme-based color expression as RGBA CSS style values.
|
||||
*
|
||||
* The format will be similar to our color defining in the scss files:
|
||||
*
|
||||
* ## `[?theme]-[palette]-[?hue]-[?opacity]`
|
||||
* - [theme] - default value is the default theme
|
||||
* - [palette] - can be either palette name or primary/accent/warn/background
|
||||
* - [hue] - default is 500 (hue-x can be used with primary/accent/warn/background)
|
||||
* - [opacity] - default is 1
|
||||
*
|
||||
* > `?` indicates optional parameter
|
||||
*
|
||||
* @usage
|
||||
* <hljs lang="html">
|
||||
* <div md-colors="{background: 'myTheme-accent-900-0.43'}">
|
||||
* <div md-colors="{color: 'red-A100', 'border-color': 'primary-600'}">
|
||||
* <span>Color demo</span>
|
||||
* </div>
|
||||
* </div>
|
||||
* </hljs>
|
||||
*
|
||||
* `mdColors` directive will automatically watch for changes in the expression if it recognizes an interpolation
|
||||
* expression or a function. For performance options, you can use `::` prefix to the `md-colors` expression
|
||||
* to indicate a one-time data binding.
|
||||
* <hljs lang="html">
|
||||
* <md-card md-colors="::{background: '{{theme}}-primary-700'}">
|
||||
* </md-card>
|
||||
* </hljs>
|
||||
*
|
||||
*/
|
||||
function MdColorsDirective($mdColors, $mdUtil, $log, $parse) {
|
||||
return {
|
||||
restrict: 'A',
|
||||
require: ['^?mdTheme'],
|
||||
compile: function (tElem, tAttrs) {
|
||||
var shouldWatch = shouldColorsWatch();
|
||||
|
||||
return function (scope, element, attrs, ctrl) {
|
||||
var mdThemeController = ctrl[0];
|
||||
|
||||
var lastColors = {};
|
||||
|
||||
var parseColors = function (theme) {
|
||||
if (typeof theme !== 'string') {
|
||||
theme = '';
|
||||
}
|
||||
|
||||
if (!attrs.mdColors) {
|
||||
attrs.mdColors = '{}';
|
||||
}
|
||||
|
||||
/**
|
||||
* Json.parse() does not work because the keys are not quoted;
|
||||
* use $parse to convert to a hash map
|
||||
*/
|
||||
var colors = $parse(attrs.mdColors)(scope);
|
||||
|
||||
/**
|
||||
* If mdTheme is defined up the DOM tree
|
||||
* we add mdTheme theme to colors who doesn't specified a theme
|
||||
*
|
||||
* # example
|
||||
* <hljs lang="html">
|
||||
* <div md-theme="myTheme">
|
||||
* <div md-colors="{background: 'primary-600'}">
|
||||
* <span md-colors="{background: 'mySecondTheme-accent-200'}">Color demo</span>
|
||||
* </div>
|
||||
* </div>
|
||||
* </hljs>
|
||||
*
|
||||
* 'primary-600' will be 'myTheme-primary-600',
|
||||
* but 'mySecondTheme-accent-200' will stay the same cause it has a theme prefix
|
||||
*/
|
||||
if (mdThemeController) {
|
||||
Object.keys(colors).forEach(function (prop) {
|
||||
var color = colors[prop];
|
||||
if (!$mdColors.hasTheme(color)) {
|
||||
colors[prop] = (theme || mdThemeController.$mdTheme) + '-' + color;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
cleanElement(colors);
|
||||
|
||||
return colors;
|
||||
};
|
||||
|
||||
var cleanElement = function (colors) {
|
||||
if (!angular.equals(colors, lastColors)) {
|
||||
var keys = Object.keys(lastColors);
|
||||
|
||||
if (lastColors.background && !keys.color) {
|
||||
keys.push('color');
|
||||
}
|
||||
|
||||
keys.forEach(function (key) {
|
||||
element.css(key, '');
|
||||
});
|
||||
}
|
||||
|
||||
lastColors = colors;
|
||||
};
|
||||
|
||||
/**
|
||||
* Registering for mgTheme changes and asking mdTheme controller run our callback whenever a theme changes
|
||||
*/
|
||||
var unregisterChanges = angular.noop;
|
||||
|
||||
if (mdThemeController) {
|
||||
unregisterChanges = mdThemeController.registerChanges(function (theme) {
|
||||
$mdColors.applyThemeColors(element, parseColors(theme));
|
||||
});
|
||||
}
|
||||
|
||||
scope.$on('$destroy', function () {
|
||||
unregisterChanges();
|
||||
});
|
||||
|
||||
try {
|
||||
if (shouldWatch) {
|
||||
scope.$watch(parseColors, angular.bind(this,
|
||||
$mdColors.applyThemeColors, element
|
||||
), true);
|
||||
}
|
||||
else {
|
||||
$mdColors.applyThemeColors(element, parseColors());
|
||||
}
|
||||
|
||||
}
|
||||
catch (e) {
|
||||
$log.error(e.message);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
function shouldColorsWatch() {
|
||||
// Simulate 1x binding and mark mdColorsWatch == false
|
||||
var rawColorExpression = tAttrs.mdColors;
|
||||
var bindOnce = rawColorExpression.indexOf('::') > -1;
|
||||
var isStatic = bindOnce ? true : STATIC_COLOR_EXPRESSION.test(tAttrs.mdColors);
|
||||
|
||||
// Remove it for the postLink...
|
||||
tAttrs.mdColors = rawColorExpression.replace('::', '');
|
||||
|
||||
var hasWatchAttr = angular.isDefined(tAttrs.mdColorsWatch);
|
||||
|
||||
return (bindOnce || isStatic) ? false :
|
||||
hasWatchAttr ? $mdUtil.parseAttributeBoolean(tAttrs.mdColorsWatch) : true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
})();
|
||||
|
||||
})(window, window.angular);
|
||||
7
www/lib/angular-material/modules/js/colors/colors.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/colors/colors.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/
|
||||
!function(e,r,o){"use strict";!function(){function e(e,o,n){function a(e,r){try{r&&e.css(u(r))}catch(o){n.error(o.message)}}function s(e){var r=c(e);return i(r)}function i(r,n){n=n||!1;var t=e.PALETTES[r.palette][r.hue];return t=n?t.contrast:t.value,o.supplant("rgba({0}, {1}, {2}, {3})",[t[0],t[1],t[2],t[3]||r.opacity])}function u(e){var o={},n=e.hasOwnProperty("color");return r.forEach(e,function(e,r){var t=c(e),a=r.indexOf("background")>-1;o[r]=i(t),a&&!n&&(o.color=i(t,!0))}),o}function l(o){return r.isDefined(e.THEMES[o.split("-")[0]])}function c(o){var n=o.split("-"),t=r.isDefined(e.THEMES[n[0]]),a=t?n.splice(0,1)[0]:e.defaultTheme();return{theme:a,palette:h(n,a),hue:m(n,a),opacity:n[2]||1}}function h(r,n){var a=r.length>1&&t.indexOf(r[1])!==-1,s=r[0].replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();if(a&&(s=r[0]+"-"+r.splice(1,1)),t.indexOf(s)===-1){var i=e.THEMES[n].colors[s];if(!i)throw new Error(o.supplant("mdColors: couldn't find '{palette}' in the palettes.",{palette:s}));s=i.name}return s}function m(r,n){var t=e.THEMES[n].colors;if("hue"===r[1]){var a=parseInt(r.splice(2,1)[0],10);if(a<1||a>3)throw new Error(o.supplant("mdColors: 'hue-{hueNumber}' is not a valid hue, can be only 'hue-1', 'hue-2' and 'hue-3'",{hueNumber:a}));if(r[1]="hue-"+a,!(r[0]in t))throw new Error(o.supplant("mdColors: 'hue-x' can only be used with [{availableThemes}], but was used with '{usedTheme}'",{availableThemes:Object.keys(t).join(", "),usedTheme:r[0]}));return t[r[0]].hues[r[1]]}return r[1]||t[r[0]in t?r[0]:"primary"].hues["default"]}return t=t||Object.keys(e.PALETTES),{applyThemeColors:a,getThemeColor:s,hasTheme:l}}function o(e,o,t,a){return{restrict:"A",require:["^?mdTheme"],compile:function(s,i){function u(){var e=i.mdColors,t=e.indexOf("::")>-1,a=!!t||n.test(i.mdColors);i.mdColors=e.replace("::","");var s=r.isDefined(i.mdColorsWatch);return!t&&!a&&(!s||o.parseAttributeBoolean(i.mdColorsWatch))}var l=u();return function(o,n,s,i){var u=i[0],c={},h=function(r){"string"!=typeof r&&(r=""),s.mdColors||(s.mdColors="{}");var n=a(s.mdColors)(o);return u&&Object.keys(n).forEach(function(o){var t=n[o];e.hasTheme(t)||(n[o]=(r||u.$mdTheme)+"-"+t)}),m(n),n},m=function(e){if(!r.equals(e,c)){var o=Object.keys(c);c.background&&!o.color&&o.push("color"),o.forEach(function(e){n.css(e,"")})}c=e},d=r.noop;u&&(d=u.registerChanges(function(r){e.applyThemeColors(n,h(r))})),o.$on("$destroy",function(){d()});try{l?o.$watch(h,r.bind(this,e.applyThemeColors,n),!0):e.applyThemeColors(n,h())}catch(f){t.error(f.message)}}}}}o.$inject=["$mdColors","$mdUtil","$log","$parse"],e.$inject=["$mdTheming","$mdUtil","$log"];var n=/^{((\s|,)*?["'a-zA-Z-]+?\s*?:\s*?('|")[a-zA-Z0-9-.]*('|"))+\s*}$/,t=null;r.module("material.components.colors",["material.core"]).directive("mdColors",o).service("$mdColors",e)}()}(window,window.angular);
|
||||
7
www/lib/angular-material/modules/js/content/bower.json
Normal file
7
www/lib/angular-material/modules/js/content/bower.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "angular-material-content",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-content.md-THEME_NAME-theme {
|
||||
color: '{{foreground-1}}';
|
||||
background-color: '{{background-default}}'; }
|
||||
6
www/lib/angular-material/modules/js/content/content-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/content/content-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-content.md-THEME_NAME-theme{color:'{{foreground-1}}';background-color:'{{background-default}}'}
|
||||
20
www/lib/angular-material/modules/js/content/content.css
Normal file
20
www/lib/angular-material/modules/js/content/content.css
Normal file
@@ -0,0 +1,20 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-content {
|
||||
display: block;
|
||||
position: relative;
|
||||
overflow: auto;
|
||||
-webkit-overflow-scrolling: touch; }
|
||||
md-content[md-scroll-y] {
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden; }
|
||||
md-content[md-scroll-x] {
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden; }
|
||||
@media print {
|
||||
md-content {
|
||||
overflow: visible !important; } }
|
||||
103
www/lib/angular-material/modules/js/content/content.js
vendored
Normal file
103
www/lib/angular-material/modules/js/content/content.js
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.content
|
||||
*
|
||||
* @description
|
||||
* Scrollable content
|
||||
*/
|
||||
mdContentDirective.$inject = ["$mdTheming"];
|
||||
angular.module('material.components.content', [
|
||||
'material.core'
|
||||
])
|
||||
.directive('mdContent', mdContentDirective);
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdContent
|
||||
* @module material.components.content
|
||||
*
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
*
|
||||
* The `<md-content>` directive is a container element useful for scrollable content. It achieves
|
||||
* this by setting the CSS `overflow` property to `auto` so that content can properly scroll.
|
||||
*
|
||||
* In general, `<md-content>` components are not designed to be nested inside one another. If
|
||||
* possible, it is better to make them siblings. This often results in a better user experience as
|
||||
* having nested scrollbars may confuse the user.
|
||||
*
|
||||
* ## Troubleshooting
|
||||
*
|
||||
* In some cases, you may wish to apply the `md-no-momentum` class to ensure that Safari's
|
||||
* momentum scrolling is disabled. Momentum scrolling can cause flickering issues while scrolling
|
||||
* SVG icons and some other components.
|
||||
*
|
||||
* Additionally, we now also offer the `md-no-flicker` class which can be applied to any element
|
||||
* and uses a Webkit-specific filter of `blur(0px)` that forces GPU rendering of all elements
|
||||
* inside (which eliminates the flicker on iOS devices).
|
||||
*
|
||||
* _<b>Note:</b> Forcing an element to render on the GPU can have unintended side-effects, especially
|
||||
* related to the z-index of elements. Please use with caution and only on the elements needed._
|
||||
*
|
||||
* @usage
|
||||
*
|
||||
* Add the `[layout-padding]` attribute to make the content padded.
|
||||
*
|
||||
* <hljs lang="html">
|
||||
* <md-content layout-padding>
|
||||
* Lorem ipsum dolor sit amet, ne quod novum mei.
|
||||
* </md-content>
|
||||
* </hljs>
|
||||
*/
|
||||
|
||||
function mdContentDirective($mdTheming) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
controller: ['$scope', '$element', ContentController],
|
||||
link: function(scope, element) {
|
||||
element.addClass('_md'); // private md component indicator for styling
|
||||
|
||||
$mdTheming(element);
|
||||
scope.$broadcast('$mdContentLoaded', element);
|
||||
|
||||
iosScrollFix(element[0]);
|
||||
}
|
||||
};
|
||||
|
||||
function ContentController($scope, $element) {
|
||||
this.$scope = $scope;
|
||||
this.$element = $element;
|
||||
}
|
||||
}
|
||||
|
||||
function iosScrollFix(node) {
|
||||
// IOS FIX:
|
||||
// If we scroll where there is no more room for the webview to scroll,
|
||||
// by default the webview itself will scroll up and down, this looks really
|
||||
// bad. So if we are scrolling to the very top or bottom, add/subtract one
|
||||
angular.element(node).on('$md.pressdown', function(ev) {
|
||||
// Only touch events
|
||||
if (ev.pointer.type !== 't') return;
|
||||
// Don't let a child content's touchstart ruin it for us.
|
||||
if (ev.$materialScrollFixed) return;
|
||||
ev.$materialScrollFixed = true;
|
||||
|
||||
if (node.scrollTop === 0) {
|
||||
node.scrollTop = 1;
|
||||
} else if (node.scrollHeight === node.scrollTop + node.offsetHeight) {
|
||||
node.scrollTop -= 1;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
})(window, window.angular);
|
||||
6
www/lib/angular-material/modules/js/content/content.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/content/content.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}
|
||||
7
www/lib/angular-material/modules/js/content/content.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/content/content.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/
|
||||
!function(e,t,o){"use strict";function n(e){function t(e,t){this.$scope=e,this.$element=t}return{restrict:"E",controller:["$scope","$element",t],link:function(t,o){o.addClass("_md"),e(o),t.$broadcast("$mdContentLoaded",o),l(o[0])}}}function l(e){t.element(e).on("$md.pressdown",function(t){"t"===t.pointer.type&&(t.$materialScrollFixed||(t.$materialScrollFixed=!0,0===e.scrollTop?e.scrollTop=1:e.scrollHeight===e.scrollTop+e.offsetHeight&&(e.scrollTop-=1)))})}n.$inject=["$mdTheming"],t.module("material.components.content",["material.core"]).directive("mdContent",n)}(window,window.angular);
|
||||
11
www/lib/angular-material/modules/js/core/bower.json
Normal file
11
www/lib/angular-material/modules/js/core/bower.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "angular-material-core",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-ngAnimate": "1.1.0-master-2b98560",
|
||||
"angular-material-animate": "1.1.0-master-2b98560",
|
||||
"angular-material-layout": "1.1.0-master-2b98560",
|
||||
"angular-material-gestures": "1.1.0-master-2b98560",
|
||||
"angular-material-theming": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
/* Only used with Theme processes */
|
||||
html.md-THEME_NAME-theme, body.md-THEME_NAME-theme {
|
||||
color: '{{foreground-1}}';
|
||||
background-color: '{{background-color}}'; }
|
||||
6
www/lib/angular-material/modules/js/core/core-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/core/core-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/body.md-THEME_NAME-theme,html.md-THEME_NAME-theme{color:'{{foreground-1}}';background-color:'{{background-color}}'}
|
||||
18521
www/lib/angular-material/modules/js/core/core.css
Normal file
18521
www/lib/angular-material/modules/js/core/core.css
Normal file
File diff suppressed because it is too large
Load Diff
6920
www/lib/angular-material/modules/js/core/core.js
vendored
Normal file
6920
www/lib/angular-material/modules/js/core/core.js
vendored
Normal file
File diff suppressed because one or more lines are too long
6
www/lib/angular-material/modules/js/core/core.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/core/core.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
10
www/lib/angular-material/modules/js/core/core.min.js
vendored
Normal file
10
www/lib/angular-material/modules/js/core/core.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
4
www/lib/angular-material/modules/js/core/default-theme.js
vendored
Normal file
4
www/lib/angular-material/modules/js/core/default-theme.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "angular-material-datepicker",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560",
|
||||
"angular-material-icon": "1.1.0-master-2b98560",
|
||||
"angular-material-virtualRepeat": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,87 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
/** Theme styles for mdCalendar. */
|
||||
.md-calendar.md-THEME_NAME-theme {
|
||||
background: '{{background-A100}}';
|
||||
color: '{{background-A200-0.87}}'; }
|
||||
.md-calendar.md-THEME_NAME-theme tr:last-child td {
|
||||
border-bottom-color: '{{background-200}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-calendar-day-header {
|
||||
background: '{{background-300}}';
|
||||
color: '{{background-A200-0.87}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today .md-calendar-date-selection-indicator {
|
||||
border: 1px solid '{{primary-500}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today.md-calendar-date-disabled {
|
||||
color: '{{primary-500-0.6}}'; }
|
||||
|
||||
.md-calendar-date.md-focus .md-THEME_NAME-theme .md-calendar-date-selection-indicator, .md-THEME_NAME-theme .md-calendar-date-selection-indicator:hover {
|
||||
background: '{{background-300}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-calendar-date.md-calendar-selected-date .md-calendar-date-selection-indicator,
|
||||
.md-THEME_NAME-theme .md-calendar-date.md-focus.md-calendar-selected-date .md-calendar-date-selection-indicator {
|
||||
background: '{{primary-500}}';
|
||||
color: '{{primary-500-contrast}}';
|
||||
border-color: transparent; }
|
||||
|
||||
.md-THEME_NAME-theme .md-calendar-date-disabled,
|
||||
.md-THEME_NAME-theme .md-calendar-month-label-disabled {
|
||||
color: '{{background-A200-0.435}}'; }
|
||||
|
||||
/** Theme styles for mdDatepicker. */
|
||||
.md-THEME_NAME-theme .md-datepicker-input {
|
||||
color: '{{foreground-1}}'; }
|
||||
.md-THEME_NAME-theme .md-datepicker-input::-webkit-input-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
.md-THEME_NAME-theme .md-datepicker-input:-moz-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
.md-THEME_NAME-theme .md-datepicker-input::-moz-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
.md-THEME_NAME-theme .md-datepicker-input:-ms-input-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
.md-THEME_NAME-theme .md-datepicker-input::-webkit-input-placeholder {
|
||||
color: '{{foreground-3}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-input-container {
|
||||
border-bottom-color: '{{foreground-4}}'; }
|
||||
.md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused {
|
||||
border-bottom-color: '{{primary-color}}'; }
|
||||
.md-accent .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused {
|
||||
border-bottom-color: '{{accent-color}}'; }
|
||||
.md-warn .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused {
|
||||
border-bottom-color: '{{warn-A700}}'; }
|
||||
.md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-invalid {
|
||||
border-bottom-color: '{{warn-A700}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-calendar-pane {
|
||||
border-color: '{{background-hue-1}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-triangle-button .md-datepicker-expand-triangle {
|
||||
border-top-color: '{{foreground-3}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-triangle-button:hover .md-datepicker-expand-triangle {
|
||||
border-top-color: '{{foreground-2}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon {
|
||||
color: '{{primary-color}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-open.md-accent .md-datepicker-calendar-icon, .md-accent .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon {
|
||||
color: '{{accent-color}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-warn .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon {
|
||||
color: '{{warn-A700}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-calendar {
|
||||
background: '{{background-A100}}'; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-input-mask-opaque {
|
||||
box-shadow: 0 0 0 9999px "{{background-hue-1}}"; }
|
||||
|
||||
.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-input-container {
|
||||
background: "{{background-hue-1}}"; }
|
||||
6
www/lib/angular-material/modules/js/datepicker/datepicker-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/datepicker/datepicker-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/.md-calendar.md-THEME_NAME-theme{background:'{{background-A100}}';color:'{{background-A200-0.87}}'}.md-calendar.md-THEME_NAME-theme tr:last-child td{border-bottom-color:'{{background-200}}'}.md-THEME_NAME-theme .md-calendar-day-header{background:'{{background-300}}';color:'{{background-A200-0.87}}'}.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today .md-calendar-date-selection-indicator{border:1px solid}.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today.md-calendar-date-disabled{color:'{{primary-500-0.6}}'}.md-calendar-date.md-focus .md-THEME_NAME-theme .md-calendar-date-selection-indicator,.md-THEME_NAME-theme .md-calendar-date-selection-indicator:hover{background:'{{background-300}}'}.md-THEME_NAME-theme .md-calendar-date.md-calendar-selected-date .md-calendar-date-selection-indicator,.md-THEME_NAME-theme .md-calendar-date.md-focus.md-calendar-selected-date .md-calendar-date-selection-indicator{background:'{{primary-500}}';color:'{{primary-500-contrast}}';border-color:transparent}.md-THEME_NAME-theme .md-calendar-date-disabled,.md-THEME_NAME-theme .md-calendar-month-label-disabled{color:'{{background-A200-0.435}}'}.md-THEME_NAME-theme .md-datepicker-input{color:'{{foreground-1}}'}.md-THEME_NAME-theme .md-datepicker-input:-moz-placeholder,.md-THEME_NAME-theme .md-datepicker-input::-moz-placeholder{color:'{{foreground-3}}'}.md-THEME_NAME-theme .md-datepicker-input:-ms-input-placeholder{color:'{{foreground-3}}'}.md-THEME_NAME-theme .md-datepicker-input::-webkit-input-placeholder{color:'{{foreground-3}}'}.md-THEME_NAME-theme .md-datepicker-input-container{border-bottom-color:'{{foreground-4}}'}.md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:'{{primary-color}}'}.md-accent .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:'{{accent-color}}'}.md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-invalid,.md-warn .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:'{{warn-A700}}'}.md-THEME_NAME-theme .md-datepicker-calendar-pane{border-color:'{{background-hue-1}}'}.md-THEME_NAME-theme .md-datepicker-triangle-button .md-datepicker-expand-triangle{border-top-color:'{{foreground-3}}'}.md-THEME_NAME-theme .md-datepicker-triangle-button:hover .md-datepicker-expand-triangle{border-top-color:'{{foreground-2}}'}.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon{color:'{{primary-color}}'}.md-accent .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon,.md-THEME_NAME-theme .md-datepicker-open.md-accent .md-datepicker-calendar-icon{color:'{{accent-color}}'}.md-THEME_NAME-theme .md-datepicker-open.md-warn .md-datepicker-calendar-icon,.md-warn .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon{color:'{{warn-A700}}'}.md-THEME_NAME-theme .md-datepicker-calendar{background:'{{background-A100}}'}.md-THEME_NAME-theme .md-datepicker-input-mask-opaque{box-shadow:0 0 0 9999px "{{background-hue-1}}"}.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-input-container{background:"{{background-hue-1}}"}
|
||||
305
www/lib/angular-material/modules/js/datepicker/datepicker.css
Normal file
305
www/lib/angular-material/modules/js/datepicker/datepicker.css
Normal file
@@ -0,0 +1,305 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
/** Styles for mdCalendar. */
|
||||
md-calendar {
|
||||
font-size: 13px;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none; }
|
||||
|
||||
.md-calendar-scroll-mask {
|
||||
display: inline-block;
|
||||
overflow: hidden;
|
||||
height: 308px; }
|
||||
.md-calendar-scroll-mask .md-virtual-repeat-scroller {
|
||||
overflow-y: scroll;
|
||||
-webkit-overflow-scrolling: touch; }
|
||||
.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar {
|
||||
display: none; }
|
||||
.md-calendar-scroll-mask .md-virtual-repeat-offsetter {
|
||||
width: 100%; }
|
||||
|
||||
.md-calendar-scroll-container {
|
||||
box-shadow: inset -3px 3px 6px rgba(0, 0, 0, 0.2);
|
||||
display: inline-block;
|
||||
height: 308px;
|
||||
width: 346px; }
|
||||
|
||||
.md-calendar-date {
|
||||
height: 44px;
|
||||
width: 44px;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
border: none;
|
||||
box-sizing: content-box; }
|
||||
.md-calendar-date:first-child {
|
||||
padding-left: 16px; }
|
||||
[dir=rtl] .md-calendar-date:first-child {
|
||||
padding-left: 0;
|
||||
padding-right: 16px; }
|
||||
.md-calendar-date:last-child {
|
||||
padding-right: 16px; }
|
||||
[dir=rtl] .md-calendar-date:last-child {
|
||||
padding-right: 0;
|
||||
padding-left: 16px; }
|
||||
.md-calendar-date.md-calendar-date-disabled {
|
||||
cursor: default; }
|
||||
|
||||
.md-calendar-date-selection-indicator {
|
||||
-webkit-transition: background-color, color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: background-color, color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
line-height: 40px; }
|
||||
.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator {
|
||||
cursor: pointer; }
|
||||
|
||||
.md-calendar-month-label {
|
||||
height: 44px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
padding: 0 0 0 24px; }
|
||||
[dir=rtl] .md-calendar-month-label {
|
||||
padding: 0 24px 0 0; }
|
||||
md-calendar-month .md-calendar-month-label:not(.md-calendar-month-label-disabled) {
|
||||
cursor: pointer; }
|
||||
.md-calendar-month-label md-icon {
|
||||
-webkit-transform: rotate(180deg);
|
||||
transform: rotate(180deg); }
|
||||
[dir=rtl] .md-calendar-month-label md-icon {
|
||||
-webkit-transform: none;
|
||||
transform: none; }
|
||||
.md-calendar-month-label span {
|
||||
vertical-align: middle; }
|
||||
|
||||
.md-calendar-day-header {
|
||||
table-layout: fixed;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse; }
|
||||
.md-calendar-day-header th {
|
||||
height: 40px;
|
||||
width: 44px;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
border: none;
|
||||
box-sizing: content-box;
|
||||
font-weight: normal; }
|
||||
.md-calendar-day-header th:first-child {
|
||||
padding-left: 16px; }
|
||||
[dir=rtl] .md-calendar-day-header th:first-child {
|
||||
padding-left: 0;
|
||||
padding-right: 16px; }
|
||||
.md-calendar-day-header th:last-child {
|
||||
padding-right: 16px; }
|
||||
[dir=rtl] .md-calendar-day-header th:last-child {
|
||||
padding-right: 0;
|
||||
padding-left: 16px; }
|
||||
|
||||
.md-calendar {
|
||||
table-layout: fixed;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse; }
|
||||
.md-calendar tr:last-child td {
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-style: solid; }
|
||||
.md-calendar:first-child {
|
||||
border-top: 1px solid transparent; }
|
||||
.md-calendar tbody, .md-calendar td, .md-calendar tr {
|
||||
vertical-align: middle;
|
||||
box-sizing: content-box; }
|
||||
|
||||
/** Styles for mdDatepicker. */
|
||||
md-datepicker {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
padding-right: 18px;
|
||||
margin-right: -18px;
|
||||
vertical-align: middle; }
|
||||
[dir=rtl] md-datepicker {
|
||||
padding-right: 0;
|
||||
padding-left: 18px; }
|
||||
[dir=rtl] md-datepicker {
|
||||
margin-right: auto;
|
||||
margin-left: -18px; }
|
||||
|
||||
.md-inline-form md-datepicker {
|
||||
margin-top: 12px; }
|
||||
|
||||
.md-datepicker-button {
|
||||
display: inline-block;
|
||||
box-sizing: border-box;
|
||||
background: none;
|
||||
vertical-align: middle;
|
||||
position: relative; }
|
||||
.md-datepicker-button:before {
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
position: absolute;
|
||||
content: '';
|
||||
speak: none; }
|
||||
|
||||
.md-datepicker-input {
|
||||
font-size: 14px;
|
||||
box-sizing: border-box;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
background: transparent;
|
||||
min-width: 120px;
|
||||
max-width: 328px;
|
||||
padding: 0 0 5px; }
|
||||
.md-datepicker-input::-ms-clear {
|
||||
display: none; }
|
||||
|
||||
._md-datepicker-floating-label > md-datepicker {
|
||||
overflow: visible; }
|
||||
._md-datepicker-floating-label > md-datepicker .md-datepicker-input-container {
|
||||
border: none; }
|
||||
._md-datepicker-floating-label > md-datepicker .md-datepicker-button {
|
||||
float: left;
|
||||
margin-top: -2.5px; }
|
||||
[dir=rtl] ._md-datepicker-floating-label > md-datepicker .md-datepicker-button {
|
||||
float: right; }
|
||||
|
||||
._md-datepicker-floating-label._md-datepicker-has-calendar-icon > label:not(.md-no-float):not(.md-container-ignore) {
|
||||
right: 18px;
|
||||
left: auto;
|
||||
width: calc(100% - 84px); }
|
||||
[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon > label:not(.md-no-float):not(.md-container-ignore) {
|
||||
right: auto; }
|
||||
[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon > label:not(.md-no-float):not(.md-container-ignore) {
|
||||
left: 18px; }
|
||||
|
||||
._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation {
|
||||
margin-left: 64px; }
|
||||
[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation {
|
||||
margin-left: auto;
|
||||
margin-right: 64px; }
|
||||
|
||||
.md-datepicker-input-container {
|
||||
position: relative;
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-style: solid;
|
||||
display: inline-block;
|
||||
width: auto; }
|
||||
.md-icon-button + .md-datepicker-input-container {
|
||||
margin-left: 12px; }
|
||||
[dir=rtl] .md-icon-button + .md-datepicker-input-container {
|
||||
margin-left: auto;
|
||||
margin-right: 12px; }
|
||||
.md-datepicker-input-container.md-datepicker-focused {
|
||||
border-bottom-width: 2px; }
|
||||
|
||||
.md-datepicker-is-showing .md-scroll-mask {
|
||||
z-index: 99; }
|
||||
|
||||
.md-datepicker-calendar-pane {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
z-index: 100;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
background: transparent;
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
-webkit-transform-origin: 0 0;
|
||||
transform-origin: 0 0;
|
||||
-webkit-transition: -webkit-transform 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: -webkit-transform 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: transform 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: transform 0.2s cubic-bezier(0.25, 0.8, 0.25, 1), -webkit-transform 0.2s cubic-bezier(0.25, 0.8, 0.25, 1); }
|
||||
.md-datepicker-calendar-pane.md-pane-open {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
|
||||
.md-datepicker-input-mask {
|
||||
height: 40px;
|
||||
width: 340px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: transparent;
|
||||
pointer-events: none;
|
||||
cursor: text; }
|
||||
|
||||
.md-datepicker-calendar {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.2s cubic-bezier(0.5, 0, 0.25, 1);
|
||||
transition: opacity 0.2s cubic-bezier(0.5, 0, 0.25, 1); }
|
||||
.md-pane-open .md-datepicker-calendar {
|
||||
opacity: 1; }
|
||||
.md-datepicker-calendar md-calendar:focus {
|
||||
outline: none; }
|
||||
|
||||
.md-datepicker-expand-triangle {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 5px solid transparent;
|
||||
border-right: 5px solid transparent;
|
||||
border-top: 5px solid; }
|
||||
|
||||
.md-datepicker-triangle-button {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 5px;
|
||||
-webkit-transform: translateY(-25%) translateX(45%);
|
||||
transform: translateY(-25%) translateX(45%); }
|
||||
[dir=rtl] .md-datepicker-triangle-button {
|
||||
right: auto;
|
||||
left: 0; }
|
||||
[dir=rtl] .md-datepicker-triangle-button {
|
||||
-webkit-transform: translateY(-25%) translateX(-45%);
|
||||
transform: translateY(-25%) translateX(-45%); }
|
||||
|
||||
.md-datepicker-triangle-button.md-button.md-icon-button {
|
||||
height: 36px;
|
||||
width: 36px;
|
||||
position: absolute;
|
||||
padding: 8px; }
|
||||
|
||||
md-datepicker[disabled] .md-datepicker-input-container {
|
||||
border-bottom-color: transparent; }
|
||||
|
||||
md-datepicker[disabled] .md-datepicker-triangle-button {
|
||||
display: none; }
|
||||
|
||||
.md-datepicker-open {
|
||||
overflow: hidden; }
|
||||
.md-datepicker-open .md-datepicker-input-container,
|
||||
.md-datepicker-open input.md-input {
|
||||
border-bottom-color: transparent; }
|
||||
.md-datepicker-open .md-datepicker-triangle-button,
|
||||
.md-datepicker-open.md-input-has-value > label,
|
||||
.md-datepicker-open.md-input-has-placeholder > label {
|
||||
display: none; }
|
||||
|
||||
.md-datepicker-pos-adjusted .md-datepicker-input-mask {
|
||||
display: none; }
|
||||
|
||||
.md-datepicker-calendar-pane .md-calendar {
|
||||
-webkit-transform: translateY(-85px);
|
||||
transform: translateY(-85px);
|
||||
-webkit-transition: -webkit-transform 0.65s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: -webkit-transform 0.65s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: transform 0.65s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: transform 0.65s cubic-bezier(0.25, 0.8, 0.25, 1), -webkit-transform 0.65s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
-webkit-transition-delay: 0.125s;
|
||||
transition-delay: 0.125s; }
|
||||
|
||||
.md-datepicker-calendar-pane.md-pane-open .md-calendar {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
2947
www/lib/angular-material/modules/js/datepicker/datepicker.js
vendored
Normal file
2947
www/lib/angular-material/modules/js/datepicker/datepicker.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
6
www/lib/angular-material/modules/js/datepicker/datepicker.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/datepicker/datepicker.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
8
www/lib/angular-material/modules/js/datepicker/datepicker.min.js
vendored
Normal file
8
www/lib/angular-material/modules/js/datepicker/datepicker.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
8
www/lib/angular-material/modules/js/dialog/bower.json
Normal file
8
www/lib/angular-material/modules/js/dialog/bower.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "angular-material-dialog",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560",
|
||||
"angular-material-backdrop": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-dialog.md-THEME_NAME-theme {
|
||||
border-radius: 4px;
|
||||
background-color: '{{background-hue-1}}';
|
||||
color: '{{foreground-1}}'; }
|
||||
md-dialog.md-THEME_NAME-theme.md-content-overflow .md-actions, md-dialog.md-THEME_NAME-theme.md-content-overflow md-dialog-actions {
|
||||
border-top-color: '{{foreground-4}}'; }
|
||||
6
www/lib/angular-material/modules/js/dialog/dialog-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/dialog/dialog-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-dialog.md-THEME_NAME-theme{border-radius:4px;background-color:'{{background-hue-1}}';color:'{{foreground-1}}'}md-dialog.md-THEME_NAME-theme.md-content-overflow .md-actions,md-dialog.md-THEME_NAME-theme.md-content-overflow md-dialog-actions{border-top-color:'{{foreground-4}}'}
|
||||
131
www/lib/angular-material/modules/js/dialog/dialog.css
Normal file
131
www/lib/angular-material/modules/js/dialog/dialog.css
Normal file
@@ -0,0 +1,131 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
.md-dialog-is-showing {
|
||||
max-height: 100%; }
|
||||
|
||||
.md-dialog-container {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-pack: center;
|
||||
-webkit-justify-content: center;
|
||||
justify-content: center;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 80;
|
||||
overflow: hidden; }
|
||||
|
||||
md-dialog {
|
||||
opacity: 0;
|
||||
min-width: 240px;
|
||||
max-width: 80%;
|
||||
max-height: 80%;
|
||||
position: relative;
|
||||
overflow: auto;
|
||||
box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column; }
|
||||
md-dialog.md-transition-in {
|
||||
opacity: 1;
|
||||
-webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
-webkit-transform: translate(0, 0) scale(1);
|
||||
transform: translate(0, 0) scale(1); }
|
||||
md-dialog.md-transition-out {
|
||||
opacity: 0;
|
||||
-webkit-transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||||
-webkit-transform: translate(0, 100%) scale(0.2);
|
||||
transform: translate(0, 100%) scale(0.2); }
|
||||
md-dialog > form {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
overflow: auto; }
|
||||
md-dialog .md-dialog-content {
|
||||
padding: 24px; }
|
||||
md-dialog md-dialog-content {
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-webkit-order: 1;
|
||||
order: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
overflow: auto;
|
||||
-webkit-overflow-scrolling: touch; }
|
||||
md-dialog md-dialog-content:not([layout=row]) > *:first-child:not(.md-subheader) {
|
||||
margin-top: 0; }
|
||||
md-dialog md-dialog-content:focus {
|
||||
outline: none; }
|
||||
md-dialog md-dialog-content .md-subheader {
|
||||
margin: 0; }
|
||||
md-dialog md-dialog-content .md-dialog-content-body {
|
||||
width: 100%; }
|
||||
md-dialog md-dialog-content .md-prompt-input-container {
|
||||
width: 100%;
|
||||
box-sizing: border-box; }
|
||||
md-dialog .md-actions, md-dialog md-dialog-actions {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-ordinal-group: 3;
|
||||
-webkit-order: 2;
|
||||
order: 2;
|
||||
box-sizing: border-box;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
-webkit-box-pack: end;
|
||||
-webkit-justify-content: flex-end;
|
||||
justify-content: flex-end;
|
||||
margin-bottom: 0;
|
||||
padding-right: 8px;
|
||||
padding-left: 16px;
|
||||
min-height: 52px;
|
||||
overflow: hidden; }
|
||||
[dir=rtl] md-dialog .md-actions, [dir=rtl] md-dialog md-dialog-actions {
|
||||
padding-right: 16px; }
|
||||
[dir=rtl] md-dialog .md-actions, [dir=rtl] md-dialog md-dialog-actions {
|
||||
padding-left: 8px; }
|
||||
md-dialog .md-actions .md-button, md-dialog md-dialog-actions .md-button {
|
||||
margin-bottom: 8px;
|
||||
margin-left: 8px;
|
||||
margin-right: 0;
|
||||
margin-top: 8px; }
|
||||
[dir=rtl] md-dialog .md-actions .md-button, [dir=rtl] md-dialog md-dialog-actions .md-button {
|
||||
margin-left: 0; }
|
||||
[dir=rtl] md-dialog .md-actions .md-button, [dir=rtl] md-dialog md-dialog-actions .md-button {
|
||||
margin-right: 8px; }
|
||||
md-dialog.md-content-overflow .md-actions, md-dialog.md-content-overflow md-dialog-actions {
|
||||
border-top-width: 1px;
|
||||
border-top-style: solid; }
|
||||
|
||||
@media screen and (-ms-high-contrast: active) {
|
||||
md-dialog {
|
||||
border: 1px solid #fff; } }
|
||||
|
||||
@media (max-width: 959px) {
|
||||
md-dialog.md-dialog-fullscreen {
|
||||
min-height: 100%;
|
||||
min-width: 100%;
|
||||
border-radius: 0; } }
|
||||
1295
www/lib/angular-material/modules/js/dialog/dialog.js
vendored
Normal file
1295
www/lib/angular-material/modules/js/dialog/dialog.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
6
www/lib/angular-material/modules/js/dialog/dialog.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/dialog/dialog.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/.md-dialog-is-showing{max-height:100%}.md-dialog-container{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}.md-dialog-container,md-dialog{display:-webkit-box;display:-webkit-flex;display:flex}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;overflow:auto;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-dialog.md-transition-in{opacity:1;-webkit-transform:translate(0,0) scale(1);transform:translate(0,0) scale(1)}md-dialog.md-transition-in,md-dialog.md-transition-out{-webkit-transition:all .4s cubic-bezier(.25,.8,.25,1);transition:all .4s cubic-bezier(.25,.8,.25,1)}md-dialog.md-transition-out{opacity:0;-webkit-transform:translate(0,100%) scale(.2);transform:translate(0,100%) scale(.2)}md-dialog>form{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;overflow:auto}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{-webkit-box-ordinal-group:2;-webkit-order:1;order:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:none}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-ordinal-group:3;-webkit-order:2;order:2;box-sizing:border-box;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px;padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin:8px 0 8px 8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0;margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}
|
||||
7
www/lib/angular-material/modules/js/dialog/dialog.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/dialog/dialog.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
7
www/lib/angular-material/modules/js/divider/bower.json
Normal file
7
www/lib/angular-material/modules/js/divider/bower.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "angular-material-divider",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-divider.md-THEME_NAME-theme {
|
||||
border-top-color: '{{foreground-4}}'; }
|
||||
|
||||
.layout-row > md-divider.md-THEME_NAME-theme,
|
||||
.layout-xs-row > md-divider.md-THEME_NAME-theme, .layout-gt-xs-row > md-divider.md-THEME_NAME-theme,
|
||||
.layout-sm-row > md-divider.md-THEME_NAME-theme, .layout-gt-sm-row > md-divider.md-THEME_NAME-theme,
|
||||
.layout-md-row > md-divider.md-THEME_NAME-theme, .layout-gt-md-row > md-divider.md-THEME_NAME-theme,
|
||||
.layout-lg-row > md-divider.md-THEME_NAME-theme, .layout-gt-lg-row > md-divider.md-THEME_NAME-theme,
|
||||
.layout-xl-row > md-divider.md-THEME_NAME-theme {
|
||||
border-right-color: '{{foreground-4}}'; }
|
||||
6
www/lib/angular-material/modules/js/divider/divider-default-theme.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/divider/divider-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-divider.md-THEME_NAME-theme{border-top-color:'{{foreground-4}}'}.layout-gt-lg-row>md-divider.md-THEME_NAME-theme,.layout-gt-md-row>md-divider.md-THEME_NAME-theme,.layout-gt-sm-row>md-divider.md-THEME_NAME-theme,.layout-gt-xs-row>md-divider.md-THEME_NAME-theme,.layout-lg-row>md-divider.md-THEME_NAME-theme,.layout-md-row>md-divider.md-THEME_NAME-theme,.layout-row>md-divider.md-THEME_NAME-theme,.layout-sm-row>md-divider.md-THEME_NAME-theme,.layout-xl-row>md-divider.md-THEME_NAME-theme,.layout-xs-row>md-divider.md-THEME_NAME-theme{border-right-color:'{{foreground-4}}'}
|
||||
26
www/lib/angular-material/modules/js/divider/divider.css
Normal file
26
www/lib/angular-material/modules/js/divider/divider.css
Normal file
@@ -0,0 +1,26 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-divider {
|
||||
display: block;
|
||||
border-top-width: 1px;
|
||||
border-top-style: solid;
|
||||
margin: 0; }
|
||||
md-divider[md-inset] {
|
||||
margin-left: 80px; }
|
||||
[dir=rtl] md-divider[md-inset] {
|
||||
margin-left: auto;
|
||||
margin-right: 80px; }
|
||||
|
||||
.layout-row > md-divider,
|
||||
.layout-xs-row > md-divider, .layout-gt-xs-row > md-divider,
|
||||
.layout-sm-row > md-divider, .layout-gt-sm-row > md-divider,
|
||||
.layout-md-row > md-divider, .layout-gt-md-row > md-divider,
|
||||
.layout-lg-row > md-divider, .layout-gt-lg-row > md-divider,
|
||||
.layout-xl-row > md-divider {
|
||||
border-top-width: 0;
|
||||
border-right-width: 1px;
|
||||
border-right-style: solid; }
|
||||
46
www/lib/angular-material/modules/js/divider/divider.js
vendored
Normal file
46
www/lib/angular-material/modules/js/divider/divider.js
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.divider
|
||||
* @description Divider module!
|
||||
*/
|
||||
MdDividerDirective.$inject = ["$mdTheming"];
|
||||
angular.module('material.components.divider', [
|
||||
'material.core'
|
||||
])
|
||||
.directive('mdDivider', MdDividerDirective);
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdDivider
|
||||
* @module material.components.divider
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* Dividers group and separate content within lists and page layouts using strong visual and spatial distinctions. This divider is a thin rule, lightweight enough to not distract the user from content.
|
||||
*
|
||||
* @param {boolean=} md-inset Add this attribute to activate the inset divider style.
|
||||
* @usage
|
||||
* <hljs lang="html">
|
||||
* <md-divider></md-divider>
|
||||
*
|
||||
* <md-divider md-inset></md-divider>
|
||||
* </hljs>
|
||||
*
|
||||
*/
|
||||
function MdDividerDirective($mdTheming) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
link: $mdTheming
|
||||
};
|
||||
}
|
||||
|
||||
})(window, window.angular);
|
||||
6
www/lib/angular-material/modules/js/divider/divider.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/divider/divider.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}
|
||||
7
www/lib/angular-material/modules/js/divider/divider.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/divider/divider.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/
|
||||
!function(i,e,n){"use strict";function r(i){return{restrict:"E",link:i}}r.$inject=["$mdTheming"],e.module("material.components.divider",["material.core"]).directive("mdDivider",r)}(window,window.angular);
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "angular-material-fabActions",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
61
www/lib/angular-material/modules/js/fabActions/fabActions.js
vendored
Normal file
61
www/lib/angular-material/modules/js/fabActions/fabActions.js
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.fabActions
|
||||
*/
|
||||
MdFabActionsDirective.$inject = ["$mdUtil"];
|
||||
angular
|
||||
.module('material.components.fabActions', ['material.core'])
|
||||
.directive('mdFabActions', MdFabActionsDirective);
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdFabActions
|
||||
* @module material.components.fabActions
|
||||
*
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* The `<md-fab-actions>` directive is used inside of a `<md-fab-speed-dial>` or
|
||||
* `<md-fab-toolbar>` directive to mark an element (or elements) as the actions and setup the
|
||||
* proper event listeners.
|
||||
*
|
||||
* @usage
|
||||
* See the `<md-fab-speed-dial>` or `<md-fab-toolbar>` directives for example usage.
|
||||
*/
|
||||
function MdFabActionsDirective($mdUtil) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
|
||||
require: ['^?mdFabSpeedDial', '^?mdFabToolbar'],
|
||||
|
||||
compile: function(element, attributes) {
|
||||
var children = element.children();
|
||||
|
||||
var hasNgRepeat = $mdUtil.prefixer().hasAttribute(children, 'ng-repeat');
|
||||
|
||||
// Support both ng-repeat and static content
|
||||
if (hasNgRepeat) {
|
||||
children.addClass('md-fab-action-item');
|
||||
} else {
|
||||
// Wrap every child in a new div and add a class that we can scale/fling independently
|
||||
children.wrap('<div class="md-fab-action-item">');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
})(window, window.angular);
|
||||
7
www/lib/angular-material/modules/js/fabActions/fabActions.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/fabActions/fabActions.min.js
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/
|
||||
!function(i,t,e){"use strict";!function(){function i(i){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],compile:function(t,e){var a=t.children(),n=i.prefixer().hasAttribute(a,"ng-repeat");n?a.addClass("md-fab-action-item"):a.wrap('<div class="md-fab-action-item">')}}}i.$inject=["$mdUtil"],t.module("material.components.fabActions",["material.core"]).directive("mdFabActions",i)}()}(window,window.angular);
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"name": "angular-material-fabSpeedDial",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-fab-speed-dial {
|
||||
position: relative;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
align-items: center;
|
||||
z-index: 20;
|
||||
/*
|
||||
* Hide some graphics glitches if switching animation types
|
||||
*/
|
||||
/*
|
||||
* Handle the animations
|
||||
*/ }
|
||||
md-fab-speed-dial.md-fab-bottom-right {
|
||||
top: auto;
|
||||
right: 20px;
|
||||
bottom: 20px;
|
||||
left: auto;
|
||||
position: absolute; }
|
||||
md-fab-speed-dial.md-fab-bottom-left {
|
||||
top: auto;
|
||||
right: auto;
|
||||
bottom: 20px;
|
||||
left: 20px;
|
||||
position: absolute; }
|
||||
md-fab-speed-dial.md-fab-top-right {
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
bottom: auto;
|
||||
left: auto;
|
||||
position: absolute; }
|
||||
md-fab-speed-dial.md-fab-top-left {
|
||||
top: 20px;
|
||||
right: auto;
|
||||
bottom: auto;
|
||||
left: 20px;
|
||||
position: absolute; }
|
||||
md-fab-speed-dial:not(.md-hover-full) {
|
||||
pointer-events: none; }
|
||||
md-fab-speed-dial:not(.md-hover-full) md-fab-trigger, md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item {
|
||||
pointer-events: auto; }
|
||||
md-fab-speed-dial:not(.md-hover-full).md-is-open {
|
||||
pointer-events: auto; }
|
||||
md-fab-speed-dial ._md-css-variables {
|
||||
z-index: 20; }
|
||||
md-fab-speed-dial.md-is-open .md-fab-action-item {
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-grid-row-align: center;
|
||||
align-items: center; }
|
||||
md-fab-speed-dial md-fab-actions {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
height: auto; }
|
||||
md-fab-speed-dial md-fab-actions .md-fab-action-item {
|
||||
-webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
|
||||
md-fab-speed-dial.md-down {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column; }
|
||||
md-fab-speed-dial.md-down md-fab-trigger {
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-webkit-order: 1;
|
||||
order: 1; }
|
||||
md-fab-speed-dial.md-down md-fab-actions {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column;
|
||||
-webkit-box-ordinal-group: 3;
|
||||
-webkit-order: 2;
|
||||
order: 2; }
|
||||
md-fab-speed-dial.md-up {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: column;
|
||||
flex-direction: column; }
|
||||
md-fab-speed-dial.md-up md-fab-trigger {
|
||||
-webkit-box-ordinal-group: 3;
|
||||
-webkit-order: 2;
|
||||
order: 2; }
|
||||
md-fab-speed-dial.md-up md-fab-actions {
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: reverse;
|
||||
-webkit-flex-direction: column-reverse;
|
||||
flex-direction: column-reverse;
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-webkit-order: 1;
|
||||
order: 1; }
|
||||
md-fab-speed-dial.md-left {
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row; }
|
||||
md-fab-speed-dial.md-left md-fab-trigger {
|
||||
-webkit-box-ordinal-group: 3;
|
||||
-webkit-order: 2;
|
||||
order: 2; }
|
||||
md-fab-speed-dial.md-left md-fab-actions {
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: reverse;
|
||||
-webkit-flex-direction: row-reverse;
|
||||
flex-direction: row-reverse;
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-webkit-order: 1;
|
||||
order: 1; }
|
||||
md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item {
|
||||
-webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
|
||||
md-fab-speed-dial.md-right {
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row; }
|
||||
md-fab-speed-dial.md-right md-fab-trigger {
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-webkit-order: 1;
|
||||
order: 1; }
|
||||
md-fab-speed-dial.md-right md-fab-actions {
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row;
|
||||
-webkit-box-ordinal-group: 3;
|
||||
-webkit-order: 2;
|
||||
order: 2; }
|
||||
md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item {
|
||||
-webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
|
||||
md-fab-speed-dial.md-fling-remove .md-fab-action-item > *, md-fab-speed-dial.md-scale-remove .md-fab-action-item > * {
|
||||
visibility: hidden; }
|
||||
md-fab-speed-dial.md-fling .md-fab-action-item {
|
||||
opacity: 1; }
|
||||
md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item {
|
||||
opacity: 0;
|
||||
-webkit-transition-duration: 0s;
|
||||
transition-duration: 0s; }
|
||||
md-fab-speed-dial.md-scale .md-fab-action-item {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
-webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
-webkit-transition-duration: 0.14286s;
|
||||
transition-duration: 0.14286s; }
|
||||
564
www/lib/angular-material/modules/js/fabSpeedDial/fabSpeedDial.js
vendored
Normal file
564
www/lib/angular-material/modules/js/fabSpeedDial/fabSpeedDial.js
vendored
Normal file
@@ -0,0 +1,564 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
MdFabController.$inject = ["$scope", "$element", "$animate", "$mdUtil", "$mdConstant", "$timeout"];
|
||||
angular.module('material.components.fabShared', ['material.core'])
|
||||
.controller('MdFabController', MdFabController);
|
||||
|
||||
function MdFabController($scope, $element, $animate, $mdUtil, $mdConstant, $timeout) {
|
||||
var vm = this;
|
||||
|
||||
// NOTE: We use async eval(s) below to avoid conflicts with any existing digest loops
|
||||
|
||||
vm.open = function() {
|
||||
$scope.$evalAsync("vm.isOpen = true");
|
||||
};
|
||||
|
||||
vm.close = function() {
|
||||
// Async eval to avoid conflicts with existing digest loops
|
||||
$scope.$evalAsync("vm.isOpen = false");
|
||||
|
||||
// Focus the trigger when the element closes so users can still tab to the next item
|
||||
$element.find('md-fab-trigger')[0].focus();
|
||||
};
|
||||
|
||||
// Toggle the open/close state when the trigger is clicked
|
||||
vm.toggle = function() {
|
||||
$scope.$evalAsync("vm.isOpen = !vm.isOpen");
|
||||
};
|
||||
|
||||
setupDefaults();
|
||||
setupListeners();
|
||||
setupWatchers();
|
||||
|
||||
var initialAnimationAttempts = 0;
|
||||
fireInitialAnimations();
|
||||
|
||||
function setupDefaults() {
|
||||
// Set the default direction to 'down' if none is specified
|
||||
vm.direction = vm.direction || 'down';
|
||||
|
||||
// Set the default to be closed
|
||||
vm.isOpen = vm.isOpen || false;
|
||||
|
||||
// Start the keyboard interaction at the first action
|
||||
resetActionIndex();
|
||||
|
||||
// Add an animations waiting class so we know not to run
|
||||
$element.addClass('md-animations-waiting');
|
||||
}
|
||||
|
||||
function setupListeners() {
|
||||
var eventTypes = [
|
||||
'click', 'focusin', 'focusout'
|
||||
];
|
||||
|
||||
// Add our listeners
|
||||
angular.forEach(eventTypes, function(eventType) {
|
||||
$element.on(eventType, parseEvents);
|
||||
});
|
||||
|
||||
// Remove our listeners when destroyed
|
||||
$scope.$on('$destroy', function() {
|
||||
angular.forEach(eventTypes, function(eventType) {
|
||||
$element.off(eventType, parseEvents);
|
||||
});
|
||||
|
||||
// remove any attached keyboard handlers in case element is removed while
|
||||
// speed dial is open
|
||||
disableKeyboard();
|
||||
});
|
||||
}
|
||||
|
||||
var closeTimeout;
|
||||
function parseEvents(event) {
|
||||
// If the event is a click, just handle it
|
||||
if (event.type == 'click') {
|
||||
handleItemClick(event);
|
||||
}
|
||||
|
||||
// If we focusout, set a timeout to close the element
|
||||
if (event.type == 'focusout' && !closeTimeout) {
|
||||
closeTimeout = $timeout(function() {
|
||||
vm.close();
|
||||
}, 100, false);
|
||||
}
|
||||
|
||||
// If we see a focusin and there is a timeout about to run, cancel it so we stay open
|
||||
if (event.type == 'focusin' && closeTimeout) {
|
||||
$timeout.cancel(closeTimeout);
|
||||
closeTimeout = null;
|
||||
}
|
||||
}
|
||||
|
||||
function resetActionIndex() {
|
||||
vm.currentActionIndex = -1;
|
||||
}
|
||||
|
||||
function setupWatchers() {
|
||||
// Watch for changes to the direction and update classes/attributes
|
||||
$scope.$watch('vm.direction', function(newDir, oldDir) {
|
||||
// Add the appropriate classes so we can target the direction in the CSS
|
||||
$animate.removeClass($element, 'md-' + oldDir);
|
||||
$animate.addClass($element, 'md-' + newDir);
|
||||
|
||||
// Reset the action index since it may have changed
|
||||
resetActionIndex();
|
||||
});
|
||||
|
||||
var trigger, actions;
|
||||
|
||||
// Watch for changes to md-open
|
||||
$scope.$watch('vm.isOpen', function(isOpen) {
|
||||
// Reset the action index since it may have changed
|
||||
resetActionIndex();
|
||||
|
||||
// We can't get the trigger/actions outside of the watch because the component hasn't been
|
||||
// linked yet, so we wait until the first watch fires to cache them.
|
||||
if (!trigger || !actions) {
|
||||
trigger = getTriggerElement();
|
||||
actions = getActionsElement();
|
||||
}
|
||||
|
||||
if (isOpen) {
|
||||
enableKeyboard();
|
||||
} else {
|
||||
disableKeyboard();
|
||||
}
|
||||
|
||||
var toAdd = isOpen ? 'md-is-open' : '';
|
||||
var toRemove = isOpen ? '' : 'md-is-open';
|
||||
|
||||
// Set the proper ARIA attributes
|
||||
trigger.attr('aria-haspopup', true);
|
||||
trigger.attr('aria-expanded', isOpen);
|
||||
actions.attr('aria-hidden', !isOpen);
|
||||
|
||||
// Animate the CSS classes
|
||||
$animate.setClass($element, toAdd, toRemove);
|
||||
});
|
||||
}
|
||||
|
||||
function fireInitialAnimations() {
|
||||
// If the element is actually visible on the screen
|
||||
if ($element[0].scrollHeight > 0) {
|
||||
// Fire our animation
|
||||
$animate.addClass($element, '_md-animations-ready').then(function() {
|
||||
// Remove the waiting class
|
||||
$element.removeClass('md-animations-waiting');
|
||||
});
|
||||
}
|
||||
|
||||
// Otherwise, try for up to 1 second before giving up
|
||||
else if (initialAnimationAttempts < 10) {
|
||||
$timeout(fireInitialAnimations, 100);
|
||||
|
||||
// Increment our counter
|
||||
initialAnimationAttempts = initialAnimationAttempts + 1;
|
||||
}
|
||||
}
|
||||
|
||||
function enableKeyboard() {
|
||||
$element.on('keydown', keyPressed);
|
||||
|
||||
// On the next tick, setup a check for outside clicks; we do this on the next tick to avoid
|
||||
// clicks/touches that result in the isOpen attribute changing (e.g. a bound radio button)
|
||||
$mdUtil.nextTick(function() {
|
||||
angular.element(document).on('click touchend', checkForOutsideClick);
|
||||
});
|
||||
|
||||
// TODO: On desktop, we should be able to reset the indexes so you cannot tab through, but
|
||||
// this breaks accessibility, especially on mobile, since you have no arrow keys to press
|
||||
//resetActionTabIndexes();
|
||||
}
|
||||
|
||||
function disableKeyboard() {
|
||||
$element.off('keydown', keyPressed);
|
||||
angular.element(document).off('click touchend', checkForOutsideClick);
|
||||
}
|
||||
|
||||
function checkForOutsideClick(event) {
|
||||
if (event.target) {
|
||||
var closestTrigger = $mdUtil.getClosest(event.target, 'md-fab-trigger');
|
||||
var closestActions = $mdUtil.getClosest(event.target, 'md-fab-actions');
|
||||
|
||||
if (!closestTrigger && !closestActions) {
|
||||
vm.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function keyPressed(event) {
|
||||
switch (event.which) {
|
||||
case $mdConstant.KEY_CODE.ESCAPE: vm.close(); event.preventDefault(); return false;
|
||||
case $mdConstant.KEY_CODE.LEFT_ARROW: doKeyLeft(event); return false;
|
||||
case $mdConstant.KEY_CODE.UP_ARROW: doKeyUp(event); return false;
|
||||
case $mdConstant.KEY_CODE.RIGHT_ARROW: doKeyRight(event); return false;
|
||||
case $mdConstant.KEY_CODE.DOWN_ARROW: doKeyDown(event); return false;
|
||||
}
|
||||
}
|
||||
|
||||
function doActionPrev(event) {
|
||||
focusAction(event, -1);
|
||||
}
|
||||
|
||||
function doActionNext(event) {
|
||||
focusAction(event, 1);
|
||||
}
|
||||
|
||||
function focusAction(event, direction) {
|
||||
var actions = resetActionTabIndexes();
|
||||
|
||||
// Increment/decrement the counter with restrictions
|
||||
vm.currentActionIndex = vm.currentActionIndex + direction;
|
||||
vm.currentActionIndex = Math.min(actions.length - 1, vm.currentActionIndex);
|
||||
vm.currentActionIndex = Math.max(0, vm.currentActionIndex);
|
||||
|
||||
// Focus the element
|
||||
var focusElement = angular.element(actions[vm.currentActionIndex]).children()[0];
|
||||
angular.element(focusElement).attr('tabindex', 0);
|
||||
focusElement.focus();
|
||||
|
||||
// Make sure the event doesn't bubble and cause something else
|
||||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
}
|
||||
|
||||
function resetActionTabIndexes() {
|
||||
// Grab all of the actions
|
||||
var actions = getActionsElement()[0].querySelectorAll('.md-fab-action-item');
|
||||
|
||||
// Disable all other actions for tabbing
|
||||
angular.forEach(actions, function(action) {
|
||||
angular.element(angular.element(action).children()[0]).attr('tabindex', -1);
|
||||
});
|
||||
|
||||
return actions;
|
||||
}
|
||||
|
||||
function doKeyLeft(event) {
|
||||
if (vm.direction === 'left') {
|
||||
doActionNext(event);
|
||||
} else {
|
||||
doActionPrev(event);
|
||||
}
|
||||
}
|
||||
|
||||
function doKeyUp(event) {
|
||||
if (vm.direction === 'down') {
|
||||
doActionPrev(event);
|
||||
} else {
|
||||
doActionNext(event);
|
||||
}
|
||||
}
|
||||
|
||||
function doKeyRight(event) {
|
||||
if (vm.direction === 'left') {
|
||||
doActionPrev(event);
|
||||
} else {
|
||||
doActionNext(event);
|
||||
}
|
||||
}
|
||||
|
||||
function doKeyDown(event) {
|
||||
if (vm.direction === 'up') {
|
||||
doActionPrev(event);
|
||||
} else {
|
||||
doActionNext(event);
|
||||
}
|
||||
}
|
||||
|
||||
function isTrigger(element) {
|
||||
return $mdUtil.getClosest(element, 'md-fab-trigger');
|
||||
}
|
||||
|
||||
function isAction(element) {
|
||||
return $mdUtil.getClosest(element, 'md-fab-actions');
|
||||
}
|
||||
|
||||
function handleItemClick(event) {
|
||||
if (isTrigger(event.target)) {
|
||||
vm.toggle();
|
||||
}
|
||||
|
||||
if (isAction(event.target)) {
|
||||
vm.close();
|
||||
}
|
||||
}
|
||||
|
||||
function getTriggerElement() {
|
||||
return $element.find('md-fab-trigger');
|
||||
}
|
||||
|
||||
function getActionsElement() {
|
||||
return $element.find('md-fab-actions');
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* The duration of the CSS animation in milliseconds.
|
||||
*
|
||||
* @type {number}
|
||||
*/
|
||||
MdFabSpeedDialFlingAnimation.$inject = ["$timeout"];
|
||||
MdFabSpeedDialScaleAnimation.$inject = ["$timeout"];
|
||||
var cssAnimationDuration = 300;
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.fabSpeedDial
|
||||
*/
|
||||
angular
|
||||
// Declare our module
|
||||
.module('material.components.fabSpeedDial', [
|
||||
'material.core',
|
||||
'material.components.fabShared',
|
||||
'material.components.fabActions'
|
||||
])
|
||||
|
||||
// Register our directive
|
||||
.directive('mdFabSpeedDial', MdFabSpeedDialDirective)
|
||||
|
||||
// Register our custom animations
|
||||
.animation('.md-fling', MdFabSpeedDialFlingAnimation)
|
||||
.animation('.md-scale', MdFabSpeedDialScaleAnimation)
|
||||
|
||||
// Register a service for each animation so that we can easily inject them into unit tests
|
||||
.service('mdFabSpeedDialFlingAnimation', MdFabSpeedDialFlingAnimation)
|
||||
.service('mdFabSpeedDialScaleAnimation', MdFabSpeedDialScaleAnimation);
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdFabSpeedDial
|
||||
* @module material.components.fabSpeedDial
|
||||
*
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* The `<md-fab-speed-dial>` directive is used to present a series of popup elements (usually
|
||||
* `<md-button>`s) for quick access to common actions.
|
||||
*
|
||||
* There are currently two animations available by applying one of the following classes to
|
||||
* the component:
|
||||
*
|
||||
* - `md-fling` - The speed dial items appear from underneath the trigger and move into their
|
||||
* appropriate positions.
|
||||
* - `md-scale` - The speed dial items appear in their proper places by scaling from 0% to 100%.
|
||||
*
|
||||
* You may also easily position the trigger by applying one one of the following classes to the
|
||||
* `<md-fab-speed-dial>` element:
|
||||
* - `md-fab-top-left`
|
||||
* - `md-fab-top-right`
|
||||
* - `md-fab-bottom-left`
|
||||
* - `md-fab-bottom-right`
|
||||
*
|
||||
* These CSS classes use `position: absolute`, so you need to ensure that the container element
|
||||
* also uses `position: absolute` or `position: relative` in order for them to work.
|
||||
*
|
||||
* Additionally, you may use the standard `ng-mouseenter` and `ng-mouseleave` directives to
|
||||
* open or close the speed dial. However, if you wish to allow users to hover over the empty
|
||||
* space where the actions will appear, you must also add the `md-hover-full` class to the speed
|
||||
* dial element. Without this, the hover effect will only occur on top of the trigger.
|
||||
*
|
||||
* See the demos for more information.
|
||||
*
|
||||
* ## Troubleshooting
|
||||
*
|
||||
* If your speed dial shows the closing animation upon launch, you may need to use `ng-cloak` on
|
||||
* the parent container to ensure that it is only visible once ready. We have plans to remove this
|
||||
* necessity in the future.
|
||||
*
|
||||
* @usage
|
||||
* <hljs lang="html">
|
||||
* <md-fab-speed-dial md-direction="up" class="md-fling">
|
||||
* <md-fab-trigger>
|
||||
* <md-button aria-label="Add..."><md-icon icon="/img/icons/plus.svg"></md-icon></md-button>
|
||||
* </md-fab-trigger>
|
||||
*
|
||||
* <md-fab-actions>
|
||||
* <md-button aria-label="Add User">
|
||||
* <md-icon icon="/img/icons/user.svg"></md-icon>
|
||||
* </md-button>
|
||||
*
|
||||
* <md-button aria-label="Add Group">
|
||||
* <md-icon icon="/img/icons/group.svg"></md-icon>
|
||||
* </md-button>
|
||||
* </md-fab-actions>
|
||||
* </md-fab-speed-dial>
|
||||
* </hljs>
|
||||
*
|
||||
* @param {string} md-direction From which direction you would like the speed dial to appear
|
||||
* relative to the trigger element.
|
||||
* @param {expression=} md-open Programmatically control whether or not the speed-dial is visible.
|
||||
*/
|
||||
function MdFabSpeedDialDirective() {
|
||||
return {
|
||||
restrict: 'E',
|
||||
|
||||
scope: {
|
||||
direction: '@?mdDirection',
|
||||
isOpen: '=?mdOpen'
|
||||
},
|
||||
|
||||
bindToController: true,
|
||||
controller: 'MdFabController',
|
||||
controllerAs: 'vm',
|
||||
|
||||
link: FabSpeedDialLink
|
||||
};
|
||||
|
||||
function FabSpeedDialLink(scope, element) {
|
||||
// Prepend an element to hold our CSS variables so we can use them in the animations below
|
||||
element.prepend('<div class="_md-css-variables"></div>');
|
||||
}
|
||||
}
|
||||
|
||||
function MdFabSpeedDialFlingAnimation($timeout) {
|
||||
function delayDone(done) { $timeout(done, cssAnimationDuration, false); }
|
||||
|
||||
function runAnimation(element) {
|
||||
// Don't run if we are still waiting and we are not ready
|
||||
if (element.hasClass('md-animations-waiting') && !element.hasClass('_md-animations-ready')) {
|
||||
return;
|
||||
}
|
||||
|
||||
var el = element[0];
|
||||
var ctrl = element.controller('mdFabSpeedDial');
|
||||
var items = el.querySelectorAll('.md-fab-action-item');
|
||||
|
||||
// Grab our trigger element
|
||||
var triggerElement = el.querySelector('md-fab-trigger');
|
||||
|
||||
// Grab our element which stores CSS variables
|
||||
var variablesElement = el.querySelector('._md-css-variables');
|
||||
|
||||
// Setup JS variables based on our CSS variables
|
||||
var startZIndex = parseInt(window.getComputedStyle(variablesElement).zIndex);
|
||||
|
||||
// Always reset the items to their natural position/state
|
||||
angular.forEach(items, function(item, index) {
|
||||
var styles = item.style;
|
||||
|
||||
styles.transform = styles.webkitTransform = '';
|
||||
styles.transitionDelay = '';
|
||||
styles.opacity = 1;
|
||||
|
||||
// Make the items closest to the trigger have the highest z-index
|
||||
styles.zIndex = (items.length - index) + startZIndex;
|
||||
});
|
||||
|
||||
// Set the trigger to be above all of the actions so they disappear behind it.
|
||||
triggerElement.style.zIndex = startZIndex + items.length + 1;
|
||||
|
||||
// If the control is closed, hide the items behind the trigger
|
||||
if (!ctrl.isOpen) {
|
||||
angular.forEach(items, function(item, index) {
|
||||
var newPosition, axis;
|
||||
var styles = item.style;
|
||||
|
||||
// Make sure to account for differences in the dimensions of the trigger verses the items
|
||||
// so that we can properly center everything; this helps hide the item's shadows behind
|
||||
// the trigger.
|
||||
var triggerItemHeightOffset = (triggerElement.clientHeight - item.clientHeight) / 2;
|
||||
var triggerItemWidthOffset = (triggerElement.clientWidth - item.clientWidth) / 2;
|
||||
|
||||
switch (ctrl.direction) {
|
||||
case 'up':
|
||||
newPosition = (item.scrollHeight * (index + 1) + triggerItemHeightOffset);
|
||||
axis = 'Y';
|
||||
break;
|
||||
case 'down':
|
||||
newPosition = -(item.scrollHeight * (index + 1) + triggerItemHeightOffset);
|
||||
axis = 'Y';
|
||||
break;
|
||||
case 'left':
|
||||
newPosition = (item.scrollWidth * (index + 1) + triggerItemWidthOffset);
|
||||
axis = 'X';
|
||||
break;
|
||||
case 'right':
|
||||
newPosition = -(item.scrollWidth * (index + 1) + triggerItemWidthOffset);
|
||||
axis = 'X';
|
||||
break;
|
||||
}
|
||||
|
||||
var newTranslate = 'translate' + axis + '(' + newPosition + 'px)';
|
||||
|
||||
styles.transform = styles.webkitTransform = newTranslate;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
addClass: function(element, className, done) {
|
||||
if (element.hasClass('md-fling')) {
|
||||
runAnimation(element);
|
||||
delayDone(done);
|
||||
} else {
|
||||
done();
|
||||
}
|
||||
},
|
||||
removeClass: function(element, className, done) {
|
||||
runAnimation(element);
|
||||
delayDone(done);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function MdFabSpeedDialScaleAnimation($timeout) {
|
||||
function delayDone(done) { $timeout(done, cssAnimationDuration, false); }
|
||||
|
||||
var delay = 65;
|
||||
|
||||
function runAnimation(element) {
|
||||
var el = element[0];
|
||||
var ctrl = element.controller('mdFabSpeedDial');
|
||||
var items = el.querySelectorAll('.md-fab-action-item');
|
||||
|
||||
// Grab our element which stores CSS variables
|
||||
var variablesElement = el.querySelector('._md-css-variables');
|
||||
|
||||
// Setup JS variables based on our CSS variables
|
||||
var startZIndex = parseInt(window.getComputedStyle(variablesElement).zIndex);
|
||||
|
||||
// Always reset the items to their natural position/state
|
||||
angular.forEach(items, function(item, index) {
|
||||
var styles = item.style,
|
||||
offsetDelay = index * delay;
|
||||
|
||||
styles.opacity = ctrl.isOpen ? 1 : 0;
|
||||
styles.transform = styles.webkitTransform = ctrl.isOpen ? 'scale(1)' : 'scale(0)';
|
||||
styles.transitionDelay = (ctrl.isOpen ? offsetDelay : (items.length - offsetDelay)) + 'ms';
|
||||
|
||||
// Make the items closest to the trigger have the highest z-index
|
||||
styles.zIndex = (items.length - index) + startZIndex;
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
addClass: function(element, className, done) {
|
||||
runAnimation(element);
|
||||
delayDone(done);
|
||||
},
|
||||
|
||||
removeClass: function(element, className, done) {
|
||||
runAnimation(element);
|
||||
delayDone(done);
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
})(window, window.angular);
|
||||
6
www/lib/angular-material/modules/js/fabSpeedDial/fabSpeedDial.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/fabSpeedDial/fabSpeedDial.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-fab-speed-dial{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full).md-is-open,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{-webkit-box-align:center;-webkit-align-items:center;-ms-grid-row-align:center;align-items:center}md-fab-speed-dial md-fab-actions{display:-webkit-box;display:-webkit-flex;display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-down md-fab-actions{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-up{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-up md-fab-actions{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse;-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-left{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-left md-fab-actions{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{-webkit-box-ordinal-group:2;-webkit-order:1;order:1}md-fab-speed-dial.md-right md-fab-actions{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-box-ordinal-group:3;-webkit-order:2;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;-webkit-transition-duration:0s;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{-webkit-transform:scale(0);transform:scale(0);-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.14286s;transition-duration:.14286s}
|
||||
7
www/lib/angular-material/modules/js/fabSpeedDial/fabSpeedDial.min.js
vendored
Normal file
7
www/lib/angular-material/modules/js/fabSpeedDial/fabSpeedDial.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "angular-material-fabToolbar",
|
||||
"version": "1.1.0-master-2b98560",
|
||||
"dependencies": {
|
||||
"angular-material-core": "1.1.0-master-2b98560",
|
||||
"angular-material-fabShared": "1.1.0-master-2b98560",
|
||||
"angular-material-fabActions": "1.1.0-master-2b98560"
|
||||
}
|
||||
}
|
||||
119
www/lib/angular-material/modules/js/fabToolbar/fabToolbar.css
Normal file
119
www/lib/angular-material/modules/js/fabToolbar/fabToolbar.css
Normal file
@@ -0,0 +1,119 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
md-fab-toolbar {
|
||||
display: block;
|
||||
/*
|
||||
* Closed styling
|
||||
*/
|
||||
/*
|
||||
* Hover styling
|
||||
*/ }
|
||||
md-fab-toolbar.md-fab-bottom-right {
|
||||
top: auto;
|
||||
right: 20px;
|
||||
bottom: 20px;
|
||||
left: auto;
|
||||
position: absolute; }
|
||||
md-fab-toolbar.md-fab-bottom-left {
|
||||
top: auto;
|
||||
right: auto;
|
||||
bottom: 20px;
|
||||
left: 20px;
|
||||
position: absolute; }
|
||||
md-fab-toolbar.md-fab-top-right {
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
bottom: auto;
|
||||
left: auto;
|
||||
position: absolute; }
|
||||
md-fab-toolbar.md-fab-top-left {
|
||||
top: 20px;
|
||||
right: auto;
|
||||
bottom: auto;
|
||||
left: 20px;
|
||||
position: absolute; }
|
||||
md-fab-toolbar .md-fab-toolbar-wrapper {
|
||||
display: block;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
height: 68px; }
|
||||
md-fab-toolbar md-fab-trigger {
|
||||
position: absolute;
|
||||
z-index: 20; }
|
||||
md-fab-toolbar md-fab-trigger button {
|
||||
overflow: visible !important; }
|
||||
md-fab-toolbar md-fab-trigger .md-fab-toolbar-background {
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 21;
|
||||
opacity: 1;
|
||||
-webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); }
|
||||
md-fab-toolbar md-fab-trigger md-icon {
|
||||
position: relative;
|
||||
z-index: 22;
|
||||
opacity: 1;
|
||||
-webkit-transition: all 200ms ease-in;
|
||||
transition: all 200ms ease-in; }
|
||||
md-fab-toolbar.md-left md-fab-trigger {
|
||||
right: 0; }
|
||||
[dir=rtl] md-fab-toolbar.md-left md-fab-trigger {
|
||||
right: auto;
|
||||
left: 0; }
|
||||
md-fab-toolbar.md-left .md-toolbar-tools {
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: reverse;
|
||||
-webkit-flex-direction: row-reverse;
|
||||
flex-direction: row-reverse; }
|
||||
md-fab-toolbar.md-left .md-toolbar-tools > .md-button:first-child {
|
||||
margin-right: 0.6rem; }
|
||||
[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools > .md-button:first-child {
|
||||
margin-right: auto;
|
||||
margin-left: 0.6rem; }
|
||||
md-fab-toolbar.md-left .md-toolbar-tools > .md-button:first-child {
|
||||
margin-left: -0.8rem; }
|
||||
[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools > .md-button:first-child {
|
||||
margin-left: auto;
|
||||
margin-right: -0.8rem; }
|
||||
md-fab-toolbar.md-left .md-toolbar-tools > .md-button:last-child {
|
||||
margin-right: 8px; }
|
||||
[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools > .md-button:last-child {
|
||||
margin-right: auto;
|
||||
margin-left: 8px; }
|
||||
md-fab-toolbar.md-right md-fab-trigger {
|
||||
left: 0; }
|
||||
[dir=rtl] md-fab-toolbar.md-right md-fab-trigger {
|
||||
left: auto;
|
||||
right: 0; }
|
||||
md-fab-toolbar.md-right .md-toolbar-tools {
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row; }
|
||||
md-fab-toolbar md-toolbar {
|
||||
background-color: transparent !important;
|
||||
pointer-events: none;
|
||||
z-index: 23; }
|
||||
md-fab-toolbar md-toolbar .md-toolbar-tools {
|
||||
padding: 0 20px;
|
||||
margin-top: 3px; }
|
||||
md-fab-toolbar md-toolbar .md-fab-action-item {
|
||||
opacity: 0;
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0);
|
||||
-webkit-transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
transition: all 0.3s cubic-bezier(0.55, 0, 0.55, 0.2);
|
||||
-webkit-transition-duration: 0.15s;
|
||||
transition-duration: 0.15s; }
|
||||
md-fab-toolbar.md-is-open md-fab-trigger > button {
|
||||
box-shadow: none; }
|
||||
md-fab-toolbar.md-is-open md-fab-trigger > button md-icon {
|
||||
opacity: 0; }
|
||||
md-fab-toolbar.md-is-open .md-fab-action-item {
|
||||
opacity: 1;
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); }
|
||||
208
www/lib/angular-material/modules/js/fabToolbar/fabToolbar.js
vendored
Normal file
208
www/lib/angular-material/modules/js/fabToolbar/fabToolbar.js
vendored
Normal file
@@ -0,0 +1,208 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.1
|
||||
*/
|
||||
(function( window, angular, undefined ){
|
||||
"use strict";
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.fabToolbar
|
||||
*/
|
||||
angular
|
||||
// Declare our module
|
||||
.module('material.components.fabToolbar', [
|
||||
'material.core',
|
||||
'material.components.fabShared',
|
||||
'material.components.fabActions'
|
||||
])
|
||||
|
||||
// Register our directive
|
||||
.directive('mdFabToolbar', MdFabToolbarDirective)
|
||||
|
||||
// Register our custom animations
|
||||
.animation('.md-fab-toolbar', MdFabToolbarAnimation)
|
||||
|
||||
// Register a service for the animation so that we can easily inject it into unit tests
|
||||
.service('mdFabToolbarAnimation', MdFabToolbarAnimation);
|
||||
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdFabToolbar
|
||||
* @module material.components.fabToolbar
|
||||
*
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
*
|
||||
* The `<md-fab-toolbar>` directive is used present a toolbar of elements (usually `<md-button>`s)
|
||||
* for quick access to common actions when a floating action button is activated (via click or
|
||||
* keyboard navigation).
|
||||
*
|
||||
* You may also easily position the trigger by applying one one of the following classes to the
|
||||
* `<md-fab-toolbar>` element:
|
||||
* - `md-fab-top-left`
|
||||
* - `md-fab-top-right`
|
||||
* - `md-fab-bottom-left`
|
||||
* - `md-fab-bottom-right`
|
||||
*
|
||||
* These CSS classes use `position: absolute`, so you need to ensure that the container element
|
||||
* also uses `position: absolute` or `position: relative` in order for them to work.
|
||||
*
|
||||
* @usage
|
||||
*
|
||||
* <hljs lang="html">
|
||||
* <md-fab-toolbar md-direction='left'>
|
||||
* <md-fab-trigger>
|
||||
* <md-button aria-label="Add..."><md-icon icon="/img/icons/plus.svg"></md-icon></md-button>
|
||||
* </md-fab-trigger>
|
||||
*
|
||||
* <md-toolbar>
|
||||
* <md-fab-actions>
|
||||
* <md-button aria-label="Add User">
|
||||
* <md-icon icon="/img/icons/user.svg"></md-icon>
|
||||
* </md-button>
|
||||
*
|
||||
* <md-button aria-label="Add Group">
|
||||
* <md-icon icon="/img/icons/group.svg"></md-icon>
|
||||
* </md-button>
|
||||
* </md-fab-actions>
|
||||
* </md-toolbar>
|
||||
* </md-fab-toolbar>
|
||||
* </hljs>
|
||||
*
|
||||
* @param {string} md-direction From which direction you would like the toolbar items to appear
|
||||
* relative to the trigger element. Supports `left` and `right` directions.
|
||||
* @param {expression=} md-open Programmatically control whether or not the toolbar is visible.
|
||||
*/
|
||||
function MdFabToolbarDirective() {
|
||||
return {
|
||||
restrict: 'E',
|
||||
transclude: true,
|
||||
template: '<div class="md-fab-toolbar-wrapper">' +
|
||||
' <div class="md-fab-toolbar-content" ng-transclude></div>' +
|
||||
'</div>',
|
||||
|
||||
scope: {
|
||||
direction: '@?mdDirection',
|
||||
isOpen: '=?mdOpen'
|
||||
},
|
||||
|
||||
bindToController: true,
|
||||
controller: 'MdFabController',
|
||||
controllerAs: 'vm',
|
||||
|
||||
link: link
|
||||
};
|
||||
|
||||
function link(scope, element, attributes) {
|
||||
// Add the base class for animations
|
||||
element.addClass('md-fab-toolbar');
|
||||
|
||||
// Prepend the background element to the trigger's button
|
||||
element.find('md-fab-trigger').find('button')
|
||||
.prepend('<div class="md-fab-toolbar-background"></div>');
|
||||
}
|
||||
}
|
||||
|
||||
function MdFabToolbarAnimation() {
|
||||
|
||||
function runAnimation(element, className, done) {
|
||||
// If no className was specified, don't do anything
|
||||
if (!className) {
|
||||
return;
|
||||
}
|
||||
|
||||
var el = element[0];
|
||||
var ctrl = element.controller('mdFabToolbar');
|
||||
|
||||
// Grab the relevant child elements
|
||||
var backgroundElement = el.querySelector('.md-fab-toolbar-background');
|
||||
var triggerElement = el.querySelector('md-fab-trigger button');
|
||||
var toolbarElement = el.querySelector('md-toolbar');
|
||||
var iconElement = el.querySelector('md-fab-trigger button md-icon');
|
||||
var actions = element.find('md-fab-actions').children();
|
||||
|
||||
// If we have both elements, use them to position the new background
|
||||
if (triggerElement && backgroundElement) {
|
||||
// Get our variables
|
||||
var color = window.getComputedStyle(triggerElement).getPropertyValue('background-color');
|
||||
var width = el.offsetWidth;
|
||||
var height = el.offsetHeight;
|
||||
|
||||
// Make it twice as big as it should be since we scale from the center
|
||||
var scale = 2 * (width / triggerElement.offsetWidth);
|
||||
|
||||
// Set some basic styles no matter what animation we're doing
|
||||
backgroundElement.style.backgroundColor = color;
|
||||
backgroundElement.style.borderRadius = width + 'px';
|
||||
|
||||
// If we're open
|
||||
if (ctrl.isOpen) {
|
||||
// Turn on toolbar pointer events when closed
|
||||
toolbarElement.style.pointerEvents = 'inherit';
|
||||
|
||||
backgroundElement.style.width = triggerElement.offsetWidth + 'px';
|
||||
backgroundElement.style.height = triggerElement.offsetHeight + 'px';
|
||||
backgroundElement.style.transform = 'scale(' + scale + ')';
|
||||
|
||||
// Set the next close animation to have the proper delays
|
||||
backgroundElement.style.transitionDelay = '0ms';
|
||||
iconElement && (iconElement.style.transitionDelay = '.3s');
|
||||
|
||||
// Apply a transition delay to actions
|
||||
angular.forEach(actions, function(action, index) {
|
||||
action.style.transitionDelay = (actions.length - index) * 25 + 'ms';
|
||||
});
|
||||
} else {
|
||||
// Turn off toolbar pointer events when closed
|
||||
toolbarElement.style.pointerEvents = 'none';
|
||||
|
||||
// Scale it back down to the trigger's size
|
||||
backgroundElement.style.transform = 'scale(1)';
|
||||
|
||||
// Reset the position
|
||||
backgroundElement.style.top = '0';
|
||||
|
||||
if (element.hasClass('md-right')) {
|
||||
backgroundElement.style.left = '0';
|
||||
backgroundElement.style.right = null;
|
||||
}
|
||||
|
||||
if (element.hasClass('md-left')) {
|
||||
backgroundElement.style.right = '0';
|
||||
backgroundElement.style.left = null;
|
||||
}
|
||||
|
||||
// Set the next open animation to have the proper delays
|
||||
backgroundElement.style.transitionDelay = '200ms';
|
||||
iconElement && (iconElement.style.transitionDelay = '0ms');
|
||||
|
||||
// Apply a transition delay to actions
|
||||
angular.forEach(actions, function(action, index) {
|
||||
action.style.transitionDelay = 200 + (index * 25) + 'ms';
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
addClass: function(element, className, done) {
|
||||
runAnimation(element, className, done);
|
||||
done();
|
||||
},
|
||||
|
||||
removeClass: function(element, className, done) {
|
||||
runAnimation(element, className, done);
|
||||
done();
|
||||
}
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
})(window, window.angular);
|
||||
6
www/lib/angular-material/modules/js/fabToolbar/fabToolbar.min.css
vendored
Normal file
6
www/lib/angular-material/modules/js/fabToolbar/fabToolbar.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.0-master-2b98560
|
||||
*/md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;-webkit-transition:all .2s ease-in;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:auto;margin-left:.6rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:all .3s cubic-bezier(.55,0,.55,.2);transition:all .3s cubic-bezier(.55,0,.55,.2);-webkit-transition-duration:.15s;transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;-webkit-transform:scale(1);transform:scale(1)}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user