From 369060a52f85eb3eae8f5844af154b61b9645429 Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Tue, 13 Oct 2015 16:05:39 -0400 Subject: [PATCH] (js/css) Update generated files With Angular Material 0.11.3 --- UI/WebServerResources/css/styles.css | 10599 ++++++++++------ UI/WebServerResources/css/styles.css.map | 2 +- UI/WebServerResources/js/Administration.js | 2 +- .../js/Administration.js.map | 2 +- UI/WebServerResources/js/Common.js | 6 +- UI/WebServerResources/js/Common.js.map | 2 +- UI/WebServerResources/js/Contacts.js | 2 +- UI/WebServerResources/js/Contacts.js.map | 2 +- UI/WebServerResources/js/Contacts.services.js | 2 +- .../js/Contacts.services.js.map | 2 +- UI/WebServerResources/js/Mailer.js | 2 +- UI/WebServerResources/js/Mailer.js.map | 2 +- UI/WebServerResources/js/Mailer.services.js | 4 +- .../js/Mailer.services.js.map | 2 +- UI/WebServerResources/js/Preferences.js | 2 +- UI/WebServerResources/js/Preferences.js.map | 2 +- UI/WebServerResources/js/Scheduler.js | 2 +- UI/WebServerResources/js/Scheduler.js.map | 2 +- .../js/Scheduler.services.js | 2 +- .../js/Scheduler.services.js.map | 2 +- .../js/vendor/angular-animate.js | 126 +- .../js/vendor/angular-animate.min.js | 102 +- .../js/vendor/angular-animate.min.js.map | 4 +- .../js/vendor/angular-aria.js | 2 +- .../js/vendor/angular-aria.min.js | 2 +- .../js/vendor/angular-material.js | 4727 ++++--- .../js/vendor/angular-material.min.js | 17 +- .../js/vendor/angular-sanitize.js | 2 +- .../js/vendor/angular-sanitize.min.js | 2 +- UI/WebServerResources/js/vendor/angular.js | 202 +- .../js/vendor/angular.min.js | 567 +- .../js/vendor/angular.min.js.map | 6 +- 32 files changed, 9628 insertions(+), 6774 deletions(-) diff --git a/UI/WebServerResources/css/styles.css b/UI/WebServerResources/css/styles.css index 63741271b..ed673642a 100644 --- a/UI/WebServerResources/css/styles.css +++ b/UI/WebServerResources/css/styles.css @@ -118,8 +118,7 @@ input[type="search"] { -webkit-appearance: textfield; box-sizing: content-box; -webkit-box-sizing: content-box; } - input[type="search"]::-webkit-search-decoration, - input[type="search"]::-webkit-search-cancel-button { + input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; } .md-visually-hidden { @@ -229,7 +228,7 @@ html * { * */ @-moz-document url-prefix() { - .layout-fill, .md-css-only [layout-fill] { + .layout-fill { margin: 0; width: 100%; min-height: 100%; @@ -239,446 +238,234 @@ html * { * Apply Mixins to create Layout/Flexbox styles * */ -.layout, .md-css-only [layout] { - box-sizing: border-box; - display: -webkit-box; - display: -webkit-flex; - display: -moz-flex; - display: -ms-flexbox; - display: flex; } - -.layout-column, .md-css-only [layout=column] { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-flex-direction: column; } - -.layout-row, .md-css-only [layout=row] { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-direction: row; } - -.flex, .md-css-only [flex] { - box-sizing: border-box; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; } - -.flex-5, -.md-css-only [flex="5"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; } - -.layout--row > .flex-5, -.md-css-only [layout="row"] > .md-css-only [flex="5"] { - max-width: 5%; - max-height: 100%; } - -.layout--column > .flex-5, -.md-css-only [layout="column"] > .md-css-only [flex="5"] { - max-height: 5%; - max-width: 100%; } - -.flex-10, -.md-css-only [flex="10"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; } - -.layout--row > .flex-10, -.md-css-only [layout="row"] > .md-css-only [flex="10"] { - max-width: 10%; - max-height: 100%; } - -.layout--column > .flex-10, -.md-css-only [layout="column"] > .md-css-only [flex="10"] { - max-height: 10%; - max-width: 100%; } - -.flex-15, -.md-css-only [flex="15"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; } - -.layout--row > .flex-15, -.md-css-only [layout="row"] > .md-css-only [flex="15"] { - max-width: 15%; - max-height: 100%; } - -.layout--column > .flex-15, -.md-css-only [layout="column"] > .md-css-only [flex="15"] { - max-height: 15%; - max-width: 100%; } - -.flex-20, -.md-css-only [flex="20"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; } - -.layout--row > .flex-20, -.md-css-only [layout="row"] > .md-css-only [flex="20"] { - max-width: 20%; - max-height: 100%; } - -.layout--column > .flex-20, -.md-css-only [layout="column"] > .md-css-only [flex="20"] { - max-height: 20%; - max-width: 100%; } - -.flex-25, -.md-css-only [flex="25"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; } - -.layout--row > .flex-25, -.md-css-only [layout="row"] > .md-css-only [flex="25"] { - max-width: 25%; - max-height: 100%; } - -.layout--column > .flex-25, -.md-css-only [layout="column"] > .md-css-only [flex="25"] { - max-height: 25%; - max-width: 100%; } - -.flex-30, -.md-css-only [flex="30"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; } - -.layout--row > .flex-30, -.md-css-only [layout="row"] > .md-css-only [flex="30"] { - max-width: 30%; - max-height: 100%; } - -.layout--column > .flex-30, -.md-css-only [layout="column"] > .md-css-only [flex="30"] { - max-height: 30%; - max-width: 100%; } - -.flex-35, -.md-css-only [flex="35"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; } - -.layout--row > .flex-35, -.md-css-only [layout="row"] > .md-css-only [flex="35"] { - max-width: 35%; - max-height: 100%; } - -.layout--column > .flex-35, -.md-css-only [layout="column"] > .md-css-only [flex="35"] { - max-height: 35%; - max-width: 100%; } - -.flex-40, -.md-css-only [flex="40"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; } - -.layout--row > .flex-40, -.md-css-only [layout="row"] > .md-css-only [flex="40"] { - max-width: 40%; - max-height: 100%; } - -.layout--column > .flex-40, -.md-css-only [layout="column"] > .md-css-only [flex="40"] { - max-height: 40%; - max-width: 100%; } - -.flex-45, -.md-css-only [flex="45"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; } - -.layout--row > .flex-45, -.md-css-only [layout="row"] > .md-css-only [flex="45"] { - max-width: 45%; - max-height: 100%; } - -.layout--column > .flex-45, -.md-css-only [layout="column"] > .md-css-only [flex="45"] { - max-height: 45%; - max-width: 100%; } - -.flex-50, -.md-css-only [flex="50"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; } - -.layout--row > .flex-50, -.md-css-only [layout="row"] > .md-css-only [flex="50"] { - max-width: 50%; - max-height: 100%; } - -.layout--column > .flex-50, -.md-css-only [layout="column"] > .md-css-only [flex="50"] { - max-height: 50%; - max-width: 100%; } - -.flex-55, -.md-css-only [flex="55"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; } - -.layout--row > .flex-55, -.md-css-only [layout="row"] > .md-css-only [flex="55"] { - max-width: 55%; - max-height: 100%; } - -.layout--column > .flex-55, -.md-css-only [layout="column"] > .md-css-only [flex="55"] { - max-height: 55%; - max-width: 100%; } - -.flex-60, -.md-css-only [flex="60"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; } - -.layout--row > .flex-60, -.md-css-only [layout="row"] > .md-css-only [flex="60"] { - max-width: 60%; - max-height: 100%; } - -.layout--column > .flex-60, -.md-css-only [layout="column"] > .md-css-only [flex="60"] { - max-height: 60%; - max-width: 100%; } - -.flex-65, -.md-css-only [flex="65"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; } - -.layout--row > .flex-65, -.md-css-only [layout="row"] > .md-css-only [flex="65"] { - max-width: 65%; - max-height: 100%; } - -.layout--column > .flex-65, -.md-css-only [layout="column"] > .md-css-only [flex="65"] { - max-height: 65%; - max-width: 100%; } - -.flex-70, -.md-css-only [flex="70"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; } - -.layout--row > .flex-70, -.md-css-only [layout="row"] > .md-css-only [flex="70"] { - max-width: 70%; - max-height: 100%; } - -.layout--column > .flex-70, -.md-css-only [layout="column"] > .md-css-only [flex="70"] { - max-height: 70%; - max-width: 100%; } - -.flex-75, -.md-css-only [flex="75"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; } - -.layout--row > .flex-75, -.md-css-only [layout="row"] > .md-css-only [flex="75"] { - max-width: 75%; - max-height: 100%; } - -.layout--column > .flex-75, -.md-css-only [layout="column"] > .md-css-only [flex="75"] { - max-height: 75%; - max-width: 100%; } - -.flex-80, -.md-css-only [flex="80"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; } - -.layout--row > .flex-80, -.md-css-only [layout="row"] > .md-css-only [flex="80"] { - max-width: 80%; - max-height: 100%; } - -.layout--column > .flex-80, -.md-css-only [layout="column"] > .md-css-only [flex="80"] { - max-height: 80%; - max-width: 100%; } - -.flex-85, -.md-css-only [flex="85"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; } - -.layout--row > .flex-85, -.md-css-only [layout="row"] > .md-css-only [flex="85"] { - max-width: 85%; - max-height: 100%; } - -.layout--column > .flex-85, -.md-css-only [layout="column"] > .md-css-only [flex="85"] { - max-height: 85%; - max-width: 100%; } - -.flex-90, -.md-css-only [flex="90"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; } - -.layout--row > .flex-90, -.md-css-only [layout="row"] > .md-css-only [flex="90"] { - max-width: 90%; - max-height: 100%; } - -.layout--column > .flex-90, -.md-css-only [layout="column"] > .md-css-only [flex="90"] { - max-height: 90%; - max-width: 100%; } - -.flex-95, -.md-css-only [flex="95"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; } - -.layout--row > .flex-95, -.md-css-only [layout="row"] > .md-css-only [flex="95"] { - max-width: 95%; - max-height: 100%; } - -.layout--column > .flex-95, -.md-css-only [layout="column"] > .md-css-only [flex="95"] { - max-height: 95%; - max-width: 100%; } - -.flex-100, -.md-css-only [flex="100"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; } - -.layout--row > .flex-100, -.md-css-only [layout="row"] > .md-css-only [flex="100"] { - max-width: 100%; - max-height: 100%; } - -.layout--column > .flex-100, -.md-css-only [layout="column"] > .md-css-only [flex="100"] { - max-height: 100%; - max-width: 100%; } - -.flex-33, .flex-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; } - -.flex-66, .flex-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; - max-height: 100%; } - -.layout--row > .flex-33, .layout--row > .flex-34, .md-css-only [layout="row"] > .flex-33, .md-css-only [layout="row"] > .flex-34 { - max-width: 33%; - max-height: 100%; } - -.layout--row > .flex-66, .layout--row > .flex-67, .md-css-only [layout="row"] > .flex-66, .md-css-only [layout="row"] > .flex-67 { - max-width: 67%; - max-height: 100%; } - -.layout--column > .flex-33, .layout--column > .flex-34, .md-css-only [layout="column"] > .flex-33, .md-css-only [layout="column"] > .flex-34 { - max-height: 33%; - max-width: 100%; } - -.layout--column > .flex-66, .layout--column > .flex-67, .md-css-only [layout="column"] > .flex-66, .md-css-only [layout="column"] > .flex-67 { - max-height: 67%; - max-width: 100%; } - -.layout-align-center, .layout-align-center-center, +.flex-order { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + +.flex-order-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + +.flex-order-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + +.flex-order-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + +.flex-order-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + +.flex-order-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + +.flex-order-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + +.flex-order-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + +.flex-order-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + +.flex-order-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + +.flex-order-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + +.flex-order-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + +.flex-order-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + +.flex-order-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + +.flex-order-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + +.flex-order-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + +.flex-order-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + +.flex-order-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + +.flex-order-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + +.flex-order-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + +.flex-order-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + +.offset-0, .flex-offset-0 { + margin-left: 0%; } + +.offset-5, .flex-offset-5 { + margin-left: 5%; } + +.offset-10, .flex-offset-10 { + margin-left: 10%; } + +.offset-15, .flex-offset-15 { + margin-left: 15%; } + +.offset-20, .flex-offset-20 { + margin-left: 20%; } + +.offset-25, .flex-offset-25 { + margin-left: 25%; } + +.offset-30, .flex-offset-30 { + margin-left: 30%; } + +.offset-35, .flex-offset-35 { + margin-left: 35%; } + +.offset-40, .flex-offset-40 { + margin-left: 40%; } + +.offset-45, .flex-offset-45 { + margin-left: 45%; } + +.offset-50, .flex-offset-50 { + margin-left: 50%; } + +.offset-55, .flex-offset-55 { + margin-left: 55%; } + +.offset-60, .flex-offset-60 { + margin-left: 60%; } + +.offset-65, .flex-offset-65 { + margin-left: 65%; } + +.offset-70, .flex-offset-70 { + margin-left: 70%; } + +.offset-75, .flex-offset-75 { + margin-left: 75%; } + +.offset-80, .flex-offset-80 { + margin-left: 80%; } + +.offset-85, .flex-offset-85 { + margin-left: 85%; } + +.offset-90, .flex-offset-90 { + margin-left: 90%; } + +.offset-95, .flex-offset-95 { + margin-left: 95%; } + +.offset-33, .flex-offset-33 { + margin-left: 33%; } + +.offset-34, .flex-offset-34 { + margin-left: 34%; } + +.offset-66, .flex-offset-66 { + margin-left: 66%; } + +.offset-67, .flex-offset-67 { + margin-left: 67%; } + +.layout-align-center, +.layout-align-center-center, .layout-align-center-start, -.layout-align-center-end, -.md-css-only [layout-align="center"], -.md-css-only [layout-align="center center"], -.md-css-only [layout-align="center start"], -.md-css-only [layout-align="center end"] { +.layout-align-center-end { -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } -.layout-align-end, .layout-align-end-center, +.layout-align-end, +.layout-align-end-center, .layout-align-end-start, -.layout-align-end-end, -.md-css-only [layout-align="end"], .md-css-only [layout-align="end center"], -.md-css-only [layout-align="end start"], -.md-css-only [layout-align="end end"] { +.layout-align-end-end { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; justify-content: flex-end; } -.layout-align-space-around, .layout-align-space-around-center, +.layout-align-space-around, +.layout-align-space-around-center, .layout-align-space-around-start, -.layout-align-space-around-end, -.md-css-only [layout-align="space-around"], .md-css-only [layout-align="space-around center"], -.md-css-only [layout-align="space-around start"], -.md-css-only [layout-align="space-around end"] { +.layout-align-space-around-end { -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; } -.layout-align-space-between, .layout-align-space-between-center, +.layout-align-space-between, +.layout-align-space-between-center, .layout-align-space-between-start, -.layout-align-space-between-end, -.md-css-only [layout-align="space-between"], .md-css-only [layout-align="space-between center"], -.md-css-only [layout-align="space-between start"], -.md-css-only [layout-align="space-between end"] { +.layout-align-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; @@ -688,12 +475,7 @@ html * { .layout-align-start-start, .layout-align-end-start, .layout-align-space-between-start, -.layout-align-space-around-start, -.md-css-only [layout-align="center start"], -.md-css-only [layout-align="start start"], -.md-css-only [layout-align="end start"], -.md-css-only [layout-align="space-between start"], -.md-css-only [layout-align="space-around start"] { +.layout-align-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; @@ -703,285 +485,808 @@ html * { .layout-align-start-center, .layout-align-end-center, .layout-align-space-between-center, -.layout-align-space-around-center, -.md-css-only [layout-align="center center"], -.md-css-only [layout-align="start center"], -.md-css-only [layout-align="end center"], -.md-css-only [layout-align="space-between center"], -.md-css-only [layout-align="space-around center"] { +.layout-align-space-around-center { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; max-width: 100%; } +.layout-align-center-center > *, +.layout-align-start-center > *, +.layout-align-end-center > *, +.layout-align-space-between-center > *, +.layout-align-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } + .layout-align-center-end, .layout-align-start-end, .layout-align-end-end, .layout-align-space-between-end, -.layout-align-space-around-end, -.md-css-only [layout-align="center end"], -.md-css-only [layout-align="start end"], -.md-css-only [layout-align="end end"], -.md-css-only [layout-align="space-between end"], -.md-css-only [layout-align="space-around end"] { +.layout-align-space-around-end { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } -.flex-order--9, .md-css-only .flex-order--9 { - -webkit-box-ordinal-group: -8; - -webkit-order: -9; - -ms-flex-order: -9; - order: -9; } +.flex { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + box-sizing: border-box; } -.flex-order--8, .md-css-only .flex-order--8 { - -webkit-box-ordinal-group: -7; - -webkit-order: -8; - -ms-flex-order: -8; - order: -8; } +.flex-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } -.flex-order--7, .md-css-only .flex-order--7 { - -webkit-box-ordinal-group: -6; - -webkit-order: -7; - -ms-flex-order: -7; - order: -7; } +.flex-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } -.flex-order--6, .md-css-only .flex-order--6 { - -webkit-box-ordinal-group: -5; - -webkit-order: -6; - -ms-flex-order: -6; - order: -6; } +.flex-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } -.flex-order--5, .md-css-only .flex-order--5 { - -webkit-box-ordinal-group: -4; - -webkit-order: -5; - -ms-flex-order: -5; - order: -5; } +.flex-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } -.flex-order--4, .md-css-only .flex-order--4 { - -webkit-box-ordinal-group: -3; - -webkit-order: -4; - -ms-flex-order: -4; - order: -4; } +.flex-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } -.flex-order--3, .md-css-only .flex-order--3 { - -webkit-box-ordinal-group: -2; - -webkit-order: -3; - -ms-flex-order: -3; - order: -3; } +.layout-row > .flex-0, +.layout-row > .flex-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } -.flex-order--2, .md-css-only .flex-order--2 { - -webkit-box-ordinal-group: -1; - -webkit-order: -2; - -ms-flex-order: -2; - order: -2; } +.layout-column > .flex-0, +.layout-column > .flex-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } -.flex-order--1, .md-css-only .flex-order--1 { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; } +.flex-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } -.flex-order-0, .md-css-only .flex-order-0 { - -webkit-box-ordinal-group: 1; - -webkit-order: 0; - -ms-flex-order: 0; - order: 0; } +.layout-row > .flex-5, +.layout-row > .flex-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } -.flex-order-1, .md-css-only .flex-order-1 { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; } +.layout-column > .flex-5, +.layout-column > .flex-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; } -.flex-order-2, .md-css-only .flex-order-2 { - -webkit-box-ordinal-group: 3; - -webkit-order: 2; - -ms-flex-order: 2; - order: 2; } +.flex-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } -.flex-order-3, .md-css-only .flex-order-3 { - -webkit-box-ordinal-group: 4; - -webkit-order: 3; - -ms-flex-order: 3; - order: 3; } +.layout-row > .flex-10, +.layout-row > .flex-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } -.flex-order-4, .md-css-only .flex-order-4 { - -webkit-box-ordinal-group: 5; - -webkit-order: 4; - -ms-flex-order: 4; - order: 4; } +.layout-column > .flex-10, +.layout-column > .flex-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; } -.flex-order-5, .md-css-only .flex-order-5 { - -webkit-box-ordinal-group: 6; - -webkit-order: 5; - -ms-flex-order: 5; - order: 5; } +.flex-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } -.flex-order-6, .md-css-only .flex-order-6 { - -webkit-box-ordinal-group: 7; - -webkit-order: 6; - -ms-flex-order: 6; - order: 6; } +.layout-row > .flex-15, +.layout-row > .flex-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } -.flex-order-7, .md-css-only .flex-order-7 { - -webkit-box-ordinal-group: 8; - -webkit-order: 7; - -ms-flex-order: 7; - order: 7; } +.layout-column > .flex-15, +.layout-column > .flex-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; } -.flex-order-8, .md-css-only .flex-order-8 { - -webkit-box-ordinal-group: 9; - -webkit-order: 8; - -ms-flex-order: 8; - order: 8; } +.flex-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } -.flex-order-9, .md-css-only .flex-order-9 { - -webkit-box-ordinal-group: 10; - -webkit-order: 9; - -ms-flex-order: 9; - order: 9; } +.layout-row > .flex-20, +.layout-row > .flex-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } -.offset-5, -.md-css-only [offset="5"] { - margin-left: 5%; } +.layout-column > .flex-20, +.layout-column > .flex-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; } -.offset-10, -.md-css-only [offset="10"] { - margin-left: 10%; } +.flex-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } -.offset-15, -.md-css-only [offset="15"] { - margin-left: 15%; } +.layout-row > .flex-25, +.layout-row > .flex-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } -.offset-20, -.md-css-only [offset="20"] { - margin-left: 20%; } +.layout-column > .flex-25, +.layout-column > .flex-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; } -.offset-25, -.md-css-only [offset="25"] { - margin-left: 25%; } +.flex-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } -.offset-30, -.md-css-only [offset="30"] { - margin-left: 30%; } +.layout-row > .flex-30, +.layout-row > .flex-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } -.offset-35, -.md-css-only [offset="35"] { - margin-left: 35%; } +.layout-column > .flex-30, +.layout-column > .flex-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; } -.offset-40, -.md-css-only [offset="40"] { - margin-left: 40%; } +.flex-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } -.offset-45, -.md-css-only [offset="45"] { - margin-left: 45%; } +.layout-row > .flex-35, +.layout-row > .flex-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } -.offset-50, -.md-css-only [offset="50"] { - margin-left: 50%; } +.layout-column > .flex-35, +.layout-column > .flex-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; } -.offset-55, -.md-css-only [offset="55"] { - margin-left: 55%; } +.flex-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } -.offset-60, -.md-css-only [offset="60"] { - margin-left: 60%; } +.layout-row > .flex-40, +.layout-row > .flex-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } -.offset-65, -.md-css-only [offset="65"] { - margin-left: 65%; } +.layout-column > .flex-40, +.layout-column > .flex-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; } -.offset-70, -.md-css-only [offset="70"] { - margin-left: 70%; } +.flex-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } -.offset-75, -.md-css-only [offset="75"] { - margin-left: 75%; } +.layout-row > .flex-45, +.layout-row > .flex-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } -.offset-80, -.md-css-only [offset="80"] { - margin-left: 80%; } +.layout-column > .flex-45, +.layout-column > .flex-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; } -.offset-85, -.md-css-only [offset="85"] { - margin-left: 85%; } +.flex-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } -.offset-90, -.md-css-only [offset="90"] { - margin-left: 90%; } +.layout-row > .flex-50, +.layout-row > .flex-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } -.offset-95, -.md-css-only [offset="95"] { - margin-left: 95%; } +.layout-column > .flex-50, +.layout-column > .flex-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; } -.offset-33, .offset-34, -.md-css-only [offset="33"], .md-css-only [offset="34"] { - margin-left: 34%; } +.flex-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } -.offset-66, .offset-67, -.md-css-only [offset="66"], .md-css-only [offset="67"] { - margin-left: 66%; } +.layout-row > .flex-55, +.layout-row > .flex-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } -.layout-padding > .flex-sm, -.layout-padding > .flex-lt-md, -.md-css-only [layout-padding] > [flex-sm], -.md-css-only [layout-padding] > [flex-lt-md] { +.layout-column > .flex-55, +.layout-column > .flex-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; } + +.flex-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-60, +.layout-row > .flex-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-60, +.layout-column > .flex-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; } + +.flex-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-65, +.layout-row > .flex-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-65, +.layout-column > .flex-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; } + +.flex-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-70, +.layout-row > .flex-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-70, +.layout-column > .flex-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; } + +.flex-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-75, +.layout-row > .flex-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-75, +.layout-column > .flex-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; } + +.flex-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-80, +.layout-row > .flex-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-80, +.layout-column > .flex-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; } + +.flex-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-85, +.layout-row > .flex-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-85, +.layout-column > .flex-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; } + +.flex-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-90, +.layout-row > .flex-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-90, +.layout-column > .flex-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; } + +.flex-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-95, +.layout-row > .flex-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-95, +.layout-column > .flex-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; } + +.flex-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-100, +.layout-row > .flex-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-100, +.layout-column > .flex-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-33, .layout-row > .flex-33, .layout-row > .flex-33, .layout-row > .flex-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 33%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-34, .layout-row > .flex-34, .layout-row > .flex-34, .layout-row > .flex-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 34%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-66, .layout-row > .flex-66, .layout-row > .flex-66, .layout-row > .flex-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 66%; + max-height: 100%; + box-sizing: border-box; } + +.layout-row > .flex-67, .layout-row > .flex-67, .layout-row > .flex-67, .layout-row > .flex-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 67%; + max-height: 100%; + box-sizing: border-box; } + +.layout-column > .flex-33, .layout-column > .flex-33, .layout-column > .flex-33, .layout-column > .flex-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 100%; + max-height: 33%; + box-sizing: border-box; } + +.layout-column > .flex-34, .layout-column > .flex-34, .layout-column > .flex-34, .layout-column > .flex-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 100%; + max-height: 34%; + box-sizing: border-box; } + +.layout-column > .flex-66, .layout-column > .flex-66, .layout-column > .flex-66, .layout-column > .flex-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 100%; + max-height: 66%; + box-sizing: border-box; } + +.layout-column > .flex-67, .layout-column > .flex-67, .layout-column > .flex-67, .layout-column > .flex-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 100%; + max-height: 67%; + box-sizing: border-box; } + +.layout, .layout-column, .layout-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + +.layout-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + +.layout-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } + +.layout-padding > .flex-sm, .layout-padding > .flex-lt-md { padding: 4px; } .layout-padding, .layout-padding > .flex, .layout-padding > .flex-gt-sm, .layout-padding > .flex-md, -.layout-padding > .flex-lt-lg, -.md-css-only [layout-padding], -.md-css-only [layout-padding] > .md-css-only [flex], -.md-css-only [layout-padding] > .md-css-only [flex-gt-sm], -.md-css-only [layout-padding] > .md-css-only [flex-md], -.md-css-only [layout-padding] > .md-css-only [flex-lt-lg] { +.layout-padding > .flex-lt-lg { padding: 8px; } .layout-padding > .flex-gt-md, -.layout-padding > .flex-lg, -.md-css-only [layout-padding] > .md-css-only [flex-gt-md], -.md-css-only [layout-padding] > .md-css-only [flex-lg] { +.layout-padding > .flex-lg { padding: 16px; } .layout-margin > .flex-sm, -.layout-margin > .flex-lt-md, -.md-css-only [layout-margin] > .md-css-only [flex-sm], -.md-css-only [layout-margin] > .md-css-only [flex-lt-md] { +.layout-margin > .flex-lt-md { margin: 4px; } .layout-margin, .layout-margin > .flex, .layout-margin > .flex-gt-sm, .layout-margin > .flex-md, -.layout-margin > .flex-lt-lg, -.md-css-only [layout-margin], -.md-css-only [layout-margin] > .md-css-only [flex], -.md-css-only [layout-margin] > .md-css-only [flex-gt-sm], -.md-css-only [layout-margin] > .md-css-only [flex-md], -.md-css-only [layout-margin] > .md-css-only [flex-lt-lg] { +.layout-margin > .flex-lt-lg { margin: 8px; } .layout-margin > .flex-gt-md, -.layout-margin > .flex-lg, -.md-css-only [layout-margin] > .md-css-only [flex-gt-md], -.md-css-only [layout-margin] > .md-css-only [flex-lg] { +.layout-margin > .flex-lg { margin: 16px; } -.layout-wrap, .md-css-only [layout-wrap] { +.layout-wrap { -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; } -.layout-fill, .md-css-only [layout-fill] { +.layout-nowrap { + -webkit-flex-wrap: nowrap; + -ms-flex-wrap: nowrap; + flex-wrap: nowrap; } + +.layout-fill { margin: 0; width: 100%; min-height: 100%; @@ -1001,379 +1306,181 @@ html * { @media (max-width: 599px) { .hide-sm:not(.show-sm):not(.show), .hide:not(.show-sm):not(.show) { display: none; } - .md-css-only [hide-sm]:not([show-sm]):not([show]), .md-css-only [hide]:not([show-sm]):not([show]) { - display: none; } - .layout-sm, .md-css-only [layout-sm] { - box-sizing: border-box; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } - .layout-sm-column, - .md-css-only [layout-sm=column] { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - .layout-sm-row, - .md-css-only [layout-sm=row] { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .flex-sm, .md-css-only [flex-sm] { - box-sizing: border-box; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; } - .flex-sm-5, - .md-css-only [flex-sm="5"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; } - .layout-sm-row > .flex-sm-5, - .md-css-only [layout="row"] > .md-css-only [flex-sm="5"] { - max-width: 5%; - max-height: 100%; } - .layout-sm-column > .flex-sm-5, - .md-css-only [layout="column"] > .md-css-only [flex-sm="5"] { - max-height: 5%; - max-width: 100%; } - .flex-sm-10, - .md-css-only [flex-sm="10"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; } - .layout-sm-row > .flex-sm-10, - .md-css-only [layout="row"] > .md-css-only [flex-sm="10"] { - max-width: 10%; - max-height: 100%; } - .layout-sm-column > .flex-sm-10, - .md-css-only [layout="column"] > .md-css-only [flex-sm="10"] { - max-height: 10%; - max-width: 100%; } - .flex-sm-15, - .md-css-only [flex-sm="15"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; } - .layout-sm-row > .flex-sm-15, - .md-css-only [layout="row"] > .md-css-only [flex-sm="15"] { - max-width: 15%; - max-height: 100%; } - .layout-sm-column > .flex-sm-15, - .md-css-only [layout="column"] > .md-css-only [flex-sm="15"] { - max-height: 15%; - max-width: 100%; } - .flex-sm-20, - .md-css-only [flex-sm="20"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; } - .layout-sm-row > .flex-sm-20, - .md-css-only [layout="row"] > .md-css-only [flex-sm="20"] { - max-width: 20%; - max-height: 100%; } - .layout-sm-column > .flex-sm-20, - .md-css-only [layout="column"] > .md-css-only [flex-sm="20"] { - max-height: 20%; - max-width: 100%; } - .flex-sm-25, - .md-css-only [flex-sm="25"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; } - .layout-sm-row > .flex-sm-25, - .md-css-only [layout="row"] > .md-css-only [flex-sm="25"] { - max-width: 25%; - max-height: 100%; } - .layout-sm-column > .flex-sm-25, - .md-css-only [layout="column"] > .md-css-only [flex-sm="25"] { - max-height: 25%; - max-width: 100%; } - .flex-sm-30, - .md-css-only [flex-sm="30"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; } - .layout-sm-row > .flex-sm-30, - .md-css-only [layout="row"] > .md-css-only [flex-sm="30"] { - max-width: 30%; - max-height: 100%; } - .layout-sm-column > .flex-sm-30, - .md-css-only [layout="column"] > .md-css-only [flex-sm="30"] { - max-height: 30%; - max-width: 100%; } - .flex-sm-35, - .md-css-only [flex-sm="35"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; } - .layout-sm-row > .flex-sm-35, - .md-css-only [layout="row"] > .md-css-only [flex-sm="35"] { - max-width: 35%; - max-height: 100%; } - .layout-sm-column > .flex-sm-35, - .md-css-only [layout="column"] > .md-css-only [flex-sm="35"] { - max-height: 35%; - max-width: 100%; } - .flex-sm-40, - .md-css-only [flex-sm="40"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; } - .layout-sm-row > .flex-sm-40, - .md-css-only [layout="row"] > .md-css-only [flex-sm="40"] { - max-width: 40%; - max-height: 100%; } - .layout-sm-column > .flex-sm-40, - .md-css-only [layout="column"] > .md-css-only [flex-sm="40"] { - max-height: 40%; - max-width: 100%; } - .flex-sm-45, - .md-css-only [flex-sm="45"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; } - .layout-sm-row > .flex-sm-45, - .md-css-only [layout="row"] > .md-css-only [flex-sm="45"] { - max-width: 45%; - max-height: 100%; } - .layout-sm-column > .flex-sm-45, - .md-css-only [layout="column"] > .md-css-only [flex-sm="45"] { - max-height: 45%; - max-width: 100%; } - .flex-sm-50, - .md-css-only [flex-sm="50"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; } - .layout-sm-row > .flex-sm-50, - .md-css-only [layout="row"] > .md-css-only [flex-sm="50"] { - max-width: 50%; - max-height: 100%; } - .layout-sm-column > .flex-sm-50, - .md-css-only [layout="column"] > .md-css-only [flex-sm="50"] { - max-height: 50%; - max-width: 100%; } - .flex-sm-55, - .md-css-only [flex-sm="55"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; } - .layout-sm-row > .flex-sm-55, - .md-css-only [layout="row"] > .md-css-only [flex-sm="55"] { - max-width: 55%; - max-height: 100%; } - .layout-sm-column > .flex-sm-55, - .md-css-only [layout="column"] > .md-css-only [flex-sm="55"] { - max-height: 55%; - max-width: 100%; } - .flex-sm-60, - .md-css-only [flex-sm="60"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; } - .layout-sm-row > .flex-sm-60, - .md-css-only [layout="row"] > .md-css-only [flex-sm="60"] { - max-width: 60%; - max-height: 100%; } - .layout-sm-column > .flex-sm-60, - .md-css-only [layout="column"] > .md-css-only [flex-sm="60"] { - max-height: 60%; - max-width: 100%; } - .flex-sm-65, - .md-css-only [flex-sm="65"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; } - .layout-sm-row > .flex-sm-65, - .md-css-only [layout="row"] > .md-css-only [flex-sm="65"] { - max-width: 65%; - max-height: 100%; } - .layout-sm-column > .flex-sm-65, - .md-css-only [layout="column"] > .md-css-only [flex-sm="65"] { - max-height: 65%; - max-width: 100%; } - .flex-sm-70, - .md-css-only [flex-sm="70"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; } - .layout-sm-row > .flex-sm-70, - .md-css-only [layout="row"] > .md-css-only [flex-sm="70"] { - max-width: 70%; - max-height: 100%; } - .layout-sm-column > .flex-sm-70, - .md-css-only [layout="column"] > .md-css-only [flex-sm="70"] { - max-height: 70%; - max-width: 100%; } - .flex-sm-75, - .md-css-only [flex-sm="75"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; } - .layout-sm-row > .flex-sm-75, - .md-css-only [layout="row"] > .md-css-only [flex-sm="75"] { - max-width: 75%; - max-height: 100%; } - .layout-sm-column > .flex-sm-75, - .md-css-only [layout="column"] > .md-css-only [flex-sm="75"] { - max-height: 75%; - max-width: 100%; } - .flex-sm-80, - .md-css-only [flex-sm="80"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; } - .layout-sm-row > .flex-sm-80, - .md-css-only [layout="row"] > .md-css-only [flex-sm="80"] { - max-width: 80%; - max-height: 100%; } - .layout-sm-column > .flex-sm-80, - .md-css-only [layout="column"] > .md-css-only [flex-sm="80"] { - max-height: 80%; - max-width: 100%; } - .flex-sm-85, - .md-css-only [flex-sm="85"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; } - .layout-sm-row > .flex-sm-85, - .md-css-only [layout="row"] > .md-css-only [flex-sm="85"] { - max-width: 85%; - max-height: 100%; } - .layout-sm-column > .flex-sm-85, - .md-css-only [layout="column"] > .md-css-only [flex-sm="85"] { - max-height: 85%; - max-width: 100%; } - .flex-sm-90, - .md-css-only [flex-sm="90"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; } - .layout-sm-row > .flex-sm-90, - .md-css-only [layout="row"] > .md-css-only [flex-sm="90"] { - max-width: 90%; - max-height: 100%; } - .layout-sm-column > .flex-sm-90, - .md-css-only [layout="column"] > .md-css-only [flex-sm="90"] { - max-height: 90%; - max-width: 100%; } - .flex-sm-95, - .md-css-only [flex-sm="95"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; } - .layout-sm-row > .flex-sm-95, - .md-css-only [layout="row"] > .md-css-only [flex-sm="95"] { - max-width: 95%; - max-height: 100%; } - .layout-sm-column > .flex-sm-95, - .md-css-only [layout="column"] > .md-css-only [flex-sm="95"] { - max-height: 95%; - max-width: 100%; } - .flex-sm-100, - .md-css-only [flex-sm="100"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; } - .layout-sm-row > .flex-sm-100, - .md-css-only [layout="row"] > .md-css-only [flex-sm="100"] { - max-width: 100%; - max-height: 100%; } - .layout-sm-column > .flex-sm-100, - .md-css-only [layout="column"] > .md-css-only [flex-sm="100"] { - max-height: 100%; - max-width: 100%; } - .flex-sm-33, .flex-sm-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; } - .flex-sm-66, .flex-sm-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; - max-height: 100%; } - .layout-sm-row > .flex-sm-33, .layout-sm-row > .flex-sm-34, .md-css-only [layout="row"] > .flex-sm-33, .md-css-only [layout="row"] > .flex-sm-34 { - max-width: 33%; - max-height: 100%; } - .layout-sm-row > .flex-sm-66, .layout-sm-row > .flex-sm-67, .md-css-only [layout="row"] > .flex-sm-66, .md-css-only [layout="row"] > .flex-sm-67 { - max-width: 67%; - max-height: 100%; } - .layout-sm-column > .flex-sm-33, .layout-sm-column > .flex-sm-34, .md-css-only [layout="column"] > .flex-sm-33, .md-css-only [layout="column"] > .flex-sm-34 { - max-height: 33%; - max-width: 100%; } - .layout-sm-column > .flex-sm-66, .layout-sm-column > .flex-sm-67, .md-css-only [layout="column"] > .flex-sm-66, .md-css-only [layout="column"] > .flex-sm-67 { - max-height: 67%; - max-width: 100%; } - .layout-align-sm-center, .layout-align-sm-center-center, + .flex-order-sm-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + .flex-order-sm-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .flex-order-sm-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .flex-order-sm-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .flex-order-sm-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .flex-order-sm-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .flex-order-sm-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .flex-order-sm-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .flex-order-sm-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .flex-order-sm-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .flex-order-sm-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .flex-order-sm-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .flex-order-sm-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + .flex-order-sm-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + .flex-order-sm-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + .flex-order-sm-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + .flex-order-sm-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + .flex-order-sm-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + .flex-order-sm-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + .flex-order-sm-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + .offset-sm-0, .flex-offset-sm-0 { + margin-left: 0%; } + .offset-sm-5, .flex-offset-sm-5 { + margin-left: 5%; } + .offset-sm-10, .flex-offset-sm-10 { + margin-left: 10%; } + .offset-sm-15, .flex-offset-sm-15 { + margin-left: 15%; } + .offset-sm-20, .flex-offset-sm-20 { + margin-left: 20%; } + .offset-sm-25, .flex-offset-sm-25 { + margin-left: 25%; } + .offset-sm-30, .flex-offset-sm-30 { + margin-left: 30%; } + .offset-sm-35, .flex-offset-sm-35 { + margin-left: 35%; } + .offset-sm-40, .flex-offset-sm-40 { + margin-left: 40%; } + .offset-sm-45, .flex-offset-sm-45 { + margin-left: 45%; } + .offset-sm-50, .flex-offset-sm-50 { + margin-left: 50%; } + .offset-sm-55, .flex-offset-sm-55 { + margin-left: 55%; } + .offset-sm-60, .flex-offset-sm-60 { + margin-left: 60%; } + .offset-sm-65, .flex-offset-sm-65 { + margin-left: 65%; } + .offset-sm-70, .flex-offset-sm-70 { + margin-left: 70%; } + .offset-sm-75, .flex-offset-sm-75 { + margin-left: 75%; } + .offset-sm-80, .flex-offset-sm-80 { + margin-left: 80%; } + .offset-sm-85, .flex-offset-sm-85 { + margin-left: 85%; } + .offset-sm-90, .flex-offset-sm-90 { + margin-left: 90%; } + .offset-sm-95, .flex-offset-sm-95 { + margin-left: 95%; } + .offset-sm-33, .flex-offset-sm-33 { + margin-left: 33%; } + .offset-sm-34, .flex-offset-sm-34 { + margin-left: 34%; } + .offset-sm-66, .flex-offset-sm-66 { + margin-left: 66%; } + .offset-sm-67, .flex-offset-sm-67 { + margin-left: 67%; } + .layout-align-sm-center, + .layout-align-sm-center-center, .layout-align-sm-center-start, - .layout-align-sm-center-end, - .md-css-only [layout-align-sm="center"], - .md-css-only [layout-align-sm="center center"], - .md-css-only [layout-align-sm="center start"], - .md-css-only [layout-align-sm="center end"] { + .layout-align-sm-center-end { -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } - .layout-align-sm-end, .layout-align-sm-end-center, + .layout-align-sm-end, + .layout-align-sm-end-center, .layout-align-sm-end-start, - .layout-align-sm-end-end, - .md-css-only [layout-align-sm="end"], .md-css-only [layout-align-sm="end center"], - .md-css-only [layout-align-sm="end start"], - .md-css-only [layout-align-sm="end end"] { + .layout-align-sm-end-end { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; justify-content: flex-end; } - .layout-align-sm-space-around, .layout-align-sm-space-around-center, + .layout-align-sm-space-around, + .layout-align-sm-space-around-center, .layout-align-sm-space-around-start, - .layout-align-sm-space-around-end, - .md-css-only [layout-align-sm="space-around"], .md-css-only [layout-align-sm="space-around center"], - .md-css-only [layout-align-sm="space-around start"], - .md-css-only [layout-align-sm="space-around end"] { + .layout-align-sm-space-around-end { -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; } - .layout-align-sm-space-between, .layout-align-sm-space-between-center, + .layout-align-sm-space-between, + .layout-align-sm-space-between-center, .layout-align-sm-space-between-start, - .layout-align-sm-space-between-end, - .md-css-only [layout-align-sm="space-between"], .md-css-only [layout-align-sm="space-between center"], - .md-css-only [layout-align-sm="space-between start"], - .md-css-only [layout-align-sm="space-between end"] { + .layout-align-sm-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; @@ -1382,12 +1489,7 @@ html * { .layout-align-sm-start-start, .layout-align-sm-end-start, .layout-align-sm-space-between-start, - .layout-align-sm-space-around-start, - .md-css-only [layout-align-sm="center start"], - .md-css-only [layout-align-sm="start start"], - .md-css-only [layout-align-sm="end start"], - .md-css-only [layout-align-sm="space-between start"], - .md-css-only [layout-align-sm="space-around start"] { + .layout-align-sm-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; @@ -1396,562 +1498,863 @@ html * { .layout-align-sm-start-center, .layout-align-sm-end-center, .layout-align-sm-space-between-center, - .layout-align-sm-space-around-center, - .md-css-only [layout-align-sm="center center"], - .md-css-only [layout-align-sm="start center"], - .md-css-only [layout-align-sm="end center"], - .md-css-only [layout-align-sm="space-between center"], - .md-css-only [layout-align-sm="space-around center"] { + .layout-align-sm-space-around-center { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; max-width: 100%; } + .layout-align-sm-center-center > *, + .layout-align-sm-start-center > *, + .layout-align-sm-end-center > *, + .layout-align-sm-space-between-center > *, + .layout-align-sm-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } .layout-align-sm-center-end, .layout-align-sm-start-end, .layout-align-sm-end-end, .layout-align-sm-space-between-end, - .layout-align-sm-space-around-end, - .md-css-only [layout-align-sm="center end"], - .md-css-only [layout-align-sm="start end"], - .md-css-only [layout-align-sm="end end"], - .md-css-only [layout-align-sm="space-between end"], - .md-css-only [layout-align-sm="space-around end"] { + .layout-align-sm-space-around-end { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - .offset-sm-5, - .md-css-only [offset-sm="5"] { - margin-left: 5%; } - .offset-sm-10, - .md-css-only [offset-sm="10"] { - margin-left: 10%; } - .offset-sm-15, - .md-css-only [offset-sm="15"] { - margin-left: 15%; } - .offset-sm-20, - .md-css-only [offset-sm="20"] { - margin-left: 20%; } - .offset-sm-25, - .md-css-only [offset-sm="25"] { - margin-left: 25%; } - .offset-sm-30, - .md-css-only [offset-sm="30"] { - margin-left: 30%; } - .offset-sm-35, - .md-css-only [offset-sm="35"] { - margin-left: 35%; } - .offset-sm-40, - .md-css-only [offset-sm="40"] { - margin-left: 40%; } - .offset-sm-45, - .md-css-only [offset-sm="45"] { - margin-left: 45%; } - .offset-sm-50, - .md-css-only [offset-sm="50"] { - margin-left: 50%; } - .offset-sm-55, - .md-css-only [offset-sm="55"] { - margin-left: 55%; } - .offset-sm-60, - .md-css-only [offset-sm="60"] { - margin-left: 60%; } - .offset-sm-65, - .md-css-only [offset-sm="65"] { - margin-left: 65%; } - .offset-sm-70, - .md-css-only [offset-sm="70"] { - margin-left: 70%; } - .offset-sm-75, - .md-css-only [offset-sm="75"] { - margin-left: 75%; } - .offset-sm-80, - .md-css-only [offset-sm="80"] { - margin-left: 80%; } - .offset-sm-85, - .md-css-only [offset-sm="85"] { - margin-left: 85%; } - .offset-sm-90, - .md-css-only [offset-sm="90"] { - margin-left: 90%; } - .offset-sm-95, - .md-css-only [offset-sm="95"] { - margin-left: 95%; } - .offset-sm-33, .offset-sm-34, - .md-css-only [offset-sm="33"], .md-css-only [offset-sm="34"] { - margin-left: 34%; } - .offset-sm-66, .offset-sm-67, - .md-css-only [offset-sm="66"], .md-css-only [offset-sm="67"] { - margin-left: 66%; } - .flex-order-sm--9, .md-css-only .flex-order-sm--9 { - -webkit-box-ordinal-group: -8; - -webkit-order: -9; - -ms-flex-order: -9; - order: -9; } - .flex-order-sm--8, .md-css-only .flex-order-sm--8 { - -webkit-box-ordinal-group: -7; - -webkit-order: -8; - -ms-flex-order: -8; - order: -8; } - .flex-order-sm--7, .md-css-only .flex-order-sm--7 { - -webkit-box-ordinal-group: -6; - -webkit-order: -7; - -ms-flex-order: -7; - order: -7; } - .flex-order-sm--6, .md-css-only .flex-order-sm--6 { - -webkit-box-ordinal-group: -5; - -webkit-order: -6; - -ms-flex-order: -6; - order: -6; } - .flex-order-sm--5, .md-css-only .flex-order-sm--5 { - -webkit-box-ordinal-group: -4; - -webkit-order: -5; - -ms-flex-order: -5; - order: -5; } - .flex-order-sm--4, .md-css-only .flex-order-sm--4 { - -webkit-box-ordinal-group: -3; - -webkit-order: -4; - -ms-flex-order: -4; - order: -4; } - .flex-order-sm--3, .md-css-only .flex-order-sm--3 { - -webkit-box-ordinal-group: -2; - -webkit-order: -3; - -ms-flex-order: -3; - order: -3; } - .flex-order-sm--2, .md-css-only .flex-order-sm--2 { - -webkit-box-ordinal-group: -1; - -webkit-order: -2; - -ms-flex-order: -2; - order: -2; } - .flex-order-sm--1, .md-css-only .flex-order-sm--1 { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; } - .flex-order-sm-0, .md-css-only .flex-order-sm-0 { - -webkit-box-ordinal-group: 1; - -webkit-order: 0; - -ms-flex-order: 0; - order: 0; } - .flex-order-sm-1, .md-css-only .flex-order-sm-1 { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; } - .flex-order-sm-2, .md-css-only .flex-order-sm-2 { - -webkit-box-ordinal-group: 3; - -webkit-order: 2; - -ms-flex-order: 2; - order: 2; } - .flex-order-sm-3, .md-css-only .flex-order-sm-3 { - -webkit-box-ordinal-group: 4; - -webkit-order: 3; - -ms-flex-order: 3; - order: 3; } - .flex-order-sm-4, .md-css-only .flex-order-sm-4 { - -webkit-box-ordinal-group: 5; - -webkit-order: 4; - -ms-flex-order: 4; - order: 4; } - .flex-order-sm-5, .md-css-only .flex-order-sm-5 { - -webkit-box-ordinal-group: 6; - -webkit-order: 5; - -ms-flex-order: 5; - order: 5; } - .flex-order-sm-6, .md-css-only .flex-order-sm-6 { - -webkit-box-ordinal-group: 7; - -webkit-order: 6; - -ms-flex-order: 6; - order: 6; } - .flex-order-sm-7, .md-css-only .flex-order-sm-7 { - -webkit-box-ordinal-group: 8; - -webkit-order: 7; - -ms-flex-order: 7; - order: 7; } - .flex-order-sm-8, .md-css-only .flex-order-sm-8 { - -webkit-box-ordinal-group: 9; - -webkit-order: 8; - -ms-flex-order: 8; - order: 8; } - .flex-order-sm-9, .md-css-only .flex-order-sm-9 { - -webkit-box-ordinal-group: 10; - -webkit-order: 9; - -ms-flex-order: 9; - order: 9; } } - -@media (min-width: 600px) { - .layout-gt-sm, .md-css-only [layout-gt-sm] { - box-sizing: border-box; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } - .layout-gt-sm-column, - .md-css-only [layout-gt-sm=column] { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - .layout-gt-sm-row, - .md-css-only [layout-gt-sm=row] { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .flex-gt-sm, .md-css-only [flex-gt-sm] { - box-sizing: border-box; + .flex-sm { -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; - flex: 1; } - .flex-gt-sm-5, - .md-css-only [flex-gt-sm="5"] { + flex: 1; + box-sizing: border-box; } + .flex-sm-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } + .flex-sm-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } + .flex-sm-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } + .flex-sm-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } + .flex-sm-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-0, + .layout-sm-row > .flex-sm-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-0, + .layout-sm-column > .flex-sm-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } + .flex-sm-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; - flex: 0 0 5%; } - .layout-gt-sm-row > .flex-gt-sm-5, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="5"] { + flex: 0 0 5%; max-width: 5%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-5, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="5"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-5, + .layout-sm-row > .flex-sm-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-5, + .layout-sm-column > .flex-sm-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 100%; max-height: 5%; - max-width: 100%; } - .flex-gt-sm-10, - .md-css-only [flex-gt-sm="10"] { + box-sizing: border-box; } + .flex-sm-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; - flex: 0 0 10%; } - .layout-gt-sm-row > .flex-gt-sm-10, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="10"] { + flex: 0 0 10%; max-width: 10%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-10, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="10"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-10, + .layout-sm-row > .flex-sm-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-10, + .layout-sm-column > .flex-sm-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 100%; max-height: 10%; - max-width: 100%; } - .flex-gt-sm-15, - .md-css-only [flex-gt-sm="15"] { + box-sizing: border-box; } + .flex-sm-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; - flex: 0 0 15%; } - .layout-gt-sm-row > .flex-gt-sm-15, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="15"] { + flex: 0 0 15%; max-width: 15%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-15, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="15"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-15, + .layout-sm-row > .flex-sm-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-15, + .layout-sm-column > .flex-sm-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 100%; max-height: 15%; - max-width: 100%; } - .flex-gt-sm-20, - .md-css-only [flex-gt-sm="20"] { + box-sizing: border-box; } + .flex-sm-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; - flex: 0 0 20%; } - .layout-gt-sm-row > .flex-gt-sm-20, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="20"] { + flex: 0 0 20%; max-width: 20%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-20, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="20"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-20, + .layout-sm-row > .flex-sm-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-20, + .layout-sm-column > .flex-sm-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 100%; max-height: 20%; - max-width: 100%; } - .flex-gt-sm-25, - .md-css-only [flex-gt-sm="25"] { + box-sizing: border-box; } + .flex-sm-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; - flex: 0 0 25%; } - .layout-gt-sm-row > .flex-gt-sm-25, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="25"] { + flex: 0 0 25%; max-width: 25%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-25, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="25"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-25, + .layout-sm-row > .flex-sm-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-25, + .layout-sm-column > .flex-sm-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 100%; max-height: 25%; - max-width: 100%; } - .flex-gt-sm-30, - .md-css-only [flex-gt-sm="30"] { + box-sizing: border-box; } + .flex-sm-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; - flex: 0 0 30%; } - .layout-gt-sm-row > .flex-gt-sm-30, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="30"] { + flex: 0 0 30%; max-width: 30%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-30, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="30"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-30, + .layout-sm-row > .flex-sm-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-30, + .layout-sm-column > .flex-sm-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 100%; max-height: 30%; - max-width: 100%; } - .flex-gt-sm-35, - .md-css-only [flex-gt-sm="35"] { + box-sizing: border-box; } + .flex-sm-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; - flex: 0 0 35%; } - .layout-gt-sm-row > .flex-gt-sm-35, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="35"] { + flex: 0 0 35%; max-width: 35%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-35, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="35"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-35, + .layout-sm-row > .flex-sm-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-35, + .layout-sm-column > .flex-sm-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 100%; max-height: 35%; - max-width: 100%; } - .flex-gt-sm-40, - .md-css-only [flex-gt-sm="40"] { + box-sizing: border-box; } + .flex-sm-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; - flex: 0 0 40%; } - .layout-gt-sm-row > .flex-gt-sm-40, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="40"] { + flex: 0 0 40%; max-width: 40%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-40, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="40"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-40, + .layout-sm-row > .flex-sm-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-40, + .layout-sm-column > .flex-sm-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 100%; max-height: 40%; - max-width: 100%; } - .flex-gt-sm-45, - .md-css-only [flex-gt-sm="45"] { + box-sizing: border-box; } + .flex-sm-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; - flex: 0 0 45%; } - .layout-gt-sm-row > .flex-gt-sm-45, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="45"] { + flex: 0 0 45%; max-width: 45%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-45, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="45"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-45, + .layout-sm-row > .flex-sm-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-45, + .layout-sm-column > .flex-sm-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 100%; max-height: 45%; - max-width: 100%; } - .flex-gt-sm-50, - .md-css-only [flex-gt-sm="50"] { + box-sizing: border-box; } + .flex-sm-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; - flex: 0 0 50%; } - .layout-gt-sm-row > .flex-gt-sm-50, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="50"] { + flex: 0 0 50%; max-width: 50%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-50, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="50"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-50, + .layout-sm-row > .flex-sm-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-50, + .layout-sm-column > .flex-sm-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 100%; max-height: 50%; - max-width: 100%; } - .flex-gt-sm-55, - .md-css-only [flex-gt-sm="55"] { + box-sizing: border-box; } + .flex-sm-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; - flex: 0 0 55%; } - .layout-gt-sm-row > .flex-gt-sm-55, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="55"] { + flex: 0 0 55%; max-width: 55%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-55, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="55"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-55, + .layout-sm-row > .flex-sm-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-55, + .layout-sm-column > .flex-sm-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 100%; max-height: 55%; - max-width: 100%; } - .flex-gt-sm-60, - .md-css-only [flex-gt-sm="60"] { + box-sizing: border-box; } + .flex-sm-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; - flex: 0 0 60%; } - .layout-gt-sm-row > .flex-gt-sm-60, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="60"] { + flex: 0 0 60%; max-width: 60%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-60, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="60"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-60, + .layout-sm-row > .flex-sm-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-60, + .layout-sm-column > .flex-sm-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 100%; max-height: 60%; - max-width: 100%; } - .flex-gt-sm-65, - .md-css-only [flex-gt-sm="65"] { + box-sizing: border-box; } + .flex-sm-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; - flex: 0 0 65%; } - .layout-gt-sm-row > .flex-gt-sm-65, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="65"] { + flex: 0 0 65%; max-width: 65%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-65, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="65"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-65, + .layout-sm-row > .flex-sm-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-65, + .layout-sm-column > .flex-sm-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 100%; max-height: 65%; - max-width: 100%; } - .flex-gt-sm-70, - .md-css-only [flex-gt-sm="70"] { + box-sizing: border-box; } + .flex-sm-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; - flex: 0 0 70%; } - .layout-gt-sm-row > .flex-gt-sm-70, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="70"] { + flex: 0 0 70%; max-width: 70%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-70, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="70"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-70, + .layout-sm-row > .flex-sm-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-70, + .layout-sm-column > .flex-sm-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 100%; max-height: 70%; - max-width: 100%; } - .flex-gt-sm-75, - .md-css-only [flex-gt-sm="75"] { + box-sizing: border-box; } + .flex-sm-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; - flex: 0 0 75%; } - .layout-gt-sm-row > .flex-gt-sm-75, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="75"] { + flex: 0 0 75%; max-width: 75%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-75, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="75"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-75, + .layout-sm-row > .flex-sm-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-75, + .layout-sm-column > .flex-sm-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 100%; max-height: 75%; - max-width: 100%; } - .flex-gt-sm-80, - .md-css-only [flex-gt-sm="80"] { + box-sizing: border-box; } + .flex-sm-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; - flex: 0 0 80%; } - .layout-gt-sm-row > .flex-gt-sm-80, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="80"] { + flex: 0 0 80%; max-width: 80%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-80, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="80"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-80, + .layout-sm-row > .flex-sm-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-80, + .layout-sm-column > .flex-sm-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 100%; max-height: 80%; - max-width: 100%; } - .flex-gt-sm-85, - .md-css-only [flex-gt-sm="85"] { + box-sizing: border-box; } + .flex-sm-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; - flex: 0 0 85%; } - .layout-gt-sm-row > .flex-gt-sm-85, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="85"] { + flex: 0 0 85%; max-width: 85%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-85, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="85"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-85, + .layout-sm-row > .flex-sm-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-85, + .layout-sm-column > .flex-sm-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 100%; max-height: 85%; - max-width: 100%; } - .flex-gt-sm-90, - .md-css-only [flex-gt-sm="90"] { + box-sizing: border-box; } + .flex-sm-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; - flex: 0 0 90%; } - .layout-gt-sm-row > .flex-gt-sm-90, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="90"] { + flex: 0 0 90%; max-width: 90%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-90, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="90"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-90, + .layout-sm-row > .flex-sm-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-90, + .layout-sm-column > .flex-sm-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 100%; max-height: 90%; - max-width: 100%; } - .flex-gt-sm-95, - .md-css-only [flex-gt-sm="95"] { + box-sizing: border-box; } + .flex-sm-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; - flex: 0 0 95%; } - .layout-gt-sm-row > .flex-gt-sm-95, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="95"] { + flex: 0 0 95%; max-width: 95%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-95, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="95"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-95, + .layout-sm-row > .flex-sm-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-95, + .layout-sm-column > .flex-sm-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 100%; max-height: 95%; - max-width: 100%; } - .flex-gt-sm-100, - .md-css-only [flex-gt-sm="100"] { + box-sizing: border-box; } + .flex-sm-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; - flex: 0 0 100%; } - .layout-gt-sm-row > .flex-gt-sm-100, - .md-css-only [layout="row"] > .md-css-only [flex-gt-sm="100"] { + flex: 0 0 100%; max-width: 100%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-100, - .md-css-only [layout="column"] > .md-css-only [flex-gt-sm="100"] { max-height: 100%; - max-width: 100%; } - .flex-gt-sm-33, .flex-gt-sm-34 { + box-sizing: border-box; } + .layout-row > .flex-sm-100, + .layout-sm-row > .flex-sm-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-100, + .layout-sm-column > .flex-sm-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-33, .layout-row > .flex-sm-33, .layout-sm-row > .flex-sm-33, .layout-sm-row > .flex-sm-33 { -webkit-box-flex: 0; -webkit-flex: 0 0 33%; -ms-flex: 0 0 33%; flex: 0 0 33%; max-width: 33%; - max-height: 100%; } - .flex-gt-sm-66, .flex-gt-sm-67 { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-34, .layout-row > .flex-sm-34, .layout-sm-row > .flex-sm-34, .layout-sm-row > .flex-sm-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 34%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-66, .layout-row > .flex-sm-66, .layout-sm-row > .flex-sm-66, .layout-sm-row > .flex-sm-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 66%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-sm-67, .layout-row > .flex-sm-67, .layout-sm-row > .flex-sm-67, .layout-sm-row > .flex-sm-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 67%; -ms-flex: 0 0 67%; flex: 0 0 67%; max-width: 67%; - max-height: 100%; } - .layout-gt-sm-row > .flex-gt-sm-33, .layout-gt-sm-row > .flex-gt-sm-34, .md-css-only [layout="row"] > .flex-gt-sm-33, .md-css-only [layout="row"] > .flex-gt-sm-34 { - max-width: 33%; - max-height: 100%; } - .layout-gt-sm-row > .flex-gt-sm-66, .layout-gt-sm-row > .flex-gt-sm-67, .md-css-only [layout="row"] > .flex-gt-sm-66, .md-css-only [layout="row"] > .flex-gt-sm-67 { - max-width: 67%; - max-height: 100%; } - .layout-gt-sm-column > .flex-gt-sm-33, .layout-gt-sm-column > .flex-gt-sm-34, .md-css-only [layout="column"] > .flex-gt-sm-33, .md-css-only [layout="column"] > .flex-gt-sm-34 { + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-sm-33, .layout-column > .flex-sm-33, .layout-sm-column > .flex-sm-33, .layout-sm-column > .flex-sm-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 100%; max-height: 33%; - max-width: 100%; } - .layout-gt-sm-column > .flex-gt-sm-66, .layout-gt-sm-column > .flex-gt-sm-67, .md-css-only [layout="column"] > .flex-gt-sm-66, .md-css-only [layout="column"] > .flex-gt-sm-67 { + box-sizing: border-box; } + .layout-column > .flex-sm-34, .layout-column > .flex-sm-34, .layout-sm-column > .flex-sm-34, .layout-sm-column > .flex-sm-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 100%; + max-height: 34%; + box-sizing: border-box; } + .layout-column > .flex-sm-66, .layout-column > .flex-sm-66, .layout-sm-column > .flex-sm-66, .layout-sm-column > .flex-sm-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 100%; + max-height: 66%; + box-sizing: border-box; } + .layout-column > .flex-sm-67, .layout-column > .flex-sm-67, .layout-sm-column > .flex-sm-67, .layout-sm-column > .flex-sm-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 100%; max-height: 67%; - max-width: 100%; } - .layout-align-gt-sm-center, .layout-align-gt-sm-center-center, + box-sizing: border-box; } + .layout-sm, .layout-sm-column, .layout-sm-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .layout-sm-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .layout-sm-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } } + +@media (min-width: 600px) { + .flex-order-gt-sm-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + .flex-order-gt-sm-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .flex-order-gt-sm-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .flex-order-gt-sm-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .flex-order-gt-sm-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .flex-order-gt-sm-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .flex-order-gt-sm-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .flex-order-gt-sm-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .flex-order-gt-sm-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .flex-order-gt-sm-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .flex-order-gt-sm-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .flex-order-gt-sm-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .flex-order-gt-sm-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + .flex-order-gt-sm-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + .flex-order-gt-sm-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + .flex-order-gt-sm-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + .flex-order-gt-sm-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + .flex-order-gt-sm-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + .flex-order-gt-sm-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + .flex-order-gt-sm-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + .offset-gt-sm-0, .flex-offset-gt-sm-0 { + margin-left: 0%; } + .offset-gt-sm-5, .flex-offset-gt-sm-5 { + margin-left: 5%; } + .offset-gt-sm-10, .flex-offset-gt-sm-10 { + margin-left: 10%; } + .offset-gt-sm-15, .flex-offset-gt-sm-15 { + margin-left: 15%; } + .offset-gt-sm-20, .flex-offset-gt-sm-20 { + margin-left: 20%; } + .offset-gt-sm-25, .flex-offset-gt-sm-25 { + margin-left: 25%; } + .offset-gt-sm-30, .flex-offset-gt-sm-30 { + margin-left: 30%; } + .offset-gt-sm-35, .flex-offset-gt-sm-35 { + margin-left: 35%; } + .offset-gt-sm-40, .flex-offset-gt-sm-40 { + margin-left: 40%; } + .offset-gt-sm-45, .flex-offset-gt-sm-45 { + margin-left: 45%; } + .offset-gt-sm-50, .flex-offset-gt-sm-50 { + margin-left: 50%; } + .offset-gt-sm-55, .flex-offset-gt-sm-55 { + margin-left: 55%; } + .offset-gt-sm-60, .flex-offset-gt-sm-60 { + margin-left: 60%; } + .offset-gt-sm-65, .flex-offset-gt-sm-65 { + margin-left: 65%; } + .offset-gt-sm-70, .flex-offset-gt-sm-70 { + margin-left: 70%; } + .offset-gt-sm-75, .flex-offset-gt-sm-75 { + margin-left: 75%; } + .offset-gt-sm-80, .flex-offset-gt-sm-80 { + margin-left: 80%; } + .offset-gt-sm-85, .flex-offset-gt-sm-85 { + margin-left: 85%; } + .offset-gt-sm-90, .flex-offset-gt-sm-90 { + margin-left: 90%; } + .offset-gt-sm-95, .flex-offset-gt-sm-95 { + margin-left: 95%; } + .offset-gt-sm-33, .flex-offset-gt-sm-33 { + margin-left: 33%; } + .offset-gt-sm-34, .flex-offset-gt-sm-34 { + margin-left: 34%; } + .offset-gt-sm-66, .flex-offset-gt-sm-66 { + margin-left: 66%; } + .offset-gt-sm-67, .flex-offset-gt-sm-67 { + margin-left: 67%; } + .layout-align-gt-sm-center, + .layout-align-gt-sm-center-center, .layout-align-gt-sm-center-start, - .layout-align-gt-sm-center-end, - .md-css-only [layout-align-gt-sm="center"], - .md-css-only [layout-align-gt-sm="center center"], - .md-css-only [layout-align-gt-sm="center start"], - .md-css-only [layout-align-gt-sm="center end"] { + .layout-align-gt-sm-center-end { -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } - .layout-align-gt-sm-end, .layout-align-gt-sm-end-center, + .layout-align-gt-sm-end, + .layout-align-gt-sm-end-center, .layout-align-gt-sm-end-start, - .layout-align-gt-sm-end-end, - .md-css-only [layout-align-gt-sm="end"], .md-css-only [layout-align-gt-sm="end center"], - .md-css-only [layout-align-gt-sm="end start"], - .md-css-only [layout-align-gt-sm="end end"] { + .layout-align-gt-sm-end-end { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; justify-content: flex-end; } - .layout-align-gt-sm-space-around, .layout-align-gt-sm-space-around-center, + .layout-align-gt-sm-space-around, + .layout-align-gt-sm-space-around-center, .layout-align-gt-sm-space-around-start, - .layout-align-gt-sm-space-around-end, - .md-css-only [layout-align-gt-sm="space-around"], .md-css-only [layout-align-gt-sm="space-around center"], - .md-css-only [layout-align-gt-sm="space-around start"], - .md-css-only [layout-align-gt-sm="space-around end"] { + .layout-align-gt-sm-space-around-end { -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; } - .layout-align-gt-sm-space-between, .layout-align-gt-sm-space-between-center, + .layout-align-gt-sm-space-between, + .layout-align-gt-sm-space-between-center, .layout-align-gt-sm-space-between-start, - .layout-align-gt-sm-space-between-end, - .md-css-only [layout-align-gt-sm="space-between"], .md-css-only [layout-align-gt-sm="space-between center"], - .md-css-only [layout-align-gt-sm="space-between start"], - .md-css-only [layout-align-gt-sm="space-between end"] { + .layout-align-gt-sm-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; @@ -1960,12 +2363,7 @@ html * { .layout-align-gt-sm-start-start, .layout-align-gt-sm-end-start, .layout-align-gt-sm-space-between-start, - .layout-align-gt-sm-space-around-start, - .md-css-only [layout-align-gt-sm="center start"], - .md-css-only [layout-align-gt-sm="start start"], - .md-css-only [layout-align-gt-sm="end start"], - .md-css-only [layout-align-gt-sm="space-between start"], - .md-css-only [layout-align-gt-sm="space-around start"] { + .layout-align-gt-sm-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; @@ -1974,570 +2372,867 @@ html * { .layout-align-gt-sm-start-center, .layout-align-gt-sm-end-center, .layout-align-gt-sm-space-between-center, - .layout-align-gt-sm-space-around-center, - .md-css-only [layout-align-gt-sm="center center"], - .md-css-only [layout-align-gt-sm="start center"], - .md-css-only [layout-align-gt-sm="end center"], - .md-css-only [layout-align-gt-sm="space-between center"], - .md-css-only [layout-align-gt-sm="space-around center"] { + .layout-align-gt-sm-space-around-center { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; max-width: 100%; } + .layout-align-gt-sm-center-center > *, + .layout-align-gt-sm-start-center > *, + .layout-align-gt-sm-end-center > *, + .layout-align-gt-sm-space-between-center > *, + .layout-align-gt-sm-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } .layout-align-gt-sm-center-end, .layout-align-gt-sm-start-end, .layout-align-gt-sm-end-end, .layout-align-gt-sm-space-between-end, - .layout-align-gt-sm-space-around-end, - .md-css-only [layout-align-gt-sm="center end"], - .md-css-only [layout-align-gt-sm="start end"], - .md-css-only [layout-align-gt-sm="end end"], - .md-css-only [layout-align-gt-sm="space-between end"], - .md-css-only [layout-align-gt-sm="space-around end"] { + .layout-align-gt-sm-space-around-end { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - .offset-gt-sm-5, - .md-css-only [offset-gt-sm="5"] { - margin-left: 5%; } - .offset-gt-sm-10, - .md-css-only [offset-gt-sm="10"] { - margin-left: 10%; } - .offset-gt-sm-15, - .md-css-only [offset-gt-sm="15"] { - margin-left: 15%; } - .offset-gt-sm-20, - .md-css-only [offset-gt-sm="20"] { - margin-left: 20%; } - .offset-gt-sm-25, - .md-css-only [offset-gt-sm="25"] { - margin-left: 25%; } - .offset-gt-sm-30, - .md-css-only [offset-gt-sm="30"] { - margin-left: 30%; } - .offset-gt-sm-35, - .md-css-only [offset-gt-sm="35"] { - margin-left: 35%; } - .offset-gt-sm-40, - .md-css-only [offset-gt-sm="40"] { - margin-left: 40%; } - .offset-gt-sm-45, - .md-css-only [offset-gt-sm="45"] { - margin-left: 45%; } - .offset-gt-sm-50, - .md-css-only [offset-gt-sm="50"] { - margin-left: 50%; } - .offset-gt-sm-55, - .md-css-only [offset-gt-sm="55"] { - margin-left: 55%; } - .offset-gt-sm-60, - .md-css-only [offset-gt-sm="60"] { - margin-left: 60%; } - .offset-gt-sm-65, - .md-css-only [offset-gt-sm="65"] { - margin-left: 65%; } - .offset-gt-sm-70, - .md-css-only [offset-gt-sm="70"] { - margin-left: 70%; } - .offset-gt-sm-75, - .md-css-only [offset-gt-sm="75"] { - margin-left: 75%; } - .offset-gt-sm-80, - .md-css-only [offset-gt-sm="80"] { - margin-left: 80%; } - .offset-gt-sm-85, - .md-css-only [offset-gt-sm="85"] { - margin-left: 85%; } - .offset-gt-sm-90, - .md-css-only [offset-gt-sm="90"] { - margin-left: 90%; } - .offset-gt-sm-95, - .md-css-only [offset-gt-sm="95"] { - margin-left: 95%; } - .offset-gt-sm-33, .offset-gt-sm-34, - .md-css-only [offset-gt-sm="33"], .md-css-only [offset-gt-sm="34"] { - margin-left: 34%; } - .offset-gt-sm-66, .offset-gt-sm-67, - .md-css-only [offset-gt-sm="66"], .md-css-only [offset-gt-sm="67"] { - margin-left: 66%; } - .flex-order-gt-sm--9, .md-css-only .flex-order-gt-sm--9 { - -webkit-box-ordinal-group: -8; - -webkit-order: -9; - -ms-flex-order: -9; - order: -9; } - .flex-order-gt-sm--8, .md-css-only .flex-order-gt-sm--8 { - -webkit-box-ordinal-group: -7; - -webkit-order: -8; - -ms-flex-order: -8; - order: -8; } - .flex-order-gt-sm--7, .md-css-only .flex-order-gt-sm--7 { - -webkit-box-ordinal-group: -6; - -webkit-order: -7; - -ms-flex-order: -7; - order: -7; } - .flex-order-gt-sm--6, .md-css-only .flex-order-gt-sm--6 { - -webkit-box-ordinal-group: -5; - -webkit-order: -6; - -ms-flex-order: -6; - order: -6; } - .flex-order-gt-sm--5, .md-css-only .flex-order-gt-sm--5 { - -webkit-box-ordinal-group: -4; - -webkit-order: -5; - -ms-flex-order: -5; - order: -5; } - .flex-order-gt-sm--4, .md-css-only .flex-order-gt-sm--4 { - -webkit-box-ordinal-group: -3; - -webkit-order: -4; - -ms-flex-order: -4; - order: -4; } - .flex-order-gt-sm--3, .md-css-only .flex-order-gt-sm--3 { - -webkit-box-ordinal-group: -2; - -webkit-order: -3; - -ms-flex-order: -3; - order: -3; } - .flex-order-gt-sm--2, .md-css-only .flex-order-gt-sm--2 { - -webkit-box-ordinal-group: -1; - -webkit-order: -2; - -ms-flex-order: -2; - order: -2; } - .flex-order-gt-sm--1, .md-css-only .flex-order-gt-sm--1 { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; } - .flex-order-gt-sm-0, .md-css-only .flex-order-gt-sm-0 { - -webkit-box-ordinal-group: 1; - -webkit-order: 0; - -ms-flex-order: 0; - order: 0; } - .flex-order-gt-sm-1, .md-css-only .flex-order-gt-sm-1 { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; } - .flex-order-gt-sm-2, .md-css-only .flex-order-gt-sm-2 { - -webkit-box-ordinal-group: 3; - -webkit-order: 2; - -ms-flex-order: 2; - order: 2; } - .flex-order-gt-sm-3, .md-css-only .flex-order-gt-sm-3 { - -webkit-box-ordinal-group: 4; - -webkit-order: 3; - -ms-flex-order: 3; - order: 3; } - .flex-order-gt-sm-4, .md-css-only .flex-order-gt-sm-4 { - -webkit-box-ordinal-group: 5; - -webkit-order: 4; - -ms-flex-order: 4; - order: 4; } - .flex-order-gt-sm-5, .md-css-only .flex-order-gt-sm-5 { - -webkit-box-ordinal-group: 6; - -webkit-order: 5; - -ms-flex-order: 5; - order: 5; } - .flex-order-gt-sm-6, .md-css-only .flex-order-gt-sm-6 { - -webkit-box-ordinal-group: 7; - -webkit-order: 6; - -ms-flex-order: 6; - order: 6; } - .flex-order-gt-sm-7, .md-css-only .flex-order-gt-sm-7 { - -webkit-box-ordinal-group: 8; - -webkit-order: 7; - -ms-flex-order: 7; - order: 7; } - .flex-order-gt-sm-8, .md-css-only .flex-order-gt-sm-8 { - -webkit-box-ordinal-group: 9; - -webkit-order: 8; - -ms-flex-order: 8; - order: 8; } - .flex-order-gt-sm-9, .md-css-only .flex-order-gt-sm-9 { - -webkit-box-ordinal-group: 10; - -webkit-order: 9; - -ms-flex-order: 9; - order: 9; } } + .flex-gt-sm { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + box-sizing: border-box; } + .flex-gt-sm-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } + .flex-gt-sm-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } + .flex-gt-sm-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } + .flex-gt-sm-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } + .flex-gt-sm-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-0, + .layout-gt-sm-row > .flex-gt-sm-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-0, + .layout-gt-sm-column > .flex-gt-sm-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } + .flex-gt-sm-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-5, + .layout-gt-sm-row > .flex-gt-sm-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-5, + .layout-gt-sm-column > .flex-gt-sm-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; } + .flex-gt-sm-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-10, + .layout-gt-sm-row > .flex-gt-sm-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-10, + .layout-gt-sm-column > .flex-gt-sm-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; } + .flex-gt-sm-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-15, + .layout-gt-sm-row > .flex-gt-sm-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-15, + .layout-gt-sm-column > .flex-gt-sm-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; } + .flex-gt-sm-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-20, + .layout-gt-sm-row > .flex-gt-sm-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-20, + .layout-gt-sm-column > .flex-gt-sm-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; } + .flex-gt-sm-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-25, + .layout-gt-sm-row > .flex-gt-sm-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-25, + .layout-gt-sm-column > .flex-gt-sm-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; } + .flex-gt-sm-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-30, + .layout-gt-sm-row > .flex-gt-sm-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-30, + .layout-gt-sm-column > .flex-gt-sm-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; } + .flex-gt-sm-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-35, + .layout-gt-sm-row > .flex-gt-sm-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-35, + .layout-gt-sm-column > .flex-gt-sm-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; } + .flex-gt-sm-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-40, + .layout-gt-sm-row > .flex-gt-sm-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-40, + .layout-gt-sm-column > .flex-gt-sm-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; } + .flex-gt-sm-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-45, + .layout-gt-sm-row > .flex-gt-sm-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-45, + .layout-gt-sm-column > .flex-gt-sm-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; } + .flex-gt-sm-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-50, + .layout-gt-sm-row > .flex-gt-sm-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-50, + .layout-gt-sm-column > .flex-gt-sm-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; } + .flex-gt-sm-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-55, + .layout-gt-sm-row > .flex-gt-sm-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-55, + .layout-gt-sm-column > .flex-gt-sm-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; } + .flex-gt-sm-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-60, + .layout-gt-sm-row > .flex-gt-sm-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-60, + .layout-gt-sm-column > .flex-gt-sm-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; } + .flex-gt-sm-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-65, + .layout-gt-sm-row > .flex-gt-sm-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-65, + .layout-gt-sm-column > .flex-gt-sm-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; } + .flex-gt-sm-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-70, + .layout-gt-sm-row > .flex-gt-sm-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-70, + .layout-gt-sm-column > .flex-gt-sm-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; } + .flex-gt-sm-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-75, + .layout-gt-sm-row > .flex-gt-sm-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-75, + .layout-gt-sm-column > .flex-gt-sm-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; } + .flex-gt-sm-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-80, + .layout-gt-sm-row > .flex-gt-sm-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-80, + .layout-gt-sm-column > .flex-gt-sm-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; } + .flex-gt-sm-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-85, + .layout-gt-sm-row > .flex-gt-sm-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-85, + .layout-gt-sm-column > .flex-gt-sm-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; } + .flex-gt-sm-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-90, + .layout-gt-sm-row > .flex-gt-sm-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-90, + .layout-gt-sm-column > .flex-gt-sm-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; } + .flex-gt-sm-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-95, + .layout-gt-sm-row > .flex-gt-sm-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-95, + .layout-gt-sm-column > .flex-gt-sm-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; } + .flex-gt-sm-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-100, + .layout-gt-sm-row > .flex-gt-sm-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-100, + .layout-gt-sm-column > .flex-gt-sm-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-33, .layout-row > .flex-gt-sm-33, .layout-gt-sm-row > .flex-gt-sm-33, .layout-gt-sm-row > .flex-gt-sm-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 33%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-34, .layout-row > .flex-gt-sm-34, .layout-gt-sm-row > .flex-gt-sm-34, .layout-gt-sm-row > .flex-gt-sm-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 34%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-66, .layout-row > .flex-gt-sm-66, .layout-gt-sm-row > .flex-gt-sm-66, .layout-gt-sm-row > .flex-gt-sm-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 66%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-sm-67, .layout-row > .flex-gt-sm-67, .layout-gt-sm-row > .flex-gt-sm-67, .layout-gt-sm-row > .flex-gt-sm-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 67%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-33, .layout-column > .flex-gt-sm-33, .layout-gt-sm-column > .flex-gt-sm-33, .layout-gt-sm-column > .flex-gt-sm-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 100%; + max-height: 33%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-34, .layout-column > .flex-gt-sm-34, .layout-gt-sm-column > .flex-gt-sm-34, .layout-gt-sm-column > .flex-gt-sm-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 100%; + max-height: 34%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-66, .layout-column > .flex-gt-sm-66, .layout-gt-sm-column > .flex-gt-sm-66, .layout-gt-sm-column > .flex-gt-sm-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 100%; + max-height: 66%; + box-sizing: border-box; } + .layout-column > .flex-gt-sm-67, .layout-column > .flex-gt-sm-67, .layout-gt-sm-column > .flex-gt-sm-67, .layout-gt-sm-column > .flex-gt-sm-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 100%; + max-height: 67%; + box-sizing: border-box; } + .layout-gt-sm, .layout-gt-sm-column, .layout-gt-sm-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .layout-gt-sm-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .layout-gt-sm-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } } @media (min-width: 600px) and (max-width: 1023px) { .hide:not(.show-gt-sm):not(.show-md):not(.show), .hide-gt-sm:not(.show-gt-sm):not(.show-md):not(.show) { display: none; } .hide-md:not(.show-md):not(.show) { display: none; } - .md-css-only [hide]:not([show-gt-sm]):not([show-md]):not([show]), .md-css-only [hide-gt-sm]:not([show-gt-sm]):not([show-md]):not([show]) { - display: none; } - .md-css-only [hide-md]:not([show-md]):not([show]) { - display: none; } - .layout-md, .md-css-only [layout-md] { - box-sizing: border-box; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } - .layout-md-column, - .md-css-only [layout-md=column] { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - .layout-md-row, - .md-css-only [layout-md=row] { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .flex-md, .md-css-only [flex-md] { - box-sizing: border-box; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; } - .flex-md-5, - .md-css-only [flex-md="5"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; } - .layout-md-row > .flex-md-5, - .md-css-only [layout="row"] > .md-css-only [flex-md="5"] { - max-width: 5%; - max-height: 100%; } - .layout-md-column > .flex-md-5, - .md-css-only [layout="column"] > .md-css-only [flex-md="5"] { - max-height: 5%; - max-width: 100%; } - .flex-md-10, - .md-css-only [flex-md="10"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; } - .layout-md-row > .flex-md-10, - .md-css-only [layout="row"] > .md-css-only [flex-md="10"] { - max-width: 10%; - max-height: 100%; } - .layout-md-column > .flex-md-10, - .md-css-only [layout="column"] > .md-css-only [flex-md="10"] { - max-height: 10%; - max-width: 100%; } - .flex-md-15, - .md-css-only [flex-md="15"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; } - .layout-md-row > .flex-md-15, - .md-css-only [layout="row"] > .md-css-only [flex-md="15"] { - max-width: 15%; - max-height: 100%; } - .layout-md-column > .flex-md-15, - .md-css-only [layout="column"] > .md-css-only [flex-md="15"] { - max-height: 15%; - max-width: 100%; } - .flex-md-20, - .md-css-only [flex-md="20"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; } - .layout-md-row > .flex-md-20, - .md-css-only [layout="row"] > .md-css-only [flex-md="20"] { - max-width: 20%; - max-height: 100%; } - .layout-md-column > .flex-md-20, - .md-css-only [layout="column"] > .md-css-only [flex-md="20"] { - max-height: 20%; - max-width: 100%; } - .flex-md-25, - .md-css-only [flex-md="25"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; } - .layout-md-row > .flex-md-25, - .md-css-only [layout="row"] > .md-css-only [flex-md="25"] { - max-width: 25%; - max-height: 100%; } - .layout-md-column > .flex-md-25, - .md-css-only [layout="column"] > .md-css-only [flex-md="25"] { - max-height: 25%; - max-width: 100%; } - .flex-md-30, - .md-css-only [flex-md="30"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; } - .layout-md-row > .flex-md-30, - .md-css-only [layout="row"] > .md-css-only [flex-md="30"] { - max-width: 30%; - max-height: 100%; } - .layout-md-column > .flex-md-30, - .md-css-only [layout="column"] > .md-css-only [flex-md="30"] { - max-height: 30%; - max-width: 100%; } - .flex-md-35, - .md-css-only [flex-md="35"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; } - .layout-md-row > .flex-md-35, - .md-css-only [layout="row"] > .md-css-only [flex-md="35"] { - max-width: 35%; - max-height: 100%; } - .layout-md-column > .flex-md-35, - .md-css-only [layout="column"] > .md-css-only [flex-md="35"] { - max-height: 35%; - max-width: 100%; } - .flex-md-40, - .md-css-only [flex-md="40"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; } - .layout-md-row > .flex-md-40, - .md-css-only [layout="row"] > .md-css-only [flex-md="40"] { - max-width: 40%; - max-height: 100%; } - .layout-md-column > .flex-md-40, - .md-css-only [layout="column"] > .md-css-only [flex-md="40"] { - max-height: 40%; - max-width: 100%; } - .flex-md-45, - .md-css-only [flex-md="45"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; } - .layout-md-row > .flex-md-45, - .md-css-only [layout="row"] > .md-css-only [flex-md="45"] { - max-width: 45%; - max-height: 100%; } - .layout-md-column > .flex-md-45, - .md-css-only [layout="column"] > .md-css-only [flex-md="45"] { - max-height: 45%; - max-width: 100%; } - .flex-md-50, - .md-css-only [flex-md="50"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; } - .layout-md-row > .flex-md-50, - .md-css-only [layout="row"] > .md-css-only [flex-md="50"] { - max-width: 50%; - max-height: 100%; } - .layout-md-column > .flex-md-50, - .md-css-only [layout="column"] > .md-css-only [flex-md="50"] { - max-height: 50%; - max-width: 100%; } - .flex-md-55, - .md-css-only [flex-md="55"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; } - .layout-md-row > .flex-md-55, - .md-css-only [layout="row"] > .md-css-only [flex-md="55"] { - max-width: 55%; - max-height: 100%; } - .layout-md-column > .flex-md-55, - .md-css-only [layout="column"] > .md-css-only [flex-md="55"] { - max-height: 55%; - max-width: 100%; } - .flex-md-60, - .md-css-only [flex-md="60"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; } - .layout-md-row > .flex-md-60, - .md-css-only [layout="row"] > .md-css-only [flex-md="60"] { - max-width: 60%; - max-height: 100%; } - .layout-md-column > .flex-md-60, - .md-css-only [layout="column"] > .md-css-only [flex-md="60"] { - max-height: 60%; - max-width: 100%; } - .flex-md-65, - .md-css-only [flex-md="65"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; } - .layout-md-row > .flex-md-65, - .md-css-only [layout="row"] > .md-css-only [flex-md="65"] { - max-width: 65%; - max-height: 100%; } - .layout-md-column > .flex-md-65, - .md-css-only [layout="column"] > .md-css-only [flex-md="65"] { - max-height: 65%; - max-width: 100%; } - .flex-md-70, - .md-css-only [flex-md="70"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; } - .layout-md-row > .flex-md-70, - .md-css-only [layout="row"] > .md-css-only [flex-md="70"] { - max-width: 70%; - max-height: 100%; } - .layout-md-column > .flex-md-70, - .md-css-only [layout="column"] > .md-css-only [flex-md="70"] { - max-height: 70%; - max-width: 100%; } - .flex-md-75, - .md-css-only [flex-md="75"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; } - .layout-md-row > .flex-md-75, - .md-css-only [layout="row"] > .md-css-only [flex-md="75"] { - max-width: 75%; - max-height: 100%; } - .layout-md-column > .flex-md-75, - .md-css-only [layout="column"] > .md-css-only [flex-md="75"] { - max-height: 75%; - max-width: 100%; } - .flex-md-80, - .md-css-only [flex-md="80"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; } - .layout-md-row > .flex-md-80, - .md-css-only [layout="row"] > .md-css-only [flex-md="80"] { - max-width: 80%; - max-height: 100%; } - .layout-md-column > .flex-md-80, - .md-css-only [layout="column"] > .md-css-only [flex-md="80"] { - max-height: 80%; - max-width: 100%; } - .flex-md-85, - .md-css-only [flex-md="85"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; } - .layout-md-row > .flex-md-85, - .md-css-only [layout="row"] > .md-css-only [flex-md="85"] { - max-width: 85%; - max-height: 100%; } - .layout-md-column > .flex-md-85, - .md-css-only [layout="column"] > .md-css-only [flex-md="85"] { - max-height: 85%; - max-width: 100%; } - .flex-md-90, - .md-css-only [flex-md="90"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; } - .layout-md-row > .flex-md-90, - .md-css-only [layout="row"] > .md-css-only [flex-md="90"] { - max-width: 90%; - max-height: 100%; } - .layout-md-column > .flex-md-90, - .md-css-only [layout="column"] > .md-css-only [flex-md="90"] { - max-height: 90%; - max-width: 100%; } - .flex-md-95, - .md-css-only [flex-md="95"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; } - .layout-md-row > .flex-md-95, - .md-css-only [layout="row"] > .md-css-only [flex-md="95"] { - max-width: 95%; - max-height: 100%; } - .layout-md-column > .flex-md-95, - .md-css-only [layout="column"] > .md-css-only [flex-md="95"] { - max-height: 95%; - max-width: 100%; } - .flex-md-100, - .md-css-only [flex-md="100"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; } - .layout-md-row > .flex-md-100, - .md-css-only [layout="row"] > .md-css-only [flex-md="100"] { - max-width: 100%; - max-height: 100%; } - .layout-md-column > .flex-md-100, - .md-css-only [layout="column"] > .md-css-only [flex-md="100"] { - max-height: 100%; - max-width: 100%; } - .flex-md-33, .flex-md-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; } - .flex-md-66, .flex-md-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; - max-height: 100%; } - .layout-md-row > .flex-md-33, .layout-md-row > .flex-md-34, .md-css-only [layout="row"] > .flex-md-33, .md-css-only [layout="row"] > .flex-md-34 { - max-width: 33%; - max-height: 100%; } - .layout-md-row > .flex-md-66, .layout-md-row > .flex-md-67, .md-css-only [layout="row"] > .flex-md-66, .md-css-only [layout="row"] > .flex-md-67 { - max-width: 67%; - max-height: 100%; } - .layout-md-column > .flex-md-33, .layout-md-column > .flex-md-34, .md-css-only [layout="column"] > .flex-md-33, .md-css-only [layout="column"] > .flex-md-34 { - max-height: 33%; - max-width: 100%; } - .layout-md-column > .flex-md-66, .layout-md-column > .flex-md-67, .md-css-only [layout="column"] > .flex-md-66, .md-css-only [layout="column"] > .flex-md-67 { - max-height: 67%; - max-width: 100%; } - .layout-align-md-center, .layout-align-md-center-center, + .flex-order-md-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + .flex-order-md-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .flex-order-md-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .flex-order-md-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .flex-order-md-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .flex-order-md-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .flex-order-md-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .flex-order-md-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .flex-order-md-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .flex-order-md-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .flex-order-md-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .flex-order-md-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .flex-order-md-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + .flex-order-md-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + .flex-order-md-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + .flex-order-md-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + .flex-order-md-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + .flex-order-md-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + .flex-order-md-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + .flex-order-md-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + .offset-md-0, .flex-offset-md-0 { + margin-left: 0%; } + .offset-md-5, .flex-offset-md-5 { + margin-left: 5%; } + .offset-md-10, .flex-offset-md-10 { + margin-left: 10%; } + .offset-md-15, .flex-offset-md-15 { + margin-left: 15%; } + .offset-md-20, .flex-offset-md-20 { + margin-left: 20%; } + .offset-md-25, .flex-offset-md-25 { + margin-left: 25%; } + .offset-md-30, .flex-offset-md-30 { + margin-left: 30%; } + .offset-md-35, .flex-offset-md-35 { + margin-left: 35%; } + .offset-md-40, .flex-offset-md-40 { + margin-left: 40%; } + .offset-md-45, .flex-offset-md-45 { + margin-left: 45%; } + .offset-md-50, .flex-offset-md-50 { + margin-left: 50%; } + .offset-md-55, .flex-offset-md-55 { + margin-left: 55%; } + .offset-md-60, .flex-offset-md-60 { + margin-left: 60%; } + .offset-md-65, .flex-offset-md-65 { + margin-left: 65%; } + .offset-md-70, .flex-offset-md-70 { + margin-left: 70%; } + .offset-md-75, .flex-offset-md-75 { + margin-left: 75%; } + .offset-md-80, .flex-offset-md-80 { + margin-left: 80%; } + .offset-md-85, .flex-offset-md-85 { + margin-left: 85%; } + .offset-md-90, .flex-offset-md-90 { + margin-left: 90%; } + .offset-md-95, .flex-offset-md-95 { + margin-left: 95%; } + .offset-md-33, .flex-offset-md-33 { + margin-left: 33%; } + .offset-md-34, .flex-offset-md-34 { + margin-left: 34%; } + .offset-md-66, .flex-offset-md-66 { + margin-left: 66%; } + .offset-md-67, .flex-offset-md-67 { + margin-left: 67%; } + .layout-align-md-center, + .layout-align-md-center-center, .layout-align-md-center-start, - .layout-align-md-center-end, - .md-css-only [layout-align-md="center"], - .md-css-only [layout-align-md="center center"], - .md-css-only [layout-align-md="center start"], - .md-css-only [layout-align-md="center end"] { + .layout-align-md-center-end { -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } - .layout-align-md-end, .layout-align-md-end-center, + .layout-align-md-end, + .layout-align-md-end-center, .layout-align-md-end-start, - .layout-align-md-end-end, - .md-css-only [layout-align-md="end"], .md-css-only [layout-align-md="end center"], - .md-css-only [layout-align-md="end start"], - .md-css-only [layout-align-md="end end"] { + .layout-align-md-end-end { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; justify-content: flex-end; } - .layout-align-md-space-around, .layout-align-md-space-around-center, + .layout-align-md-space-around, + .layout-align-md-space-around-center, .layout-align-md-space-around-start, - .layout-align-md-space-around-end, - .md-css-only [layout-align-md="space-around"], .md-css-only [layout-align-md="space-around center"], - .md-css-only [layout-align-md="space-around start"], - .md-css-only [layout-align-md="space-around end"] { + .layout-align-md-space-around-end { -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; } - .layout-align-md-space-between, .layout-align-md-space-between-center, + .layout-align-md-space-between, + .layout-align-md-space-between-center, .layout-align-md-space-between-start, - .layout-align-md-space-between-end, - .md-css-only [layout-align-md="space-between"], .md-css-only [layout-align-md="space-between center"], - .md-css-only [layout-align-md="space-between start"], - .md-css-only [layout-align-md="space-between end"] { + .layout-align-md-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; @@ -2546,12 +3241,7 @@ html * { .layout-align-md-start-start, .layout-align-md-end-start, .layout-align-md-space-between-start, - .layout-align-md-space-around-start, - .md-css-only [layout-align-md="center start"], - .md-css-only [layout-align-md="start start"], - .md-css-only [layout-align-md="end start"], - .md-css-only [layout-align-md="space-between start"], - .md-css-only [layout-align-md="space-around start"] { + .layout-align-md-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; @@ -2560,562 +3250,863 @@ html * { .layout-align-md-start-center, .layout-align-md-end-center, .layout-align-md-space-between-center, - .layout-align-md-space-around-center, - .md-css-only [layout-align-md="center center"], - .md-css-only [layout-align-md="start center"], - .md-css-only [layout-align-md="end center"], - .md-css-only [layout-align-md="space-between center"], - .md-css-only [layout-align-md="space-around center"] { + .layout-align-md-space-around-center { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; max-width: 100%; } + .layout-align-md-center-center > *, + .layout-align-md-start-center > *, + .layout-align-md-end-center > *, + .layout-align-md-space-between-center > *, + .layout-align-md-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } .layout-align-md-center-end, .layout-align-md-start-end, .layout-align-md-end-end, .layout-align-md-space-between-end, - .layout-align-md-space-around-end, - .md-css-only [layout-align-md="center end"], - .md-css-only [layout-align-md="start end"], - .md-css-only [layout-align-md="end end"], - .md-css-only [layout-align-md="space-between end"], - .md-css-only [layout-align-md="space-around end"] { + .layout-align-md-space-around-end { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - .offset-md-5, - .md-css-only [offset-md="5"] { - margin-left: 5%; } - .offset-md-10, - .md-css-only [offset-md="10"] { - margin-left: 10%; } - .offset-md-15, - .md-css-only [offset-md="15"] { - margin-left: 15%; } - .offset-md-20, - .md-css-only [offset-md="20"] { - margin-left: 20%; } - .offset-md-25, - .md-css-only [offset-md="25"] { - margin-left: 25%; } - .offset-md-30, - .md-css-only [offset-md="30"] { - margin-left: 30%; } - .offset-md-35, - .md-css-only [offset-md="35"] { - margin-left: 35%; } - .offset-md-40, - .md-css-only [offset-md="40"] { - margin-left: 40%; } - .offset-md-45, - .md-css-only [offset-md="45"] { - margin-left: 45%; } - .offset-md-50, - .md-css-only [offset-md="50"] { - margin-left: 50%; } - .offset-md-55, - .md-css-only [offset-md="55"] { - margin-left: 55%; } - .offset-md-60, - .md-css-only [offset-md="60"] { - margin-left: 60%; } - .offset-md-65, - .md-css-only [offset-md="65"] { - margin-left: 65%; } - .offset-md-70, - .md-css-only [offset-md="70"] { - margin-left: 70%; } - .offset-md-75, - .md-css-only [offset-md="75"] { - margin-left: 75%; } - .offset-md-80, - .md-css-only [offset-md="80"] { - margin-left: 80%; } - .offset-md-85, - .md-css-only [offset-md="85"] { - margin-left: 85%; } - .offset-md-90, - .md-css-only [offset-md="90"] { - margin-left: 90%; } - .offset-md-95, - .md-css-only [offset-md="95"] { - margin-left: 95%; } - .offset-md-33, .offset-md-34, - .md-css-only [offset-md="33"], .md-css-only [offset-md="34"] { - margin-left: 34%; } - .offset-md-66, .offset-md-67, - .md-css-only [offset-md="66"], .md-css-only [offset-md="67"] { - margin-left: 66%; } - .flex-order-md--9, .md-css-only .flex-order-md--9 { - -webkit-box-ordinal-group: -8; - -webkit-order: -9; - -ms-flex-order: -9; - order: -9; } - .flex-order-md--8, .md-css-only .flex-order-md--8 { - -webkit-box-ordinal-group: -7; - -webkit-order: -8; - -ms-flex-order: -8; - order: -8; } - .flex-order-md--7, .md-css-only .flex-order-md--7 { - -webkit-box-ordinal-group: -6; - -webkit-order: -7; - -ms-flex-order: -7; - order: -7; } - .flex-order-md--6, .md-css-only .flex-order-md--6 { - -webkit-box-ordinal-group: -5; - -webkit-order: -6; - -ms-flex-order: -6; - order: -6; } - .flex-order-md--5, .md-css-only .flex-order-md--5 { - -webkit-box-ordinal-group: -4; - -webkit-order: -5; - -ms-flex-order: -5; - order: -5; } - .flex-order-md--4, .md-css-only .flex-order-md--4 { - -webkit-box-ordinal-group: -3; - -webkit-order: -4; - -ms-flex-order: -4; - order: -4; } - .flex-order-md--3, .md-css-only .flex-order-md--3 { - -webkit-box-ordinal-group: -2; - -webkit-order: -3; - -ms-flex-order: -3; - order: -3; } - .flex-order-md--2, .md-css-only .flex-order-md--2 { - -webkit-box-ordinal-group: -1; - -webkit-order: -2; - -ms-flex-order: -2; - order: -2; } - .flex-order-md--1, .md-css-only .flex-order-md--1 { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; } - .flex-order-md-0, .md-css-only .flex-order-md-0 { - -webkit-box-ordinal-group: 1; - -webkit-order: 0; - -ms-flex-order: 0; - order: 0; } - .flex-order-md-1, .md-css-only .flex-order-md-1 { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; } - .flex-order-md-2, .md-css-only .flex-order-md-2 { - -webkit-box-ordinal-group: 3; - -webkit-order: 2; - -ms-flex-order: 2; - order: 2; } - .flex-order-md-3, .md-css-only .flex-order-md-3 { - -webkit-box-ordinal-group: 4; - -webkit-order: 3; - -ms-flex-order: 3; - order: 3; } - .flex-order-md-4, .md-css-only .flex-order-md-4 { - -webkit-box-ordinal-group: 5; - -webkit-order: 4; - -ms-flex-order: 4; - order: 4; } - .flex-order-md-5, .md-css-only .flex-order-md-5 { - -webkit-box-ordinal-group: 6; - -webkit-order: 5; - -ms-flex-order: 5; - order: 5; } - .flex-order-md-6, .md-css-only .flex-order-md-6 { - -webkit-box-ordinal-group: 7; - -webkit-order: 6; - -ms-flex-order: 6; - order: 6; } - .flex-order-md-7, .md-css-only .flex-order-md-7 { - -webkit-box-ordinal-group: 8; - -webkit-order: 7; - -ms-flex-order: 7; - order: 7; } - .flex-order-md-8, .md-css-only .flex-order-md-8 { - -webkit-box-ordinal-group: 9; - -webkit-order: 8; - -ms-flex-order: 8; - order: 8; } - .flex-order-md-9, .md-css-only .flex-order-md-9 { - -webkit-box-ordinal-group: 10; - -webkit-order: 9; - -ms-flex-order: 9; - order: 9; } } - -@media (min-width: 1024px) { - .layout-gt-md, .md-css-only [layout-gt-md] { - box-sizing: border-box; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } - .layout-gt-md-column, - .md-css-only [layout-gt-md=column] { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - .layout-gt-md-row, - .md-css-only [layout-gt-md=row] { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .flex-gt-md, .md-css-only [flex-gt-md] { - box-sizing: border-box; + .flex-md { -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; - flex: 1; } - .flex-gt-md-5, - .md-css-only [flex-gt-md="5"] { + flex: 1; + box-sizing: border-box; } + .flex-md-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } + .flex-md-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } + .flex-md-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } + .flex-md-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } + .flex-md-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-0, + .layout-md-row > .flex-md-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-0, + .layout-md-column > .flex-md-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } + .flex-md-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; - flex: 0 0 5%; } - .layout-gt-md-row > .flex-gt-md-5, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="5"] { + flex: 0 0 5%; max-width: 5%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-5, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="5"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-5, + .layout-md-row > .flex-md-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-5, + .layout-md-column > .flex-md-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 100%; max-height: 5%; - max-width: 100%; } - .flex-gt-md-10, - .md-css-only [flex-gt-md="10"] { + box-sizing: border-box; } + .flex-md-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; - flex: 0 0 10%; } - .layout-gt-md-row > .flex-gt-md-10, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="10"] { + flex: 0 0 10%; max-width: 10%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-10, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="10"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-10, + .layout-md-row > .flex-md-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-10, + .layout-md-column > .flex-md-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 100%; max-height: 10%; - max-width: 100%; } - .flex-gt-md-15, - .md-css-only [flex-gt-md="15"] { + box-sizing: border-box; } + .flex-md-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; - flex: 0 0 15%; } - .layout-gt-md-row > .flex-gt-md-15, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="15"] { + flex: 0 0 15%; max-width: 15%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-15, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="15"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-15, + .layout-md-row > .flex-md-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-15, + .layout-md-column > .flex-md-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 100%; max-height: 15%; - max-width: 100%; } - .flex-gt-md-20, - .md-css-only [flex-gt-md="20"] { + box-sizing: border-box; } + .flex-md-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; - flex: 0 0 20%; } - .layout-gt-md-row > .flex-gt-md-20, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="20"] { + flex: 0 0 20%; max-width: 20%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-20, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="20"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-20, + .layout-md-row > .flex-md-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-20, + .layout-md-column > .flex-md-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 100%; max-height: 20%; - max-width: 100%; } - .flex-gt-md-25, - .md-css-only [flex-gt-md="25"] { + box-sizing: border-box; } + .flex-md-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; - flex: 0 0 25%; } - .layout-gt-md-row > .flex-gt-md-25, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="25"] { + flex: 0 0 25%; max-width: 25%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-25, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="25"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-25, + .layout-md-row > .flex-md-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-25, + .layout-md-column > .flex-md-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 100%; max-height: 25%; - max-width: 100%; } - .flex-gt-md-30, - .md-css-only [flex-gt-md="30"] { + box-sizing: border-box; } + .flex-md-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; - flex: 0 0 30%; } - .layout-gt-md-row > .flex-gt-md-30, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="30"] { + flex: 0 0 30%; max-width: 30%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-30, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="30"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-30, + .layout-md-row > .flex-md-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-30, + .layout-md-column > .flex-md-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 100%; max-height: 30%; - max-width: 100%; } - .flex-gt-md-35, - .md-css-only [flex-gt-md="35"] { + box-sizing: border-box; } + .flex-md-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; - flex: 0 0 35%; } - .layout-gt-md-row > .flex-gt-md-35, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="35"] { + flex: 0 0 35%; max-width: 35%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-35, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="35"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-35, + .layout-md-row > .flex-md-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-35, + .layout-md-column > .flex-md-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 100%; max-height: 35%; - max-width: 100%; } - .flex-gt-md-40, - .md-css-only [flex-gt-md="40"] { + box-sizing: border-box; } + .flex-md-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; - flex: 0 0 40%; } - .layout-gt-md-row > .flex-gt-md-40, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="40"] { + flex: 0 0 40%; max-width: 40%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-40, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="40"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-40, + .layout-md-row > .flex-md-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-40, + .layout-md-column > .flex-md-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 100%; max-height: 40%; - max-width: 100%; } - .flex-gt-md-45, - .md-css-only [flex-gt-md="45"] { + box-sizing: border-box; } + .flex-md-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; - flex: 0 0 45%; } - .layout-gt-md-row > .flex-gt-md-45, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="45"] { + flex: 0 0 45%; max-width: 45%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-45, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="45"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-45, + .layout-md-row > .flex-md-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-45, + .layout-md-column > .flex-md-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 100%; max-height: 45%; - max-width: 100%; } - .flex-gt-md-50, - .md-css-only [flex-gt-md="50"] { + box-sizing: border-box; } + .flex-md-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; - flex: 0 0 50%; } - .layout-gt-md-row > .flex-gt-md-50, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="50"] { + flex: 0 0 50%; max-width: 50%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-50, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="50"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-50, + .layout-md-row > .flex-md-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-50, + .layout-md-column > .flex-md-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 100%; max-height: 50%; - max-width: 100%; } - .flex-gt-md-55, - .md-css-only [flex-gt-md="55"] { + box-sizing: border-box; } + .flex-md-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; - flex: 0 0 55%; } - .layout-gt-md-row > .flex-gt-md-55, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="55"] { + flex: 0 0 55%; max-width: 55%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-55, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="55"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-55, + .layout-md-row > .flex-md-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-55, + .layout-md-column > .flex-md-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 100%; max-height: 55%; - max-width: 100%; } - .flex-gt-md-60, - .md-css-only [flex-gt-md="60"] { + box-sizing: border-box; } + .flex-md-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; - flex: 0 0 60%; } - .layout-gt-md-row > .flex-gt-md-60, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="60"] { + flex: 0 0 60%; max-width: 60%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-60, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="60"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-60, + .layout-md-row > .flex-md-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-60, + .layout-md-column > .flex-md-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 100%; max-height: 60%; - max-width: 100%; } - .flex-gt-md-65, - .md-css-only [flex-gt-md="65"] { + box-sizing: border-box; } + .flex-md-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; - flex: 0 0 65%; } - .layout-gt-md-row > .flex-gt-md-65, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="65"] { + flex: 0 0 65%; max-width: 65%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-65, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="65"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-65, + .layout-md-row > .flex-md-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-65, + .layout-md-column > .flex-md-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 100%; max-height: 65%; - max-width: 100%; } - .flex-gt-md-70, - .md-css-only [flex-gt-md="70"] { + box-sizing: border-box; } + .flex-md-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; - flex: 0 0 70%; } - .layout-gt-md-row > .flex-gt-md-70, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="70"] { + flex: 0 0 70%; max-width: 70%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-70, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="70"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-70, + .layout-md-row > .flex-md-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-70, + .layout-md-column > .flex-md-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 100%; max-height: 70%; - max-width: 100%; } - .flex-gt-md-75, - .md-css-only [flex-gt-md="75"] { + box-sizing: border-box; } + .flex-md-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; - flex: 0 0 75%; } - .layout-gt-md-row > .flex-gt-md-75, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="75"] { + flex: 0 0 75%; max-width: 75%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-75, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="75"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-75, + .layout-md-row > .flex-md-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-75, + .layout-md-column > .flex-md-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 100%; max-height: 75%; - max-width: 100%; } - .flex-gt-md-80, - .md-css-only [flex-gt-md="80"] { + box-sizing: border-box; } + .flex-md-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; - flex: 0 0 80%; } - .layout-gt-md-row > .flex-gt-md-80, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="80"] { + flex: 0 0 80%; max-width: 80%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-80, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="80"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-80, + .layout-md-row > .flex-md-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-80, + .layout-md-column > .flex-md-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 100%; max-height: 80%; - max-width: 100%; } - .flex-gt-md-85, - .md-css-only [flex-gt-md="85"] { + box-sizing: border-box; } + .flex-md-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; - flex: 0 0 85%; } - .layout-gt-md-row > .flex-gt-md-85, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="85"] { + flex: 0 0 85%; max-width: 85%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-85, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="85"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-85, + .layout-md-row > .flex-md-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-85, + .layout-md-column > .flex-md-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 100%; max-height: 85%; - max-width: 100%; } - .flex-gt-md-90, - .md-css-only [flex-gt-md="90"] { + box-sizing: border-box; } + .flex-md-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; - flex: 0 0 90%; } - .layout-gt-md-row > .flex-gt-md-90, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="90"] { + flex: 0 0 90%; max-width: 90%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-90, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="90"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-90, + .layout-md-row > .flex-md-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-90, + .layout-md-column > .flex-md-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 100%; max-height: 90%; - max-width: 100%; } - .flex-gt-md-95, - .md-css-only [flex-gt-md="95"] { + box-sizing: border-box; } + .flex-md-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; - flex: 0 0 95%; } - .layout-gt-md-row > .flex-gt-md-95, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="95"] { + flex: 0 0 95%; max-width: 95%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-95, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="95"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-95, + .layout-md-row > .flex-md-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-95, + .layout-md-column > .flex-md-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 100%; max-height: 95%; - max-width: 100%; } - .flex-gt-md-100, - .md-css-only [flex-gt-md="100"] { + box-sizing: border-box; } + .flex-md-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; - flex: 0 0 100%; } - .layout-gt-md-row > .flex-gt-md-100, - .md-css-only [layout="row"] > .md-css-only [flex-gt-md="100"] { + flex: 0 0 100%; max-width: 100%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-100, - .md-css-only [layout="column"] > .md-css-only [flex-gt-md="100"] { max-height: 100%; - max-width: 100%; } - .flex-gt-md-33, .flex-gt-md-34 { + box-sizing: border-box; } + .layout-row > .flex-md-100, + .layout-md-row > .flex-md-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-100, + .layout-md-column > .flex-md-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-33, .layout-row > .flex-md-33, .layout-md-row > .flex-md-33, .layout-md-row > .flex-md-33 { -webkit-box-flex: 0; -webkit-flex: 0 0 33%; -ms-flex: 0 0 33%; flex: 0 0 33%; max-width: 33%; - max-height: 100%; } - .flex-gt-md-66, .flex-gt-md-67 { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-34, .layout-row > .flex-md-34, .layout-md-row > .flex-md-34, .layout-md-row > .flex-md-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 34%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-66, .layout-row > .flex-md-66, .layout-md-row > .flex-md-66, .layout-md-row > .flex-md-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 66%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-md-67, .layout-row > .flex-md-67, .layout-md-row > .flex-md-67, .layout-md-row > .flex-md-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 67%; -ms-flex: 0 0 67%; flex: 0 0 67%; max-width: 67%; - max-height: 100%; } - .layout-gt-md-row > .flex-gt-md-33, .layout-gt-md-row > .flex-gt-md-34, .md-css-only [layout="row"] > .flex-gt-md-33, .md-css-only [layout="row"] > .flex-gt-md-34 { - max-width: 33%; - max-height: 100%; } - .layout-gt-md-row > .flex-gt-md-66, .layout-gt-md-row > .flex-gt-md-67, .md-css-only [layout="row"] > .flex-gt-md-66, .md-css-only [layout="row"] > .flex-gt-md-67 { - max-width: 67%; - max-height: 100%; } - .layout-gt-md-column > .flex-gt-md-33, .layout-gt-md-column > .flex-gt-md-34, .md-css-only [layout="column"] > .flex-gt-md-33, .md-css-only [layout="column"] > .flex-gt-md-34 { + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-md-33, .layout-column > .flex-md-33, .layout-md-column > .flex-md-33, .layout-md-column > .flex-md-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 100%; max-height: 33%; - max-width: 100%; } - .layout-gt-md-column > .flex-gt-md-66, .layout-gt-md-column > .flex-gt-md-67, .md-css-only [layout="column"] > .flex-gt-md-66, .md-css-only [layout="column"] > .flex-gt-md-67 { + box-sizing: border-box; } + .layout-column > .flex-md-34, .layout-column > .flex-md-34, .layout-md-column > .flex-md-34, .layout-md-column > .flex-md-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 100%; + max-height: 34%; + box-sizing: border-box; } + .layout-column > .flex-md-66, .layout-column > .flex-md-66, .layout-md-column > .flex-md-66, .layout-md-column > .flex-md-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 100%; + max-height: 66%; + box-sizing: border-box; } + .layout-column > .flex-md-67, .layout-column > .flex-md-67, .layout-md-column > .flex-md-67, .layout-md-column > .flex-md-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 100%; max-height: 67%; - max-width: 100%; } - .layout-align-gt-md-center, .layout-align-gt-md-center-center, + box-sizing: border-box; } + .layout-md, .layout-md-column, .layout-md-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .layout-md-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .layout-md-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } } + +@media (min-width: 1024px) { + .flex-order-gt-md-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + .flex-order-gt-md-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .flex-order-gt-md-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .flex-order-gt-md-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .flex-order-gt-md-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .flex-order-gt-md-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .flex-order-gt-md-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .flex-order-gt-md-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .flex-order-gt-md-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .flex-order-gt-md-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .flex-order-gt-md-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .flex-order-gt-md-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .flex-order-gt-md-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + .flex-order-gt-md-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + .flex-order-gt-md-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + .flex-order-gt-md-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + .flex-order-gt-md-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + .flex-order-gt-md-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + .flex-order-gt-md-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + .flex-order-gt-md-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + .offset-gt-md-0, .flex-offset-gt-md-0 { + margin-left: 0%; } + .offset-gt-md-5, .flex-offset-gt-md-5 { + margin-left: 5%; } + .offset-gt-md-10, .flex-offset-gt-md-10 { + margin-left: 10%; } + .offset-gt-md-15, .flex-offset-gt-md-15 { + margin-left: 15%; } + .offset-gt-md-20, .flex-offset-gt-md-20 { + margin-left: 20%; } + .offset-gt-md-25, .flex-offset-gt-md-25 { + margin-left: 25%; } + .offset-gt-md-30, .flex-offset-gt-md-30 { + margin-left: 30%; } + .offset-gt-md-35, .flex-offset-gt-md-35 { + margin-left: 35%; } + .offset-gt-md-40, .flex-offset-gt-md-40 { + margin-left: 40%; } + .offset-gt-md-45, .flex-offset-gt-md-45 { + margin-left: 45%; } + .offset-gt-md-50, .flex-offset-gt-md-50 { + margin-left: 50%; } + .offset-gt-md-55, .flex-offset-gt-md-55 { + margin-left: 55%; } + .offset-gt-md-60, .flex-offset-gt-md-60 { + margin-left: 60%; } + .offset-gt-md-65, .flex-offset-gt-md-65 { + margin-left: 65%; } + .offset-gt-md-70, .flex-offset-gt-md-70 { + margin-left: 70%; } + .offset-gt-md-75, .flex-offset-gt-md-75 { + margin-left: 75%; } + .offset-gt-md-80, .flex-offset-gt-md-80 { + margin-left: 80%; } + .offset-gt-md-85, .flex-offset-gt-md-85 { + margin-left: 85%; } + .offset-gt-md-90, .flex-offset-gt-md-90 { + margin-left: 90%; } + .offset-gt-md-95, .flex-offset-gt-md-95 { + margin-left: 95%; } + .offset-gt-md-33, .flex-offset-gt-md-33 { + margin-left: 33%; } + .offset-gt-md-34, .flex-offset-gt-md-34 { + margin-left: 34%; } + .offset-gt-md-66, .flex-offset-gt-md-66 { + margin-left: 66%; } + .offset-gt-md-67, .flex-offset-gt-md-67 { + margin-left: 67%; } + .layout-align-gt-md-center, + .layout-align-gt-md-center-center, .layout-align-gt-md-center-start, - .layout-align-gt-md-center-end, - .md-css-only [layout-align-gt-md="center"], - .md-css-only [layout-align-gt-md="center center"], - .md-css-only [layout-align-gt-md="center start"], - .md-css-only [layout-align-gt-md="center end"] { + .layout-align-gt-md-center-end { -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } - .layout-align-gt-md-end, .layout-align-gt-md-end-center, + .layout-align-gt-md-end, + .layout-align-gt-md-end-center, .layout-align-gt-md-end-start, - .layout-align-gt-md-end-end, - .md-css-only [layout-align-gt-md="end"], .md-css-only [layout-align-gt-md="end center"], - .md-css-only [layout-align-gt-md="end start"], - .md-css-only [layout-align-gt-md="end end"] { + .layout-align-gt-md-end-end { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; justify-content: flex-end; } - .layout-align-gt-md-space-around, .layout-align-gt-md-space-around-center, + .layout-align-gt-md-space-around, + .layout-align-gt-md-space-around-center, .layout-align-gt-md-space-around-start, - .layout-align-gt-md-space-around-end, - .md-css-only [layout-align-gt-md="space-around"], .md-css-only [layout-align-gt-md="space-around center"], - .md-css-only [layout-align-gt-md="space-around start"], - .md-css-only [layout-align-gt-md="space-around end"] { + .layout-align-gt-md-space-around-end { -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; } - .layout-align-gt-md-space-between, .layout-align-gt-md-space-between-center, + .layout-align-gt-md-space-between, + .layout-align-gt-md-space-between-center, .layout-align-gt-md-space-between-start, - .layout-align-gt-md-space-between-end, - .md-css-only [layout-align-gt-md="space-between"], .md-css-only [layout-align-gt-md="space-between center"], - .md-css-only [layout-align-gt-md="space-between start"], - .md-css-only [layout-align-gt-md="space-between end"] { + .layout-align-gt-md-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; @@ -3124,12 +4115,7 @@ html * { .layout-align-gt-md-start-start, .layout-align-gt-md-end-start, .layout-align-gt-md-space-between-start, - .layout-align-gt-md-space-around-start, - .md-css-only [layout-align-gt-md="center start"], - .md-css-only [layout-align-gt-md="start start"], - .md-css-only [layout-align-gt-md="end start"], - .md-css-only [layout-align-gt-md="space-between start"], - .md-css-only [layout-align-gt-md="space-around start"] { + .layout-align-gt-md-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; @@ -3138,570 +4124,867 @@ html * { .layout-align-gt-md-start-center, .layout-align-gt-md-end-center, .layout-align-gt-md-space-between-center, - .layout-align-gt-md-space-around-center, - .md-css-only [layout-align-gt-md="center center"], - .md-css-only [layout-align-gt-md="start center"], - .md-css-only [layout-align-gt-md="end center"], - .md-css-only [layout-align-gt-md="space-between center"], - .md-css-only [layout-align-gt-md="space-around center"] { + .layout-align-gt-md-space-around-center { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; max-width: 100%; } + .layout-align-gt-md-center-center > *, + .layout-align-gt-md-start-center > *, + .layout-align-gt-md-end-center > *, + .layout-align-gt-md-space-between-center > *, + .layout-align-gt-md-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } .layout-align-gt-md-center-end, .layout-align-gt-md-start-end, .layout-align-gt-md-end-end, .layout-align-gt-md-space-between-end, - .layout-align-gt-md-space-around-end, - .md-css-only [layout-align-gt-md="center end"], - .md-css-only [layout-align-gt-md="start end"], - .md-css-only [layout-align-gt-md="end end"], - .md-css-only [layout-align-gt-md="space-between end"], - .md-css-only [layout-align-gt-md="space-around end"] { + .layout-align-gt-md-space-around-end { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - .offset-gt-md-5, - .md-css-only [offset-gt-md="5"] { - margin-left: 5%; } - .offset-gt-md-10, - .md-css-only [offset-gt-md="10"] { - margin-left: 10%; } - .offset-gt-md-15, - .md-css-only [offset-gt-md="15"] { - margin-left: 15%; } - .offset-gt-md-20, - .md-css-only [offset-gt-md="20"] { - margin-left: 20%; } - .offset-gt-md-25, - .md-css-only [offset-gt-md="25"] { - margin-left: 25%; } - .offset-gt-md-30, - .md-css-only [offset-gt-md="30"] { - margin-left: 30%; } - .offset-gt-md-35, - .md-css-only [offset-gt-md="35"] { - margin-left: 35%; } - .offset-gt-md-40, - .md-css-only [offset-gt-md="40"] { - margin-left: 40%; } - .offset-gt-md-45, - .md-css-only [offset-gt-md="45"] { - margin-left: 45%; } - .offset-gt-md-50, - .md-css-only [offset-gt-md="50"] { - margin-left: 50%; } - .offset-gt-md-55, - .md-css-only [offset-gt-md="55"] { - margin-left: 55%; } - .offset-gt-md-60, - .md-css-only [offset-gt-md="60"] { - margin-left: 60%; } - .offset-gt-md-65, - .md-css-only [offset-gt-md="65"] { - margin-left: 65%; } - .offset-gt-md-70, - .md-css-only [offset-gt-md="70"] { - margin-left: 70%; } - .offset-gt-md-75, - .md-css-only [offset-gt-md="75"] { - margin-left: 75%; } - .offset-gt-md-80, - .md-css-only [offset-gt-md="80"] { - margin-left: 80%; } - .offset-gt-md-85, - .md-css-only [offset-gt-md="85"] { - margin-left: 85%; } - .offset-gt-md-90, - .md-css-only [offset-gt-md="90"] { - margin-left: 90%; } - .offset-gt-md-95, - .md-css-only [offset-gt-md="95"] { - margin-left: 95%; } - .offset-gt-md-33, .offset-gt-md-34, - .md-css-only [offset-gt-md="33"], .md-css-only [offset-gt-md="34"] { - margin-left: 34%; } - .offset-gt-md-66, .offset-gt-md-67, - .md-css-only [offset-gt-md="66"], .md-css-only [offset-gt-md="67"] { - margin-left: 66%; } - .flex-order-gt-md--9, .md-css-only .flex-order-gt-md--9 { - -webkit-box-ordinal-group: -8; - -webkit-order: -9; - -ms-flex-order: -9; - order: -9; } - .flex-order-gt-md--8, .md-css-only .flex-order-gt-md--8 { - -webkit-box-ordinal-group: -7; - -webkit-order: -8; - -ms-flex-order: -8; - order: -8; } - .flex-order-gt-md--7, .md-css-only .flex-order-gt-md--7 { - -webkit-box-ordinal-group: -6; - -webkit-order: -7; - -ms-flex-order: -7; - order: -7; } - .flex-order-gt-md--6, .md-css-only .flex-order-gt-md--6 { - -webkit-box-ordinal-group: -5; - -webkit-order: -6; - -ms-flex-order: -6; - order: -6; } - .flex-order-gt-md--5, .md-css-only .flex-order-gt-md--5 { - -webkit-box-ordinal-group: -4; - -webkit-order: -5; - -ms-flex-order: -5; - order: -5; } - .flex-order-gt-md--4, .md-css-only .flex-order-gt-md--4 { - -webkit-box-ordinal-group: -3; - -webkit-order: -4; - -ms-flex-order: -4; - order: -4; } - .flex-order-gt-md--3, .md-css-only .flex-order-gt-md--3 { - -webkit-box-ordinal-group: -2; - -webkit-order: -3; - -ms-flex-order: -3; - order: -3; } - .flex-order-gt-md--2, .md-css-only .flex-order-gt-md--2 { - -webkit-box-ordinal-group: -1; - -webkit-order: -2; - -ms-flex-order: -2; - order: -2; } - .flex-order-gt-md--1, .md-css-only .flex-order-gt-md--1 { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; } - .flex-order-gt-md-0, .md-css-only .flex-order-gt-md-0 { - -webkit-box-ordinal-group: 1; - -webkit-order: 0; - -ms-flex-order: 0; - order: 0; } - .flex-order-gt-md-1, .md-css-only .flex-order-gt-md-1 { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; } - .flex-order-gt-md-2, .md-css-only .flex-order-gt-md-2 { - -webkit-box-ordinal-group: 3; - -webkit-order: 2; - -ms-flex-order: 2; - order: 2; } - .flex-order-gt-md-3, .md-css-only .flex-order-gt-md-3 { - -webkit-box-ordinal-group: 4; - -webkit-order: 3; - -ms-flex-order: 3; - order: 3; } - .flex-order-gt-md-4, .md-css-only .flex-order-gt-md-4 { - -webkit-box-ordinal-group: 5; - -webkit-order: 4; - -ms-flex-order: 4; - order: 4; } - .flex-order-gt-md-5, .md-css-only .flex-order-gt-md-5 { - -webkit-box-ordinal-group: 6; - -webkit-order: 5; - -ms-flex-order: 5; - order: 5; } - .flex-order-gt-md-6, .md-css-only .flex-order-gt-md-6 { - -webkit-box-ordinal-group: 7; - -webkit-order: 6; - -ms-flex-order: 6; - order: 6; } - .flex-order-gt-md-7, .md-css-only .flex-order-gt-md-7 { - -webkit-box-ordinal-group: 8; - -webkit-order: 7; - -ms-flex-order: 7; - order: 7; } - .flex-order-gt-md-8, .md-css-only .flex-order-gt-md-8 { - -webkit-box-ordinal-group: 9; - -webkit-order: 8; - -ms-flex-order: 8; - order: 8; } - .flex-order-gt-md-9, .md-css-only .flex-order-gt-md-9 { - -webkit-box-ordinal-group: 10; - -webkit-order: 9; - -ms-flex-order: 9; - order: 9; } } + .flex-gt-md { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + box-sizing: border-box; } + .flex-gt-md-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } + .flex-gt-md-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } + .flex-gt-md-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } + .flex-gt-md-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } + .flex-gt-md-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-0, + .layout-gt-md-row > .flex-gt-md-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-0, + .layout-gt-md-column > .flex-gt-md-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } + .flex-gt-md-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-5, + .layout-gt-md-row > .flex-gt-md-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-5, + .layout-gt-md-column > .flex-gt-md-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; } + .flex-gt-md-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-10, + .layout-gt-md-row > .flex-gt-md-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-10, + .layout-gt-md-column > .flex-gt-md-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; } + .flex-gt-md-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-15, + .layout-gt-md-row > .flex-gt-md-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-15, + .layout-gt-md-column > .flex-gt-md-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; } + .flex-gt-md-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-20, + .layout-gt-md-row > .flex-gt-md-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-20, + .layout-gt-md-column > .flex-gt-md-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; } + .flex-gt-md-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-25, + .layout-gt-md-row > .flex-gt-md-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-25, + .layout-gt-md-column > .flex-gt-md-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; } + .flex-gt-md-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-30, + .layout-gt-md-row > .flex-gt-md-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-30, + .layout-gt-md-column > .flex-gt-md-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; } + .flex-gt-md-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-35, + .layout-gt-md-row > .flex-gt-md-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-35, + .layout-gt-md-column > .flex-gt-md-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; } + .flex-gt-md-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-40, + .layout-gt-md-row > .flex-gt-md-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-40, + .layout-gt-md-column > .flex-gt-md-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; } + .flex-gt-md-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-45, + .layout-gt-md-row > .flex-gt-md-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-45, + .layout-gt-md-column > .flex-gt-md-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; } + .flex-gt-md-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-50, + .layout-gt-md-row > .flex-gt-md-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-50, + .layout-gt-md-column > .flex-gt-md-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; } + .flex-gt-md-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-55, + .layout-gt-md-row > .flex-gt-md-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-55, + .layout-gt-md-column > .flex-gt-md-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; } + .flex-gt-md-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-60, + .layout-gt-md-row > .flex-gt-md-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-60, + .layout-gt-md-column > .flex-gt-md-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; } + .flex-gt-md-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-65, + .layout-gt-md-row > .flex-gt-md-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-65, + .layout-gt-md-column > .flex-gt-md-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; } + .flex-gt-md-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-70, + .layout-gt-md-row > .flex-gt-md-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-70, + .layout-gt-md-column > .flex-gt-md-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; } + .flex-gt-md-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-75, + .layout-gt-md-row > .flex-gt-md-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-75, + .layout-gt-md-column > .flex-gt-md-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; } + .flex-gt-md-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-80, + .layout-gt-md-row > .flex-gt-md-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-80, + .layout-gt-md-column > .flex-gt-md-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; } + .flex-gt-md-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-85, + .layout-gt-md-row > .flex-gt-md-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-85, + .layout-gt-md-column > .flex-gt-md-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; } + .flex-gt-md-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-90, + .layout-gt-md-row > .flex-gt-md-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-90, + .layout-gt-md-column > .flex-gt-md-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; } + .flex-gt-md-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-95, + .layout-gt-md-row > .flex-gt-md-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-95, + .layout-gt-md-column > .flex-gt-md-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; } + .flex-gt-md-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-100, + .layout-gt-md-row > .flex-gt-md-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-100, + .layout-gt-md-column > .flex-gt-md-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-33, .layout-row > .flex-gt-md-33, .layout-gt-md-row > .flex-gt-md-33, .layout-gt-md-row > .flex-gt-md-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 33%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-34, .layout-row > .flex-gt-md-34, .layout-gt-md-row > .flex-gt-md-34, .layout-gt-md-row > .flex-gt-md-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 34%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-66, .layout-row > .flex-gt-md-66, .layout-gt-md-row > .flex-gt-md-66, .layout-gt-md-row > .flex-gt-md-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 66%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-md-67, .layout-row > .flex-gt-md-67, .layout-gt-md-row > .flex-gt-md-67, .layout-gt-md-row > .flex-gt-md-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 67%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-33, .layout-column > .flex-gt-md-33, .layout-gt-md-column > .flex-gt-md-33, .layout-gt-md-column > .flex-gt-md-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 100%; + max-height: 33%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-34, .layout-column > .flex-gt-md-34, .layout-gt-md-column > .flex-gt-md-34, .layout-gt-md-column > .flex-gt-md-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 100%; + max-height: 34%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-66, .layout-column > .flex-gt-md-66, .layout-gt-md-column > .flex-gt-md-66, .layout-gt-md-column > .flex-gt-md-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 100%; + max-height: 66%; + box-sizing: border-box; } + .layout-column > .flex-gt-md-67, .layout-column > .flex-gt-md-67, .layout-gt-md-column > .flex-gt-md-67, .layout-gt-md-column > .flex-gt-md-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 100%; + max-height: 67%; + box-sizing: border-box; } + .layout-gt-md, .layout-gt-md-column, .layout-gt-md-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .layout-gt-md-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .layout-gt-md-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } } @media (min-width: 1024px) and (max-width: 1279px) { .hide:not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show), .hide-gt-sm:not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show), .hide-gt-md:not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show) { display: none; } .hide-lg:not(.show-lg):not(.show) { display: none; } - .md-css-only [hide]:not([show-gt-sm]):not([show-gt-md]):not([show-lg]):not([show]), .md-css-only [hide-gt-sm]:not([show-gt-sm]):not([show-gt-md]):not([show-lg]):not([show]), .md-css-only [hide-gt-md]:not([show-gt-sm]):not([show-gt-md]):not([show-lg]):not([show]) { - display: none; } - .md-css-only [hide-lg]:not([show-lg]):not([show]) { - display: none; } - .layout-lg, .md-css-only [layout-lg] { - box-sizing: border-box; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } - .layout-lg-column, - .md-css-only [layout-lg=column] { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - .layout-lg-row, - .md-css-only [layout-lg=row] { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .flex-lg, .md-css-only [flex-lg] { - box-sizing: border-box; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; } - .flex-lg-5, - .md-css-only [flex-lg="5"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 5%; - -ms-flex: 0 0 5%; - flex: 0 0 5%; } - .layout-lg-row > .flex-lg-5, - .md-css-only [layout="row"] > .md-css-only [flex-lg="5"] { - max-width: 5%; - max-height: 100%; } - .layout-lg-column > .flex-lg-5, - .md-css-only [layout="column"] > .md-css-only [flex-lg="5"] { - max-height: 5%; - max-width: 100%; } - .flex-lg-10, - .md-css-only [flex-lg="10"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; } - .layout-lg-row > .flex-lg-10, - .md-css-only [layout="row"] > .md-css-only [flex-lg="10"] { - max-width: 10%; - max-height: 100%; } - .layout-lg-column > .flex-lg-10, - .md-css-only [layout="column"] > .md-css-only [flex-lg="10"] { - max-height: 10%; - max-width: 100%; } - .flex-lg-15, - .md-css-only [flex-lg="15"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 15%; - -ms-flex: 0 0 15%; - flex: 0 0 15%; } - .layout-lg-row > .flex-lg-15, - .md-css-only [layout="row"] > .md-css-only [flex-lg="15"] { - max-width: 15%; - max-height: 100%; } - .layout-lg-column > .flex-lg-15, - .md-css-only [layout="column"] > .md-css-only [flex-lg="15"] { - max-height: 15%; - max-width: 100%; } - .flex-lg-20, - .md-css-only [flex-lg="20"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; } - .layout-lg-row > .flex-lg-20, - .md-css-only [layout="row"] > .md-css-only [flex-lg="20"] { - max-width: 20%; - max-height: 100%; } - .layout-lg-column > .flex-lg-20, - .md-css-only [layout="column"] > .md-css-only [flex-lg="20"] { - max-height: 20%; - max-width: 100%; } - .flex-lg-25, - .md-css-only [flex-lg="25"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; } - .layout-lg-row > .flex-lg-25, - .md-css-only [layout="row"] > .md-css-only [flex-lg="25"] { - max-width: 25%; - max-height: 100%; } - .layout-lg-column > .flex-lg-25, - .md-css-only [layout="column"] > .md-css-only [flex-lg="25"] { - max-height: 25%; - max-width: 100%; } - .flex-lg-30, - .md-css-only [flex-lg="30"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 30%; - -ms-flex: 0 0 30%; - flex: 0 0 30%; } - .layout-lg-row > .flex-lg-30, - .md-css-only [layout="row"] > .md-css-only [flex-lg="30"] { - max-width: 30%; - max-height: 100%; } - .layout-lg-column > .flex-lg-30, - .md-css-only [layout="column"] > .md-css-only [flex-lg="30"] { - max-height: 30%; - max-width: 100%; } - .flex-lg-35, - .md-css-only [flex-lg="35"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 35%; - -ms-flex: 0 0 35%; - flex: 0 0 35%; } - .layout-lg-row > .flex-lg-35, - .md-css-only [layout="row"] > .md-css-only [flex-lg="35"] { - max-width: 35%; - max-height: 100%; } - .layout-lg-column > .flex-lg-35, - .md-css-only [layout="column"] > .md-css-only [flex-lg="35"] { - max-height: 35%; - max-width: 100%; } - .flex-lg-40, - .md-css-only [flex-lg="40"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 40%; - -ms-flex: 0 0 40%; - flex: 0 0 40%; } - .layout-lg-row > .flex-lg-40, - .md-css-only [layout="row"] > .md-css-only [flex-lg="40"] { - max-width: 40%; - max-height: 100%; } - .layout-lg-column > .flex-lg-40, - .md-css-only [layout="column"] > .md-css-only [flex-lg="40"] { - max-height: 40%; - max-width: 100%; } - .flex-lg-45, - .md-css-only [flex-lg="45"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 45%; - -ms-flex: 0 0 45%; - flex: 0 0 45%; } - .layout-lg-row > .flex-lg-45, - .md-css-only [layout="row"] > .md-css-only [flex-lg="45"] { - max-width: 45%; - max-height: 100%; } - .layout-lg-column > .flex-lg-45, - .md-css-only [layout="column"] > .md-css-only [flex-lg="45"] { - max-height: 45%; - max-width: 100%; } - .flex-lg-50, - .md-css-only [flex-lg="50"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; } - .layout-lg-row > .flex-lg-50, - .md-css-only [layout="row"] > .md-css-only [flex-lg="50"] { - max-width: 50%; - max-height: 100%; } - .layout-lg-column > .flex-lg-50, - .md-css-only [layout="column"] > .md-css-only [flex-lg="50"] { - max-height: 50%; - max-width: 100%; } - .flex-lg-55, - .md-css-only [flex-lg="55"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 55%; - -ms-flex: 0 0 55%; - flex: 0 0 55%; } - .layout-lg-row > .flex-lg-55, - .md-css-only [layout="row"] > .md-css-only [flex-lg="55"] { - max-width: 55%; - max-height: 100%; } - .layout-lg-column > .flex-lg-55, - .md-css-only [layout="column"] > .md-css-only [flex-lg="55"] { - max-height: 55%; - max-width: 100%; } - .flex-lg-60, - .md-css-only [flex-lg="60"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 60%; - -ms-flex: 0 0 60%; - flex: 0 0 60%; } - .layout-lg-row > .flex-lg-60, - .md-css-only [layout="row"] > .md-css-only [flex-lg="60"] { - max-width: 60%; - max-height: 100%; } - .layout-lg-column > .flex-lg-60, - .md-css-only [layout="column"] > .md-css-only [flex-lg="60"] { - max-height: 60%; - max-width: 100%; } - .flex-lg-65, - .md-css-only [flex-lg="65"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 65%; - -ms-flex: 0 0 65%; - flex: 0 0 65%; } - .layout-lg-row > .flex-lg-65, - .md-css-only [layout="row"] > .md-css-only [flex-lg="65"] { - max-width: 65%; - max-height: 100%; } - .layout-lg-column > .flex-lg-65, - .md-css-only [layout="column"] > .md-css-only [flex-lg="65"] { - max-height: 65%; - max-width: 100%; } - .flex-lg-70, - .md-css-only [flex-lg="70"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 70%; - -ms-flex: 0 0 70%; - flex: 0 0 70%; } - .layout-lg-row > .flex-lg-70, - .md-css-only [layout="row"] > .md-css-only [flex-lg="70"] { - max-width: 70%; - max-height: 100%; } - .layout-lg-column > .flex-lg-70, - .md-css-only [layout="column"] > .md-css-only [flex-lg="70"] { - max-height: 70%; - max-width: 100%; } - .flex-lg-75, - .md-css-only [flex-lg="75"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; } - .layout-lg-row > .flex-lg-75, - .md-css-only [layout="row"] > .md-css-only [flex-lg="75"] { - max-width: 75%; - max-height: 100%; } - .layout-lg-column > .flex-lg-75, - .md-css-only [layout="column"] > .md-css-only [flex-lg="75"] { - max-height: 75%; - max-width: 100%; } - .flex-lg-80, - .md-css-only [flex-lg="80"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; } - .layout-lg-row > .flex-lg-80, - .md-css-only [layout="row"] > .md-css-only [flex-lg="80"] { - max-width: 80%; - max-height: 100%; } - .layout-lg-column > .flex-lg-80, - .md-css-only [layout="column"] > .md-css-only [flex-lg="80"] { - max-height: 80%; - max-width: 100%; } - .flex-lg-85, - .md-css-only [flex-lg="85"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 85%; - -ms-flex: 0 0 85%; - flex: 0 0 85%; } - .layout-lg-row > .flex-lg-85, - .md-css-only [layout="row"] > .md-css-only [flex-lg="85"] { - max-width: 85%; - max-height: 100%; } - .layout-lg-column > .flex-lg-85, - .md-css-only [layout="column"] > .md-css-only [flex-lg="85"] { - max-height: 85%; - max-width: 100%; } - .flex-lg-90, - .md-css-only [flex-lg="90"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; } - .layout-lg-row > .flex-lg-90, - .md-css-only [layout="row"] > .md-css-only [flex-lg="90"] { - max-width: 90%; - max-height: 100%; } - .layout-lg-column > .flex-lg-90, - .md-css-only [layout="column"] > .md-css-only [flex-lg="90"] { - max-height: 90%; - max-width: 100%; } - .flex-lg-95, - .md-css-only [flex-lg="95"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 95%; - -ms-flex: 0 0 95%; - flex: 0 0 95%; } - .layout-lg-row > .flex-lg-95, - .md-css-only [layout="row"] > .md-css-only [flex-lg="95"] { - max-width: 95%; - max-height: 100%; } - .layout-lg-column > .flex-lg-95, - .md-css-only [layout="column"] > .md-css-only [flex-lg="95"] { - max-height: 95%; - max-width: 100%; } - .flex-lg-100, - .md-css-only [flex-lg="100"] { - -webkit-box-flex: 0; - -webkit-flex: 0 0 100%; - -ms-flex: 0 0 100%; - flex: 0 0 100%; } - .layout-lg-row > .flex-lg-100, - .md-css-only [layout="row"] > .md-css-only [flex-lg="100"] { - max-width: 100%; - max-height: 100%; } - .layout-lg-column > .flex-lg-100, - .md-css-only [layout="column"] > .md-css-only [flex-lg="100"] { - max-height: 100%; - max-width: 100%; } - .flex-lg-33, .flex-lg-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33%; - -ms-flex: 0 0 33%; - flex: 0 0 33%; - max-width: 33%; - max-height: 100%; } - .flex-lg-66, .flex-lg-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 67%; - -ms-flex: 0 0 67%; - flex: 0 0 67%; - max-width: 67%; - max-height: 100%; } - .layout-lg-row > .flex-lg-33, .layout-lg-row > .flex-lg-34, .md-css-only [layout="row"] > .flex-lg-33, .md-css-only [layout="row"] > .flex-lg-34 { - max-width: 33%; - max-height: 100%; } - .layout-lg-row > .flex-lg-66, .layout-lg-row > .flex-lg-67, .md-css-only [layout="row"] > .flex-lg-66, .md-css-only [layout="row"] > .flex-lg-67 { - max-width: 67%; - max-height: 100%; } - .layout-lg-column > .flex-lg-33, .layout-lg-column > .flex-lg-34, .md-css-only [layout="column"] > .flex-lg-33, .md-css-only [layout="column"] > .flex-lg-34 { - max-height: 33%; - max-width: 100%; } - .layout-lg-column > .flex-lg-66, .layout-lg-column > .flex-lg-67, .md-css-only [layout="column"] > .flex-lg-66, .md-css-only [layout="column"] > .flex-lg-67 { - max-height: 67%; - max-width: 100%; } - .layout-align-lg-center, .layout-align-lg-center-center, + .flex-order-lg-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + .flex-order-lg-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .flex-order-lg-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .flex-order-lg-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .flex-order-lg-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .flex-order-lg-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .flex-order-lg-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .flex-order-lg-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .flex-order-lg-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .flex-order-lg-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .flex-order-lg-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .flex-order-lg-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .flex-order-lg-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + .flex-order-lg-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + .flex-order-lg-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + .flex-order-lg-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + .flex-order-lg-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + .flex-order-lg-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + .flex-order-lg-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + .flex-order-lg-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + .offset-lg-0, .flex-offset-lg-0 { + margin-left: 0%; } + .offset-lg-5, .flex-offset-lg-5 { + margin-left: 5%; } + .offset-lg-10, .flex-offset-lg-10 { + margin-left: 10%; } + .offset-lg-15, .flex-offset-lg-15 { + margin-left: 15%; } + .offset-lg-20, .flex-offset-lg-20 { + margin-left: 20%; } + .offset-lg-25, .flex-offset-lg-25 { + margin-left: 25%; } + .offset-lg-30, .flex-offset-lg-30 { + margin-left: 30%; } + .offset-lg-35, .flex-offset-lg-35 { + margin-left: 35%; } + .offset-lg-40, .flex-offset-lg-40 { + margin-left: 40%; } + .offset-lg-45, .flex-offset-lg-45 { + margin-left: 45%; } + .offset-lg-50, .flex-offset-lg-50 { + margin-left: 50%; } + .offset-lg-55, .flex-offset-lg-55 { + margin-left: 55%; } + .offset-lg-60, .flex-offset-lg-60 { + margin-left: 60%; } + .offset-lg-65, .flex-offset-lg-65 { + margin-left: 65%; } + .offset-lg-70, .flex-offset-lg-70 { + margin-left: 70%; } + .offset-lg-75, .flex-offset-lg-75 { + margin-left: 75%; } + .offset-lg-80, .flex-offset-lg-80 { + margin-left: 80%; } + .offset-lg-85, .flex-offset-lg-85 { + margin-left: 85%; } + .offset-lg-90, .flex-offset-lg-90 { + margin-left: 90%; } + .offset-lg-95, .flex-offset-lg-95 { + margin-left: 95%; } + .offset-lg-33, .flex-offset-lg-33 { + margin-left: 33%; } + .offset-lg-34, .flex-offset-lg-34 { + margin-left: 34%; } + .offset-lg-66, .flex-offset-lg-66 { + margin-left: 66%; } + .offset-lg-67, .flex-offset-lg-67 { + margin-left: 67%; } + .layout-align-lg-center, + .layout-align-lg-center-center, .layout-align-lg-center-start, - .layout-align-lg-center-end, - .md-css-only [layout-align-lg="center"], - .md-css-only [layout-align-lg="center center"], - .md-css-only [layout-align-lg="center start"], - .md-css-only [layout-align-lg="center end"] { + .layout-align-lg-center-end { -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } - .layout-align-lg-end, .layout-align-lg-end-center, + .layout-align-lg-end, + .layout-align-lg-end-center, .layout-align-lg-end-start, - .layout-align-lg-end-end, - .md-css-only [layout-align-lg="end"], .md-css-only [layout-align-lg="end center"], - .md-css-only [layout-align-lg="end start"], - .md-css-only [layout-align-lg="end end"] { + .layout-align-lg-end-end { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; justify-content: flex-end; } - .layout-align-lg-space-around, .layout-align-lg-space-around-center, + .layout-align-lg-space-around, + .layout-align-lg-space-around-center, .layout-align-lg-space-around-start, - .layout-align-lg-space-around-end, - .md-css-only [layout-align-lg="space-around"], .md-css-only [layout-align-lg="space-around center"], - .md-css-only [layout-align-lg="space-around start"], - .md-css-only [layout-align-lg="space-around end"] { + .layout-align-lg-space-around-end { -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; } - .layout-align-lg-space-between, .layout-align-lg-space-between-center, + .layout-align-lg-space-between, + .layout-align-lg-space-between-center, .layout-align-lg-space-between-start, - .layout-align-lg-space-between-end, - .md-css-only [layout-align-lg="space-between"], .md-css-only [layout-align-lg="space-between center"], - .md-css-only [layout-align-lg="space-between start"], - .md-css-only [layout-align-lg="space-between end"] { + .layout-align-lg-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; @@ -3710,12 +4993,7 @@ html * { .layout-align-lg-start-start, .layout-align-lg-end-start, .layout-align-lg-space-between-start, - .layout-align-lg-space-around-start, - .md-css-only [layout-align-lg="center start"], - .md-css-only [layout-align-lg="start start"], - .md-css-only [layout-align-lg="end start"], - .md-css-only [layout-align-lg="space-between start"], - .md-css-only [layout-align-lg="space-around start"] { + .layout-align-lg-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; @@ -3724,566 +5002,865 @@ html * { .layout-align-lg-start-center, .layout-align-lg-end-center, .layout-align-lg-space-between-center, - .layout-align-lg-space-around-center, - .md-css-only [layout-align-lg="center center"], - .md-css-only [layout-align-lg="start center"], - .md-css-only [layout-align-lg="end center"], - .md-css-only [layout-align-lg="space-between center"], - .md-css-only [layout-align-lg="space-around center"] { + .layout-align-lg-space-around-center { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; max-width: 100%; } + .layout-align-lg-center-center > *, + .layout-align-lg-start-center > *, + .layout-align-lg-end-center > *, + .layout-align-lg-space-between-center > *, + .layout-align-lg-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } .layout-align-lg-center-end, .layout-align-lg-start-end, .layout-align-lg-end-end, .layout-align-lg-space-between-end, - .layout-align-lg-space-around-end, - .md-css-only [layout-align-lg="center end"], - .md-css-only [layout-align-lg="start end"], - .md-css-only [layout-align-lg="end end"], - .md-css-only [layout-align-lg="space-between end"], - .md-css-only [layout-align-lg="space-around end"] { + .layout-align-lg-space-around-end { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - .offset-lg-5, - .md-css-only [offset-lg="5"] { - margin-left: 5%; } - .offset-lg-10, - .md-css-only [offset-lg="10"] { - margin-left: 10%; } - .offset-lg-15, - .md-css-only [offset-lg="15"] { - margin-left: 15%; } - .offset-lg-20, - .md-css-only [offset-lg="20"] { - margin-left: 20%; } - .offset-lg-25, - .md-css-only [offset-lg="25"] { - margin-left: 25%; } - .offset-lg-30, - .md-css-only [offset-lg="30"] { - margin-left: 30%; } - .offset-lg-35, - .md-css-only [offset-lg="35"] { - margin-left: 35%; } - .offset-lg-40, - .md-css-only [offset-lg="40"] { - margin-left: 40%; } - .offset-lg-45, - .md-css-only [offset-lg="45"] { - margin-left: 45%; } - .offset-lg-50, - .md-css-only [offset-lg="50"] { - margin-left: 50%; } - .offset-lg-55, - .md-css-only [offset-lg="55"] { - margin-left: 55%; } - .offset-lg-60, - .md-css-only [offset-lg="60"] { - margin-left: 60%; } - .offset-lg-65, - .md-css-only [offset-lg="65"] { - margin-left: 65%; } - .offset-lg-70, - .md-css-only [offset-lg="70"] { - margin-left: 70%; } - .offset-lg-75, - .md-css-only [offset-lg="75"] { - margin-left: 75%; } - .offset-lg-80, - .md-css-only [offset-lg="80"] { - margin-left: 80%; } - .offset-lg-85, - .md-css-only [offset-lg="85"] { - margin-left: 85%; } - .offset-lg-90, - .md-css-only [offset-lg="90"] { - margin-left: 90%; } - .offset-lg-95, - .md-css-only [offset-lg="95"] { - margin-left: 95%; } - .offset-lg-33, .offset-lg-34, - .md-css-only [offset-lg="33"], .md-css-only [offset-lg="34"] { - margin-left: 34%; } - .offset-lg-66, .offset-lg-67, - .md-css-only [offset-lg="66"], .md-css-only [offset-lg="67"] { - margin-left: 66%; } - .flex-order-lg--9, .md-css-only .flex-order-lg--9 { - -webkit-box-ordinal-group: -8; - -webkit-order: -9; - -ms-flex-order: -9; - order: -9; } - .flex-order-lg--8, .md-css-only .flex-order-lg--8 { - -webkit-box-ordinal-group: -7; - -webkit-order: -8; - -ms-flex-order: -8; - order: -8; } - .flex-order-lg--7, .md-css-only .flex-order-lg--7 { - -webkit-box-ordinal-group: -6; - -webkit-order: -7; - -ms-flex-order: -7; - order: -7; } - .flex-order-lg--6, .md-css-only .flex-order-lg--6 { - -webkit-box-ordinal-group: -5; - -webkit-order: -6; - -ms-flex-order: -6; - order: -6; } - .flex-order-lg--5, .md-css-only .flex-order-lg--5 { - -webkit-box-ordinal-group: -4; - -webkit-order: -5; - -ms-flex-order: -5; - order: -5; } - .flex-order-lg--4, .md-css-only .flex-order-lg--4 { - -webkit-box-ordinal-group: -3; - -webkit-order: -4; - -ms-flex-order: -4; - order: -4; } - .flex-order-lg--3, .md-css-only .flex-order-lg--3 { - -webkit-box-ordinal-group: -2; - -webkit-order: -3; - -ms-flex-order: -3; - order: -3; } - .flex-order-lg--2, .md-css-only .flex-order-lg--2 { - -webkit-box-ordinal-group: -1; - -webkit-order: -2; - -ms-flex-order: -2; - order: -2; } - .flex-order-lg--1, .md-css-only .flex-order-lg--1 { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; } - .flex-order-lg-0, .md-css-only .flex-order-lg-0 { - -webkit-box-ordinal-group: 1; - -webkit-order: 0; - -ms-flex-order: 0; - order: 0; } - .flex-order-lg-1, .md-css-only .flex-order-lg-1 { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; } - .flex-order-lg-2, .md-css-only .flex-order-lg-2 { - -webkit-box-ordinal-group: 3; - -webkit-order: 2; - -ms-flex-order: 2; - order: 2; } - .flex-order-lg-3, .md-css-only .flex-order-lg-3 { - -webkit-box-ordinal-group: 4; - -webkit-order: 3; - -ms-flex-order: 3; - order: 3; } - .flex-order-lg-4, .md-css-only .flex-order-lg-4 { - -webkit-box-ordinal-group: 5; - -webkit-order: 4; - -ms-flex-order: 4; - order: 4; } - .flex-order-lg-5, .md-css-only .flex-order-lg-5 { - -webkit-box-ordinal-group: 6; - -webkit-order: 5; - -ms-flex-order: 5; - order: 5; } - .flex-order-lg-6, .md-css-only .flex-order-lg-6 { - -webkit-box-ordinal-group: 7; - -webkit-order: 6; - -ms-flex-order: 6; - order: 6; } - .flex-order-lg-7, .md-css-only .flex-order-lg-7 { - -webkit-box-ordinal-group: 8; - -webkit-order: 7; - -ms-flex-order: 7; - order: 7; } - .flex-order-lg-8, .md-css-only .flex-order-lg-8 { - -webkit-box-ordinal-group: 9; - -webkit-order: 8; - -ms-flex-order: 8; - order: 8; } - .flex-order-lg-9, .md-css-only .flex-order-lg-9 { - -webkit-box-ordinal-group: 10; - -webkit-order: 9; - -ms-flex-order: 9; - order: 9; } } - -@media (min-width: 1280px) { - .hide-gt-sm:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide-gt-md:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide-gt-lg:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show) { - display: none; } - .md-css-only [hide-gt-sm]:not([show-gt-sm]):not([show-gt-md]):not([show-gt-lg]):not([show]), .md-css-only [hide-gt-md]:not([show-gt-sm]):not([show-gt-md]):not([show-gt-lg]):not([show]), .md-css-only [hide-gt-lg]:not([show-gt-sm]):not([show-gt-md]):not([show-gt-lg]):not([show]), .md-css-only [hide]:not([show-gt-sm]):not([show-gt-md]):not([show-gt-lg]):not([show]) { - display: none; } - .layout-gt-lg, .md-css-only [layout-gt-lg] { - box-sizing: border-box; - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; } - .layout-gt-lg-column, - .md-css-only [layout-gt-lg=column] { - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - .layout-gt-lg-row, - .md-css-only [layout-gt-lg=row] { - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - .flex-gt-lg, .md-css-only [flex-gt-lg] { - box-sizing: border-box; + .flex-lg { -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; - flex: 1; } - .flex-gt-lg-5, - .md-css-only [flex-gt-lg="5"] { + flex: 1; + box-sizing: border-box; } + .flex-lg-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } + .flex-lg-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } + .flex-lg-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } + .flex-lg-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } + .flex-lg-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-0, + .layout-lg-row > .flex-lg-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-0, + .layout-lg-column > .flex-lg-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } + .flex-lg-5 { -webkit-box-flex: 0; -webkit-flex: 0 0 5%; -ms-flex: 0 0 5%; - flex: 0 0 5%; } - .layout-gt-lg-row > .flex-gt-lg-5, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="5"] { + flex: 0 0 5%; max-width: 5%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-5, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="5"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-5, + .layout-lg-row > .flex-lg-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-5, + .layout-lg-column > .flex-lg-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 100%; max-height: 5%; - max-width: 100%; } - .flex-gt-lg-10, - .md-css-only [flex-gt-lg="10"] { + box-sizing: border-box; } + .flex-lg-10 { -webkit-box-flex: 0; -webkit-flex: 0 0 10%; -ms-flex: 0 0 10%; - flex: 0 0 10%; } - .layout-gt-lg-row > .flex-gt-lg-10, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="10"] { + flex: 0 0 10%; max-width: 10%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-10, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="10"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-10, + .layout-lg-row > .flex-lg-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-10, + .layout-lg-column > .flex-lg-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 100%; max-height: 10%; - max-width: 100%; } - .flex-gt-lg-15, - .md-css-only [flex-gt-lg="15"] { + box-sizing: border-box; } + .flex-lg-15 { -webkit-box-flex: 0; -webkit-flex: 0 0 15%; -ms-flex: 0 0 15%; - flex: 0 0 15%; } - .layout-gt-lg-row > .flex-gt-lg-15, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="15"] { + flex: 0 0 15%; max-width: 15%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-15, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="15"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-15, + .layout-lg-row > .flex-lg-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-15, + .layout-lg-column > .flex-lg-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 100%; max-height: 15%; - max-width: 100%; } - .flex-gt-lg-20, - .md-css-only [flex-gt-lg="20"] { + box-sizing: border-box; } + .flex-lg-20 { -webkit-box-flex: 0; -webkit-flex: 0 0 20%; -ms-flex: 0 0 20%; - flex: 0 0 20%; } - .layout-gt-lg-row > .flex-gt-lg-20, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="20"] { + flex: 0 0 20%; max-width: 20%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-20, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="20"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-20, + .layout-lg-row > .flex-lg-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-20, + .layout-lg-column > .flex-lg-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 100%; max-height: 20%; - max-width: 100%; } - .flex-gt-lg-25, - .md-css-only [flex-gt-lg="25"] { + box-sizing: border-box; } + .flex-lg-25 { -webkit-box-flex: 0; -webkit-flex: 0 0 25%; -ms-flex: 0 0 25%; - flex: 0 0 25%; } - .layout-gt-lg-row > .flex-gt-lg-25, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="25"] { + flex: 0 0 25%; max-width: 25%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-25, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="25"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-25, + .layout-lg-row > .flex-lg-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-25, + .layout-lg-column > .flex-lg-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 100%; max-height: 25%; - max-width: 100%; } - .flex-gt-lg-30, - .md-css-only [flex-gt-lg="30"] { + box-sizing: border-box; } + .flex-lg-30 { -webkit-box-flex: 0; -webkit-flex: 0 0 30%; -ms-flex: 0 0 30%; - flex: 0 0 30%; } - .layout-gt-lg-row > .flex-gt-lg-30, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="30"] { + flex: 0 0 30%; max-width: 30%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-30, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="30"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-30, + .layout-lg-row > .flex-lg-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-30, + .layout-lg-column > .flex-lg-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 100%; max-height: 30%; - max-width: 100%; } - .flex-gt-lg-35, - .md-css-only [flex-gt-lg="35"] { + box-sizing: border-box; } + .flex-lg-35 { -webkit-box-flex: 0; -webkit-flex: 0 0 35%; -ms-flex: 0 0 35%; - flex: 0 0 35%; } - .layout-gt-lg-row > .flex-gt-lg-35, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="35"] { + flex: 0 0 35%; max-width: 35%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-35, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="35"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-35, + .layout-lg-row > .flex-lg-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-35, + .layout-lg-column > .flex-lg-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 100%; max-height: 35%; - max-width: 100%; } - .flex-gt-lg-40, - .md-css-only [flex-gt-lg="40"] { + box-sizing: border-box; } + .flex-lg-40 { -webkit-box-flex: 0; -webkit-flex: 0 0 40%; -ms-flex: 0 0 40%; - flex: 0 0 40%; } - .layout-gt-lg-row > .flex-gt-lg-40, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="40"] { + flex: 0 0 40%; max-width: 40%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-40, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="40"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-40, + .layout-lg-row > .flex-lg-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-40, + .layout-lg-column > .flex-lg-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 100%; max-height: 40%; - max-width: 100%; } - .flex-gt-lg-45, - .md-css-only [flex-gt-lg="45"] { + box-sizing: border-box; } + .flex-lg-45 { -webkit-box-flex: 0; -webkit-flex: 0 0 45%; -ms-flex: 0 0 45%; - flex: 0 0 45%; } - .layout-gt-lg-row > .flex-gt-lg-45, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="45"] { + flex: 0 0 45%; max-width: 45%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-45, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="45"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-45, + .layout-lg-row > .flex-lg-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-45, + .layout-lg-column > .flex-lg-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 100%; max-height: 45%; - max-width: 100%; } - .flex-gt-lg-50, - .md-css-only [flex-gt-lg="50"] { + box-sizing: border-box; } + .flex-lg-50 { -webkit-box-flex: 0; -webkit-flex: 0 0 50%; -ms-flex: 0 0 50%; - flex: 0 0 50%; } - .layout-gt-lg-row > .flex-gt-lg-50, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="50"] { + flex: 0 0 50%; max-width: 50%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-50, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="50"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-50, + .layout-lg-row > .flex-lg-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-50, + .layout-lg-column > .flex-lg-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 100%; max-height: 50%; - max-width: 100%; } - .flex-gt-lg-55, - .md-css-only [flex-gt-lg="55"] { + box-sizing: border-box; } + .flex-lg-55 { -webkit-box-flex: 0; -webkit-flex: 0 0 55%; -ms-flex: 0 0 55%; - flex: 0 0 55%; } - .layout-gt-lg-row > .flex-gt-lg-55, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="55"] { + flex: 0 0 55%; max-width: 55%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-55, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="55"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-55, + .layout-lg-row > .flex-lg-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-55, + .layout-lg-column > .flex-lg-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 100%; max-height: 55%; - max-width: 100%; } - .flex-gt-lg-60, - .md-css-only [flex-gt-lg="60"] { + box-sizing: border-box; } + .flex-lg-60 { -webkit-box-flex: 0; -webkit-flex: 0 0 60%; -ms-flex: 0 0 60%; - flex: 0 0 60%; } - .layout-gt-lg-row > .flex-gt-lg-60, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="60"] { + flex: 0 0 60%; max-width: 60%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-60, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="60"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-60, + .layout-lg-row > .flex-lg-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-60, + .layout-lg-column > .flex-lg-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 100%; max-height: 60%; - max-width: 100%; } - .flex-gt-lg-65, - .md-css-only [flex-gt-lg="65"] { + box-sizing: border-box; } + .flex-lg-65 { -webkit-box-flex: 0; -webkit-flex: 0 0 65%; -ms-flex: 0 0 65%; - flex: 0 0 65%; } - .layout-gt-lg-row > .flex-gt-lg-65, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="65"] { + flex: 0 0 65%; max-width: 65%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-65, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="65"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-65, + .layout-lg-row > .flex-lg-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-65, + .layout-lg-column > .flex-lg-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 100%; max-height: 65%; - max-width: 100%; } - .flex-gt-lg-70, - .md-css-only [flex-gt-lg="70"] { + box-sizing: border-box; } + .flex-lg-70 { -webkit-box-flex: 0; -webkit-flex: 0 0 70%; -ms-flex: 0 0 70%; - flex: 0 0 70%; } - .layout-gt-lg-row > .flex-gt-lg-70, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="70"] { + flex: 0 0 70%; max-width: 70%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-70, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="70"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-70, + .layout-lg-row > .flex-lg-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-70, + .layout-lg-column > .flex-lg-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 100%; max-height: 70%; - max-width: 100%; } - .flex-gt-lg-75, - .md-css-only [flex-gt-lg="75"] { + box-sizing: border-box; } + .flex-lg-75 { -webkit-box-flex: 0; -webkit-flex: 0 0 75%; -ms-flex: 0 0 75%; - flex: 0 0 75%; } - .layout-gt-lg-row > .flex-gt-lg-75, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="75"] { + flex: 0 0 75%; max-width: 75%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-75, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="75"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-75, + .layout-lg-row > .flex-lg-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-75, + .layout-lg-column > .flex-lg-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 100%; max-height: 75%; - max-width: 100%; } - .flex-gt-lg-80, - .md-css-only [flex-gt-lg="80"] { + box-sizing: border-box; } + .flex-lg-80 { -webkit-box-flex: 0; -webkit-flex: 0 0 80%; -ms-flex: 0 0 80%; - flex: 0 0 80%; } - .layout-gt-lg-row > .flex-gt-lg-80, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="80"] { + flex: 0 0 80%; max-width: 80%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-80, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="80"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-80, + .layout-lg-row > .flex-lg-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-80, + .layout-lg-column > .flex-lg-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 100%; max-height: 80%; - max-width: 100%; } - .flex-gt-lg-85, - .md-css-only [flex-gt-lg="85"] { + box-sizing: border-box; } + .flex-lg-85 { -webkit-box-flex: 0; -webkit-flex: 0 0 85%; -ms-flex: 0 0 85%; - flex: 0 0 85%; } - .layout-gt-lg-row > .flex-gt-lg-85, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="85"] { + flex: 0 0 85%; max-width: 85%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-85, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="85"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-85, + .layout-lg-row > .flex-lg-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-85, + .layout-lg-column > .flex-lg-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 100%; max-height: 85%; - max-width: 100%; } - .flex-gt-lg-90, - .md-css-only [flex-gt-lg="90"] { + box-sizing: border-box; } + .flex-lg-90 { -webkit-box-flex: 0; -webkit-flex: 0 0 90%; -ms-flex: 0 0 90%; - flex: 0 0 90%; } - .layout-gt-lg-row > .flex-gt-lg-90, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="90"] { + flex: 0 0 90%; max-width: 90%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-90, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="90"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-90, + .layout-lg-row > .flex-lg-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-90, + .layout-lg-column > .flex-lg-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 100%; max-height: 90%; - max-width: 100%; } - .flex-gt-lg-95, - .md-css-only [flex-gt-lg="95"] { + box-sizing: border-box; } + .flex-lg-95 { -webkit-box-flex: 0; -webkit-flex: 0 0 95%; -ms-flex: 0 0 95%; - flex: 0 0 95%; } - .layout-gt-lg-row > .flex-gt-lg-95, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="95"] { + flex: 0 0 95%; max-width: 95%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-95, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="95"] { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-95, + .layout-lg-row > .flex-lg-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-95, + .layout-lg-column > .flex-lg-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 100%; max-height: 95%; - max-width: 100%; } - .flex-gt-lg-100, - .md-css-only [flex-gt-lg="100"] { + box-sizing: border-box; } + .flex-lg-100 { -webkit-box-flex: 0; -webkit-flex: 0 0 100%; -ms-flex: 0 0 100%; - flex: 0 0 100%; } - .layout-gt-lg-row > .flex-gt-lg-100, - .md-css-only [layout="row"] > .md-css-only [flex-gt-lg="100"] { + flex: 0 0 100%; max-width: 100%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-100, - .md-css-only [layout="column"] > .md-css-only [flex-gt-lg="100"] { max-height: 100%; - max-width: 100%; } - .flex-gt-lg-33, .flex-gt-lg-34 { + box-sizing: border-box; } + .layout-row > .flex-lg-100, + .layout-lg-row > .flex-lg-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-100, + .layout-lg-column > .flex-lg-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-33, .layout-row > .flex-lg-33, .layout-lg-row > .flex-lg-33, .layout-lg-row > .flex-lg-33 { -webkit-box-flex: 0; -webkit-flex: 0 0 33%; -ms-flex: 0 0 33%; flex: 0 0 33%; max-width: 33%; - max-height: 100%; } - .flex-gt-lg-66, .flex-gt-lg-67 { + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-34, .layout-row > .flex-lg-34, .layout-lg-row > .flex-lg-34, .layout-lg-row > .flex-lg-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 34%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-66, .layout-row > .flex-lg-66, .layout-lg-row > .flex-lg-66, .layout-lg-row > .flex-lg-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 66%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-lg-67, .layout-row > .flex-lg-67, .layout-lg-row > .flex-lg-67, .layout-lg-row > .flex-lg-67 { -webkit-box-flex: 0; -webkit-flex: 0 0 67%; -ms-flex: 0 0 67%; flex: 0 0 67%; max-width: 67%; - max-height: 100%; } - .layout-gt-lg-row > .flex-gt-lg-33, .layout-gt-lg-row > .flex-gt-lg-34, .md-css-only [layout="row"] > .flex-gt-lg-33, .md-css-only [layout="row"] > .flex-gt-lg-34 { - max-width: 33%; - max-height: 100%; } - .layout-gt-lg-row > .flex-gt-lg-66, .layout-gt-lg-row > .flex-gt-lg-67, .md-css-only [layout="row"] > .flex-gt-lg-66, .md-css-only [layout="row"] > .flex-gt-lg-67 { - max-width: 67%; - max-height: 100%; } - .layout-gt-lg-column > .flex-gt-lg-33, .layout-gt-lg-column > .flex-gt-lg-34, .md-css-only [layout="column"] > .flex-gt-lg-33, .md-css-only [layout="column"] > .flex-gt-lg-34 { + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-lg-33, .layout-column > .flex-lg-33, .layout-lg-column > .flex-lg-33, .layout-lg-column > .flex-lg-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 100%; max-height: 33%; - max-width: 100%; } - .layout-gt-lg-column > .flex-gt-lg-66, .layout-gt-lg-column > .flex-gt-lg-67, .md-css-only [layout="column"] > .flex-gt-lg-66, .md-css-only [layout="column"] > .flex-gt-lg-67 { + box-sizing: border-box; } + .layout-column > .flex-lg-34, .layout-column > .flex-lg-34, .layout-lg-column > .flex-lg-34, .layout-lg-column > .flex-lg-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 100%; + max-height: 34%; + box-sizing: border-box; } + .layout-column > .flex-lg-66, .layout-column > .flex-lg-66, .layout-lg-column > .flex-lg-66, .layout-lg-column > .flex-lg-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 100%; + max-height: 66%; + box-sizing: border-box; } + .layout-column > .flex-lg-67, .layout-column > .flex-lg-67, .layout-lg-column > .flex-lg-67, .layout-lg-column > .flex-lg-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 100%; max-height: 67%; - max-width: 100%; } - .layout-align-gt-lg-center, .layout-align-gt-lg-center-center, + box-sizing: border-box; } + .layout-lg, .layout-lg-column, .layout-lg-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .layout-lg-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .layout-lg-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } } + +@media (min-width: 1280px) { + .hide-gt-sm:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide-gt-md:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide-gt-lg:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show), .hide:not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show) { + display: none; } + .flex-order-gt-lg-0 { + -webkit-box-ordinal-group: 1; + -webkit-order: 0; + -ms-flex-order: 0; + order: 0; } + .flex-order-gt-lg-1 { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; } + .flex-order-gt-lg-2 { + -webkit-box-ordinal-group: 3; + -webkit-order: 2; + -ms-flex-order: 2; + order: 2; } + .flex-order-gt-lg-3 { + -webkit-box-ordinal-group: 4; + -webkit-order: 3; + -ms-flex-order: 3; + order: 3; } + .flex-order-gt-lg-4 { + -webkit-box-ordinal-group: 5; + -webkit-order: 4; + -ms-flex-order: 4; + order: 4; } + .flex-order-gt-lg-5 { + -webkit-box-ordinal-group: 6; + -webkit-order: 5; + -ms-flex-order: 5; + order: 5; } + .flex-order-gt-lg-6 { + -webkit-box-ordinal-group: 7; + -webkit-order: 6; + -ms-flex-order: 6; + order: 6; } + .flex-order-gt-lg-7 { + -webkit-box-ordinal-group: 8; + -webkit-order: 7; + -ms-flex-order: 7; + order: 7; } + .flex-order-gt-lg-8 { + -webkit-box-ordinal-group: 9; + -webkit-order: 8; + -ms-flex-order: 8; + order: 8; } + .flex-order-gt-lg-9 { + -webkit-box-ordinal-group: 10; + -webkit-order: 9; + -ms-flex-order: 9; + order: 9; } + .flex-order-gt-lg-10 { + -webkit-box-ordinal-group: 11; + -webkit-order: 10; + -ms-flex-order: 10; + order: 10; } + .flex-order-gt-lg-11 { + -webkit-box-ordinal-group: 12; + -webkit-order: 11; + -ms-flex-order: 11; + order: 11; } + .flex-order-gt-lg-12 { + -webkit-box-ordinal-group: 13; + -webkit-order: 12; + -ms-flex-order: 12; + order: 12; } + .flex-order-gt-lg-13 { + -webkit-box-ordinal-group: 14; + -webkit-order: 13; + -ms-flex-order: 13; + order: 13; } + .flex-order-gt-lg-14 { + -webkit-box-ordinal-group: 15; + -webkit-order: 14; + -ms-flex-order: 14; + order: 14; } + .flex-order-gt-lg-15 { + -webkit-box-ordinal-group: 16; + -webkit-order: 15; + -ms-flex-order: 15; + order: 15; } + .flex-order-gt-lg-16 { + -webkit-box-ordinal-group: 17; + -webkit-order: 16; + -ms-flex-order: 16; + order: 16; } + .flex-order-gt-lg-17 { + -webkit-box-ordinal-group: 18; + -webkit-order: 17; + -ms-flex-order: 17; + order: 17; } + .flex-order-gt-lg-18 { + -webkit-box-ordinal-group: 19; + -webkit-order: 18; + -ms-flex-order: 18; + order: 18; } + .flex-order-gt-lg-19 { + -webkit-box-ordinal-group: 20; + -webkit-order: 19; + -ms-flex-order: 19; + order: 19; } + .offset-gt-lg-0, .flex-offset-gt-lg-0 { + margin-left: 0%; } + .offset-gt-lg-5, .flex-offset-gt-lg-5 { + margin-left: 5%; } + .offset-gt-lg-10, .flex-offset-gt-lg-10 { + margin-left: 10%; } + .offset-gt-lg-15, .flex-offset-gt-lg-15 { + margin-left: 15%; } + .offset-gt-lg-20, .flex-offset-gt-lg-20 { + margin-left: 20%; } + .offset-gt-lg-25, .flex-offset-gt-lg-25 { + margin-left: 25%; } + .offset-gt-lg-30, .flex-offset-gt-lg-30 { + margin-left: 30%; } + .offset-gt-lg-35, .flex-offset-gt-lg-35 { + margin-left: 35%; } + .offset-gt-lg-40, .flex-offset-gt-lg-40 { + margin-left: 40%; } + .offset-gt-lg-45, .flex-offset-gt-lg-45 { + margin-left: 45%; } + .offset-gt-lg-50, .flex-offset-gt-lg-50 { + margin-left: 50%; } + .offset-gt-lg-55, .flex-offset-gt-lg-55 { + margin-left: 55%; } + .offset-gt-lg-60, .flex-offset-gt-lg-60 { + margin-left: 60%; } + .offset-gt-lg-65, .flex-offset-gt-lg-65 { + margin-left: 65%; } + .offset-gt-lg-70, .flex-offset-gt-lg-70 { + margin-left: 70%; } + .offset-gt-lg-75, .flex-offset-gt-lg-75 { + margin-left: 75%; } + .offset-gt-lg-80, .flex-offset-gt-lg-80 { + margin-left: 80%; } + .offset-gt-lg-85, .flex-offset-gt-lg-85 { + margin-left: 85%; } + .offset-gt-lg-90, .flex-offset-gt-lg-90 { + margin-left: 90%; } + .offset-gt-lg-95, .flex-offset-gt-lg-95 { + margin-left: 95%; } + .offset-gt-lg-33, .flex-offset-gt-lg-33 { + margin-left: 33%; } + .offset-gt-lg-34, .flex-offset-gt-lg-34 { + margin-left: 34%; } + .offset-gt-lg-66, .flex-offset-gt-lg-66 { + margin-left: 66%; } + .offset-gt-lg-67, .flex-offset-gt-lg-67 { + margin-left: 67%; } + .layout-align-gt-lg-center, + .layout-align-gt-lg-center-center, .layout-align-gt-lg-center-start, - .layout-align-gt-lg-center-end, - .md-css-only [layout-align-gt-lg="center"], - .md-css-only [layout-align-gt-lg="center center"], - .md-css-only [layout-align-gt-lg="center start"], - .md-css-only [layout-align-gt-lg="center end"] { + .layout-align-gt-lg-center-end { -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } - .layout-align-gt-lg-end, .layout-align-gt-lg-end-center, + .layout-align-gt-lg-end, + .layout-align-gt-lg-end-center, .layout-align-gt-lg-end-start, - .layout-align-gt-lg-end-end, - .md-css-only [layout-align-gt-lg="end"], .md-css-only [layout-align-gt-lg="end center"], - .md-css-only [layout-align-gt-lg="end start"], - .md-css-only [layout-align-gt-lg="end end"] { + .layout-align-gt-lg-end-end { -webkit-box-pack: end; -webkit-justify-content: flex-end; -ms-flex-pack: end; justify-content: flex-end; } - .layout-align-gt-lg-space-around, .layout-align-gt-lg-space-around-center, + .layout-align-gt-lg-space-around, + .layout-align-gt-lg-space-around-center, .layout-align-gt-lg-space-around-start, - .layout-align-gt-lg-space-around-end, - .md-css-only [layout-align-gt-lg="space-around"], .md-css-only [layout-align-gt-lg="space-around center"], - .md-css-only [layout-align-gt-lg="space-around start"], - .md-css-only [layout-align-gt-lg="space-around end"] { + .layout-align-gt-lg-space-around-end { -webkit-justify-content: space-around; -ms-flex-pack: distribute; justify-content: space-around; } - .layout-align-gt-lg-space-between, .layout-align-gt-lg-space-between-center, + .layout-align-gt-lg-space-between, + .layout-align-gt-lg-space-between-center, .layout-align-gt-lg-space-between-start, - .layout-align-gt-lg-space-between-end, - .md-css-only [layout-align-gt-lg="space-between"], .md-css-only [layout-align-gt-lg="space-between center"], - .md-css-only [layout-align-gt-lg="space-between start"], - .md-css-only [layout-align-gt-lg="space-between end"] { + .layout-align-gt-lg-space-between-end { -webkit-box-pack: justify; -webkit-justify-content: space-between; -ms-flex-pack: justify; @@ -4292,12 +5869,7 @@ html * { .layout-align-gt-lg-start-start, .layout-align-gt-lg-end-start, .layout-align-gt-lg-space-between-start, - .layout-align-gt-lg-space-around-start, - .md-css-only [layout-align-gt-lg="center start"], - .md-css-only [layout-align-gt-lg="start start"], - .md-css-only [layout-align-gt-lg="end start"], - .md-css-only [layout-align-gt-lg="space-between start"], - .md-css-only [layout-align-gt-lg="space-around start"] { + .layout-align-gt-lg-space-around-start { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; @@ -4306,189 +5878,686 @@ html * { .layout-align-gt-lg-start-center, .layout-align-gt-lg-end-center, .layout-align-gt-lg-space-between-center, - .layout-align-gt-lg-space-around-center, - .md-css-only [layout-align-gt-lg="center center"], - .md-css-only [layout-align-gt-lg="start center"], - .md-css-only [layout-align-gt-lg="end center"], - .md-css-only [layout-align-gt-lg="space-between center"], - .md-css-only [layout-align-gt-lg="space-around center"] { + .layout-align-gt-lg-space-around-center { -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; max-width: 100%; } + .layout-align-gt-lg-center-center > *, + .layout-align-gt-lg-start-center > *, + .layout-align-gt-lg-end-center > *, + .layout-align-gt-lg-space-between-center > *, + .layout-align-gt-lg-space-around-center > * { + max-width: 100%; + box-sizing: border-box; } .layout-align-gt-lg-center-end, .layout-align-gt-lg-start-end, .layout-align-gt-lg-end-end, .layout-align-gt-lg-space-between-end, - .layout-align-gt-lg-space-around-end, - .md-css-only [layout-align-gt-lg="center end"], - .md-css-only [layout-align-gt-lg="start end"], - .md-css-only [layout-align-gt-lg="end end"], - .md-css-only [layout-align-gt-lg="space-between end"], - .md-css-only [layout-align-gt-lg="space-around end"] { + .layout-align-gt-lg-space-around-end { -webkit-box-align: end; -webkit-align-items: flex-end; -ms-flex-align: end; align-items: flex-end; } - .offset-gt-lg-5, - .md-css-only [offset-gt-lg="5"] { - margin-left: 5%; } - .offset-gt-lg-10, - .md-css-only [offset-gt-lg="10"] { - margin-left: 10%; } - .offset-gt-lg-15, - .md-css-only [offset-gt-lg="15"] { - margin-left: 15%; } - .offset-gt-lg-20, - .md-css-only [offset-gt-lg="20"] { - margin-left: 20%; } - .offset-gt-lg-25, - .md-css-only [offset-gt-lg="25"] { - margin-left: 25%; } - .offset-gt-lg-30, - .md-css-only [offset-gt-lg="30"] { - margin-left: 30%; } - .offset-gt-lg-35, - .md-css-only [offset-gt-lg="35"] { - margin-left: 35%; } - .offset-gt-lg-40, - .md-css-only [offset-gt-lg="40"] { - margin-left: 40%; } - .offset-gt-lg-45, - .md-css-only [offset-gt-lg="45"] { - margin-left: 45%; } - .offset-gt-lg-50, - .md-css-only [offset-gt-lg="50"] { - margin-left: 50%; } - .offset-gt-lg-55, - .md-css-only [offset-gt-lg="55"] { - margin-left: 55%; } - .offset-gt-lg-60, - .md-css-only [offset-gt-lg="60"] { - margin-left: 60%; } - .offset-gt-lg-65, - .md-css-only [offset-gt-lg="65"] { - margin-left: 65%; } - .offset-gt-lg-70, - .md-css-only [offset-gt-lg="70"] { - margin-left: 70%; } - .offset-gt-lg-75, - .md-css-only [offset-gt-lg="75"] { - margin-left: 75%; } - .offset-gt-lg-80, - .md-css-only [offset-gt-lg="80"] { - margin-left: 80%; } - .offset-gt-lg-85, - .md-css-only [offset-gt-lg="85"] { - margin-left: 85%; } - .offset-gt-lg-90, - .md-css-only [offset-gt-lg="90"] { - margin-left: 90%; } - .offset-gt-lg-95, - .md-css-only [offset-gt-lg="95"] { - margin-left: 95%; } - .offset-gt-lg-33, .offset-gt-lg-34, - .md-css-only [offset-gt-lg="33"], .md-css-only [offset-gt-lg="34"] { - margin-left: 34%; } - .offset-gt-lg-66, .offset-gt-lg-67, - .md-css-only [offset-gt-lg="66"], .md-css-only [offset-gt-lg="67"] { - margin-left: 66%; } - .flex-order-gt-lg--9, .md-css-only .flex-order-gt-lg--9 { - -webkit-box-ordinal-group: -8; - -webkit-order: -9; - -ms-flex-order: -9; - order: -9; } - .flex-order-gt-lg--8, .md-css-only .flex-order-gt-lg--8 { - -webkit-box-ordinal-group: -7; - -webkit-order: -8; - -ms-flex-order: -8; - order: -8; } - .flex-order-gt-lg--7, .md-css-only .flex-order-gt-lg--7 { - -webkit-box-ordinal-group: -6; - -webkit-order: -7; - -ms-flex-order: -7; - order: -7; } - .flex-order-gt-lg--6, .md-css-only .flex-order-gt-lg--6 { - -webkit-box-ordinal-group: -5; - -webkit-order: -6; - -ms-flex-order: -6; - order: -6; } - .flex-order-gt-lg--5, .md-css-only .flex-order-gt-lg--5 { - -webkit-box-ordinal-group: -4; - -webkit-order: -5; - -ms-flex-order: -5; - order: -5; } - .flex-order-gt-lg--4, .md-css-only .flex-order-gt-lg--4 { - -webkit-box-ordinal-group: -3; - -webkit-order: -4; - -ms-flex-order: -4; - order: -4; } - .flex-order-gt-lg--3, .md-css-only .flex-order-gt-lg--3 { - -webkit-box-ordinal-group: -2; - -webkit-order: -3; - -ms-flex-order: -3; - order: -3; } - .flex-order-gt-lg--2, .md-css-only .flex-order-gt-lg--2 { - -webkit-box-ordinal-group: -1; - -webkit-order: -2; - -ms-flex-order: -2; - order: -2; } - .flex-order-gt-lg--1, .md-css-only .flex-order-gt-lg--1 { - -webkit-box-ordinal-group: 0; - -webkit-order: -1; - -ms-flex-order: -1; - order: -1; } - .flex-order-gt-lg-0, .md-css-only .flex-order-gt-lg-0 { - -webkit-box-ordinal-group: 1; - -webkit-order: 0; - -ms-flex-order: 0; - order: 0; } - .flex-order-gt-lg-1, .md-css-only .flex-order-gt-lg-1 { - -webkit-box-ordinal-group: 2; - -webkit-order: 1; - -ms-flex-order: 1; - order: 1; } - .flex-order-gt-lg-2, .md-css-only .flex-order-gt-lg-2 { - -webkit-box-ordinal-group: 3; - -webkit-order: 2; - -ms-flex-order: 2; - order: 2; } - .flex-order-gt-lg-3, .md-css-only .flex-order-gt-lg-3 { - -webkit-box-ordinal-group: 4; - -webkit-order: 3; - -ms-flex-order: 3; - order: 3; } - .flex-order-gt-lg-4, .md-css-only .flex-order-gt-lg-4 { - -webkit-box-ordinal-group: 5; - -webkit-order: 4; - -ms-flex-order: 4; - order: 4; } - .flex-order-gt-lg-5, .md-css-only .flex-order-gt-lg-5 { - -webkit-box-ordinal-group: 6; - -webkit-order: 5; - -ms-flex-order: 5; - order: 5; } - .flex-order-gt-lg-6, .md-css-only .flex-order-gt-lg-6 { - -webkit-box-ordinal-group: 7; - -webkit-order: 6; - -ms-flex-order: 6; - order: 6; } - .flex-order-gt-lg-7, .md-css-only .flex-order-gt-lg-7 { - -webkit-box-ordinal-group: 8; - -webkit-order: 7; - -ms-flex-order: 7; - order: 7; } - .flex-order-gt-lg-8, .md-css-only .flex-order-gt-lg-8 { - -webkit-box-ordinal-group: 9; - -webkit-order: 8; - -ms-flex-order: 8; - order: 8; } - .flex-order-gt-lg-9, .md-css-only .flex-order-gt-lg-9 { - -webkit-box-ordinal-group: 10; - -webkit-order: 9; - -ms-flex-order: 9; - order: 9; } } + .flex-gt-lg { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; + box-sizing: border-box; } + .flex-gt-lg-grow { + -webkit-box-flex: 1; + -webkit-flex: 1 1 100%; + -ms-flex: 1 1 100%; + flex: 1 1 100%; + box-sizing: border-box; } + .flex-gt-lg-initial { + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + box-sizing: border-box; } + .flex-gt-lg-auto { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + box-sizing: border-box; } + .flex-gt-lg-none { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + box-sizing: border-box; } + .flex-gt-lg-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-0, + .layout-gt-lg-row > .flex-gt-lg-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 0%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-0, + .layout-gt-lg-column > .flex-gt-lg-0 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 0%; + -ms-flex: 0 0 0%; + flex: 0 0 0%; + max-width: 100%; + max-height: 0%; + box-sizing: border-box; } + .flex-gt-lg-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-5, + .layout-gt-lg-row > .flex-gt-lg-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 5%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-5, + .layout-gt-lg-column > .flex-gt-lg-5 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 5%; + -ms-flex: 0 0 5%; + flex: 0 0 5%; + max-width: 100%; + max-height: 5%; + box-sizing: border-box; } + .flex-gt-lg-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-10, + .layout-gt-lg-row > .flex-gt-lg-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 10%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-10, + .layout-gt-lg-column > .flex-gt-lg-10 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 10%; + -ms-flex: 0 0 10%; + flex: 0 0 10%; + max-width: 100%; + max-height: 10%; + box-sizing: border-box; } + .flex-gt-lg-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-15, + .layout-gt-lg-row > .flex-gt-lg-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 15%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-15, + .layout-gt-lg-column > .flex-gt-lg-15 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 15%; + -ms-flex: 0 0 15%; + flex: 0 0 15%; + max-width: 100%; + max-height: 15%; + box-sizing: border-box; } + .flex-gt-lg-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-20, + .layout-gt-lg-row > .flex-gt-lg-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 20%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-20, + .layout-gt-lg-column > .flex-gt-lg-20 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 20%; + -ms-flex: 0 0 20%; + flex: 0 0 20%; + max-width: 100%; + max-height: 20%; + box-sizing: border-box; } + .flex-gt-lg-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-25, + .layout-gt-lg-row > .flex-gt-lg-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 25%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-25, + .layout-gt-lg-column > .flex-gt-lg-25 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 25%; + -ms-flex: 0 0 25%; + flex: 0 0 25%; + max-width: 100%; + max-height: 25%; + box-sizing: border-box; } + .flex-gt-lg-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-30, + .layout-gt-lg-row > .flex-gt-lg-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 30%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-30, + .layout-gt-lg-column > .flex-gt-lg-30 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 30%; + -ms-flex: 0 0 30%; + flex: 0 0 30%; + max-width: 100%; + max-height: 30%; + box-sizing: border-box; } + .flex-gt-lg-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-35, + .layout-gt-lg-row > .flex-gt-lg-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 35%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-35, + .layout-gt-lg-column > .flex-gt-lg-35 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 35%; + -ms-flex: 0 0 35%; + flex: 0 0 35%; + max-width: 100%; + max-height: 35%; + box-sizing: border-box; } + .flex-gt-lg-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-40, + .layout-gt-lg-row > .flex-gt-lg-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 40%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-40, + .layout-gt-lg-column > .flex-gt-lg-40 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 40%; + -ms-flex: 0 0 40%; + flex: 0 0 40%; + max-width: 100%; + max-height: 40%; + box-sizing: border-box; } + .flex-gt-lg-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-45, + .layout-gt-lg-row > .flex-gt-lg-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 45%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-45, + .layout-gt-lg-column > .flex-gt-lg-45 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 45%; + -ms-flex: 0 0 45%; + flex: 0 0 45%; + max-width: 100%; + max-height: 45%; + box-sizing: border-box; } + .flex-gt-lg-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-50, + .layout-gt-lg-row > .flex-gt-lg-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 50%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-50, + .layout-gt-lg-column > .flex-gt-lg-50 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 50%; + -ms-flex: 0 0 50%; + flex: 0 0 50%; + max-width: 100%; + max-height: 50%; + box-sizing: border-box; } + .flex-gt-lg-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-55, + .layout-gt-lg-row > .flex-gt-lg-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 55%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-55, + .layout-gt-lg-column > .flex-gt-lg-55 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 55%; + -ms-flex: 0 0 55%; + flex: 0 0 55%; + max-width: 100%; + max-height: 55%; + box-sizing: border-box; } + .flex-gt-lg-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-60, + .layout-gt-lg-row > .flex-gt-lg-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 60%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-60, + .layout-gt-lg-column > .flex-gt-lg-60 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 60%; + -ms-flex: 0 0 60%; + flex: 0 0 60%; + max-width: 100%; + max-height: 60%; + box-sizing: border-box; } + .flex-gt-lg-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-65, + .layout-gt-lg-row > .flex-gt-lg-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 65%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-65, + .layout-gt-lg-column > .flex-gt-lg-65 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 65%; + -ms-flex: 0 0 65%; + flex: 0 0 65%; + max-width: 100%; + max-height: 65%; + box-sizing: border-box; } + .flex-gt-lg-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-70, + .layout-gt-lg-row > .flex-gt-lg-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 70%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-70, + .layout-gt-lg-column > .flex-gt-lg-70 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 70%; + -ms-flex: 0 0 70%; + flex: 0 0 70%; + max-width: 100%; + max-height: 70%; + box-sizing: border-box; } + .flex-gt-lg-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-75, + .layout-gt-lg-row > .flex-gt-lg-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 75%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-75, + .layout-gt-lg-column > .flex-gt-lg-75 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 75%; + -ms-flex: 0 0 75%; + flex: 0 0 75%; + max-width: 100%; + max-height: 75%; + box-sizing: border-box; } + .flex-gt-lg-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-80, + .layout-gt-lg-row > .flex-gt-lg-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 80%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-80, + .layout-gt-lg-column > .flex-gt-lg-80 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 80%; + -ms-flex: 0 0 80%; + flex: 0 0 80%; + max-width: 100%; + max-height: 80%; + box-sizing: border-box; } + .flex-gt-lg-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-85, + .layout-gt-lg-row > .flex-gt-lg-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 85%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-85, + .layout-gt-lg-column > .flex-gt-lg-85 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 85%; + -ms-flex: 0 0 85%; + flex: 0 0 85%; + max-width: 100%; + max-height: 85%; + box-sizing: border-box; } + .flex-gt-lg-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-90, + .layout-gt-lg-row > .flex-gt-lg-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 90%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-90, + .layout-gt-lg-column > .flex-gt-lg-90 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 90%; + -ms-flex: 0 0 90%; + flex: 0 0 90%; + max-width: 100%; + max-height: 90%; + box-sizing: border-box; } + .flex-gt-lg-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-95, + .layout-gt-lg-row > .flex-gt-lg-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 95%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-95, + .layout-gt-lg-column > .flex-gt-lg-95 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 95%; + -ms-flex: 0 0 95%; + flex: 0 0 95%; + max-width: 100%; + max-height: 95%; + box-sizing: border-box; } + .flex-gt-lg-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-100, + .layout-gt-lg-row > .flex-gt-lg-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-100, + .layout-gt-lg-column > .flex-gt-lg-100 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 100%; + -ms-flex: 0 0 100%; + flex: 0 0 100%; + max-width: 100%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-33, .layout-row > .flex-gt-lg-33, .layout-gt-lg-row > .flex-gt-lg-33, .layout-gt-lg-row > .flex-gt-lg-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 33%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-34, .layout-row > .flex-gt-lg-34, .layout-gt-lg-row > .flex-gt-lg-34, .layout-gt-lg-row > .flex-gt-lg-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 34%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-66, .layout-row > .flex-gt-lg-66, .layout-gt-lg-row > .flex-gt-lg-66, .layout-gt-lg-row > .flex-gt-lg-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 66%; + max-height: 100%; + box-sizing: border-box; } + .layout-row > .flex-gt-lg-67, .layout-row > .flex-gt-lg-67, .layout-gt-lg-row > .flex-gt-lg-67, .layout-gt-lg-row > .flex-gt-lg-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 67%; + max-height: 100%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-33, .layout-column > .flex-gt-lg-33, .layout-gt-lg-column > .flex-gt-lg-33, .layout-gt-lg-column > .flex-gt-lg-33 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 33%; + -ms-flex: 0 0 33%; + flex: 0 0 33%; + max-width: 100%; + max-height: 33%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-34, .layout-column > .flex-gt-lg-34, .layout-gt-lg-column > .flex-gt-lg-34, .layout-gt-lg-column > .flex-gt-lg-34 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 34%; + -ms-flex: 0 0 34%; + flex: 0 0 34%; + max-width: 100%; + max-height: 34%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-66, .layout-column > .flex-gt-lg-66, .layout-gt-lg-column > .flex-gt-lg-66, .layout-gt-lg-column > .flex-gt-lg-66 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 66%; + -ms-flex: 0 0 66%; + flex: 0 0 66%; + max-width: 100%; + max-height: 66%; + box-sizing: border-box; } + .layout-column > .flex-gt-lg-67, .layout-column > .flex-gt-lg-67, .layout-gt-lg-column > .flex-gt-lg-67, .layout-gt-lg-column > .flex-gt-lg-67 { + -webkit-box-flex: 0; + -webkit-flex: 0 0 67%; + -ms-flex: 0 0 67%; + flex: 0 0 67%; + max-width: 100%; + max-height: 67%; + box-sizing: border-box; } + .layout-gt-lg, .layout-gt-lg-column, .layout-gt-lg-row { + box-sizing: border-box; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .layout-gt-lg-column { + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -webkit-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; } + .layout-gt-lg-row { + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + flex-direction: row; } } /** * Overrides angular-material sources @@ -4713,7 +6782,7 @@ html p { line-height: 1.3; margin: 0; } -.sg-md-caption, .sg-tile-content .sg-md-body-multi, .sg-tile-content .mailer_mailcontent { +.sg-md-caption, .sg-tile-content .sg-md-body { font-size: 12px; line-height: 16px; font-weight: 400; @@ -4732,7 +6801,7 @@ html p { white-space: nowrap; text-transform: capitalize; } -.sg-md-body-1, .sg-tile-content .sg-md-subhead-multi { +.sg-md-body-1, .sg-tile-content .sg-md-subhead { font-size: 14px; line-height: 20px; font-weight: 400; } @@ -4761,7 +6830,7 @@ html p { .sg-md-subhead-solo { margin: 0; } -.sg-md-title, .sg-md-display-2-subheader, .sg-md-title-msg { +.sg-md-title, .sg-md-display-2-subheader, .sg-md-display-2-subheader--thin, .sg-md-title-msg { font-size: 20px; line-height: 24px; font-weight: 600; @@ -4785,10 +6854,20 @@ html p { font-weight: 400; white-space: nowrap; } -.sg-md-display-2--light { +.sg-md-display-2--thin { font-size: 45px; line-height: 49px; - font-weight: 300; } + font-weight: 200; } + +.sg-md-display-2-subheader { + margin-bottom: 16px; + font-weight: 400; + white-space: normal; } + +.sg-md-display-2-subheader--thin { + margin-bottom: 16px; + font-weight: 200; + white-space: normal; } .sg-md-display-3 { font-size: 56px; @@ -4802,10 +6881,10 @@ html p { font-weight: 300; white-space: nowrap; } -.sg-md-display-2-subheader { - margin-bottom: 16px; - font-weight: 200; - white-space: normal; } +.sg-no-wrap, [ui-view="administration"] [id="usersList"] > md-list .sg-folder .md-button { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .sg-label-outline { border-width: 1px; @@ -4913,28 +6992,32 @@ md-autocomplete { height: 40px; } md-autocomplete md-autocomplete-wrap.md-menu-showing { z-index: 51; } - md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate { + md-autocomplete md-autocomplete-wrap md-progress-linear { position: absolute; - top: 20px; - left: 0; - width: 100%; - height: 3px; - -webkit-transition: none; - transition: none; } - md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container { + bottom: -2px; + left: 0; } + 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; - 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; } + 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; @@ -5025,7 +7108,6 @@ md-autocomplete { list-style: none; padding: 0; } .md-autocomplete-suggestions li { - cursor: pointer; font-size: 14px; overflow: hidden; padding: 0 15px; @@ -5038,6 +7120,8 @@ md-autocomplete { 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, @@ -5132,6 +7216,9 @@ md-backdrop { opacity: 0; } } /*! button/_extends.scss - */ +button.md-button::-moz-focus-inner { + border: 0; } + .md-button { border-radius: 3px; box-sizing: border-box; @@ -5243,11 +7330,9 @@ md-backdrop { line-height: 40px; width: 40px; height: 40px; } - .md-button:not([disabled]).md-raised.md-focused, - .md-button:not([disabled]).md-fab.md-focused { + .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 { + .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; @@ -5259,8 +7344,7 @@ md-backdrop { .md-toast-open-top .md-button.md-fab-top-right { -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-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); @@ -5270,8 +7354,7 @@ md-backdrop { .md-toast-open-bottom .md-button.md-fab-bottom-right { -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-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); @@ -5312,12 +7395,11 @@ md-backdrop { .md-button.md-fab { border: 1px solid #fff; } } -.md-button.md-fab-overlap-bottom.md-fab-bottom-right, -.md-button.md-fab-overlap-bottom.md-fab-bottom-left { +.md-button.md-fab-overlap-bottom.md-fab-bottom-right, .md-button.md-fab-overlap-bottom.md-fab-bottom-left { bottom: -36px; } .view-list md-list .md-button { - padding: 0; } + padding-right: 0; } .sg-expandable { width: 100%; } @@ -5415,6 +7497,7 @@ md-card { margin-right: 4px; margin-left: 4px; } md-card md-card-footer { + margin-top: auto; padding: 16px; } @media screen and (-ms-high-contrast: active) { @@ -5438,6 +7521,18 @@ md-card.sg-collapsed, md-card.sg-expanded { -webkit-flex-direction: row; -ms-flex-direction: row; flex-direction: row; } + md-card.sg-collapsed .md-icon-button, md-card.sg-expanded .md-icon-button { + -webkit-transition: all 0.08s linear; + transition: all 0.08s linear; + -webkit-transition-duration: 0.2s; + transition-duration: 0.2s; + -webkit-transition-delay: 0.2s; + transition-delay: 0.2s; + opacity: 1; } + md-card.sg-collapsed .md-icon-button.ng-hide, md-card.sg-expanded .md-icon-button.ng-hide { + -webkit-transition: all 0.08s linear; + transition: all 0.08s linear; + opacity: 0; } md-card.sg-collapsed md-card-content, md-card.sg-expanded md-card-content { -webkit-box-ordinal-group: 2; -webkit-order: 1; @@ -5462,6 +7557,9 @@ md-card.sg-collapsed { md-card.sg-expanded { margin: 0 0 1px 0; } + md-card.sg-expanded-remove { + -webkit-transition-delay: 0.5s; + transition-delay: 0.5s; } md-card .md-button .sg-tile-content { text-align: left; @@ -5801,6 +7899,12 @@ md-chips.sg-readonly .md-chips { box-shadow: none; } md-chips.sg-readonly .md-chips .md-chip-content { max-width: initial; } + md-chips.sg-readonly .md-chips .sg-chip-remove { + height: 18px; + width: 18px; + line-height: 18px; } + md-chips.sg-readonly .md-chips .sg-chip-remove:hover { + cursor: pointer; } .sg-chips-autocomplete { width: 360px; } @@ -6138,6 +8242,8 @@ md-dialog { -ms-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; @@ -6148,7 +8254,6 @@ md-dialog { -webkit-flex-direction: column; -ms-flex-direction: column; flex-direction: column; - padding: 24px; overflow: auto; -webkit-overflow-scrolling: touch; } md-dialog md-dialog-content:not([layout=row]) > *:first-child:not(.md-subheader) { @@ -6202,8 +8307,7 @@ md-dialog { md-dialog { border: 1px solid #fff; } } -body.popup md-dialog[flex-sm="100"], -body.popup md-dialog.flex-sm-100 { +body.popup md-dialog[flex-sm="100"], body.popup md-dialog.flex-sm-100 { max-width: 100%; max-height: 100%; width: 100%; @@ -6212,13 +8316,11 @@ body.popup md-dialog.flex-sm-100 { -webkit-flex-basis: 100%; -ms-flex-preferred-size: 100%; flex-basis: 100%; } - body.popup md-dialog[flex-sm="100"] md-dialog-content, - body.popup md-dialog.flex-sm-100 md-dialog-content { + body.popup md-dialog[flex-sm="100"] md-dialog-content, body.popup md-dialog.flex-sm-100 md-dialog-content { padding: 16px; } @media (max-width: 600px) { - md-dialog[flex-sm="100"], - md-dialog.flex-sm-100 { + md-dialog[flex-sm="100"], md-dialog.flex-sm-100 { max-width: 100%; max-height: 100%; width: 100%; @@ -6227,8 +8329,7 @@ body.popup md-dialog.flex-sm-100 { -webkit-flex-basis: 100%; -ms-flex-preferred-size: 100%; flex-basis: 100%; } - md-dialog[flex-sm="100"] md-dialog-content, - md-dialog.flex-sm-100 md-dialog-content { + md-dialog[flex-sm="100"] md-dialog-content, md-dialog.flex-sm-100 md-dialog-content { padding: 16px; } } /*! divider/_extends.scss - */ @@ -6251,6 +8352,7 @@ md-fab-speed-dial { -webkit-align-items: center; -ms-flex-align: center; align-items: center; + z-index: 20; /* * Handle the animations */ } @@ -6278,6 +8380,12 @@ md-fab-speed-dial { 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 { @@ -6476,8 +8584,7 @@ md-grid-list { .sg-color-picker md-grid-tile { border-radius: 25%; } - .sg-color-picker md-grid-tile:hover, - .sg-color-picker md-grid-tile:active { + .sg-color-picker md-grid-tile:hover, .sg-color-picker md-grid-tile:active { cursor: pointer; -webkit-transform: scale(1.5); -ms-transform: scale(1.5); @@ -6564,11 +8671,9 @@ md-icon { transform: rotate(180deg); } md-icon.icon-alarm:before { content: "\e855"; } - md-icon.icon-delegated:before, - md-icon.icon-arrow-forward:before { + md-icon.icon-delegated:before, md-icon.icon-arrow-forward:before { content: "\e5c8"; } - md-icon.icon-accepted:before, - md-icon.icon-check:before { + md-icon.icon-accepted:before, md-icon.icon-check:before { content: "\e5ca"; } md-icon.icon-clear:before { content: "\e14c"; } @@ -6580,16 +8685,13 @@ md-icon { content: "\e5ce"; } md-icon.icon-expand-more:before { content: "\e5cf"; } - md-icon.icon-needs-action:before, - md-icon.icon-help:before { + md-icon.icon-needs-action:before, md-icon.icon-help:before { content: "\e887"; } md-icon.icon-more-horiz:before { content: "\e5d3"; } - md-icon.icon-tentative:before, - md-icon.icon-person:before { + md-icon.icon-tentative:before, md-icon.icon-person:before { content: "\e7fd"; } - md-icon.icon-declined:before, - md-icon.icon-remove-circle:before { + md-icon.icon-declined:before, md-icon.icon-remove-circle:before { content: "\e15c"; } md-icon.icon-search:before { content: "\e8b6"; } @@ -6679,14 +8781,14 @@ md-input-container { -webkit-transform-origin: left top; -ms-transform-origin: left top; transform-origin: left top; } - html[dir=rtl] md-input-container label:not(.md-no-float), - html[dir=rtl] md-input-container .md-placeholder { + html[dir=rtl] md-input-container label:not(.md-no-float), html[dir=rtl] + md-input-container .md-placeholder { -webkit-transform-origin: right top; -ms-transform-origin: right top; transform-origin: right top; unicode-bidi: embed; } - body[dir=rtl] md-input-container label:not(.md-no-float), - body[dir=rtl] md-input-container .md-placeholder { + body[dir=rtl] md-input-container label:not(.md-no-float), body[dir=rtl] + md-input-container .md-placeholder { -webkit-transform-origin: right top; -ms-transform-origin: right top; transform-origin: right top; @@ -6735,7 +8837,7 @@ md-input-container { -ms-flex-order: 2; order: 2; display: block; - margin-top: auto; + margin-top: 0; background: none; padding-top: 2px; padding-bottom: 1px; @@ -6745,6 +8847,7 @@ md-input-container { line-height: 26px; -ms-flex-preferred-size: 26px; border-radius: 0; + border-style: solid; width: auto; } md-input-container .md-input:focus { outline: none; } @@ -6758,11 +8861,8 @@ md-input-container { flex: none !important; } md-input-container .md-char-counter { position: absolute; - right: 0; - -webkit-box-ordinal-group: 4; - -webkit-order: 3; - -ms-flex-order: 3; - order: 3; } + right: 2px; + bottom: 7px; } md-input-container ng-messages, md-input-container data-ng-messages, md-input-container x-ng-messages, md-input-container [ng-messages], md-input-container [data-ng-messages], md-input-container [x-ng-messages] { position: relative; @@ -6771,6 +8871,12 @@ md-input-container { -ms-flex-order: 4; order: 4; min-height: 24px; } + md-input-container ng-messages .md-char-counter, md-input-container data-ng-messages .md-char-counter, md-input-container x-ng-messages .md-char-counter, + md-input-container [ng-messages] .md-char-counter, md-input-container [data-ng-messages] .md-char-counter, md-input-container [x-ng-messages] .md-char-counter { + position: absolute; + top: 0; + right: 0; + bottom: auto; } md-input-container ng-message, md-input-container data-ng-message, md-input-container x-ng-message, md-input-container [ng-message], md-input-container [data-ng-message], md-input-container [x-ng-message], md-input-container [ng-message-exp], md-input-container [data-ng-message-exp], md-input-container [x-ng-message-exp], @@ -6802,41 +8908,25 @@ md-input-container { transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); -webkit-transition-duration: 0.2666666667s; transition-duration: 0.2666666667s; } - md-input-container ng-message.ng-enter, - md-input-container ng-message.ng-leave.ng-leave-active, md-input-container data-ng-message.ng-enter, - md-input-container data-ng-message.ng-leave.ng-leave-active, md-input-container x-ng-message.ng-enter, - md-input-container x-ng-message.ng-leave.ng-leave-active, + md-input-container ng-message.ng-enter, md-input-container ng-message.ng-leave.ng-leave-active, md-input-container data-ng-message.ng-enter, md-input-container data-ng-message.ng-leave.ng-leave-active, md-input-container x-ng-message.ng-enter, md-input-container x-ng-message.ng-leave.ng-leave-active, md-input-container [ng-message].ng-enter, - md-input-container [ng-message].ng-leave.ng-leave-active, md-input-container [data-ng-message].ng-enter, - md-input-container [data-ng-message].ng-leave.ng-leave-active, md-input-container [x-ng-message].ng-enter, - md-input-container [x-ng-message].ng-leave.ng-leave-active, + md-input-container [ng-message].ng-leave.ng-leave-active, md-input-container [data-ng-message].ng-enter, md-input-container [data-ng-message].ng-leave.ng-leave-active, md-input-container [x-ng-message].ng-enter, md-input-container [x-ng-message].ng-leave.ng-leave-active, md-input-container [ng-message-exp].ng-enter, - md-input-container [ng-message-exp].ng-leave.ng-leave-active, md-input-container [data-ng-message-exp].ng-enter, - md-input-container [data-ng-message-exp].ng-leave.ng-leave-active, md-input-container [x-ng-message-exp].ng-enter, - md-input-container [x-ng-message-exp].ng-leave.ng-leave-active, + md-input-container [ng-message-exp].ng-leave.ng-leave-active, md-input-container [data-ng-message-exp].ng-enter, md-input-container [data-ng-message-exp].ng-leave.ng-leave-active, md-input-container [x-ng-message-exp].ng-enter, md-input-container [x-ng-message-exp].ng-leave.ng-leave-active, md-input-container .md-char-counter.ng-enter, md-input-container .md-char-counter.ng-leave.ng-leave-active { margin-top: -19px; opacity: 0; } - md-input-container ng-message.ng-leave, - md-input-container ng-message.ng-enter.ng-enter-active, md-input-container data-ng-message.ng-leave, - md-input-container data-ng-message.ng-enter.ng-enter-active, md-input-container x-ng-message.ng-leave, - md-input-container x-ng-message.ng-enter.ng-enter-active, + md-input-container ng-message.ng-leave, md-input-container ng-message.ng-enter.ng-enter-active, md-input-container data-ng-message.ng-leave, md-input-container data-ng-message.ng-enter.ng-enter-active, md-input-container x-ng-message.ng-leave, md-input-container x-ng-message.ng-enter.ng-enter-active, md-input-container [ng-message].ng-leave, - md-input-container [ng-message].ng-enter.ng-enter-active, md-input-container [data-ng-message].ng-leave, - md-input-container [data-ng-message].ng-enter.ng-enter-active, md-input-container [x-ng-message].ng-leave, - md-input-container [x-ng-message].ng-enter.ng-enter-active, + md-input-container [ng-message].ng-enter.ng-enter-active, md-input-container [data-ng-message].ng-leave, md-input-container [data-ng-message].ng-enter.ng-enter-active, md-input-container [x-ng-message].ng-leave, md-input-container [x-ng-message].ng-enter.ng-enter-active, md-input-container [ng-message-exp].ng-leave, - md-input-container [ng-message-exp].ng-enter.ng-enter-active, md-input-container [data-ng-message-exp].ng-leave, - md-input-container [data-ng-message-exp].ng-enter.ng-enter-active, md-input-container [x-ng-message-exp].ng-leave, - md-input-container [x-ng-message-exp].ng-enter.ng-enter-active, + md-input-container [ng-message-exp].ng-enter.ng-enter-active, md-input-container [data-ng-message-exp].ng-leave, md-input-container [data-ng-message-exp].ng-enter.ng-enter-active, md-input-container [x-ng-message-exp].ng-leave, md-input-container [x-ng-message-exp].ng-enter.ng-enter-active, md-input-container .md-char-counter.ng-leave, md-input-container .md-char-counter.ng-enter.ng-enter-active { margin-top: 0; opacity: 1; } - md-input-container.md-input-focused label:not(.md-no-float), - md-input-container.md-input-has-placeholder label:not(.md-no-float), - md-input-container.md-input-has-value label:not(.md-no-float) { + md-input-container.md-input-focused label:not(.md-no-float), md-input-container.md-input-has-placeholder label:not(.md-no-float), md-input-container.md-input-has-value label:not(.md-no-float) { -webkit-transform: translate3d(0, 6px, 0) scale(0.75); transform: translate3d(0, 6px, 0) scale(0.75); } md-input-container.md-input-has-value label { @@ -6870,16 +8960,21 @@ md-input-container.md-icon-float { md-input-container.md-icon-float > input, md-input-container.md-icon-float > textarea { padding-top: 24px; } - md-input-container.md-icon-float.md-input-focused, - md-input-container.md-icon-float.md-input-has-value { + md-input-container.md-icon-float.md-input-focused, md-input-container.md-icon-float.md-input-has-value { margin-top: -8px; } - md-input-container.md-icon-float.md-input-focused label, - md-input-container.md-icon-float.md-input-has-value label { + md-input-container.md-icon-float.md-input-focused label, md-input-container.md-icon-float.md-input-has-value label { -webkit-transform: translate3d(0, 6px, 0) scale(0.75); transform: translate3d(0, 6px, 0) scale(0.75); -webkit-transition: -webkit-transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s; transition: transform cubic-bezier(0.25, 0.8, 0.25, 1) 0.5s; } +md-input-container.md-icon-right input { + margin-right: 36px; } + md-input-container.md-icon-right input + md-icon { + top: 26px; + right: 2px; + margin-right: 0; } + @media screen and (-ms-high-contrast: active) { md-input-container.md-default-theme > md-icon { fill: #fff; } } @@ -6932,7 +9027,7 @@ md-list { font-size: 14px; font-weight: 500; letter-spacing: 0.010em; - line-height: 0.75em; } + line-height: 1em; } md-list-item.md-proxy-focus.md-focused .md-no-style { -webkit-transition: background-color 0.15s linear; @@ -6997,13 +9092,13 @@ md-list-item, md-list-item .md-list-item-inner { -ms-flex-align: center; align-items: center; min-height: 48px; } - md-list-item > div.md-primary > md-icon, - md-list-item > div.md-secondary > md-icon, - md-list-item > md-icon:first-child, - md-list-item > md-icon.md-secondary, md-list-item .md-list-item-inner > div.md-primary > md-icon, - md-list-item .md-list-item-inner > div.md-secondary > md-icon, - md-list-item .md-list-item-inner > md-icon:first-child, - md-list-item .md-list-item-inner > md-icon.md-secondary { + md-list-item > div.md-primary > md-icon:not(.md-avatar-icon), + md-list-item > div.md-secondary > md-icon:not(.md-avatar-icon), + md-list-item > md-icon:first-child:not(.md-avatar-icon), + md-list-item > md-icon.md-secondary:not(.md-avatar-icon), md-list-item .md-list-item-inner > div.md-primary > md-icon:not(.md-avatar-icon), + md-list-item .md-list-item-inner > div.md-secondary > md-icon:not(.md-avatar-icon), + md-list-item .md-list-item-inner > md-icon:first-child:not(.md-avatar-icon), + md-list-item .md-list-item-inner > md-icon.md-secondary:not(.md-avatar-icon) { width: 24px; margin-top: 16px; margin-bottom: 12px; @@ -7026,20 +9121,23 @@ md-list-item, md-list-item .md-list-item-inner { md-list-item .md-list-item-inner > md-checkbox:first-child .md-label, md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label { display: none; } - md-list-item > md-icon:first-child, md-list-item .md-list-item-inner > md-icon:first-child { + md-list-item > md-icon:first-child:not(.md-avatar-icon), md-list-item .md-list-item-inner > md-icon:first-child:not(.md-avatar-icon) { margin-right: 32px; } md-list-item > md-checkbox:first-child, md-list-item .md-list-item-inner > md-checkbox:first-child { width: 24px; margin-left: 3px; margin-right: 29px; } - md-list-item > .md-avatar:first-child, md-list-item .md-list-item-inner > .md-avatar:first-child { - width: 40px; - height: 40px; + md-list-item > .md-avatar, md-list-item .md-avatar-icon, md-list-item .md-list-item-inner > .md-avatar, md-list-item .md-list-item-inner .md-avatar-icon { margin-top: 8px; margin-bottom: 8px; margin-right: 16px; border-radius: 50%; box-sizing: content-box; } + md-list-item > .md-avatar, md-list-item .md-list-item-inner > .md-avatar { + width: 40px; + height: 40px; } + md-list-item > .md-avatar-icon, md-list-item .md-list-item-inner > .md-avatar-icon { + padding: 8px; } md-list-item md-checkbox.md-secondary, md-list-item md-switch.md-secondary, md-list-item .md-list-item-inner md-checkbox.md-secondary, md-list-item .md-list-item-inner md-switch.md-secondary { @@ -7084,7 +9182,11 @@ md-list-item.md-3-line > .md-no-style { -webkit-box-align: start; -webkit-align-items: flex-start; -ms-flex-align: start; - align-items: flex-start; } + align-items: flex-start; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; } md-list-item.md-2-line .md-list-item-text, md-list-item.md-2-line > .md-no-style .md-list-item-text, md-list-item.md-3-line .md-list-item-text, @@ -7093,7 +9195,7 @@ md-list-item.md-3-line > .md-no-style { -webkit-flex: 1; -ms-flex: 1; flex: 1; - padding: 16px 0; + margin: auto; text-overflow: ellipsis; } md-list-item.md-2-line .md-list-item-text.md-offset, md-list-item.md-2-line > .md-no-style .md-list-item-text.md-offset, @@ -7107,8 +9209,8 @@ md-list-item.md-3-line > .md-no-style { font-size: 16px; font-weight: 400; letter-spacing: 0.010em; - margin: 0 0 6px 0; - line-height: 0.75em; + margin: 0; + line-height: 1em; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } @@ -7118,9 +9220,9 @@ md-list-item.md-3-line > .md-no-style { md-list-item.md-3-line > .md-no-style .md-list-item-text h4 { font-size: 14px; letter-spacing: 0.010em; - margin: 10px 0 5px 0; + margin: 3px 0 1px 0; font-weight: 400; - line-height: 0.75em; + line-height: 1em; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } @@ -7134,29 +9236,33 @@ md-list-item.md-3-line > .md-no-style { margin: 0 0 0 0; line-height: 1.6em; } -md-list-item.md-2-line > .md-avatar:first-child, -md-list-item.md-2-line > .md-no-style > .md-avatar:first-child { - margin-top: 12px; } +md-list-item.md-2-line, +md-list-item.md-2-line > .md-no-style { + height: 72px; } + md-list-item.md-2-line > .md-avatar, md-list-item.md-2-line .md-avatar-icon, + md-list-item.md-2-line > .md-no-style > .md-avatar, + md-list-item.md-2-line > .md-no-style .md-avatar-icon { + margin-top: 12px; } + md-list-item.md-2-line > md-icon:first-child, + md-list-item.md-2-line > .md-no-style > md-icon:first-child { + -webkit-align-self: flex-start; + -ms-flex-item-align: start; + align-self: flex-start; } + md-list-item.md-2-line .md-list-item-text, + md-list-item.md-2-line > .md-no-style .md-list-item-text { + -webkit-box-flex: 1; + -webkit-flex: 1; + -ms-flex: 1; + flex: 1; } -md-list-item.md-2-line > md-icon:first-child, -md-list-item.md-2-line > .md-no-style > md-icon:first-child { - -webkit-align-self: flex-start; - -ms-flex-item-align: start; - align-self: flex-start; } - -md-list-item.md-2-line .md-list-item-text, -md-list-item.md-2-line > .md-no-style .md-list-item-text { - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; - padding-top: 19px; } - -md-list-item.md-3-line > md-icon:first-child, -md-list-item.md-3-line > .md-avatar:first-child, -md-list-item.md-3-line > .md-no-style > md-icon:first-child, -md-list-item.md-3-line > .md-no-style > .md-avatar:first-child { - margin-top: 16px; } +md-list-item.md-3-line, +md-list-item.md-3-line > .md-no-style { + height: 88px; } + md-list-item.md-3-line > md-icon:first-child, + md-list-item.md-3-line > .md-avatar, + md-list-item.md-3-line > .md-no-style > md-icon:first-child, + md-list-item.md-3-line > .md-no-style > .md-avatar { + margin-top: 16px; } md-list-item .md-list-item-inner { -webkit-box-flex: 1; @@ -7183,77 +9289,91 @@ md-list-item .sg-item-name { md-list-item .sg-inline-list-icon-label { text-transform: uppercase; } -md-sidenav md-input-container { +.md-sidenav-left md-input-container, md-sidenav md-input-container { padding: 0; } - md-sidenav md-input-container .md-input { + .md-sidenav-left md-input-container .md-input, md-sidenav md-input-container .md-input { padding-left: 0; } +.md-sidenav-left md-list-item .md-button, md-sidenav md-list-item .md-button { + -webkit-transition: background-color 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); + transition: background-color 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); } + +.md-sidenav-left md-list-item .md-list-item-inner > md-icon:first-child, md-sidenav md-list-item .md-list-item-inner > md-icon:first-child, +.md-sidenav-left md-list-item .md-list-item-inner > md-checkbox:first-child, md-sidenav md-list-item .md-list-item-inner > md-checkbox:first-child { + margin-right: 16px; } + .md-tile-right { padding-right: 0px; } .md-tile-left, -.md-tile-left-list, -.sg-list-avatar, .md-tile-left-selected, -.sg-selected-avatar, .md-tile-right { +.md-tile-right { display: block; - border-radius: 100%; + border-radius: 50%; padding: 16px; - width: 72px; - height: 72px; + padding: 12px; + padding: 12px; + width: 64px; + height: 64px; background-clip: content-box; } .md-tile-left md-icon, - .md-tile-left-list md-icon, - .sg-list-avatar md-icon, .md-tile-left-selected md-icon, - .sg-selected-avatar md-icon, .md-tile-right md-icon { + .md-tile-right md-icon { font-size: 40px; } .md-tile-right { margin-right: -16px; } -div.md-tile-left, div.md-tile-left-list, div.sg-list-avatar, div.md-tile-left-selected, div.sg-selected-avatar { +div.md-tile-left { min-width: 72px; } .sg-section-list md-list-item .md-list-item-inner .md-secondary { right: 0px; } +.sg-color-chip { + display: block; + border-radius: 50%; + margin-right: 8px; + margin-left: -8px; + border-width: 12px; + border-color: white; + border-style: solid; + width: 16px; + height: 16px; + width: 40px; + height: 40px; } + .sg-tile-content { - -webkit-box-align: baseline; - -webkit-align-items: baseline; - -ms-flex-align: baseline; - align-items: baseline; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -webkit-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; -webkit-box-flex: 1; -webkit-flex: 1; -ms-flex: 1; - flex: 1; - -webkit-box-pack: justify; - -webkit-justify-content: space-between; - -ms-flex-pack: justify; - justify-content: space-between; } - .sg-tile-content p { - margin: 0 0 0 0; - font-size: 14px; } - .sg-tile-content .msg-date { - float: right; + flex: 1; } + .sg-tile-content .sg-tile-date { font-size: 14px; font-weight: 300; line-height: 20px; - margin-left: 1em; } - .sg-tile-content .sg-md-subhead-multi, - .sg-tile-content .sg-md-subhead-solo, - .sg-tile-content .sg-md-body-multi, .sg-tile-content .mailer_mailcontent { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - .sg-tile-content .sg-md-subhead-multi { + -webkit-flex-shrink: 0; + -ms-flex-negative: 0; + flex-shrink: 0; } + .sg-tile-content .sg-md-subhead { font-size: initial; } + .sg-tile-content .sg-md-subhead, + .sg-tile-content .sg-md-body { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; } + .sg-tile-content .sg-md-subhead > *, + .sg-tile-content .sg-md-body > * { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } .sg-tile-icons { display: -webkit-box; @@ -7275,10 +9395,6 @@ div.md-tile-left, div.md-tile-left-list, div.sg-list-avatar, div.md-tile-left-se justify-content: start; width: 32px; height: 56px; } - .sg-tile-icons md-icon { - font-size: 12px; - color: rgba(0, 0, 0, 0.54); - margin: 2px; } .sg-counter-badge { border-left-width: 1px; @@ -7290,34 +9406,41 @@ div.md-tile-left, div.md-tile-left-list, div.sg-list-avatar, div.md-tile-left-se font-weight: 600; text-transform: uppercase; } -.sg-avatars { - margin: 8px 0 0 8px; } - .sg-avatars img { - border-radius: 100%; - margin-right: 8px; } +.sg-tile-content md-icon, .sg-tile-icons md-icon { + font-size: 12px; + color: rgba(0, 0, 0, 0.54); + margin: 1px 2px; } -.md-tile-left:before, -.md-tile-left-list:before, -.sg-list-avatar:before, .md-tile-left-selected:before, -.sg-selected-avatar:before, .md-tile-left md-icon, .md-tile-left-list md-icon, .sg-list-avatar md-icon, .md-tile-left-selected md-icon, .sg-selected-avatar md-icon { +.card-picture .md-avatar { + display: block; + width: 40px; + height: 40px; + margin-top: 8px; + margin-bottom: 8px; + margin-right: 16px; + border-radius: 50%; + box-sizing: content-box; } + .card-picture .md-avatar img { + width: initial !important; } + +sg-avatar-image img { + border-radius: 50%; } + +.md-avatar:before, +.md-avatar md-icon { font-family: 'Material Icons'; font-size: 40px; color: rgba(0, 0, 0, 0.26); } -.md-tile-left-list:before, .sg-list-avatar:before { +.sg-avatar-list:before { content: "\e7ef"; } -.md-tile-left-selected:before, .sg-selected-avatar:before { +.sg-avatar-public:before { + content: "\e80b"; } + +.sg-avatar-selected:before { content: "\e5ca"; } -.sg-list-avatar { - margin-right: 0; - margin-left: 0; } - -.sg-selected-avatar { - margin-right: 0; - margin-left: 0; } - /*! menu/_extends.scss - */ .md-open-menu-container { position: fixed; @@ -7766,12 +9889,12 @@ md-radio-button, white-space: normal; pointer-events: none; width: auto; } - html[dir=rtl] md-radio-button .md-label, - html[dir=rtl] .md-switch-thumb .md-label { + html[dir=rtl] md-radio-button .md-label, html[dir=rtl] + .md-switch-thumb .md-label { margin-left: 0; unicode-bidi: embed; } - body[dir=rtl] md-radio-button .md-label, - body[dir=rtl] .md-switch-thumb .md-label { + body[dir=rtl] md-radio-button .md-label, body[dir=rtl] + .md-switch-thumb .md-label { margin-left: 0; unicode-bidi: embed; } md-radio-button .md-label bdo[dir=rtl], @@ -7782,12 +9905,12 @@ md-radio-button, .md-switch-thumb .md-label bdo[dir=ltr] { direction: ltr; unicode-bidi: bidi-override; } - html[dir=rtl] md-radio-button .md-label, - html[dir=rtl] .md-switch-thumb .md-label { + html[dir=rtl] md-radio-button .md-label, html[dir=rtl] + .md-switch-thumb .md-label { margin-right: 10px; unicode-bidi: embed; } - body[dir=rtl] md-radio-button .md-label, - body[dir=rtl] .md-switch-thumb .md-label { + body[dir=rtl] md-radio-button .md-label, body[dir=rtl] + .md-switch-thumb .md-label { margin-right: 10px; unicode-bidi: embed; } md-radio-button .md-label bdo[dir=rtl], @@ -7850,7 +9973,7 @@ md-radio-group.md-focused .md-checked .md-container:before { transition-duration: 250ms; } md-input-container > md-select { - margin: auto 0 0 0; + margin: 0; -webkit-box-ordinal-group: 3; -webkit-order: 2; -ms-flex-order: 2; @@ -8019,7 +10142,6 @@ md-option { md-option .md-text { -webkit-touch-callout: none; -webkit-user-select: none; - -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; @@ -8080,26 +10202,22 @@ md-sidenav { min-width: 304px; max-width: 304px; bottom: 0; - background-color: white; overflow: auto; } md-sidenav ul { list-style: none; } md-sidenav.md-closed { display: none; } - md-sidenav.md-closed-add, - md-sidenav.md-closed-remove { + md-sidenav.md-closed-add, md-sidenav.md-closed-remove { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-transition: 0.2s ease-in all; transition: 0.2s ease-in all; } - md-sidenav.md-closed-add.md-closed-add-active, - md-sidenav.md-closed-remove.md-closed-remove-active { + md-sidenav.md-closed-add.md-closed-add-active, md-sidenav.md-closed-remove.md-closed-remove-active { -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-sidenav.md-locked-open-add, - md-sidenav.md-locked-open-remove { + md-sidenav.md-locked-open-add, md-sidenav.md-locked-open-remove { position: static; display: -webkit-box; display: -webkit-flex; @@ -8111,12 +10229,7 @@ md-sidenav { width: 304px; min-width: 304px; max-width: 304px; } - md-sidenav.md-locked-open, - md-sidenav.md-locked-open.md-closed, - md-sidenav.md-locked-open.md-closed.md-sidenav-left, - md-sidenav.md-locked-open.md-closed, - md-sidenav.md-locked-open.md-closed.md-sidenav-right, - md-sidenav.md-locked-open-remove.md-closed { + md-sidenav.md-locked-open, md-sidenav.md-locked-open.md-closed, md-sidenav.md-locked-open.md-closed.md-sidenav-left, md-sidenav.md-locked-open.md-closed, md-sidenav.md-locked-open.md-closed.md-sidenav-right, md-sidenav.md-locked-open-remove.md-closed { position: static; display: -webkit-box; display: -webkit-flex; @@ -8214,9 +10327,9 @@ md-sidenav { .sg-child-level-11 { padding-left: 176px; } -.md-sidenav-left md-list-item .md-button, md-sidenav md-list-item .md-button { - -webkit-transition: background-color 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); - transition: background-color 0.3s cubic-bezier(0.55, 0, 0.55, 0.2); } +[class^=sg-child-level] md-icon, [class^=sg-child-level] md-checkbox { + margin-right: 16px; + max-width: 24px; } /*! slider/_extends.scss - */ @-webkit-keyframes sliderFocusThumb { @@ -8416,16 +10529,13 @@ md-slider { -webkit-transform: scale(0.6); -ms-transform: scale(0.6); transform: scale(0.6); } - md-slider:not([md-discrete]):not([disabled]):focus .md-focus-thumb, - md-slider:not([md-discrete]):not([disabled]).md-active .md-focus-thumb { + md-slider:not([md-discrete]):not([disabled]):focus .md-focus-thumb, md-slider:not([md-discrete]):not([disabled]).md-active .md-focus-thumb { display: block; } - md-slider:not([md-discrete]):not([disabled]):focus .md-focus-ring, - md-slider:not([md-discrete]):not([disabled]).md-active .md-focus-ring { + md-slider:not([md-discrete]):not([disabled]):focus .md-focus-ring, md-slider:not([md-discrete]):not([disabled]).md-active .md-focus-ring { -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1); } - md-slider:not([md-discrete]):not([disabled]):focus .md-thumb, - md-slider:not([md-discrete]):not([disabled]).md-active .md-thumb { + md-slider:not([md-discrete]):not([disabled]):focus .md-thumb, md-slider:not([md-discrete]):not([disabled]).md-active .md-thumb { -webkit-transform: scale(0.85); -ms-transform: scale(0.85); transform: scale(0.85); } @@ -8435,8 +10545,7 @@ md-slider { md-slider[md-discrete] .md-focus-ring { display: none; } md-slider[md-discrete]:not([disabled]):focus .md-sign, - md-slider[md-discrete]:not([disabled]):focus .md-sign:after, - md-slider[md-discrete]:not([disabled]).md-active .md-sign, + md-slider[md-discrete]:not([disabled]):focus .md-sign:after, md-slider[md-discrete]:not([disabled]).md-active .md-sign, md-slider[md-discrete]:not([disabled]).md-active .md-sign:after { opacity: 1; -webkit-transform: translate3d(0, 0, 0) scale(1); @@ -8643,8 +10752,8 @@ md-switch { md-switch:not(.md-dragging) .md-bar, md-switch:not(.md-dragging) .md-thumb-container, md-switch:not(.md-dragging) .md-thumb { - -webkit-transition: all 0.5s cubic-bezier(0.35, 0, 0.25, 1); - transition: all 0.5s cubic-bezier(0.35, 0, 0.25, 1); + -webkit-transition: all 0.08s linear; + transition: all 0.08s linear; -webkit-transition-property: -webkit-transform, background-color; transition-property: transform, background-color; } md-switch:not(.md-dragging) .md-bar, @@ -8696,15 +10805,18 @@ md-tabs { flex-shrink: 0; } md-tabs:not(.md-no-tab-content):not(.md-dynamic-height) { min-height: 248px; } - md-tabs[md-align-tabs="bottom"] md-tabs-wrapper { - position: absolute; - bottom: 0; - left: 0; - right: 0; - height: 48px; } - md-tabs[md-align-tabs="bottom"] md-tabs-content-wrapper { - top: 0; - bottom: 48px; } + md-tabs[md-align-tabs="bottom"] { + padding-bottom: 48px; } + md-tabs[md-align-tabs="bottom"] md-tabs-wrapper { + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 48px; + z-index: 2; } + md-tabs[md-align-tabs="bottom"] md-tabs-content-wrapper { + top: 0; + bottom: 48px; } md-tabs.md-dynamic-height md-tabs-content-wrapper { min-height: 0; position: relative; @@ -8826,10 +10938,6 @@ md-pagination-wrapper { md-pagination-wrapper.md-center-tabs { position: relative; width: initial; - -webkit-box-flex: 1; - -webkit-flex: 1; - -ms-flex: 1; - flex: 1; margin: 0 auto; } md-tabs-content-wrapper { @@ -8968,7 +11076,7 @@ md-toast { border-radius: 2px; font-size: 14px; cursor: default; - height: auto; + height: 0px; max-height: 168px; max-width: 100%; overflow: hidden; @@ -8983,10 +11091,7 @@ md-toast { md-toast.ng-leave-active { -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-toast.md-swipeleft, - md-toast.md-swiperight, - md-toast.md-swipeup, - md-toast.md-swipedown { + md-toast.md-swipeleft, md-toast.md-swiperight, md-toast.md-swipeup, md-toast.md-swipedown { -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-toast.ng-enter { @@ -9278,8 +11383,7 @@ hgroup { -webkit-order: 2; -ms-flex-order: 2; order: 2; } - .sg-toolbar-group-3, - .sg-toolbar-group-last { + .sg-toolbar-group-3, .sg-toolbar-group-last { -webkit-box-ordinal-group: 4; -webkit-order: 3; -ms-flex-order: 3; @@ -9395,7 +11499,7 @@ md-tooltip { .md-virtual-repeat-container .md-virtual-repeat-sizer { box-sizing: border-box; height: 1px; - display: inline-block; + display: block; margin: 0; padding: 0; width: 1px; } @@ -9405,7 +11509,7 @@ md-tooltip { margin: 0; padding: 0; position: absolute; - right: 16px; + right: 0; top: 0; } .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller { @@ -9658,9 +11762,7 @@ sg-timepicker[disabled] .sg-timepicker-triangle-button { .pseudo-input-field--underline { border-bottom: 1px solid rgba(0, 0, 0, 0.12); } - .pseudo-input-field--underline:focus, - .pseudo-input-field--underline:active, - .pseudo-input-field--underline:hover { + .pseudo-input-field--underline:focus, .pseudo-input-field--underline:active, .pseudo-input-field--underline:hover { margin-bottom: 7px; border-bottom: 2px solid #a1ccc8; } @@ -9761,8 +11863,7 @@ md-input-container { -ms-flex-preferred-size: 26px; } md-input-container .md-input:focus { outline: none; } - md-input-container.md-input-focused label, - md-input-container.md-input-has-value label { + md-input-container.md-input-focused label, md-input-container.md-input-has-value label { -webkit-transform: translate3d(0, 6px, 0) scale(0.75); transform: translate3d(0, 6px, 0) scale(0.75); } md-input-container.md-input-focused .md-input { @@ -9838,11 +11939,11 @@ md-input-container .bgroup { -ms-transform: translateY(-100%); transform: translateY(-100%); } -.unread .sg-md-subhead-multi, -.unread .sg-md-body-multi, .unread .mailer_mailcontent { +.unread .sg-md-subhead, +.unread .sg-md-body { font-weight: 600; } -.unread .msg-date { +.unread .sg-tile-date { color: #8ebfbb; } .msg-header-content { @@ -9879,6 +11980,27 @@ md-input-container .bgroup { font-size: 14px; text-align: right; } +md-sidenav md-checkbox.sg-folder .md-container:after { + color: rgba(0, 0, 0, 0.54); + font-family: 'Material Icons'; + font-size: 24px; + content: "\e2c7"; + top: -4px; + left: -2px; + width: 1em; + height: 1em; } + +md-sidenav md-checkbox.sg-folder .md-icon { + border-width: 0; } + +md-sidenav md-checkbox.sg-folder.md-checked .md-container:after { + content: "\e2c8"; } + +md-sidenav md-checkbox.sg-folder.md-checked .md-icon { + background-color: initial; } + md-sidenav md-checkbox.sg-folder.md-checked .md-icon:after { + border-style: none; } + @media (min-width: 600px) { .msg-attachment-image { -webkit-box-flex: 0; @@ -9936,6 +12058,14 @@ textarea.plain-text { min-height: 192px; margin-top: 16px; } +/** + * Affected templates: + * - SchedulerUI/UIxCalDayView.wox + * - SchedulerUI/UIxCalWeekView.wox + * - SchedulerUI/UIxCalDayTable.wox + * - SchedulerUI/UIxCalMonthView.wox + * - SchedulerUI/UIxCalMulticolumnDayView.wox + */ [ui-view=calendars] .view-list { min-width: 192px; } @media (min-width: 601px) and (max-width: 1024px) { @@ -9953,6 +12083,10 @@ textarea.plain-text { -webkit-flex: 1 0 25vw; -ms-flex: 1 0 25vw; flex: 1 0 25vw; } } + [ui-view=calendars] .view-list .sg-avatar-selected:before { + margin-left: -8px; } + [ui-view=calendars] .view-list .sg-avatar-selected.md-avatar:first-child { + margin-right: 0; } @media (min-width: 601px) and (max-width: 1024px) { [ui-view=calendars] .view-detail { @@ -9965,21 +12099,46 @@ textarea.plain-text { @media (min-width: 1025px) { [ui-view=calendars] .view-detail { max-width: 55vw; - -webkit-box-flex: 2; - -webkit-flex: 2 1 55vw; - -ms-flex: 2 1 55vw; - flex: 2 1 55vw; } } + -webkit-box-flex: 1; + -webkit-flex: 1 1 55vw; + -ms-flex: 1 1 55vw; + flex: 1 1 55vw; } } -[ui-view=calendars] .sg-draggable { - cursor: move; } +[ui-view=calendars] .calendarView { + position: absolute; + top: 0; + bottom: 0; + right: 0; + left: 0; } -[ui-view=calendars] .dayLabels { - overflow: hidden; } - [ui-view=calendars] .dayLabels .day { - text-align: center; } +[ui-view=calendars] md-toolbar.daysView, [ui-view=calendars] md-toolbar.monthView { + overflow: hidden; + z-index: 9; } + [ui-view=calendars] md-toolbar.daysView .days, [ui-view=calendars] md-toolbar.monthView .days { + margin-left: 50px; + margin-right: 16px; } + [ui-view=calendars] md-toolbar.daysView .days.dayLabels .day, [ui-view=calendars] md-toolbar.monthView .days.dayLabels .day { + padding-left: 1%; } -[ui-view=calendars] .allDays { - border-bottom: 1px solid #e6d8ba; } +[ui-view=calendars] md-toolbar[sg-view$=dayview] .dayLabels .day { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; } + +[ui-view=calendars] .allDaysView { + border-bottom: 1px solid #e6d8ba; + max-height: 120px; } + [ui-view=calendars] .allDaysView .sg-event { + margin: 2%; + line-height: initial; + position: relative; } + [ui-view=calendars] .allDaysView .gradient, [ui-view=calendars] .allDaysView .text { + position: relative; } [ui-view=calendars] .days { display: -webkit-box; @@ -9996,33 +12155,26 @@ textarea.plain-text { -ms-flex-align: stretch; align-items: stretch; } [ui-view=calendars] .days .day { - border-left: 1px solid #e6d8ba; } - [ui-view=calendars] .days .day .clickableHourCell { - height: 40px; - border-bottom: 1px solid #e6d8ba; } - -[ui-view=calendars] .daysViewFor1Days, -[ui-view=calendars] .daysViewFor7Days { - margin-left: 50px; } - [ui-view=calendars] .daysViewFor1Days .day, - [ui-view=calendars] .daysViewFor7Days .day { -webkit-box-flex: 1; -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; -webkit-flex-basis: 0; -ms-flex-preferred-size: 0; - flex-basis: 0; } + flex-basis: 0; + border-left: 1px solid #e6d8ba; } + [ui-view=calendars] .days .day .clickableHourCell { + height: 40px; + border-bottom: 1px solid #e6d8ba; } [ui-view=calendars] .sg-calendar-tile-header { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - color: #524517; font-size: 14px; - font-weight: 300; - overflow: hidden; - padding: 2px; } + padding: 2px; + min-height: 18px; + overflow: hidden; } [ui-view=calendars] .hours { color: #7db3b0; @@ -10045,428 +12197,451 @@ textarea.plain-text { right: 0; top: 0; } +[ui-view=calendars] .hourCells { + position: relative; } + [ui-view=calendars] .sg-event { font-size: 14px; } [ui-view=calendars] .sg-event, [ui-view=calendars] .sg-event md-icon { - color: #fff; } + color: #fff !important; } [ui-view=calendars] .sg-event .material-icons { font-size: 14px; } - .allDays [ui-view=calendars] .sg-event { - margin: 2%; - line-height: initial; } -[ui-view=calendars] .daysView { - bottom: 0; - overflow-x: hidden; - overflow: auto; - top: 0; } - [ui-view=calendars] .daysView .hourCells { - position: relative; } - [ui-view=calendars] .daysView .sg-event { - border-radius: 3px; - position: absolute; - left: 0; - right: 0; - opacity: 0.9; +[ui-view=calendars] .sg-draggable { + cursor: move; } + +[ui-view=calendars] .sg-event { + border-radius: 3px; + position: absolute; + left: 0; + right: 0; + opacity: 0.9; + overflow: hidden; } + [ui-view=calendars] .sg-event.starts0 { + top: 0px; } + [ui-view=calendars] .sg-event.lasts0 { + height: 0px; } + [ui-view=calendars] .sg-event.starts1 { + top: 10px; } + [ui-view=calendars] .sg-event.lasts1 { + height: 10px; } + [ui-view=calendars] .sg-event.starts2 { + top: 20px; } + [ui-view=calendars] .sg-event.lasts2 { + height: 20px; } + [ui-view=calendars] .sg-event.starts3 { + top: 30px; } + [ui-view=calendars] .sg-event.lasts3 { + height: 30px; } + [ui-view=calendars] .sg-event.starts4 { + top: 40px; } + [ui-view=calendars] .sg-event.lasts4 { + height: 40px; } + [ui-view=calendars] .sg-event.starts5 { + top: 50px; } + [ui-view=calendars] .sg-event.lasts5 { + height: 50px; } + [ui-view=calendars] .sg-event.starts6 { + top: 60px; } + [ui-view=calendars] .sg-event.lasts6 { + height: 60px; } + [ui-view=calendars] .sg-event.starts7 { + top: 70px; } + [ui-view=calendars] .sg-event.lasts7 { + height: 70px; } + [ui-view=calendars] .sg-event.starts8 { + top: 80px; } + [ui-view=calendars] .sg-event.lasts8 { + height: 80px; } + [ui-view=calendars] .sg-event.starts9 { + top: 90px; } + [ui-view=calendars] .sg-event.lasts9 { + height: 90px; } + [ui-view=calendars] .sg-event.starts10 { + top: 100px; } + [ui-view=calendars] .sg-event.lasts10 { + height: 100px; } + [ui-view=calendars] .sg-event.starts11 { + top: 110px; } + [ui-view=calendars] .sg-event.lasts11 { + height: 110px; } + [ui-view=calendars] .sg-event.starts12 { + top: 120px; } + [ui-view=calendars] .sg-event.lasts12 { + height: 120px; } + [ui-view=calendars] .sg-event.starts13 { + top: 130px; } + [ui-view=calendars] .sg-event.lasts13 { + height: 130px; } + [ui-view=calendars] .sg-event.starts14 { + top: 140px; } + [ui-view=calendars] .sg-event.lasts14 { + height: 140px; } + [ui-view=calendars] .sg-event.starts15 { + top: 150px; } + [ui-view=calendars] .sg-event.lasts15 { + height: 150px; } + [ui-view=calendars] .sg-event.starts16 { + top: 160px; } + [ui-view=calendars] .sg-event.lasts16 { + height: 160px; } + [ui-view=calendars] .sg-event.starts17 { + top: 170px; } + [ui-view=calendars] .sg-event.lasts17 { + height: 170px; } + [ui-view=calendars] .sg-event.starts18 { + top: 180px; } + [ui-view=calendars] .sg-event.lasts18 { + height: 180px; } + [ui-view=calendars] .sg-event.starts19 { + top: 190px; } + [ui-view=calendars] .sg-event.lasts19 { + height: 190px; } + [ui-view=calendars] .sg-event.starts20 { + top: 200px; } + [ui-view=calendars] .sg-event.lasts20 { + height: 200px; } + [ui-view=calendars] .sg-event.starts21 { + top: 210px; } + [ui-view=calendars] .sg-event.lasts21 { + height: 210px; } + [ui-view=calendars] .sg-event.starts22 { + top: 220px; } + [ui-view=calendars] .sg-event.lasts22 { + height: 220px; } + [ui-view=calendars] .sg-event.starts23 { + top: 230px; } + [ui-view=calendars] .sg-event.lasts23 { + height: 230px; } + [ui-view=calendars] .sg-event.starts24 { + top: 240px; } + [ui-view=calendars] .sg-event.lasts24 { + height: 240px; } + [ui-view=calendars] .sg-event.starts25 { + top: 250px; } + [ui-view=calendars] .sg-event.lasts25 { + height: 250px; } + [ui-view=calendars] .sg-event.starts26 { + top: 260px; } + [ui-view=calendars] .sg-event.lasts26 { + height: 260px; } + [ui-view=calendars] .sg-event.starts27 { + top: 270px; } + [ui-view=calendars] .sg-event.lasts27 { + height: 270px; } + [ui-view=calendars] .sg-event.starts28 { + top: 280px; } + [ui-view=calendars] .sg-event.lasts28 { + height: 280px; } + [ui-view=calendars] .sg-event.starts29 { + top: 290px; } + [ui-view=calendars] .sg-event.lasts29 { + height: 290px; } + [ui-view=calendars] .sg-event.starts30 { + top: 300px; } + [ui-view=calendars] .sg-event.lasts30 { + height: 300px; } + [ui-view=calendars] .sg-event.starts31 { + top: 310px; } + [ui-view=calendars] .sg-event.lasts31 { + height: 310px; } + [ui-view=calendars] .sg-event.starts32 { + top: 320px; } + [ui-view=calendars] .sg-event.lasts32 { + height: 320px; } + [ui-view=calendars] .sg-event.starts33 { + top: 330px; } + [ui-view=calendars] .sg-event.lasts33 { + height: 330px; } + [ui-view=calendars] .sg-event.starts34 { + top: 340px; } + [ui-view=calendars] .sg-event.lasts34 { + height: 340px; } + [ui-view=calendars] .sg-event.starts35 { + top: 350px; } + [ui-view=calendars] .sg-event.lasts35 { + height: 350px; } + [ui-view=calendars] .sg-event.starts36 { + top: 360px; } + [ui-view=calendars] .sg-event.lasts36 { + height: 360px; } + [ui-view=calendars] .sg-event.starts37 { + top: 370px; } + [ui-view=calendars] .sg-event.lasts37 { + height: 370px; } + [ui-view=calendars] .sg-event.starts38 { + top: 380px; } + [ui-view=calendars] .sg-event.lasts38 { + height: 380px; } + [ui-view=calendars] .sg-event.starts39 { + top: 390px; } + [ui-view=calendars] .sg-event.lasts39 { + height: 390px; } + [ui-view=calendars] .sg-event.starts40 { + top: 400px; } + [ui-view=calendars] .sg-event.lasts40 { + height: 400px; } + [ui-view=calendars] .sg-event.starts41 { + top: 410px; } + [ui-view=calendars] .sg-event.lasts41 { + height: 410px; } + [ui-view=calendars] .sg-event.starts42 { + top: 420px; } + [ui-view=calendars] .sg-event.lasts42 { + height: 420px; } + [ui-view=calendars] .sg-event.starts43 { + top: 430px; } + [ui-view=calendars] .sg-event.lasts43 { + height: 430px; } + [ui-view=calendars] .sg-event.starts44 { + top: 440px; } + [ui-view=calendars] .sg-event.lasts44 { + height: 440px; } + [ui-view=calendars] .sg-event.starts45 { + top: 450px; } + [ui-view=calendars] .sg-event.lasts45 { + height: 450px; } + [ui-view=calendars] .sg-event.starts46 { + top: 460px; } + [ui-view=calendars] .sg-event.lasts46 { + height: 460px; } + [ui-view=calendars] .sg-event.starts47 { + top: 470px; } + [ui-view=calendars] .sg-event.lasts47 { + height: 470px; } + [ui-view=calendars] .sg-event.starts48 { + top: 480px; } + [ui-view=calendars] .sg-event.lasts48 { + height: 480px; } + [ui-view=calendars] .sg-event.starts49 { + top: 490px; } + [ui-view=calendars] .sg-event.lasts49 { + height: 490px; } + [ui-view=calendars] .sg-event.starts50 { + top: 500px; } + [ui-view=calendars] .sg-event.lasts50 { + height: 500px; } + [ui-view=calendars] .sg-event.starts51 { + top: 510px; } + [ui-view=calendars] .sg-event.lasts51 { + height: 510px; } + [ui-view=calendars] .sg-event.starts52 { + top: 520px; } + [ui-view=calendars] .sg-event.lasts52 { + height: 520px; } + [ui-view=calendars] .sg-event.starts53 { + top: 530px; } + [ui-view=calendars] .sg-event.lasts53 { + height: 530px; } + [ui-view=calendars] .sg-event.starts54 { + top: 540px; } + [ui-view=calendars] .sg-event.lasts54 { + height: 540px; } + [ui-view=calendars] .sg-event.starts55 { + top: 550px; } + [ui-view=calendars] .sg-event.lasts55 { + height: 550px; } + [ui-view=calendars] .sg-event.starts56 { + top: 560px; } + [ui-view=calendars] .sg-event.lasts56 { + height: 560px; } + [ui-view=calendars] .sg-event.starts57 { + top: 570px; } + [ui-view=calendars] .sg-event.lasts57 { + height: 570px; } + [ui-view=calendars] .sg-event.starts58 { + top: 580px; } + [ui-view=calendars] .sg-event.lasts58 { + height: 580px; } + [ui-view=calendars] .sg-event.starts59 { + top: 590px; } + [ui-view=calendars] .sg-event.lasts59 { + height: 590px; } + [ui-view=calendars] .sg-event.starts60 { + top: 600px; } + [ui-view=calendars] .sg-event.lasts60 { + height: 600px; } + [ui-view=calendars] .sg-event.starts61 { + top: 610px; } + [ui-view=calendars] .sg-event.lasts61 { + height: 610px; } + [ui-view=calendars] .sg-event.starts62 { + top: 620px; } + [ui-view=calendars] .sg-event.lasts62 { + height: 620px; } + [ui-view=calendars] .sg-event.starts63 { + top: 630px; } + [ui-view=calendars] .sg-event.lasts63 { + height: 630px; } + [ui-view=calendars] .sg-event.starts64 { + top: 640px; } + [ui-view=calendars] .sg-event.lasts64 { + height: 640px; } + [ui-view=calendars] .sg-event.starts65 { + top: 650px; } + [ui-view=calendars] .sg-event.lasts65 { + height: 650px; } + [ui-view=calendars] .sg-event.starts66 { + top: 660px; } + [ui-view=calendars] .sg-event.lasts66 { + height: 660px; } + [ui-view=calendars] .sg-event.starts67 { + top: 670px; } + [ui-view=calendars] .sg-event.lasts67 { + height: 670px; } + [ui-view=calendars] .sg-event.starts68 { + top: 680px; } + [ui-view=calendars] .sg-event.lasts68 { + height: 680px; } + [ui-view=calendars] .sg-event.starts69 { + top: 690px; } + [ui-view=calendars] .sg-event.lasts69 { + height: 690px; } + [ui-view=calendars] .sg-event.starts70 { + top: 700px; } + [ui-view=calendars] .sg-event.lasts70 { + height: 700px; } + [ui-view=calendars] .sg-event.starts71 { + top: 710px; } + [ui-view=calendars] .sg-event.lasts71 { + height: 710px; } + [ui-view=calendars] .sg-event.starts72 { + top: 720px; } + [ui-view=calendars] .sg-event.lasts72 { + height: 720px; } + [ui-view=calendars] .sg-event.starts73 { + top: 730px; } + [ui-view=calendars] .sg-event.lasts73 { + height: 730px; } + [ui-view=calendars] .sg-event.starts74 { + top: 740px; } + [ui-view=calendars] .sg-event.lasts74 { + height: 740px; } + [ui-view=calendars] .sg-event.starts75 { + top: 750px; } + [ui-view=calendars] .sg-event.lasts75 { + height: 750px; } + [ui-view=calendars] .sg-event.starts76 { + top: 760px; } + [ui-view=calendars] .sg-event.lasts76 { + height: 760px; } + [ui-view=calendars] .sg-event.starts77 { + top: 770px; } + [ui-view=calendars] .sg-event.lasts77 { + height: 770px; } + [ui-view=calendars] .sg-event.starts78 { + top: 780px; } + [ui-view=calendars] .sg-event.lasts78 { + height: 780px; } + [ui-view=calendars] .sg-event.starts79 { + top: 790px; } + [ui-view=calendars] .sg-event.lasts79 { + height: 790px; } + [ui-view=calendars] .sg-event.starts80 { + top: 800px; } + [ui-view=calendars] .sg-event.lasts80 { + height: 800px; } + [ui-view=calendars] .sg-event.starts81 { + top: 810px; } + [ui-view=calendars] .sg-event.lasts81 { + height: 810px; } + [ui-view=calendars] .sg-event.starts82 { + top: 820px; } + [ui-view=calendars] .sg-event.lasts82 { + height: 820px; } + [ui-view=calendars] .sg-event.starts83 { + top: 830px; } + [ui-view=calendars] .sg-event.lasts83 { + height: 830px; } + [ui-view=calendars] .sg-event.starts84 { + top: 840px; } + [ui-view=calendars] .sg-event.lasts84 { + height: 840px; } + [ui-view=calendars] .sg-event.starts85 { + top: 850px; } + [ui-view=calendars] .sg-event.lasts85 { + height: 850px; } + [ui-view=calendars] .sg-event.starts86 { + top: 860px; } + [ui-view=calendars] .sg-event.lasts86 { + height: 860px; } + [ui-view=calendars] .sg-event.starts87 { + top: 870px; } + [ui-view=calendars] .sg-event.lasts87 { + height: 870px; } + [ui-view=calendars] .sg-event.starts88 { + top: 880px; } + [ui-view=calendars] .sg-event.lasts88 { + height: 880px; } + [ui-view=calendars] .sg-event.starts89 { + top: 890px; } + [ui-view=calendars] .sg-event.lasts89 { + height: 890px; } + [ui-view=calendars] .sg-event.starts90 { + top: 900px; } + [ui-view=calendars] .sg-event.lasts90 { + height: 900px; } + [ui-view=calendars] .sg-event.starts91 { + top: 910px; } + [ui-view=calendars] .sg-event.lasts91 { + height: 910px; } + [ui-view=calendars] .sg-event.starts92 { + top: 920px; } + [ui-view=calendars] .sg-event.lasts92 { + height: 920px; } + [ui-view=calendars] .sg-event.starts93 { + top: 930px; } + [ui-view=calendars] .sg-event.lasts93 { + height: 930px; } + [ui-view=calendars] .sg-event.starts94 { + top: 940px; } + [ui-view=calendars] .sg-event.lasts94 { + height: 940px; } + [ui-view=calendars] .sg-event.starts95 { + top: 950px; } + [ui-view=calendars] .sg-event.lasts95 { + height: 950px; } + [ui-view=calendars] .sg-event .eventInside { overflow: hidden; } - [ui-view=calendars] .daysView .sg-event.starts0 { - top: 0px; } - [ui-view=calendars] .daysView .sg-event.lasts0 { - height: 0px; } - [ui-view=calendars] .daysView .sg-event.starts1 { - top: 10px; } - [ui-view=calendars] .daysView .sg-event.lasts1 { - height: 10px; } - [ui-view=calendars] .daysView .sg-event.starts2 { - top: 20px; } - [ui-view=calendars] .daysView .sg-event.lasts2 { - height: 20px; } - [ui-view=calendars] .daysView .sg-event.starts3 { - top: 30px; } - [ui-view=calendars] .daysView .sg-event.lasts3 { - height: 30px; } - [ui-view=calendars] .daysView .sg-event.starts4 { - top: 40px; } - [ui-view=calendars] .daysView .sg-event.lasts4 { - height: 40px; } - [ui-view=calendars] .daysView .sg-event.starts5 { - top: 50px; } - [ui-view=calendars] .daysView .sg-event.lasts5 { - height: 50px; } - [ui-view=calendars] .daysView .sg-event.starts6 { - top: 60px; } - [ui-view=calendars] .daysView .sg-event.lasts6 { - height: 60px; } - [ui-view=calendars] .daysView .sg-event.starts7 { - top: 70px; } - [ui-view=calendars] .daysView .sg-event.lasts7 { - height: 70px; } - [ui-view=calendars] .daysView .sg-event.starts8 { - top: 80px; } - [ui-view=calendars] .daysView .sg-event.lasts8 { - height: 80px; } - [ui-view=calendars] .daysView .sg-event.starts9 { - top: 90px; } - [ui-view=calendars] .daysView .sg-event.lasts9 { - height: 90px; } - [ui-view=calendars] .daysView .sg-event.starts10 { - top: 100px; } - [ui-view=calendars] .daysView .sg-event.lasts10 { - height: 100px; } - [ui-view=calendars] .daysView .sg-event.starts11 { - top: 110px; } - [ui-view=calendars] .daysView .sg-event.lasts11 { - height: 110px; } - [ui-view=calendars] .daysView .sg-event.starts12 { - top: 120px; } - [ui-view=calendars] .daysView .sg-event.lasts12 { - height: 120px; } - [ui-view=calendars] .daysView .sg-event.starts13 { - top: 130px; } - [ui-view=calendars] .daysView .sg-event.lasts13 { - height: 130px; } - [ui-view=calendars] .daysView .sg-event.starts14 { - top: 140px; } - [ui-view=calendars] .daysView .sg-event.lasts14 { - height: 140px; } - [ui-view=calendars] .daysView .sg-event.starts15 { - top: 150px; } - [ui-view=calendars] .daysView .sg-event.lasts15 { - height: 150px; } - [ui-view=calendars] .daysView .sg-event.starts16 { - top: 160px; } - [ui-view=calendars] .daysView .sg-event.lasts16 { - height: 160px; } - [ui-view=calendars] .daysView .sg-event.starts17 { - top: 170px; } - [ui-view=calendars] .daysView .sg-event.lasts17 { - height: 170px; } - [ui-view=calendars] .daysView .sg-event.starts18 { - top: 180px; } - [ui-view=calendars] .daysView .sg-event.lasts18 { - height: 180px; } - [ui-view=calendars] .daysView .sg-event.starts19 { - top: 190px; } - [ui-view=calendars] .daysView .sg-event.lasts19 { - height: 190px; } - [ui-view=calendars] .daysView .sg-event.starts20 { - top: 200px; } - [ui-view=calendars] .daysView .sg-event.lasts20 { - height: 200px; } - [ui-view=calendars] .daysView .sg-event.starts21 { - top: 210px; } - [ui-view=calendars] .daysView .sg-event.lasts21 { - height: 210px; } - [ui-view=calendars] .daysView .sg-event.starts22 { - top: 220px; } - [ui-view=calendars] .daysView .sg-event.lasts22 { - height: 220px; } - [ui-view=calendars] .daysView .sg-event.starts23 { - top: 230px; } - [ui-view=calendars] .daysView .sg-event.lasts23 { - height: 230px; } - [ui-view=calendars] .daysView .sg-event.starts24 { - top: 240px; } - [ui-view=calendars] .daysView .sg-event.lasts24 { - height: 240px; } - [ui-view=calendars] .daysView .sg-event.starts25 { - top: 250px; } - [ui-view=calendars] .daysView .sg-event.lasts25 { - height: 250px; } - [ui-view=calendars] .daysView .sg-event.starts26 { - top: 260px; } - [ui-view=calendars] .daysView .sg-event.lasts26 { - height: 260px; } - [ui-view=calendars] .daysView .sg-event.starts27 { - top: 270px; } - [ui-view=calendars] .daysView .sg-event.lasts27 { - height: 270px; } - [ui-view=calendars] .daysView .sg-event.starts28 { - top: 280px; } - [ui-view=calendars] .daysView .sg-event.lasts28 { - height: 280px; } - [ui-view=calendars] .daysView .sg-event.starts29 { - top: 290px; } - [ui-view=calendars] .daysView .sg-event.lasts29 { - height: 290px; } - [ui-view=calendars] .daysView .sg-event.starts30 { - top: 300px; } - [ui-view=calendars] .daysView .sg-event.lasts30 { - height: 300px; } - [ui-view=calendars] .daysView .sg-event.starts31 { - top: 310px; } - [ui-view=calendars] .daysView .sg-event.lasts31 { - height: 310px; } - [ui-view=calendars] .daysView .sg-event.starts32 { - top: 320px; } - [ui-view=calendars] .daysView .sg-event.lasts32 { - height: 320px; } - [ui-view=calendars] .daysView .sg-event.starts33 { - top: 330px; } - [ui-view=calendars] .daysView .sg-event.lasts33 { - height: 330px; } - [ui-view=calendars] .daysView .sg-event.starts34 { - top: 340px; } - [ui-view=calendars] .daysView .sg-event.lasts34 { - height: 340px; } - [ui-view=calendars] .daysView .sg-event.starts35 { - top: 350px; } - [ui-view=calendars] .daysView .sg-event.lasts35 { - height: 350px; } - [ui-view=calendars] .daysView .sg-event.starts36 { - top: 360px; } - [ui-view=calendars] .daysView .sg-event.lasts36 { - height: 360px; } - [ui-view=calendars] .daysView .sg-event.starts37 { - top: 370px; } - [ui-view=calendars] .daysView .sg-event.lasts37 { - height: 370px; } - [ui-view=calendars] .daysView .sg-event.starts38 { - top: 380px; } - [ui-view=calendars] .daysView .sg-event.lasts38 { - height: 380px; } - [ui-view=calendars] .daysView .sg-event.starts39 { - top: 390px; } - [ui-view=calendars] .daysView .sg-event.lasts39 { - height: 390px; } - [ui-view=calendars] .daysView .sg-event.starts40 { - top: 400px; } - [ui-view=calendars] .daysView .sg-event.lasts40 { - height: 400px; } - [ui-view=calendars] .daysView .sg-event.starts41 { - top: 410px; } - [ui-view=calendars] .daysView .sg-event.lasts41 { - height: 410px; } - [ui-view=calendars] .daysView .sg-event.starts42 { - top: 420px; } - [ui-view=calendars] .daysView .sg-event.lasts42 { - height: 420px; } - [ui-view=calendars] .daysView .sg-event.starts43 { - top: 430px; } - [ui-view=calendars] .daysView .sg-event.lasts43 { - height: 430px; } - [ui-view=calendars] .daysView .sg-event.starts44 { - top: 440px; } - [ui-view=calendars] .daysView .sg-event.lasts44 { - height: 440px; } - [ui-view=calendars] .daysView .sg-event.starts45 { - top: 450px; } - [ui-view=calendars] .daysView .sg-event.lasts45 { - height: 450px; } - [ui-view=calendars] .daysView .sg-event.starts46 { - top: 460px; } - [ui-view=calendars] .daysView .sg-event.lasts46 { - height: 460px; } - [ui-view=calendars] .daysView .sg-event.starts47 { - top: 470px; } - [ui-view=calendars] .daysView .sg-event.lasts47 { - height: 470px; } - [ui-view=calendars] .daysView .sg-event.starts48 { - top: 480px; } - [ui-view=calendars] .daysView .sg-event.lasts48 { - height: 480px; } - [ui-view=calendars] .daysView .sg-event.starts49 { - top: 490px; } - [ui-view=calendars] .daysView .sg-event.lasts49 { - height: 490px; } - [ui-view=calendars] .daysView .sg-event.starts50 { - top: 500px; } - [ui-view=calendars] .daysView .sg-event.lasts50 { - height: 500px; } - [ui-view=calendars] .daysView .sg-event.starts51 { - top: 510px; } - [ui-view=calendars] .daysView .sg-event.lasts51 { - height: 510px; } - [ui-view=calendars] .daysView .sg-event.starts52 { - top: 520px; } - [ui-view=calendars] .daysView .sg-event.lasts52 { - height: 520px; } - [ui-view=calendars] .daysView .sg-event.starts53 { - top: 530px; } - [ui-view=calendars] .daysView .sg-event.lasts53 { - height: 530px; } - [ui-view=calendars] .daysView .sg-event.starts54 { - top: 540px; } - [ui-view=calendars] .daysView .sg-event.lasts54 { - height: 540px; } - [ui-view=calendars] .daysView .sg-event.starts55 { - top: 550px; } - [ui-view=calendars] .daysView .sg-event.lasts55 { - height: 550px; } - [ui-view=calendars] .daysView .sg-event.starts56 { - top: 560px; } - [ui-view=calendars] .daysView .sg-event.lasts56 { - height: 560px; } - [ui-view=calendars] .daysView .sg-event.starts57 { - top: 570px; } - [ui-view=calendars] .daysView .sg-event.lasts57 { - height: 570px; } - [ui-view=calendars] .daysView .sg-event.starts58 { - top: 580px; } - [ui-view=calendars] .daysView .sg-event.lasts58 { - height: 580px; } - [ui-view=calendars] .daysView .sg-event.starts59 { - top: 590px; } - [ui-view=calendars] .daysView .sg-event.lasts59 { - height: 590px; } - [ui-view=calendars] .daysView .sg-event.starts60 { - top: 600px; } - [ui-view=calendars] .daysView .sg-event.lasts60 { - height: 600px; } - [ui-view=calendars] .daysView .sg-event.starts61 { - top: 610px; } - [ui-view=calendars] .daysView .sg-event.lasts61 { - height: 610px; } - [ui-view=calendars] .daysView .sg-event.starts62 { - top: 620px; } - [ui-view=calendars] .daysView .sg-event.lasts62 { - height: 620px; } - [ui-view=calendars] .daysView .sg-event.starts63 { - top: 630px; } - [ui-view=calendars] .daysView .sg-event.lasts63 { - height: 630px; } - [ui-view=calendars] .daysView .sg-event.starts64 { - top: 640px; } - [ui-view=calendars] .daysView .sg-event.lasts64 { - height: 640px; } - [ui-view=calendars] .daysView .sg-event.starts65 { - top: 650px; } - [ui-view=calendars] .daysView .sg-event.lasts65 { - height: 650px; } - [ui-view=calendars] .daysView .sg-event.starts66 { - top: 660px; } - [ui-view=calendars] .daysView .sg-event.lasts66 { - height: 660px; } - [ui-view=calendars] .daysView .sg-event.starts67 { - top: 670px; } - [ui-view=calendars] .daysView .sg-event.lasts67 { - height: 670px; } - [ui-view=calendars] .daysView .sg-event.starts68 { - top: 680px; } - [ui-view=calendars] .daysView .sg-event.lasts68 { - height: 680px; } - [ui-view=calendars] .daysView .sg-event.starts69 { - top: 690px; } - [ui-view=calendars] .daysView .sg-event.lasts69 { - height: 690px; } - [ui-view=calendars] .daysView .sg-event.starts70 { - top: 700px; } - [ui-view=calendars] .daysView .sg-event.lasts70 { - height: 700px; } - [ui-view=calendars] .daysView .sg-event.starts71 { - top: 710px; } - [ui-view=calendars] .daysView .sg-event.lasts71 { - height: 710px; } - [ui-view=calendars] .daysView .sg-event.starts72 { - top: 720px; } - [ui-view=calendars] .daysView .sg-event.lasts72 { - height: 720px; } - [ui-view=calendars] .daysView .sg-event.starts73 { - top: 730px; } - [ui-view=calendars] .daysView .sg-event.lasts73 { - height: 730px; } - [ui-view=calendars] .daysView .sg-event.starts74 { - top: 740px; } - [ui-view=calendars] .daysView .sg-event.lasts74 { - height: 740px; } - [ui-view=calendars] .daysView .sg-event.starts75 { - top: 750px; } - [ui-view=calendars] .daysView .sg-event.lasts75 { - height: 750px; } - [ui-view=calendars] .daysView .sg-event.starts76 { - top: 760px; } - [ui-view=calendars] .daysView .sg-event.lasts76 { - height: 760px; } - [ui-view=calendars] .daysView .sg-event.starts77 { - top: 770px; } - [ui-view=calendars] .daysView .sg-event.lasts77 { - height: 770px; } - [ui-view=calendars] .daysView .sg-event.starts78 { - top: 780px; } - [ui-view=calendars] .daysView .sg-event.lasts78 { - height: 780px; } - [ui-view=calendars] .daysView .sg-event.starts79 { - top: 790px; } - [ui-view=calendars] .daysView .sg-event.lasts79 { - height: 790px; } - [ui-view=calendars] .daysView .sg-event.starts80 { - top: 800px; } - [ui-view=calendars] .daysView .sg-event.lasts80 { - height: 800px; } - [ui-view=calendars] .daysView .sg-event.starts81 { - top: 810px; } - [ui-view=calendars] .daysView .sg-event.lasts81 { - height: 810px; } - [ui-view=calendars] .daysView .sg-event.starts82 { - top: 820px; } - [ui-view=calendars] .daysView .sg-event.lasts82 { - height: 820px; } - [ui-view=calendars] .daysView .sg-event.starts83 { - top: 830px; } - [ui-view=calendars] .daysView .sg-event.lasts83 { - height: 830px; } - [ui-view=calendars] .daysView .sg-event.starts84 { - top: 840px; } - [ui-view=calendars] .daysView .sg-event.lasts84 { - height: 840px; } - [ui-view=calendars] .daysView .sg-event.starts85 { - top: 850px; } - [ui-view=calendars] .daysView .sg-event.lasts85 { - height: 850px; } - [ui-view=calendars] .daysView .sg-event.starts86 { - top: 860px; } - [ui-view=calendars] .daysView .sg-event.lasts86 { - height: 860px; } - [ui-view=calendars] .daysView .sg-event.starts87 { - top: 870px; } - [ui-view=calendars] .daysView .sg-event.lasts87 { - height: 870px; } - [ui-view=calendars] .daysView .sg-event.starts88 { - top: 880px; } - [ui-view=calendars] .daysView .sg-event.lasts88 { - height: 880px; } - [ui-view=calendars] .daysView .sg-event.starts89 { - top: 890px; } - [ui-view=calendars] .daysView .sg-event.lasts89 { - height: 890px; } - [ui-view=calendars] .daysView .sg-event.starts90 { - top: 900px; } - [ui-view=calendars] .daysView .sg-event.lasts90 { - height: 900px; } - [ui-view=calendars] .daysView .sg-event.starts91 { - top: 910px; } - [ui-view=calendars] .daysView .sg-event.lasts91 { - height: 910px; } - [ui-view=calendars] .daysView .sg-event.starts92 { - top: 920px; } - [ui-view=calendars] .daysView .sg-event.lasts92 { - height: 920px; } - [ui-view=calendars] .daysView .sg-event.starts93 { - top: 930px; } - [ui-view=calendars] .daysView .sg-event.lasts93 { - height: 930px; } - [ui-view=calendars] .daysView .sg-event.starts94 { - top: 940px; } - [ui-view=calendars] .daysView .sg-event.lasts94 { - height: 940px; } - [ui-view=calendars] .daysView .sg-event.starts95 { - top: 950px; } - [ui-view=calendars] .daysView .sg-event.lasts95 { - height: 950px; } - [ui-view=calendars] .daysView .sg-event .eventInside { - overflow: hidden; } - [ui-view=calendars] .daysView.daysHeader .sg-event { - position: relative; } + +[ui-view=calendars] .multicolumnDay { + font-size: 16px; + font-weight: 300; + overflow: hidden; + max-height: 48px; + padding-left: 2px; + margin-right: 2px; } [ui-view=calendars] .monthView md-grid-tile { - border: 1px solid #e6d8ba; + border-right: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; overflow: auto; } + [ui-view=calendars] .monthView md-grid-tile.dayOfAnotherMonth { + background-color: #fafafa; } + [ui-view=calendars] .monthView md-grid-tile.dayOfAnotherMonth .sg-calendar-tile-header, + [ui-view=calendars] .monthView md-grid-tile.dayOfAnotherMonth .sg-calendar-tile-header > span { + color: #dddddd !important; } + [ui-view=calendars] .monthView md-grid-tile.dayOfToday .sg-calendar-tile-header > span { + border-radius: 50%; + color: #fff; + display: inline-block; + font-weight: 600; + margin-right: auto; + margin-left: 1px; + min-width: 18px; + min-height: 18px; + line-height: 18px; + text-align: center; } + +[ui-view=calendars] .monthView md-content { + background-color: transparent; } [ui-view=calendars] .monthView .sg-event { + position: relative; border-radius: 1px; overflow: hidden; - padding: 2px; - margin-bottom: 1px; + padding: 2%; + margin: 2%; text-overflow: ellipsis; white-space: nowrap; } [ui-view=calendars] .monthView .sg-event span { @@ -10486,8 +12661,6 @@ textarea.plain-text { right: 2px; bottom: 1px; overflow: hidden; } - .allDays [ui-view=calendars] .gradient, .allDays [ui-view=calendars] .text { - position: relative; } [ui-view=calendars] .gradient > IMG { position: absolute; @@ -10521,7 +12694,7 @@ textarea.plain-text { padding-left: 0; } .attendees md-list-item:hover { background-color: initial; } - .attendees .md-tile-left, .attendees .md-tile-left-list, .attendees .sg-list-avatar, .attendees .md-tile-left-selected, .attendees .sg-selected-avatar { + .attendees .md-tile-left { height: initial; min-height: 48px; width: initial; @@ -10567,6 +12740,26 @@ textarea.plain-text { .attendees .quarter.event { background-color: #bfe0dd; } +[ui-view="administration"] [id="usersList"] > md-list { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + overflow: hidden; + overflow-y: auto; } + [ui-view="administration"] [id="usersList"] > md-list .sg-folder .md-button { + -webkit-box-flex: 1; + -webkit-flex: 1 1 auto; + -ms-flex: 1 1 auto; + flex: 1 1 auto; + text-align: left; + text-transform: none; } + +@media (min-width: 601px) { + [ui-view="administration"] .view-detail .viewer { + top: 128px; } } + .view[layout=row], .view.layout-row { max-height: 100%; } diff --git a/UI/WebServerResources/css/styles.css.map b/UI/WebServerResources/css/styles.css.map index eb03d6a51..bf179828d 100644 --- a/UI/WebServerResources/css/styles.css.map +++ b/UI/WebServerResources/css/styles.css.map @@ -1 +1 @@ -{"version":3,"sources":["../scss/components/_palette.scss","../scss/core/reset.scss","styles.css","../scss/core/angular.scss","../scss/styles.scss","../angular-material/src/core/style/structure.scss","../angular-material/src/core/style/mixins.scss","../scss/core/variables.scss","../scss/core/structure.scss","../angular-material/src/core/services/layout/layout.scss","../scss/core/layout.scss","../bower_components/breakpoint-sass/stylesheets/_breakpoint.scss","../angular-material/src/core/style/typography.scss","../scss/core/typography.scss","../scss/core/_functions.scss","../angular-material/src/components/autocomplete/autocomplete.scss","../scss/components/autocomplete/autocomplete.scss","../scss/components/backdrop/_extends.scss","../angular-material/src/components/backdrop/backdrop.scss","../scss/components/backdrop/backdrop.scss","../scss/components/button/_extends.scss","../angular-material/src/components/button/button.scss","../scss/components/button/button.scss","../scss/components/card/_extends.scss","../angular-material/src/components/card/card.scss","../scss/components/card/card.scss","../scss/components/checkbox/_extends.scss","../angular-material/src/components/checkbox/checkbox.scss","../scss/components/checkbox/checkbox.scss","../scss/components/chips/_extends.scss","../angular-material/src/components/chips/chips.scss","../scss/components/chips/chips.scss","../scss/components/content/_extends.scss","../angular-material/src/components/content/content.scss","../scss/components/content/content.scss","../scss/components/datepicker/_extends-calendar.scss","../angular-material/src/components/datepicker/calendar.scss","../scss/components/datepicker/_extends-datePicker.scss","../angular-material/src/components/datepicker/datePicker.scss","../scss/components/datepicker/datePicker.scss","../scss/components/dialog/_extends.scss","../angular-material/src/components/dialog/dialog.scss","../scss/components/dialog/dialog.scss","../scss/components/divider/_extends.scss","../angular-material/src/components/divider/divider.scss","../scss/components/fabSpeedDial/_extends.scss","../angular-material/src/components/fabSpeedDial/fabSpeedDial.scss","../angular-material/src/components/gridList/grid-list.scss","../scss/components/gridList/grid-list.scss","../scss/components/icon/_extends.scss","../angular-material/src/components/icon/icon.scss","../scss/components/icon/icon.scss","../scss/components/input/_extends.scss","../angular-material/src/components/input/input.scss","../scss/components/input/input.scss","../scss/components/list/_extends.scss","../angular-material/src/components/list/list.scss","../scss/components/list/list.scss","../scss/components/menu/_extends.scss","../angular-material/src/components/menu/menu.scss","../scss/components/progressCircular/_extends.scss","../angular-material/src/components/progressCircular/progress-circular.scss","../scss/components/progressCircular/progress-circular.scss","../scss/components/radioButton/_extends.scss","../angular-material/src/components/radioButton/radio-button.scss","../scss/components/select/_extends.scss","../angular-material/src/components/select/select.scss","../scss/components/select/select.scss","../scss/components/sidenav/_extends.scss","../angular-material/src/components/sidenav/sidenav.scss","../scss/components/sidenav/sidenav.scss","../scss/components/slider/_extends.scss","../angular-material/src/components/slider/slider.scss","../scss/components/sticky/_extends.scss","../angular-material/src/components/sticky/sticky.scss","../scss/components/subheader/_extends.scss","../angular-material/src/components/subheader/subheader.scss","../scss/components/subheader/subheader.scss","../scss/components/switch/_extends.scss","../angular-material/src/components/switch/switch.scss","../scss/components/tabs/_extends.scss","../angular-material/src/components/tabs/tabs.scss","../scss/components/toast/_extends.scss","../angular-material/src/components/toast/toast.scss","../scss/components/toolbar/_extends.scss","../angular-material/src/components/toolbar/toolbar.scss","../scss/components/toolbar/toolbar.scss","../scss/components/tooltip/_extends.scss","../angular-material/src/components/tooltip/tooltip.scss","../scss/components/virtualRepeat/_extends.scss","../angular-material/src/components/virtualRepeat/virtual-repeater.scss","../scss/components/virtualRepeat/virtual-repeat.scss","../scss/components/whiteframe/_extends.scss","../angular-material/src/components/whiteframe/whiteframe.scss","../scss/components/timepicker/timepicker.scss","../scss/components/pseudo-input/pseudo-input.scss","../scss/views/LoginUI.scss","../scss/views/MailerUI.scss","../scss/views/ContactsUI.scss","../scss/views/MessageEditorUI.scss","../scss/views/SchedulerUI.scss","../scss/views/_view.scss","../scss/core/base_styles/_base_style.scss"],"names":[],"mappings":"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AiB,EANR;IlGgqPX;MkGxpPsB,SAAS,EAAV;IlG0pPrB;MkGzpPO,YAAY,EAAb;IlG2pPN;MkG5pPsB,UAAS,EAAV;IlG8pPrB;MkG7pPO,aAAY,EAAb;IlG+pPN;MkGhqPsB,UAAS,EAAV;IlGkqPrB;MkGjqPO,aAAY,EAAb;IlGmqPN;MkGpqPsB,UAAS,EAAV;IlGsqPrB;MkGrqPO,aAAY,EAAb;IlGuqPN;MkGxqPsB,UAAS,EAAV;IlG0qPrB;MkGzqPO,aAAY,EAAb;IlG2qPN;MkG5qPsB,UAAS,EAAV;IlG8qPrB;MkG7qPO,aAAY,EAAb;IlG+qPN;MkGhrPsB,UAAS,EAAV;IlGkrPrB;MkGjrPO,aAAY,EAAb;IlGmrPN;MkGprPsB,UAAS,EAAV;IlGsrPrB;MkGrrPO,aAAY,EAAb;IlGurPN;MkGxrPsB,UAAS,EAAV;IlG0rPrB;MkGzrPO,aAAY,EAAb;IlG2rPN;MkG5rPsB,UAAS,EAAV;IlG8rPrB;MkG7rPO,aAAY,EAAb;IlG+rPN;MkGhsPsB,WAAS,EAAV;IlGksPrB;MkGjsPO,cAAY,EAAb;IlGmsPN;MkGpsPsB,WAAS,EAAV;IlGssPrB;MkGrsPO,cAAY,EAAb;IlGusPN;MkGxsPsB,WAAS,EAAV;IlG0sPrB;MkGzsPO,cAAY,EAAb;IlG2sPN;MkG5sPsB,WAAS,EAAV;IlG8sPrB;MkG7sPO,cAAY,EAAb;IlG+sPN;MkGhtPsB,WAAS,EAAV;IlGktPrB;MkGjtPO,cAAY,EAAb;IlGmtPN;MkGptPsB,WAAS,EAAV;IlGstPrB;MkGrtPO,cAAY,EAAb;IlGutPN;MkGxtPsB,WAAS,EAAV;IlG0tPrB;MkGztPO,cAAY,EAAb;IlG2tPN;MkG5tPsB,WAAS,EAAV;IlG8tPrB;MkG7tPO,cAAY,EAAb;IlG+tPN;MkGhuPsB,WAAS,EAAV;IlGkuPrB;MkGjuPO,cAAY,EAAb;IlGmuPN;MkGpuPsB,WAAS,EAAV;IlGsuPrB;MkGruPO,cAAY,EAAb;IlGuuPN;MkGxuPsB,WAAS,EAAV;IlG0uPrB;MkGzuPO,cAAY,EAAb;IlG2uPN;MkG5uPsB,WAAS,EAAV;IlG8uPrB;MkG7uPO,cAAY,EAAb;IlG+uPN;MkGhvPsB,WAAS,EAAV;IlGkvPrB;MkGjvPO,cAAY,EAAb;IlGmvPN;MkGpvPsB,WAAS,EAAV;IlGsvPrB;MkGrvPO,cAAY,EAAb;IlGuvPN;MkGxvPsB,WAAS,EAAV;IlG0vPrB;MkGzvPO,cAAY,EAAb;IlG2vPN;MkG5vPsB,WAAS,EAAV;IlG8vPrB;MkG7vPO,cAAY,EAAb;IlG+vPN;MkGhwPsB,WAAS,EAAV;IlGkwPrB;MkGjwPO,cAAY,EAAb;IlGmwPN;MkGpwPsB,WAAS,EAAV;IlGswPrB;MkGrwPO,cAAY,EAAb;IlGuwPN;MkGxwPsB,WAAS,EAAV;IlG0wPrB;MkGzwPO,cAAY,EAAb;IlG2wPN;MkG5wPsB,WAAS,EAAV;IlG8wPrB;MkG7wPO,cAAY,EAAb;IlG+wPN;MkGhxPsB,WAAS,EAAV;IlGkxPrB;MkGjxPO,cAAY,EAAb;IlGmxPN;MkGpxPsB,WAAS,EAAV;IlGsxPrB;MkGrxPO,cAAY,EAAb;IlGuxPN;MkGxxPsB,WAAS,EAAV;IlG0xPrB;MkGzxPO,cAAY,EAAb;IlG2xPN;MkG5xPsB,WAAS,EAAV;IlG8xPrB;MkG7xPO,cAAY,EAAb;IlG+xPN;MkGhyPsB,WAAS,EAAV;IlGkyPrB;MkGjyPO,cAAY,EAAb;IlGmyPN;MkGpyPsB,WAAS,EAAV;IlGsyPrB;MkGryPO,cAAY,EAAb;IlGuyPN;MkGxyPsB,WAAS,EAAV;IlG0yPrB;MkGzyPO,cAAY,EAAb;IlG2yPN;MkG5yPsB,WAAS,EAAV;IlG8yPrB;MkG7yPO,cAAY,EAAb;IlG+yPN;MkGhzPsB,WAAS,EAAV;IlGkzPrB;MkGjzPO,cAAY,EAAb;IlGmzPN;MkGpzPsB,WAAS,EAAV;IlGszPrB;MkGrzPO,cAAY,EAAb;IlGuzPN;MkGxzPsB,WAAS,EAAV;IlG0zPrB;MkGzzPO,cAAY,EAAb;IlG2zPN;MkG5zPsB,WAAS,EAAV;IlG8zPrB;MkG7zPO,cAAY,EAAb;IlG+zPN;MkGh0PsB,WAAS,EAAV;IlGk0PrB;MkGj0PO,cAAY,EAAb;IlGm0PN;MkGp0PsB,WAAS,EAAV;IlGs0PrB;MkGr0PO,cAAY,EAAb;IlGu0PN;MkGx0PsB,WAAS,EAAV;IlG00PrB;MkGz0PO,cAAY,EAAb;IlG20PN;MkG50PsB,WAAS,EAAV;IlG80PrB;MkG70PO,cAAY,EAAb;IlG+0PN;MkGh1PsB,WAAS,EAAV;IlGk1PrB;MkGj1PO,cAAY,EAAb;IlGm1PN;MkGp1PsB,WAAS,EAAV;IlGs1PrB;MkGr1PO,cAAY,EAAb;IlGu1PN;MkGx1PsB,WAAS,EAAV;IlG01PrB;MkGz1PO,cAAY,EAAb;IlG21PN;MkG51PsB,WAAS,EAAV;IlG81PrB;MkG71PO,cAAY,EAAb;IlG+1PN;MkGh2PsB,WAAS,EAAV;IlGk2PrB;MkGj2PO,cAAY,EAAb;IlGm2PN;MkGp2PsB,WAAS,EAAV;IlGs2PrB;MkGr2PO,cAAY,EAAb;IlGu2PN;MkGx2PsB,WAAS,EAAV;IlG02PrB;MkGz2PO,cAAY,EAAb;IlG22PN;MkG52PsB,WAAS,EAAV;IlG82PrB;MkG72PO,cAAY,EAAb;IlG+2PN;MkGh3PsB,WAAS,EAAV;IlGk3PrB;MkGj3PO,cAAY,EAAb;IlGm3PN;MkGp3PsB,WAAS,EAAV;IlGs3PrB;MkGr3PO,cAAY,EAAb;IlGu3PN;MkGx3PsB,WAAS,EAAV;IlG03PrB;MkGz3PO,cAAY,EAAb;IlG23PN;MkG53PsB,WAAS,EAAV;IlG83PrB;MkG73PO,cAAY,EAAb;IlG+3PN;MkGh4PsB,WAAS,EAAV;IlGk4PrB;MkGj4PO,cAAY,EAAb;IlGm4PN;MkGp4PsB,WAAS,EAAV;IlGs4PrB;MkGr4PO,cAAY,EAAb;IlGu4PN;MkGx4PsB,WAAS,EAAV;IlG04PrB;MkGz4PO,cAAY,EAAb;IlG24PN;MkG54PsB,WAAS,EAAV;IlG84PrB;MkG74PO,cAAY,EAAb;IlG+4PN;MkGh5PsB,WAAS,EAAV;IlGk5PrB;MkGj5PO,cAAY,EAAb;IlGm5PN;MkGp5PsB,WAAS,EAAV;IlGs5PrB;MkGr5PO,cAAY,EAAb;IlGu5PN;MkGx5PsB,WAAS,EAAV;IlG05PrB;MkGz5PO,cAAY,EAAb;IlG25PN;MkG55PsB,WAAS,EAAV;IlG85PrB;MkG75PO,cAAY,EAAb;IlG+5PN;MkGh6PsB,WAAS,EAAV;IlGk6PrB;MkGj6PO,cAAY,EAAb;IlGm6PN;MkGp6PsB,WAAS,EAAV;IlGs6PrB;MkGr6PO,cAAY,EAAb;IlGu6PN;MkGx6PsB,WAAS,EAAV;IlG06PrB;MkGz6PO,cAAY,EAAb;IlG26PN;MkG56PsB,WAAS,EAAV;IlG86PrB;MkG76PO,cAAY,EAAb;IlG+6PN;MkGh7PsB,WAAS,EAAV;IlGk7PrB;MkGj7PO,cAAY,EAAb;IlGm7PN;MkGp7PsB,WAAS,EAAV;IlGs7PrB;MkGr7PO,cAAY,EAAb;IlGu7PN;MkGx7PsB,WAAS,EAAV;IlG07PrB;MkGz7PO,cAAY,EAAb;IlG27PN;MkG57PsB,WAAS,EAAV;IlG87PrB;MkG77PO,cAAY,EAAb;IlG+7PN;MkGh8PsB,WAAS,EAAV;IlGk8PrB;MkGj8PO,cAAY,EAAb;IlGm8PN;MkGp8PsB,WAAS,EAAV;IlGs8PrB;MkGr8PO,cAAY,EAAb;IlGu8PN;MkGx8PsB,WAAS,EAAV;IlG08PrB;MkGz8PO,cAAY,EAAb;IlG28PN;MkG58PsB,WAAS,EAAV;IlG88PrB;MkG78PO,cAAY,EAAb;IlG+8PN;MkGh9PsB,WAAS,EAAV;IlGk9PrB;MkGj9PO,cAAY,EAAb;IlGm9PN;MkGp9PsB,WAAS,EAAV;IlGs9PrB;MkGr9PO,cAAY,EAAb;IlGu9PN;MkGx9PsB,WAAS,EAAV;IlG09PrB;MkGz9PO,cAAY,EAAb;IlG29PN;MkG59PsB,WAAS,EAAV;IlG89PrB;MkG79PO,cAAY,EAAb;IlG+9PN;MkGh+PsB,WAAS,EAAV;IlGk+PrB;MkGj+PO,cAAY,EAAb;IlGm+PN;MkGp+PsB,WAAS,EAAV;IlGs+PrB;MkGr+PO,cAAY,EAAb;IlGu+PN;MkGx+PsB,WAAS,EAAV;IlG0+PrB;MkGz+PO,cAAY,EAAb;IlG2+PN;MkG5+PsB,WAAS,EAAV;IlG8+PrB;MkG7+PO,cAAY,EAAb;IlG++PN;MkGh/PsB,WAAS,EAAV;IlGk/PrB;MkGj/PO,cAAY,EAAb;IlGm/PN;MkGp/PsB,WAAS,EAAV;IlGs/PrB;MkGr/PO,cAAY,EAAb;IlGu/PN;MkGx/PsB,WAAS,EAAV;IlG0/PrB;MkG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","file":"styles.css"} \ No newline at end of file +{"version":3,"sources":["../scss/components/_palette.scss","../scss/core/reset.scss","styles.css","../scss/core/angular.scss","../scss/styles.scss","../angular-material/src/core/style/structure.scss","../angular-material/src/core/style/mixins.scss","../scss/core/variables.scss","../scss/core/structure.scss","../angular-material/src/core/services/layout/layout.scss","../scss/core/layout.scss","../bower_components/breakpoint-sass/stylesheets/_breakpoint.scss","../angular-material/src/core/style/typography.scss","../scss/core/typography.scss","../angular-material/src/components/autocomplete/autocomplete.scss","../scss/components/autocomplete/autocomplete.scss","../scss/components/backdrop/_extends.scss","../angular-material/src/components/backdrop/backdrop.scss","../scss/components/backdrop/backdrop.scss","../scss/components/button/_extends.scss","../angular-material/src/components/button/button.scss","../scss/components/button/button.scss","../scss/components/card/_extends.scss","../angular-material/src/components/card/card.scss","../scss/components/card/card.scss","../scss/components/checkbox/_extends.scss","../angular-material/src/components/checkbox/checkbox.scss","../scss/components/checkbox/checkbox.scss","../scss/components/chips/_extends.scss","../angular-material/src/components/chips/chips.scss","../scss/components/chips/chips.scss","../scss/components/content/_extends.scss","../angular-material/src/components/content/content.scss","../scss/components/content/content.scss","../scss/components/datepicker/_extends-calendar.scss","../angular-material/src/components/datepicker/calendar.scss","../scss/components/datepicker/_extends-datePicker.scss","../angular-material/src/components/datepicker/datePicker.scss","../scss/components/datepicker/datePicker.scss","../scss/components/dialog/_extends.scss","../angular-material/src/components/dialog/dialog.scss","../scss/components/dialog/dialog.scss","../scss/components/divider/_extends.scss","../angular-material/src/components/divider/divider.scss","../scss/components/fabSpeedDial/_extends.scss","../angular-material/src/components/fabSpeedDial/fabSpeedDial.scss","../angular-material/src/components/gridList/grid-list.scss","../scss/components/gridList/grid-list.scss","../scss/components/icon/_extends.scss","../angular-material/src/components/icon/icon.scss","../scss/components/icon/icon.scss","../scss/components/input/_extends.scss","../angular-material/src/components/input/input.scss","../scss/components/input/input.scss","../scss/components/list/_extends.scss","../angular-material/src/components/list/list.scss","../scss/components/list/list.scss","../scss/components/menu/_extends.scss","../angular-material/src/components/menu/menu.scss","../scss/components/progressCircular/_extends.scss","../angular-material/src/components/progressCircular/progress-circular.scss","../scss/components/progressCircular/progress-circular.scss","../scss/components/radioButton/_extends.scss","../angular-material/src/components/radioButton/radio-button.scss","../scss/components/select/_extends.scss","../angular-material/src/components/select/select.scss","../scss/components/select/select.scss","../scss/components/sidenav/_extends.scss","../angular-material/src/components/sidenav/sidenav.scss","../scss/components/sidenav/sidenav.scss","../scss/components/slider/_extends.scss","../angular-material/src/components/slider/slider.scss","../scss/components/sticky/_extends.scss","../angular-material/src/components/sticky/sticky.scss","../scss/components/subheader/_extends.scss","../angular-material/src/components/subheader/subheader.scss","../scss/components/subheader/subheader.scss","../scss/components/switch/_extends.scss","../angular-material/src/components/switch/switch.scss","../scss/components/tabs/_extends.scss","../angular-material/src/components/tabs/tabs.scss","../scss/components/toast/_extends.scss","../angular-material/src/components/toast/toast.scss","../scss/components/toolbar/_extends.scss","../angular-material/src/components/toolbar/toolbar.scss","../scss/components/toolbar/toolbar.scss","../scss/components/tooltip/_extends.scss","../angular-material/src/components/tooltip/tooltip.scss","../scss/components/virtualRepeat/_extends.scss","../angular-material/src/components/virtualRepeat/virtual-repeater.scss","../scss/components/virtualRepeat/virtual-repeat.scss","../scss/components/whiteframe/_extends.scss","../angular-material/src/components/whiteframe/whiteframe.scss","../scss/components/timepicker/timepicker.scss","../scss/components/pseudo-input/pseudo-input.scss","../scss/views/LoginUI.scss","../scss/views/MailerUI.scss","../scss/views/ContactsUI.scss","../scss/views/MessageEditorUI.scss","../scss/views/SchedulerUI.scss","../scss/views/AdministrationUI.scss","../scss/views/_view.scss","../scss/core/base_styles/_base_style.scss"],"names":[],"mappings":"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moR3B;IiGpoRM,WAAS,EAAS;EjGsoRxB;IiGroRM,cAAY,EAAS;EjGuoR3B;IiGxoRM,WAAS,EAAS;EjG0oRxB;IiGzoRM,cAAY,EAAS;EjG2oR3B;IiG5oRM,WAAS,EAAS;EjG8oRxB;IiG7oRM,cAAY,EAAS;EjG+oR3B;IiGhpRM,WAAS,EAAS;EjGkpRxB;IiGjpRM,cAAY,EAAS;EjGmpR3B;IiGppRM,WAAS,EAAS;EjGspRxB;IiGrpRM,cAAY,EAAS;EjGupR3B;IiGxpRM,WAAS,EAAS;EjG0pRxB;IiGzpRM,cAAY,EAAS;EjG2pR3B;IiG5pRM,WAAS,EAAS;EjG8pRxB;IiG7pRM,cAAY,EAAS;EjG+pR3B;IiGhqRM,WAAS,EAAS;EjGkqRxB;IiGjqRM,cAAY,EAAS;EjGmqR3B;IiGpqRM,WAAS,EAAS;EjGsqRxB;IiGrqRM,cAAY,EAAS;EjGuqR3B;IiGxqRM,WAAS,EAAS;EjG0qRxB;IiGzqRM,cAAY,EAAS;EjG2qR3B;IiG5qRM,WAAS,EAAS;EjG8qRxB;IiG7qRM,cAAY,EAAS;EjG+qR3B;IiGhrRM,WAAS,EAAS;EjGkrRxB;IiGjrRM,cAAY,EAAS;EjGmrR3B;IiGprRM,WAAS,EAAS;EjGsrRxB;IiGrrRM,cAAY,EAAS;EjGurR3B;IiGxrRM,WAAS,EAAS;EjG0rRxB;IiGzrRM,cAAY,EAAS;EjG2rR3B;IiG5rRM,WAAS,EAAS;EjG8rRxB;IiG7rRM,cAAY,EAAS;EjG+rR3B;IiGhsRM,WAAS,EAAS;EjGksRxB;IiGjsRM,cAAY,EAAS;EjGmsR3B;IiGpsRM,WAAS,EAAS;EjGssRxB;IiGrsRM,cAAY,EAAS;EjGusR3B;IiGxsRM,WAAS,EAAS;EjG0sRxB;IiGzsRM,cAAY,EAAS;EjG2sR3B;IiG5sRM,WAAS,EAAS;EjG8sRxB;IiG7sRM,cAAY,EAAS;EjG+sR3B;IiGhtRM,WAAS,EAAS;EjGktRxB;IiGjtRM,cAAY,EAAS;EjGmtR3B;IiGptRM,WAAS,EAAS;EjGstRxB;IiGrtRM,cAAY,EAAS;EjGutR3B;IiGxtRM,WAAS,EAAS;EjG0tRxB;IiGztRM,cAAY,EAAS;EjG2tR3B;IiG5tRM,WAAS,EAAS;EjG8tRxB;IiG7tRM,cAAY,EAAS;EjG+tR3B;IiGhuRM,WAAS,EAAS;EjGkuRxB;IiGjuRM,cAAY,EAAS;EjGmuR3B;IiGpuRM,WAAS,EAAS;EjGsuRxB;IiGruRM,cAAY,EAAS;EjGuuR3B;IiGxuRM,WAAS,EAAS;EjG0uRxB;IiGzuRM,cAAY,EAAS;EjG2uR3B;IiG5uRM,WAAS,EAAS;EjG8uRxB;IiG7uRM,cAAY,EAAS;EjG+uR3B;IiGhvRM,WAAS,EAAS;EjGkvRxB;IiGjvRM,cAAY,EAAS;EjGmvR3B;IiGpvRM,WAAS,EAAS;EjGsvRxB;IiGrvRM,cAAY,EAAS;EjGuvR3B;IiGxvRM,WAAS,EAAS;EjG0vRxB;IiGzvRM,cAAY,EAAS;EjG2vR3B;IiG5vRM,WAAS,EAAS;EjG8vRxB;IiG7vRM,cAAY,EAAS;EjG+vR3B;IiGhwRM,WAAS,EAAS;EjGkwRxB;IiGjwRM,cAAY,EAAS;EjGmwR3B;IiGpwRM,WAAS,EAAS;EjGswRxB;IiGrwRM,cAAY,EAAS;EjGuwR3B;IiGxwRM,WAAS,EAAS;EjG0wRxB;IiGzwRM,cAAY,EAAS;EjG2wR3B;IiG5wRM,WAAS,EAAS;EjG8wRxB;IiG7wRM,cAAY,EAAS;EjG+wR3B;IiGhxRM,WAAS,EAAS;EjGkxRxB;IiGjxRM,cAAY,EAAS;EjGmxR3B;IiGpxRM,WAAS,EAAS;EjGsxRxB;IiGrxRM,cAAY,EAAS;EjGuxR3B;IiGxxRM,WAAS,EAAS;EjG0xRxB;IiGzxRM,cAAY,EAAS;EjG2xR3B;IiG5xRM,WAAS,EAAS;EjG8xRxB;IiG7xRM,cAAY,EAAS;EjG+xR3B;IiGhyRM,WAAS,EAAS;EjGkyRxB;IiGjyRM,cAAY,EAAS;EjGmyR3B;IiGpyRM,WAAS,EAAS;EjGsyRxB;IiGryRM,cAAY,EAAS;EjGuyR3B;IiGxyRM,WAAS,EAAS;EjG0yRxB;IiGzyRM,cAAY,EAAS;EjG2yR3B;IiG5yRM,WAAS,EAAS;EjG8yRxB;IiG7yRM,cAAY,EAAS;EjG+yR3B;IiGhzRM,WAAS,EAAS;EjGkzRxB;IiGjzRM,cAAY,EAAS;EjGmzR3B;IiGpzRM,WAAS,EAAS;EjGszRxB;IiGrzRM,cAAY,EAAS;EjGuzR3B;IiGxzRM,WAAS,EAAS;EjG0zRxB;IiGzzRM,cAAY,EAAS;EjG2zR3B;IiG5zRM,WAAS,EAAS;EjG8zRxB;IiG7zRM,cAAY,EAAS;EjG+zR3B;IiGh0RM,WAAS,EAAS;EjGk0RxB;IiGj0RM,cAAY,EAAS;EjGm0R3B;IiGp0RM,WAAS,EAAS;EjGs0RxB;IiGr0RM,cAAY,EAAS;EjGu0R3B;IiGx0RM,WAAS,EAAS;EjG00RxB;IiGz0RM,cAAY,EAAS;EjG20R3B;IiG50RM,WAAS,EAAS;EjG80RxB;IiG70RM,cAAY,EAAS;EjG+0R3B;IiGh1RM,WAAS,EAAS;EjGk1RxB;IiGj1RM,cAAY,EAAS;EjGm1R3B;IiGp1RM,WAAS,EAAS;EjGs1RxB;IiGr1RM,cAAY,EAAS;EjGu1R3B;IiGx1RM,WAAS,EAAS;EjG01RxB;IiGz1RM,cAAY,EAAS;EjG21R3B;IiG51RM,WAAS,EAAS;EjG81RxB;IiG71RM,cAAY,EAAS;EjG+1R3B;IiGh2RM,WAAS,EAAS;EjGk2RxB;IiGj2RM,cAAY,EAAS;EjGm2R3B;IiGp2RM,WAAS,EAAS;EjGs2RxB;IiGr2RM,cAAY,EAAS;EjGu2R3B;IiGx2RM,WAAS,EAAS;EjG02RxB;IiGz2RM,cAAY,EAAS;EjG22R3B;IiG52RM,WAAS,EAAS;EjG82RxB;IiG72RM,cAAY,EAAS;EjG+2R3B;IiGh3RM,WAAS,EAAS;EjGk3RxB;IiGj3RM,cAAY,EAAS;EjGm3R3B;IiGp3RM,WAAS,EAAS;EjGs3RxB;IiGr3RM,cAAY,EAAS;EjGu3R3B;IiGx3RM,WAAS,EAAS;EjG03RxB;IiGz3RM,cAAY,EAAS;EjG23R3B;IiG53RM,WAAS,EAAS;EjG83RxB;IiG73RM,cAAY,EAAS;EjG+3R3B;IiGh4RM,WAAS,EAAS;EjGk4RxB;IiGj4RM,cAAY,EAAS;EjGm4R3B;IiGp4RM,WAAS,EAAS;EjGs4RxB;IiGr4RM,cAAY,EAAS;EjGu4R3B;IiGx4RM,WAAS,EAAS;EjG04RxB;IiGz4RM,cAAY,EAAS;EjG24R3B;IiG54RM,WAAS,EAAS;EjG84RxB;IiG74RM,cAAY,EAAS;EjG+4R3B;IiGh5RM,WAAS,EAAS;EjGk5RxB;IiGj5RM,cAAY,EAAS;EjGm5R3B;IiGp5RM,WAAS,EAAS;EjGs5RxB;IiGr5RM,cAAY,EAAS;EjGu5R3B;IiGx5RM,WAAS,EAAS;EjG05RxB;IiGz5RM,cAAY,EAAS;EjG25R3B;IiG55RM,WAAS,EAAS;EjG85RxB;IiG75RM,cAAY,EAAS;EjG+5R3B;IiGh6RM,WAAS,EAAS;EjGk6RxB;IiGj6RM,cAAY,EAAS;EjGm6R3B;IiGp6RM,WAAS,EAAS;EjGs6RxB;IiGr6RM,cAAY,EAAS;EjGu6R3B;IiGx6RM,WAAS,EAAS;EjG06RxB;IiGz6RM,cAAY,EAAS;EjG26R3B;IiG56RM,WAAS,EAAS;EjG86RxB;IiG76RM,cAAY,EAAS;EjG+6R3B;IiGh7RM,WAAS,EAAS;EjGk7RxB;IiGj7RM,cAAY,EAAS;EjGm7R3B;IiGp7RM,WAAS,EAAS;EjGs7RxB;IiGr7RM,cAAY,EAAS;EjGu7R3B;IiGx7RM,WAAS,EAAS;EjG07RxB;IiGz7RM,cAAY,EAAS;EjG27R3B;IiG57RM,WAAS,EAAS;EjG87RxB;IiG77RM,cAAY,EAAS;EjG+7R3B;IiGh8RM,WAAS,EAAS;EjGk8RxB;IiGj8RM,cAAY,EAAS;EjGm8R3B;IiGp8RM,WAAS,EAAS;EjGs8RxB;IiGr8RM,cAAY,EAAS;EjGu8R3B;IiGx8RM,WAAS,EAAS;EjG08RxB;IiGz8RM,cAAY,EAAS;EjG28R3B;IiG58RM,WAAS,EAAS;EjG88RxB;IiG78RM,cAAY,EAAS;EjG+8R3B;IiGh9RM,WAAS,EAAS;EjGk9RxB;IiGj9RM,cAAY,EAAS;EjGm9R3B;IiG/8RI,iBAAiB,EAClB;;AjGi9RL;EiG58RI,gB5FjKgC;E4FkKhC,iBtFEe;EsFDf,iBAAiB;EACjB,iB5FpKgC;E4FqKhC,kBAAkB;EAClB,kBAAkB,EACnB;;AjG88RH;EiGz8RM,gCAA2B;EAC3B,iCAA4B;EAC5B,eAAe,EAyBhB;EjGk7RH;IiGz8RM,0BAAqB,EAMtB;IjGq8RH;;MiGv8RM,0BAAoC,EACrC;EjGy8RP;IiGp8RU,mBAA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","file":"styles.css"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Administration.js b/UI/WebServerResources/js/Administration.js index 9bc1ba079..45b45991b 100644 --- a/UI/WebServerResources/js/Administration.js +++ b/UI/WebServerResources/js/Administration.js @@ -1,2 +1,2 @@ -!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("administration",{"abstract":!0,views:{administration:{templateUrl:"administration.html",controller:"AdministrationController",controllerAs:"app"}},resolve:{stateAdministration:stateAdministration}}).state("administration.rights",{url:"/rights",views:{module:{templateUrl:"rights.html"}}}),$urlRouterProvider.otherwise("/rights")}function stateAdministration(Administration){return Administration}function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.error(event,current,previous,rejection)})}angular.module("SOGo.AdministrationUI",["ngSanitize","ui.router","SOGo.Common","SOGo.ContactsUI","SOGo.Authentication"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateAdministration.$inject=["Administration"],runBlock.$inject=["$rootScope"]}(),function(){"use strict";function AdministrationController($state,$mdDialog,$mdToast,Dialog,User,stateAdministration,Authentication){function go(module){$state.go("administration."+module)}var vm=this;vm.administration=stateAdministration,vm.go=go}AdministrationController.$inject=["$state","$mdDialog","$mdToast","Dialog","User","stateAdministration","Authentication"],angular.module("SOGo.AdministrationUI").controller("AdministrationController",AdministrationController)}(); +!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("administration",{"abstract":!0,views:{administration:{templateUrl:"administration.html",controller:"AdministrationController",controllerAs:"app"}}}).state("administration.rights",{url:"/rights",views:{module:{templateUrl:"rights.html"}}}).state("administration.rights.edit",{url:"/:userId/:folderId/edit",views:{acl:{templateUrl:"UIxAdministrationAclEditor",controller:"AdministrationAclController",controllerAs:"acl"}},resolve:{stateUser:stateUser,stateFolder:stateFolder}}),$urlRouterProvider.otherwise("/rights")}function stateUser($q,$stateParams,User){var user;return user=_.find(User.$users,function(user){return user.uid==$stateParams.userId}),angular.isUndefined(user)?User.$filter($stateParams.userId).then(function(users){return user=_.find(User.$users,function(user){return user.uid==$stateParams.userId}),angular.isUndefined(user)?$q.reject("User with ID "+$stateParams.userId+" not found"):user.$folders().then(function(){return user})}):user}function stateFolder($state,$stateParams,decodeUriFilter,stateUser,AddressBook,Calendar){var folder,o,folderId=decodeUriFilter($stateParams.folderId);return folder=_.find(stateUser.$$folders,function(folder){return folder.name==folderId}),o="Appointment"==folder.type?new Calendar({id:folder.name.split("/").pop(),owner:folder.owner,name:folder.displayName}):new AddressBook({id:folder.name.split("/").pop(),owner:folder.owner,name:folder.displayName}),stateUser.selectedFolder=o.id,o}function runBlock($log,$rootScope,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error),$state.go("administration.rights")}),$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}angular.module("SOGo.AdministrationUI",["ngSanitize","ui.router","SOGo.Common","SOGo.Authentication","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.SchedulerUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateUser.$inject=["$q","$stateParams","User"],stateFolder.$inject=["$state","$stateParams","decodeUriFilter","stateUser","AddressBook","Calendar"],runBlock.$inject=["$log","$rootScope","$state"]}(),function(){"use strict";function AdministrationAclController($animate,$state,$mdToast,stateUser,stateFolder,User){function getTemplate(){return angular.isDefined(stateFolder.$cards)?"../"+stateFolder.owner+"/Contacts/"+stateFolder.id+"/UIxContactsUserRightsEditor":"../"+stateFolder.owner+"/Calendar/"+stateFolder.id+"/UIxCalUserRightsEditor"}function selectUser(user){vm.selectedUid==user.uid?vm.selectedUid=null:(vm.selectedUid=user.uid,vm.selectedUser=user,vm.selectedUser.$rights())}function userFilter($query){return User.$filter($query,stateFolder.$acl.users,{dry:!0})}function removeUser(user){stateFolder.$acl.$removeUser(user.uid)["catch"](function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function addUser(data){data&&stateFolder.$acl.$addUser(data,stateFolder.owner).then(function(){vm.userToAdd="",vm.searchText=""},function(error){Dialog.alert(l("Warning"),error)})}function close(){$state.go("administration.rights").then(function(){delete vm.user.selectedFolder,vm.user=null})}function save(){stateFolder.$acl.$saveUsersRights(stateFolder.owner).then(function(){$mdToast.show($mdToast.simple().content(l("ACLs saved")).position("top right").hideDelay(3e3))},function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}var vm=this;vm.user=stateUser,vm.folder=stateFolder,vm.folderType=angular.isDefined(stateFolder.$cards)?"AddressBook":"Calendar",vm.selectedUser=null,vm.selectedUid=null,vm.selectUser=selectUser,vm.removeUser=removeUser,vm.getTemplate=getTemplate,vm.close=close,vm.save=save,vm.userToAdd="",vm.searchText="",vm.userFilter=userFilter,vm.addUser=addUser,stateFolder.$acl.$users(stateFolder.owner).then(function(data){vm.users=data})}AdministrationAclController.$inject=["$animate","$state","$mdToast","stateUser","stateFolder","User"],angular.module("SOGo.AdministrationUI").controller("AdministrationAclController",AdministrationAclController)}(),function(){"use strict";function AdministrationController($state,$mdDialog,$mdToast,Dialog,encodeUriFilter,User,Administration){function go(module){$state.go("administration."+module)}function filter(searchText){User.$filter(searchText)}function selectUser(i){vm.selectedUser==vm.users[i]?vm.selectedUser=null:vm.users[i].$folders().then(function(){vm.selectedUser=vm.users[i]})}function selectFolder(folder){$state.go("administration.rights.edit",{userId:vm.selectedUser.uid,folderId:encodeUriFilter(folder.name)})}var vm=this;vm.administration=Administration,vm.selectedUser=null,vm.users=User.$users,vm.go=go,vm.filter=filter,vm.selectUser=selectUser,vm.selectFolder=selectFolder}AdministrationController.$inject=["$state","$mdDialog","$mdToast","Dialog","encodeUriFilter","User","Administration"],angular.module("SOGo.AdministrationUI").controller("AdministrationController",AdministrationController)}(); //# sourceMappingURL=Administration.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Administration.js.map b/UI/WebServerResources/js/Administration.js.map index dc80b831c..4f6d38551 100644 --- a/UI/WebServerResources/js/Administration.js.map +++ b/UI/WebServerResources/js/Administration.js.map @@ -1 +1 @@ -{"version":3,"file":"Administration.js","sources":["Administration/Administration.app.js","Administration/AdministrationController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","administration","templateUrl","controller","controllerAs","resolve","stateAdministration","url","module","otherwise","Administration","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","angular","config","run","$inject","AdministrationController","$state","$mdDialog","$mdToast","Dialog","User","Authentication","go","vm","this"],"mappings":"CAGA,WACE,YAUA,SAASA,WAAUC,eAAgBC,oBACjCD,eACGE,MAAM,kBACLC,YAAU,EACVC,OACEC,gBACEC,YAAa,sBACbC,WAAY,2BACZC,aAAc,QAGlBC,SACEC,oBAAqBA,uBAGxBR,MAAM,yBACLS,IAAK,UACLP,OACEQ,QACEN,YAAa,kBAMrBL,mBAAmBY,UAAU,WAO/B,QAASH,qBAAoBI,gBAC3B,MAAOA,gBAOT,QAASC,UAASC,YAChBA,WAAWC,IAAI,oBAAqB,SAASC,MAAOC,QAASC,SAAUC,WACrEC,QAAQC,MAAML,MAAOC,QAASC,SAAUC,aAlD5CG,QAAQZ,OAAO,yBAA0B,aAAc,YAAa,cAAe,kBAAmB,wBACnGa,OAAO1B,WACP2B,IAAIX,UAKPhB,UAAU4B,SAAW,iBAAkB,sBAgCvCjB,oBAAoBiB,SAAW,kBAQ/BZ,SAASY,SAAW,iBClDtB,WACE,YAMA,SAASC,0BAAyBC,OAAQC,UAAWC,SAAUC,OAAQC,KAAMvB,oBAAqBwB,gBAOhG,QAASC,IAAGvB,QACViB,OAAOM,GAAG,kBAAoBvB,QAPhC,GAAIwB,IAAKC,IAETD,IAAG/B,eAAiBK,oBAEpB0B,GAAGD,GAAKA,GANVP,yBAAyBD,SAAW,SAAU,YAAa,WAAY,SAAU,OAAQ,sBAAuB,kBAchHH,QACGZ,OAAO,yBACPL,WAAW,2BAA4BqB","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoAdministration */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.AdministrationUI', ['ngSanitize', 'ui.router', 'SOGo.Common', 'SOGo.ContactsUI', 'SOGo.Authentication'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('administration', {\n abstract: true,\n views: {\n administration: {\n templateUrl: 'administration.html',\n controller: 'AdministrationController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateAdministration: stateAdministration\n }\n })\n .state('administration.rights', {\n url: '/rights',\n views: {\n module: {\n templateUrl: 'rights.html'\n }\n }\n });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/rights');\n }\n\n /**\n * @ngInject\n */\n stateAdministration.$inject = ['Administration'];\n function stateAdministration(Administration) {\n return Administration;\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope'];\n function runBlock($rootScope) {\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n console.error(event, current, previous, rejection);\n });\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoAdministration */\n\n(function() {\n 'use strict';\n \n /**\n * @ngInject\n */\n AdministrationController.$inject = ['$state', '$mdDialog', '$mdToast', 'Dialog', 'User', 'stateAdministration', 'Authentication'];\n function AdministrationController($state, $mdDialog, $mdToast, Dialog, User, stateAdministration, Authentication) {\n var vm = this;\n\n vm.administration = stateAdministration;\n\n vm.go = go;\n \n function go(module) {\n $state.go('administration.' + module);\n }\n\n }\n\n angular\n .module('SOGo.AdministrationUI')\n .controller('AdministrationController', AdministrationController);\n\n})();\n"]} \ No newline at end of file +{"version":3,"file":"Administration.js","sources":["Administration/Administration.app.js","Administration/AdministrationAclController.js","Administration/AdministrationController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","administration","templateUrl","controller","controllerAs","url","module","acl","resolve","stateUser","stateFolder","otherwise","$q","$stateParams","User","user","_","find","$users","uid","userId","angular","isUndefined","$filter","then","users","reject","$folders","$state","decodeUriFilter","AddressBook","Calendar","folder","o","folderId","$$folders","name","type","id","split","pop","owner","displayName","selectedFolder","runBlock","$log","$rootScope","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","config","run","$inject","AdministrationAclController","$animate","$mdToast","getTemplate","isDefined","$cards","selectUser","vm","selectedUid","selectedUser","$rights","userFilter","$query","$acl","dry","removeUser","$removeUser","data","status","Dialog","alert","l","addUser","$addUser","userToAdd","searchText","close","save","$saveUsersRights","show","simple","content","position","hideDelay","this","folderType","AdministrationController","$mdDialog","encodeUriFilter","Administration","filter","i","selectFolder"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoAdministration */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.AdministrationUI', ['ngSanitize', 'ui.router', 'SOGo.Common', 'SOGo.Authentication', 'SOGo.PreferencesUI', 'SOGo.ContactsUI', 'SOGo.SchedulerUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('administration', {\n abstract: true,\n views: {\n administration: {\n templateUrl: 'administration.html',\n controller: 'AdministrationController',\n controllerAs: 'app'\n }\n }\n })\n .state('administration.rights', {\n url: '/rights',\n views: {\n module: {\n templateUrl: 'rights.html'\n }\n }\n })\n .state('administration.rights.edit', {\n url: '/:userId/:folderId/edit',\n views: {\n acl: {\n templateUrl: 'UIxAdministrationAclEditor', // UI/Templates/Administration/UIxAdministrationAclEditor.wox\n controller: 'AdministrationAclController',\n controllerAs: 'acl'\n }\n },\n resolve: {\n stateUser: stateUser,\n stateFolder: stateFolder\n }\n });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/rights');\n }\n\n /**\n * @ngInject\n */\n stateUser.$inject = ['$q', '$stateParams', 'User'];\n function stateUser($q, $stateParams, User) {\n var user;\n\n user = _.find(User.$users, function(user) {\n return user.uid == $stateParams.userId;\n });\n\n if (angular.isUndefined(user)) {\n return User.$filter($stateParams.userId).then(function(users) {\n user = _.find(User.$users, function(user) {\n return user.uid == $stateParams.userId;\n });\n if (angular.isUndefined(user)) {\n return $q.reject('User with ID ' + $stateParams.userId + ' not found');\n }\n else {\n // Resolve folders\n return user.$folders().then(function() {\n return user;\n });\n }\n return user;\n });\n }\n\n return user;\n }\n\n /**\n * @ngInject\n */\n stateFolder.$inject = ['$state', '$stateParams', 'decodeUriFilter', 'stateUser', 'AddressBook', 'Calendar'];\n function stateFolder($state, $stateParams, decodeUriFilter, stateUser, AddressBook, Calendar) {\n var folder, o,\n folderId = decodeUriFilter($stateParams.folderId);\n\n folder = _.find(stateUser.$$folders, function(folder) {\n return folder.name == folderId;\n });\n \n if (folder.type == \"Appointment\") {\n o = new Calendar({ id: folder.name.split('/').pop(),\n owner: folder.owner,\n name: folder.displayName });\n } else {\n o = new AddressBook({ id: folder.name.split('/').pop(),\n owner: folder.owner,\n name: folder.displayName });\n }\n\n stateUser.selectedFolder = o.id;\n\n return o;\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$log', '$rootScope', '$state'];\n function runBlock($log, $rootScope, $state) {\n $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {\n $log.error(error);\n $state.go('administration.rights');\n });\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n $log.error(event, current, previous, rejection);\n });\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoAdministration */\n\n(function() {\n 'use strict';\n \n /**\n * @ngInject\n */\n AdministrationAclController.$inject = ['$animate', '$state', '$mdToast', 'stateUser', 'stateFolder', 'User'];\n function AdministrationAclController($animate, $state, $mdToast, stateUser, stateFolder, User) {\n var vm = this;\n\n vm.user = stateUser;\n vm.folder = stateFolder;\n vm.folderType = angular.isDefined(stateFolder.$cards)? 'AddressBook' : 'Calendar';\n vm.selectedUser = null;\n vm.selectedUid = null;\n vm.selectUser = selectUser;\n vm.removeUser = removeUser;\n vm.getTemplate = getTemplate;\n vm.close = close;\n vm.save = save;\n\n vm.userToAdd = '';\n vm.searchText = '';\n vm.userFilter = userFilter;\n vm.addUser = addUser;\n\n stateFolder.$acl.$users(stateFolder.owner).then(function(data) {\n vm.users = data;\n });\n\n function getTemplate() {\n if (angular.isDefined(stateFolder.$cards))\n return '../' + stateFolder.owner + '/Contacts/' + stateFolder.id + '/UIxContactsUserRightsEditor';\n\n return '../' + stateFolder.owner + '/Calendar/' + stateFolder.id + '/UIxCalUserRightsEditor';\n }\n\n function selectUser(user) {\n if (vm.selectedUid == user.uid) {\n vm.selectedUid = null;\n }\n else {\n vm.selectedUid = user.uid;\n vm.selectedUser = user;\n vm.selectedUser.$rights();\n }\n }\n\n function userFilter($query) {\n return User.$filter($query, stateFolder.$acl.users, { dry: true });\n }\n\n function removeUser(user) {\n stateFolder.$acl.$removeUser(user.uid).catch(function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function addUser(data) {\n if (data) {\n stateFolder.$acl.$addUser(data, stateFolder.owner).then(function() {\n vm.userToAdd = '';\n vm.searchText = '';\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n }\n\n function close() {\n $state.go('administration.rights').then(function() {\n delete vm.user.selectedFolder;\n vm.user = null;\n });\n }\n\n function save() {\n stateFolder.$acl.$saveUsersRights(stateFolder.owner).then(function() {\n $mdToast.show(\n $mdToast.simple()\n .content(l('ACLs saved'))\n .position('top right')\n .hideDelay(3000)\n );\n }, function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n }\n\n angular\n .module('SOGo.AdministrationUI')\n .controller('AdministrationAclController', AdministrationAclController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoAdministration */\n\n(function() {\n 'use strict';\n \n /**\n * @ngInject\n */\n AdministrationController.$inject = ['$state', '$mdDialog', '$mdToast', 'Dialog', 'encodeUriFilter', 'User', 'Administration'];\n function AdministrationController($state, $mdDialog, $mdToast, Dialog, encodeUriFilter, User, Administration) {\n var vm = this;\n\n vm.administration = Administration;\n\n vm.selectedUser = null;\n vm.users = User.$users;\n\n vm.go = go;\n vm.filter = filter;\n vm.selectUser = selectUser;\n vm.selectFolder = selectFolder;\n\n function go(module) {\n $state.go('administration.' + module);\n }\n\n function filter(searchText) {\n User.$filter(searchText);\n }\n\n function selectUser(i) {\n if (vm.selectedUser == vm.users[i]) {\n vm.selectedUser = null;\n }\n else {\n // Fetch folders of specific type for selected user\n vm.users[i].$folders().then(function() {\n vm.selectedUser = vm.users[i];\n });\n }\n }\n\n function selectFolder(folder) {\n $state.go('administration.rights.edit', {userId: vm.selectedUser.uid, folderId: encodeUriFilter(folder.name)});\n }\n\n }\n\n angular\n .module('SOGo.AdministrationUI')\n .controller('AdministrationController', AdministrationController);\n\n})();\n"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Common.js b/UI/WebServerResources/js/Common.js index 94231b90f..0d50ecfd9 100644 --- a/UI/WebServerResources/js/Common.js +++ b/UI/WebServerResources/js/Common.js @@ -1,4 +1,4 @@ -function l(){var key=arguments[0],value=key;labels[key]?value=labels[key]:clabels[key]&&(value=clabels[key]);for(var i=1,j=0;i0;)customSheet.deleteRule(0);angular.forEach(_$mdThemingProvider._THEMES,function(theme,themeName){addRule(fgDefault,bgDefault,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["default"]]),addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-2"]],"hue-2"),addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-3"]],"hue-3"),addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-1"]],"hue-1"),addBorderRule(bdrDefault,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["default"]]),angular.forEach(theme.colors,function(color,paletteName){addRule(fgColor,bgColor,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["default"]]),addBorderRule(bdrColor,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["default"]]),addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-2"]],"hue-2"),addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-3"]],"hue-3"),addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-1"]],"hue-1")})})}var _$mdThemingProvider;angular.module("mdColors",["ngMaterial"]).config(configure).run(runBlock),configure.$inject=["$mdThemingProvider"],runBlock.$inject=["$interpolate","$document","$log"]}(),function(){"use strict";function decodeUri($window){return $window.decodeURIComponent}decodeUri.$inject=["$window"],angular.module("SOGo.Common").filter("decodeUri",decodeUri)}(),function(){"use strict";function encodeUri($window){return $window.encodeURIComponent}encodeUri.$inject=["$window"],angular.module("SOGo.Common").filter("encodeUri",encodeUri)}(),function(){"use strict";function ensureTarget(){return function(element){var tree=angular.element("
"+element+"
");return tree.find("a").attr("target","_blank"),angular.element("
").append(tree).html()}}angular.module("SOGo.Common").filter("ensureTarget",ensureTarget)}(),function(){"use strict";function loc(){return l}angular.module("SOGo.Common").filter("loc",loc)}(),function(){"use strict";function range(){return function(n){for(var res=[],i=0;i-1?deferred.resolve():Acl.$$resource.fetch(this.folderId,"addUserInAcls",param).then(function(){user.wasSubscribed=!1,user.userClass=user.isGroup?"group-user":"normal-user",user.$rights=angular.bind(user,user.$acl,_this.folderId),_this.users.push(user),deferred.resolve(_this.users)},function(data,status){deferred.reject(l("An error occured please try again."))}),deferred.promise},Acl.prototype.$removeUser=function(uid){var _this=this,param={uid:uid};return Acl.$$resource.fetch(this.folderId,"removeUserFromAcls",param).then(function(){var i=_.indexOf(_.pluck(_this.users,"uid"),uid);i>=0&&_this.users.splice(i,1)})},Acl.prototype.$resetUsersRights=function(){angular.forEach(this.users,function(user){user.$resetRights()})},Acl.prototype.$saveUsersRights=function(){var _this=this,deferredSave=Acl.$q.defer(),deferredSubscribe=Acl.$q.defer(),param={action:"saveUserRights"},users=[];return angular.forEach(this.users,function(user){user.$rightsAreDirty()&&users.push(user.$omit())}),users.length?Acl.$$resource.save(this.folderId,users,param).then(function(){angular.forEach(_this.users,function(user){user.$rightsAreDirty()&&(user.$shadowRights=angular.copy(user.rights))}),deferredSave.resolve()},deferredSave.reject):deferredSave.resolve(),users=[],angular.forEach(this.users,function(user){!user.wasSubscribed&&user.isSubscribed&&users.push(user.uid)}),users.length?(param={uids:users.join(",")},Acl.$$resource.fetch(this.folderId,"subscribeUsers",param).then(function(){angular.forEach(_this.users,function(user){user.wasSubscribed=user.isSubscribed}),deferredSubscribe.resolve()},deferredSubscribe.reject)):deferredSubscribe.resolve(),Acl.$q.all([deferredSave.promise,deferredSubscribe.promise])}}(),function(){"use strict";function Alarm(){this.currentAlarm=null}function AlarmService($timeout,Settings,Resource,$mdToast){return angular.extend(Alarm,{$timeout:$timeout,$$resource:new Resource(Settings.activeUser("folderURL")+"Calendar",Settings.activeUser()),$toast:$mdToast}),Alarm}Alarm.getAlarms=function(){var _this=this,now=new Date,browserTime=Math.floor(now.getTime()/1e3);this.$$resource.fetch("","alarmslist?browserTime="+browserTime).then(function(data){var alarms=data.alarms.sort(function(a,b){var x=parseInt(a[2]),y=parseInt(b[2]);return y-x});if(alarms.length>0){var next=alarms.pop(),now=new Date,utc=Math.floor(now.getTime()/1e3),url=next[0]+"/"+next[1],alarmTime=parseInt(next[2]),delay=alarmTime;alarmTime>0&&(delay-=utc);var f=(new Date(1e3*alarmTime),angular.bind(_this,Alarm.showAlarm,url));_this.currentAlarm&&_this.$timeout.cancel(_this.currentAlarm),_this.currentAlarm=_this.$timeout(f,1e3*delay)}})},Alarm.showAlarm=function(url){var _this=this;this.$$resource.fetch(url,"?resetAlarm=yes").then(function(data){function AlarmController(scope,$mdToast,url){scope.reminder="10",scope.cancel=function(){$mdToast.hide()},scope.ok=function(){_this.$$resource.fetch(url,"view?snoozeAlarm="+scope.reminder),$mdToast.hide()}}_this.$toast.show({position:"top right",hideDelay:0,template:[""," ",' ",' '," ",l("5 minutes")," "," ",l("10 minutes")," "," ",l("15 minutes")," "," ",l("30 minutes")," "," ",l("45 minutes")," "," ",l("1 hour")," "," ",l("1 day")," "," "," ",' ',l("Cancel")," ",' ',l("Ok")," ",""].join(""),locals:{url:url},controller:AlarmController}),AlarmController.$inject=["scope","$mdToast","url"]})},AlarmService.$inject=["$timeout","sgSettings","Resource","$mdToast"],angular.module("SOGo.Common").factory("Alarm",AlarmService)}(),function(){"use strict";function Authentication(){function readCookie(name){var foundCookie,prefix,pairs,i,currentPair,start;for(foundCookie=null,prefix=name+"=",pairs=document.cookie.split(";"),i=0;!foundCookie&&i0&&(currentPair=currentPair.substr(start)),0===currentPair.indexOf(prefix)&&(foundCookie=currentPair.substr(prefix.length))}return foundCookie}function readLoginCookie(){var value,loginValues=null,cookie=readCookie("0xHIGHFLYxSOGo");return cookie&&cookie.length>8&&(value=decodeURIComponent(cookie.substr(8)),loginValues=value.base64decode().split(":")),loginValues}function redirectUrl(username,domain){var userName,address,baseAddress,altBaseAddress,parts,hostpart,protocol,newAddress;return userName=username,domain&&(userName+="@"+domain.value),address=""+window.location.href,baseAddress=ApplicationBaseURL+"/"+encodeURIComponent(userName),"/"==baseAddress[0]&&(parts=address.split("/"),hostpart=parts[2],protocol=parts[0],baseAddress=protocol+"//"+hostpart+baseAddress),parts=baseAddress.split("/"),parts.splice(0,3),altBaseAddress=parts.join("/"),newAddress=!address.startsWith(baseAddress)&&!address.startsWith(altBaseAddress)||address.endsWith("/logoff")?baseAddress:address}function getService($q,$http,passwordPolicyConfig){var service,_this=this;return service={login:function(data){var language,d=$q.defer(),username=data.username,password=data.password,domain=data.domain,rememberLogin=data.rememberLogin?1:0;return data.loginSuffix&&!username.endsWith(data.loginSuffix)&&(username+=loginSuffix,domain=!1),data.language&&"WONoSelectionString"!=data.language&&(language=data.language),$http({method:"POST",url:"/SOGo/connect",data:{userName:username,password:password,domain:domain,language:language,rememberLogin:rememberLogin}}).success(function(data,status){var loginCookie=readLoginCookie();loginCookie?"undefined"!=typeof data.expire&&"undefined"!=typeof data.grace?data.expire<0&&data.grace>0?d.reject({grace:data.grace}):data.expire>0&&-1==data.grace?d.reject({expire:data.expire}):d.resolve(redirectUrl(username,domain)):d.resolve(redirectUrl(username,domain)):d.reject(l("cookiesNotEnabled"))}).error(function(data,status){var msg,perr;data&&data.LDAPPasswordPolicyError?(perr=data.LDAPPasswordPolicyError,msg=perr==passwordPolicyConfig.PolicyNoError?l("Wrong username or password."):perr==passwordPolicyConfig.PolicyAccountLocked?l("Your account was locked due to too many failed attempts."):l("Login failed due to unhandled error case: ")+perr):msg=l("Unhandled error response"),d.reject({error:msg})}),d.promise},changePassword:function(newPassword){var d=$q.defer(),loginCookie=_this.readLoginCookie();return $http({method:"POST",url:"/SOGo/so/changePassword",data:{userName:loginCookie[0],password:loginCookie[1],newPassword:newPassword}}).success(function(data,status){d.resolve()}).error(function(data,status){var error,perr=data.LDAPPasswordPolicyError;perr?perr==passwordPolicyConfig.PolicyNoError?error=l("Password change failed"):perr==passwordPolicyConfig.PolicyPasswordModNotAllowed?error=l("Password change failed - Permission denied"):perr==passwordPolicyConfig.PolicyInsufficientPasswordQuality?error=l("Password change failed - Insufficient password quality"):perr==passwordPolicyConfig.PolicyPasswordTooShort?error=l("Password change failed - Password is too short"):perr==passwordPolicyConfig.PolicyPasswordTooYoung?error=l("Password change failed - Password is too young"):perr==passwordPolicyConfig.PolicyPasswordInHistory?error=l("Password change failed - Password is in history"):(error=l("Unhandled policy error: %{0}").formatted(perr),perr=passwordPolicyConfig.PolicyPasswordUnknown):(perr=passwordPolicyConfig.PolicyPasswordSystemUnknown,error=_("Unhandled error response")),d.reject(error)}),d.promise}}}this.$get=getService,getService.$inject=["$q","$http","passwordPolicyConfig"]}angular.module("SOGo.Authentication",[]).constant("passwordPolicyConfig",{PolicyPasswordChangeUnsupported:-3,PolicyPasswordSystemUnknown:-2,PolicyPasswordUnknown:-1,PolicyPasswordExpired:0,PolicyAccountLocked:1,PolicyChangeAfterReset:2,PolicyPasswordModNotAllowed:3,PolicyMustSupplyOldPassword:4,PolicyInsufficientPasswordQuality:5,PolicyPasswordTooShort:6,PolicyPasswordTooYoung:7,PolicyPasswordInHistory:8,PolicyNoError:65535}).provider("Authentication",Authentication)}(),function(){"use strict";function Dialog(){}function DialogService($q,$mdDialog){return angular.extend(Dialog,{$q:$q,$modal:$mdDialog}),Dialog}Dialog.alert=function(title,content){var alert=this.$modal.alert().title(title).content(content).ok(l("OK"));this.$modal.show(alert)},Dialog.confirm=function(title,content,options){var confirm=this.$modal.confirm().title(title).content(content).ok(options&&options.ok?options.ok:l("OK")).cancel(options&&options.cancel?options.cancel:l("Cancel"));return this.$modal.show(confirm)},Dialog.prompt=function(title,label,options){function PromptDialogController(scope,$mdDialog){scope.title=title,scope.name="",scope.cancel=function(){d.reject(),$mdDialog.hide()},scope.ok=function(){d.resolve(scope.name),$mdDialog.hide()}}var o=options||{},d=this.$q.defer();return this.$modal.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,template:['',' ','

'," "," ",' '," ","
",'
',' '," "+l("Cancel")," ",' '," "+l("OK")," ","
","
"].join(""),controller:PromptDialogController}),PromptDialogController.$inject=["scope","$mdDialog"],d.promise},DialogService.$inject=["$q","$mdDialog"],angular.module("SOGo.Common").factory("Dialog",DialogService)}(),function(){"use strict";function Gravatar(){return function(email,size){var x,y,hash,s=size;return email?(x=email.indexOf("<"),x>=0&&(y=email.indexOf(">",x),y>x&&(email=email.substring(x+1,y))),size||(s=48),hash=email.md5(),"https://www.gravatar.com/avatar/"+hash+"?s="+s+"&d=404"):""}}angular.module("SOGo.Common").factory("Gravatar",Gravatar)}(),function(){"use strict";function Resource($http,$q,path,activeUser,options){angular.extend(this,{_http:$http,_q:$q,_path:path,_activeUser:activeUser}),angular.extend(this,options),this._path=this._path.replace(/\/$/,"")}Resource.$factory=["$http","$q",function($http,$q){return function(path,activeUser,options){return new Resource($http,$q,path,activeUser,options)}}],angular.module("SOGo.Common").factory("Resource",Resource.$factory),Resource.prototype.userResource=function(uid){var path=_.compact(this._activeUser.folderURL.split("/"));return path.splice(path.length-1,1,escape(uid)),new Resource(this._http,this._q,"/"+path.join("/"),this._activeUser)},Resource.prototype.fetch=function(folderId,action,params){var deferred=this._q.defer(),path=[this._path];return folderId&&path.push(folderId.split("/")),action&&path.push(action),path=_.compact(_.flatten(path)).join("/"),this._http({method:"GET",url:path,params:params}).success(deferred.resolve).error(function(data,status){return 404==status?deferred.reject():void 0}),deferred.promise},Resource.prototype.newguid=function(folderId){var deferred=this._q.defer(),path=this._path+"/"+folderId+"/newguid";return this._http.get(path).success(deferred.resolve).error(deferred.reject),deferred.promise},Resource.prototype.create=function(action,name){var deferred=this._q.defer(),path=this._path+"/"+action;return this._http.post(path,{name:name}).success(deferred.resolve).error(deferred.reject),deferred.promise},Resource.prototype.post=function(id,action,data){var deferred=this._q.defer(),path=[this._path];return id&&path.push(id),action&&path.push(action),path=_.compact(_.flatten(path)).join("/"),this._http.post(path,data).success(deferred.resolve).error(deferred.reject),deferred.promise},Resource.prototype.save=function(id,newValue,options){var action=(this._q.defer(),options&&options.action?options.action:"save");return this.post(id,action,newValue)},Resource.prototype.remove=function(uid){var deferred=this._q.defer(),path=this._path+"/"+uid+"/delete";return this._http.get(path).success(deferred.resolve).error(deferred.reject),deferred.promise}}(),function(){"use strict";function User(userData){userData&&this.init(userData)}User.factory=["$q","$log","sgSettings","Resource","Gravatar",function($q,$log,Settings,Resource,Gravatar){return angular.extend(User,{$q:$q,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL"),Settings.activeUser()),$gravatar:Gravatar,$query:"",$users:[]}),User}],angular.module("SOGo.Common").factory("User",User.factory),User.$filter=function(search,excludedUsers){var param={search:search},_this=this;return search?User.$query==search?User.$q.when(User.$users):(User.$query=search,User.$$resource.fetch(null,"usersSearch",param).then(function(response){var results,index,user,compareUids=function(data){return _this.uid==data.uid};for(results=excludedUsers?_.filter(response.users,function(data){return!_.find(excludedUsers,compareUids,user)}):response.users,index=User.$users.length-1;index>=0;index--)user=User.$users[index],_.find(results,compareUids,user)||User.$users.splice(index,1);return _.each(results,function(data,index){if(_.isUndefined(_.find(User.$users,compareUids,data))){var user=new User(data);User.$users.splice(index,0,user)}}),User.$log.debug(User.$users),User.$users})):(User.$users=[],User.$q.when(User.$users))},User.prototype.init=function(data){angular.extend(this,data),this.$$shortFormat||(this.$$shortFormat=this.$shortFormat()),this.$$image||(this.$$image=this.image||User.$gravatar(this.c_email)),this.empty=" "},User.prototype.$shortFormat=function(options){var fullname=this.cn||this.c_email,email=this.c_email,no_email=options&&options.email===!1;return!no_email&&email&&fullname!=email&&(fullname+=" <"+email+">"),fullname},User.prototype.$acl=function(folderId){var _this=this,deferred=User.$q.defer(),param={uid:this.uid};return this.$shadowRights?deferred.resolve(this.rights):User.$$resource.fetch(folderId,"userRights",param).then(function(data){return _this.rights=data,_this.$shadowRights=angular.copy(data),deferred.resolve(data),data}),deferred.promise},User.prototype.$isAnonymous=function(){return"anonymous"==this.uid},User.prototype.$isSpecial=function(){return this.userClass&&"public-user"==this.userClass},User.prototype.$confirmRights=function(){var confirmation=!1;return this.$confirmation?!1:(_.some(_.values(this.rights))&&("anonymous"==this.uid?confirmation=l("Potentially anyone on the Internet will be able to access your folder, even if they do not have an account on this system. Is this information suitable for the public Internet?"):""==this.uid&&(confirmation=l("Any user with an account on this system will be able to access your folder. Are you certain you trust them all?"))),this.$confirmation=confirmation,confirmation)},User.prototype.$rightsAreDirty=function(){return this.rights&&!_.isEqual(this.rights,this.$shadowRights)},User.prototype.$resetRights=function(zero){var _this=this;zero?_.map(_.keys(this.rights),function(key){angular.isString(_this.rights[key])?_this.rights[key]="None":_this.rights[key]=0}):this.rights=angular.copy(this.$shadowRights)},User.prototype.$folders=function(type){var _this=this,deferred=User.$q.defer(),param={type:type};return this.$$folders?deferred.resolve(this.$$folders):User.$$resource.userResource(this.uid).fetch(null,"foldersSearch",param).then(function(response){_this.$$folders=response.folders,deferred.resolve(response.folders)}),deferred.promise},User.prototype.$omit=function(){var user={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(user[key]=value)}),user},User.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";function sgFocus($rootScope,$timeout){return function(name){$timeout(function(){$rootScope.$broadcast("sgFocusOn",name)})}}sgFocus.$inject=["$rootScope","$timeout"],angular.module("SOGo.Common").factory("sgFocus",sgFocus)}(),function(){"use strict";function sgAvatarImage(){return{restrict:"AE",scope:{size:"@",email:"=sgEmail",src:"=sgSrc"},template:'',link:link,bindToController:!0,controller:"sgAvatarImageController",controllerAs:"vm"}}function link(scope,element,attrs,controller){var el=element[0],imgElement=(el.className,element.find("img")),img=imgElement[0];attrs.size&&(imgElement.attr("width",attrs.size),imgElement.attr("height",attrs.size)),imgElement.bind("error",function(){controller.insertGenericAvatar(img)})}function sgAvatarImageController($scope,$element,Gravatar){var vm=this;$scope.$watch("vm.email",function(email){var img=$element.find("img")[0];email||vm.genericAvatar?email&&!vm.url&&(vm.genericAvatar&&(vm.genericAvatar.parentNode.removeChild(vm.genericAvatar),delete vm.genericAvatar,img.classList.remove("ng-hide")),vm.url=Gravatar(email,vm.size)):vm.insertGenericAvatar(img)}),"sg-src"in $element[0].attributes&&$scope.$watch("vm.src",function(src){src&&(vm.url=src)}),vm.insertGenericAvatar=function(img){var avatar;vm.genericAvatar||(avatar=document.createElement("md-icon"),avatar.className="material-icons icon-person",img.classList.add("ng-hide"),vm.genericAvatar=img.parentNode.insertBefore(avatar,img))}}sgAvatarImageController.$inject=["$scope","$element","Gravatar"],angular.module("SOGo.Common").directive("sgAvatarImage",sgAvatarImage).controller("sgAvatarImageController",sgAvatarImageController)}(),function(){"use strict";function sgColorPicker($parse){function link(scope,iElement,iAttr,controller){controller.doSelect=$parse(iElement.attr("sg-on-select"))}return{restrict:"E",template:["",' '," color_lens"," ",' ',' ',' '," "," ",""].join(""),replace:!0,bindToController:!0,controller:sgColorPickerController,controllerAs:"$sgColorPickerController",link:link}}function sgColorPickerController($scope,sgColors){var vm=this;vm.colors=sgColors.selection,vm.select=function(color){vm.doSelect($scope,{color:color})}}sgColorPicker.$inject=["$parse"],sgColorPickerController.$inject=["$scope","sgColors"],angular.module("SOGo.Common").directive("sgColorPicker",sgColorPicker)}(),function(){"use strict";function sgCompile($compile){function sgCompileLink(scope,element,attrs){var ensureCompileRunsOnce=scope.$watch(function(scope){return scope.$eval(attrs.sgCompile)},function(value){element.html(value),$compile(element.contents())(scope),ensureCompileRunsOnce()})}return{restrict:"A",link:sgCompileLink}}sgCompile.$inject=["$compile"],angular.module("SOGo.Common").directive("sgCompile",sgCompile)}(),function(){"use strict";function sgEnter(){ -var ENTER_KEY=13;return function(scope,element,attrs){element.bind("keydown keypress",function(event){event.which===ENTER_KEY&&(scope.$apply(attrs.sgEnter),event.preventDefault())})}}angular.module("SOGo.Common").directive("sgEnter",sgEnter)}(),function(){"use strict";function sgEscape(){var ESCAPE_KEY=27;return function(scope,elem,attrs){elem.bind("keydown",function(event){event.keyCode===ESCAPE_KEY&&scope.$apply(attrs.sgEscape)})}}angular.module("SOGo.Common").directive("sgEscape",sgEscape)}(),function(){"use strict";function sgFocusOn(){return function(scope,elem,attr){scope.$on("sgFocusOn",function(e,name){name===attr.sgFocusOn&&(elem[0].focus(),elem[0].select())})}}angular.module("SOGo.Common").directive("sgFocusOn",sgFocusOn)}(),function(){"use strict";function sgFolderStylesheet(){return{restrict:"A",require:"ngModel",scope:{ngModel:"="},template:['"].join("")}}angular.module("SOGo.Common").directive("sgFolderStylesheet",sgFolderStylesheet)}(),function(){"use strict";function sgPlaceholder(){return{restrict:"A",scope:{placeholder:"=sgPlaceholder"},link:function(scope,elem,attr){scope.$watch("placeholder",function(){elem[0].placeholder=scope.placeholder})}}}angular.module("SOGo.Common").directive("sgPlaceholder",sgPlaceholder)}(),function(){"use strict";function sgSearchPreTransclude($parse){function compile(tElement,tAttr){var inputEl=(tElement.find("md-input-container"),tElement.find("input")),selectEl=tElement.find("md-select"),buttonEl=tElement.find("md-button");return inputEl.attr("ng-model","$sgSearchController.searchText"),inputEl.attr("ng-model-options","$sgSearchController.searchTextOptions"),inputEl.attr("ng-change","$sgSearchController.onChange()"),selectEl&&(selectEl.attr("ng-model","$sgSearchController.searchField"),selectEl.attr("ng-change","$sgSearchController.onChange()")),buttonEl&&buttonEl.attr("sg-search-cancel")?(buttonEl.attr("ng-click",buttonEl.attr("sg-search-cancel")),buttonEl.removeAttr("sg-search-cancel")):buttonEl=null,function(scope,iElement,iAttr,controller){var compiledButtonEl=iElement.find("button");controller.doSearch=$parse(iElement.attr("sg-search")),buttonEl&&compiledButtonEl&&compiledButtonEl.on("click",controller.cancelSearch)}}return{restrict:"A",controller:"sgSearchController",controllerAs:"$sgSearchController",priority:1001,compile:compile}}function sgSearch(){function compile(tElement,tAttr){return function(scope,iElement,iAttr,controller,transclude){transclude(function(clone){iElement.append(clone)})}}return{restrict:"A",priority:1e3,transclude:!0,compile:compile}}function sgSearchController($scope,$element){var vm=this;vm.previous={searchText:"",searchField:""},vm.searchText=null,vm.searchTextOptions={updateOn:"default blur",debounce:{"default":300,blur:0}},vm.onChange=function(){"undefined"!=typeof vm.searchText&&null!==vm.searchText&&(vm.searchText!=vm.previous.searchText||vm.searchField!=vm.previous.searchField)&&((vm.searchText.length>2||0===vm.searchText.length)&&vm.doSearch($scope,{searchText:vm.searchText,searchField:vm.searchField}),vm.previous={searchText:vm.searchText,searchField:vm.searchField})},vm.cancelSearch=function(){vm.searchText=""}}sgSearchPreTransclude.$inject=["$parse"],sgSearchController.$inject=["$scope","$element"],angular.module("SOGo.Common").controller("sgSearchController",sgSearchController).directive("sgSearch",sgSearchPreTransclude).directive("sgSearch",sgSearch)}(),function(){"use strict";function sgSubscribe(User){return{restrict:"A",scope:{folderType:"@sgSubscribe",onFolderSelect:"&sgSubscribeOnSelect"},replace:!1,bindToController:!0,controller:sgSubscribeDialogController,controllerAs:"$sgSubscribeDialogController",link:link}}function link(scope,element,attrs,controller){element.find("input");element.on("click",controller.showDialog)}function sgSubscribeDialogController($mdDialog){var vm=this;vm.showDialog=function(){$mdDialog.show({templateUrl:"../Contacts/UIxContactsUserFolders",clickOutsideToClose:!0,locals:{folderType:vm.folderType,onFolderSelect:vm.onFolderSelect},controller:sgSubscribeController,controllerAs:"subscribe"})}}function sgSubscribeController($mdDialog,folderType,onFolderSelect,User){var vm=this;vm.selectedUser=null,vm.users=User.$users,vm.searchTextOptions={updateOn:"default blur",debounce:{"default":300,blur:0}},vm.onChange=function(){User.$filter(vm.searchText).then(function(){vm.selectedUser&&_.isUndefined(_.find(User.$users,function(user){return user.uid==vm.selectedUser.uid}))&&(vm.selectedUser=null)})},vm.selectUser=function(i){vm.selectedUser==vm.users[i]?vm.selectedUser=null:vm.users[i].$folders(folderType).then(function(){vm.selectedUser=vm.users[i]})},vm.selectFolder=function(folder){onFolderSelect({folderData:folder})},vm.close=function(){$mdDialog.hide()}}sgSubscribe.$inject=["User"],sgSubscribeDialogController.$inject=["$mdDialog"],sgSubscribeController.$inject=["$mdDialog","folderType","onFolderSelect","User"],angular.module("SOGo.Common").directive("sgSubscribe",sgSubscribe)}(),function(){"use strict";function timePaneDirective(){return{template:['
','
','
','
',' {{hour.displayName}}',"
","
","
",'
','
','
',' {{minute.displayName}}',"
","
","
",'
','
','
',' {{minute.displayName}}',"
","
","
",'
',' ',"
","
"].join(""),scope:{},require:["ngModel","sgTimePane"],controller:TimePaneCtrl,controllerAs:"ctrl",bindToController:!0,link:function(scope,element,attrs,controllers){var ngModelCtrl=controllers[0],sgTimePaneCtrl=controllers[1],timePaneElement=element;sgTimePaneCtrl.configureNgModel(ngModelCtrl,sgTimePaneCtrl,timePaneElement)}}}function TimePaneCtrl($element,$attrs,$scope,$animate,$q,$mdConstant,$mdTheming,$$mdDateUtil,$mdDateLocale,$mdInkRipple,$mdUtil){var m;this.$scope=$scope,this.$element=$element,this.timePaneElement=$element[0].querySelector(".sg-time-pane"),this.$animate=$animate,this.$q=$q,this.$mdInkRipple=$mdInkRipple,this.$mdUtil=$mdUtil,this.keyCode=$mdConstant.KEY_CODE,this.dateUtil=$$mdDateUtil,this.id=nextTimePaneUniqueId++,this.ngModelCtrl=null,this.selectedTime=null,this.displayTime=null,this.isInitialized=!1,$scope.hours=[],$scope.hours[0]=[],$scope.hours[0][0]=[],$scope.hours[0][1]=[],$scope.hours[1]=[],$scope.hours[1][0]=[],$scope.hours[1][1]=[];for(var i=0;6>i;i++)$scope.hours[0][0][i]={id:"tp-"+this.id+"-hour-"+i,displayName:10>i?"0"+i:""+i,selected:!1},$scope.hours[0][1][i]={id:"tp-"+this.id+"-hour-"+(i+6),displayName:10>i+6?"0"+(i+6):""+(i+6),selected:!1},$scope.hours[1][0][i]={id:"tp-"+this.id+"-hour-"+(i+12),displayName:""+(i+12),selected:!1},$scope.hours[1][1][i]={id:"tp-"+this.id+"-hour-"+(i+18),displayName:""+(i+18),selected:!1};for($scope.min5=[],$scope.min5[0]=[],$scope.min5[1]=[],i=0;6>i;i++)m=5*i,$scope.min5[0][i]={id:"tp-"+this.id+"-minute5-"+m,displayName:10>m?":0"+m:":"+m,selected:!0},$scope.min5[1][i]={id:"tp-"+this.id+"-minute5-"+(m+30),displayName:":"+(m+30),selected:!1};for($scope.min1=[],i=0;12>i;i++){$scope.min1[i]=[];for(var ii=0;5>ii;ii++)m=5*i+ii,$scope.min1[i][ii]={id:"tp-"+this.id+"-minute-"+m,displayName:10>m?":0"+m:":"+m,selected:!0}}$scope.show5min=!0,$scope.getToggleBtnLbl=function(){return $scope.is5min()?">>":"<<"},$scope.toggleManual5min=function(){$scope.manual5min=!$scope.is5min()},$scope.is5min=function(){return $scope.manual5min===!0||$scope.manual5min===!1?$scope.manual5min:$scope.show5min},$attrs.tabindex||$element.attr("tabindex","-1");var self=this;this.hourClickHandler=function(displayVal){var updated=new Date(self.displayTime);updated.setHours(Number(displayVal)),self.setNgModelValue(updated,"hours")},$scope.hourClickHandler=this.hourClickHandler,this.minuteClickHandler=function(displayVal){var val=displayVal.substr(1),updated=new Date(self.displayTime);updated.setMinutes(Number(val)),self.setNgModelValue(updated,"minutes")},$scope.minuteClickHandler=this.minuteClickHandler,this.attachTimePaneEventListeners()}angular.module("SOGo.Common").directive("sgTimePane",timePaneDirective);var SELECTED_TIME_CLASS="md-bg",FOCUSED_TIME_CLASS="md-focus",nextTimePaneUniqueId=0;TimePaneCtrl.$inject=["$element","$attrs","$scope","$animate","$q","$mdConstant","$mdTheming","$$mdDateUtil","$mdDateLocale","$mdInkRipple","$mdUtil"],TimePaneCtrl.prototype.configureNgModel=function(ngModelCtrl,sgTimePaneCtrl,timePaneElement){this.ngModelCtrl=ngModelCtrl;var self=this;ngModelCtrl.$render=function(){self.changeSelectedTime(self.ngModelCtrl.$viewValue,sgTimePaneCtrl,timePaneElement)}},TimePaneCtrl.prototype.changeSelectedTime=function(date,sgTimePaneCtrl,timePaneElement){var previousSelectedTime=this.selectedTime;this.selectedTime=date,this.changeDisplayTime(date).then(function(){if(previousSelectedTime){var prevH=previousSelectedTime.getHours(),prevHCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+prevH);prevHCell&&(prevHCell.classList.remove(SELECTED_TIME_CLASS),prevHCell.setAttribute("aria-selected","false"));var prevM=previousSelectedTime.getMinutes(),prevMCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute-"+prevM);prevMCell&&(prevMCell.classList.remove(SELECTED_TIME_CLASS),prevMCell.setAttribute("aria-selected","false"));var prevM5Cell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute5-"+prevM);prevM5Cell&&(prevM5Cell.classList.remove(SELECTED_TIME_CLASS),prevM5Cell.setAttribute("aria-selected","false"))}if(date){var mCell,newH=date.getHours(),hCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+newH);hCell&&(hCell.classList.add(SELECTED_TIME_CLASS),hCell.setAttribute("aria-selected","true"));var newM=date.getMinutes();newM%5===0?(sgTimePaneCtrl.$scope.show5min=!0,mCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute5-"+newM),mCell&&(mCell.classList.add(SELECTED_TIME_CLASS),mCell.setAttribute("aria-selected","true"))):sgTimePaneCtrl.$scope.show5min=!1,mCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute-"+newM),mCell&&(mCell.classList.add(SELECTED_TIME_CLASS),mCell.setAttribute("aria-selected","true"))}})},TimePaneCtrl.prototype.changeDisplayTime=function(date){var d=new Date(date);return this.isInitialized?this.dateUtil.isValidDate(d)?(this.displayTime=d,this.$q.when()):this.$q.when():(this.buildInitialTimePaneDisplay(),this.$q.when())},TimePaneCtrl.prototype.buildInitialTimePaneDisplay=function(){this.displayTime=this.selectedTime||this.today,this.isInitialized=!0},TimePaneCtrl.prototype.attachTimePaneEventListeners=function(){this.$element.on("keydown",angular.bind(this,this.handleKeyEvent))},TimePaneCtrl.prototype.handleKeyEvent=function(event){var self=this;this.$scope.$apply(function(){return event.which==self.keyCode.ESCAPE||event.which==self.keyCode.TAB?(self.$scope.$emit("md-time-pane-close"),void(event.which==self.keyCode.TAB&&event.preventDefault())):event.which===self.keyCode.ENTER?(self.setNgModelValue(self.displayTime,"enter"),void event.preventDefault()):void 0})},TimePaneCtrl.prototype.setNgModelValue=function(date,mode){this.$scope.$emit("sg-time-pane-change",{date:date,changed:mode}),this.ngModelCtrl.$setViewValue(date),this.ngModelCtrl.$render()},TimePaneCtrl.prototype.focus=function(opt_date,sgTimePaneCtrl){var date=opt_date||this.selectedTime||this.today,previousFocus=this.timePaneElement.querySelector(".md-focus");if(previousFocus&&previousFocus.classList.remove(FOCUSED_TIME_CLASS),date){var newH=date.getHours(),hCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+newH);hCell&&(hCell.classList.add(FOCUSED_TIME_CLASS),hCell.focus())}}}(),function(){"use strict";function timePickerDirective(){return{template:['",'
",' ',' ','
',"
","
",'
','
','
',"
",'
',' ',"
","
"].join(""),require:["ngModel","sgTimepicker"],scope:{placeholder:"@mdPlaceholder"},controller:TimePickerCtrl,controllerAs:"ctrl",bindToController:!0,link:function(scope,element,attr,controllers){var ngModelCtrl=controllers[0],mdTimePickerCtrl=controllers[1];mdTimePickerCtrl.configureNgModel(ngModelCtrl)}}}function TimePickerCtrl($scope,$element,$attrs,$compile,$timeout,$mdConstant,$mdMedia,$mdTheming,$mdUtil,$mdDateLocale,$$mdDateUtil,$$rAF){this.$compile=$compile,this.$timeout=$timeout,this.dateLocale=$mdDateLocale,this.dateUtil=$$mdDateUtil,this.$mdConstant=$mdConstant,this.$mdMedia=$mdMedia,this.$mdUtil=$mdUtil,this.$$rAF=$$rAF,this.ngModelCtrl=null,this.inputElement=$element[0].querySelector("input"),this.inputContainer=$element[0].querySelector(".sg-timepicker-input-container"),this.ngInputElement=angular.element(this.inputElement),this.timePane=$element[0].querySelector(".sg-timepicker-time-pane"),this.timeButton=$element[0].querySelector(".sg-timepicker-button"),this.inputMask=$element[0].querySelector(".sg-timepicker-input-mask-opaque"),this.$element=$element,this.$attrs=$attrs,this.$scope=$scope,this.date=null,this.isFocused=!1,this.isDisabled=!1,this.setDisabled($element[0].disabled||angular.isString($attrs.disabled)),this.isTimeOpen=!1,this.timePaneOpenedFrom=null,this.timePane.id="sg-time-pane"+$mdUtil.nextUid(),$mdTheming($element),this.bodyClickHandler=angular.bind(this,this.handleBodyClick),this.windowResizeHandler=$mdUtil.debounce(angular.bind(this,this.closeTimePane),100),$attrs.tabindex||$element.attr("tabindex","-1"),this.installPropertyInterceptors(),this.attachChangeListeners(),this.attachInteractionListeners();var self=this;$scope.$on("$destroy",function(){self.detachTimePane()})}angular.module("SOGo.Common").directive("sgTimepicker",timePickerDirective);var EXTRA_INPUT_SIZE=3,INVALID_CLASS="sg-timepicker-invalid",DEFAULT_DEBOUNCE_INTERVAL=500,TIME_PANE_HEIGHT={MIN5:{GTSM:192,SM:312},MIN1:{GTSM:384,SM:474}},TIME_PANE_WIDTH={GTSM:530,SM:292};TimePickerCtrl.$inject=["$scope","$element","$attrs","$compile","$timeout","$mdConstant","$mdMedia","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF"],TimePickerCtrl.prototype.configureNgModel=function(ngModelCtrl){this.ngModelCtrl=ngModelCtrl;var self=this;ngModelCtrl.$render=function(){self.time=self.ngModelCtrl.$viewValue,self.inputElement.value=self.formatTime(self.time),self.resizeInputElement()}},TimePickerCtrl.prototype.formatTime=function(time){var t=new Date(time);if(t){var h=t.getHours(),m=t.getMinutes();return(10>h?"0"+h:h)+":"+(10>m?"0"+m:m)}return""},TimePickerCtrl.prototype.attachChangeListeners=function(){var self=this;self.$scope.$on("sg-time-pane-change",function(event,data){var time=new Date(data.date);self.ngModelCtrl.$setViewValue(time),self.time=time,self.inputElement.value=self.formatTime(self.time),"minutes"==data.changed&&self.closeTimePane(),self.resizeInputElement(),self.inputContainer.classList.remove(INVALID_CLASS)}),self.ngInputElement.on("input",angular.bind(self,self.resizeInputElement)),self.ngInputElement.on("input",self.$mdUtil.debounce(self.handleInputEvent,DEFAULT_DEBOUNCE_INTERVAL,self))},TimePickerCtrl.prototype.attachInteractionListeners=function(){var self=this,$scope=this.$scope,keyCodes=this.$mdConstant.KEY_CODE;self.ngInputElement.on("keydown",function(event){event.altKey&&event.keyCode==keyCodes.DOWN_ARROW&&(self.openTimePane(event),$scope.$digest())}),$scope.$on("md-time-close",function(){self.closeTimePane()})},TimePickerCtrl.prototype.installPropertyInterceptors=function(){var self=this;if(this.$attrs.ngDisabled){var scope=this.$mdUtil.validateScope(this.$element)?this.$element.scope():null;scope&&scope.$watch(this.$attrs.ngDisabled,function(isDisabled){self.setDisabled(isDisabled)})}Object.defineProperty(this,"placeholder",{get:function(){return self.inputElement.placeholder},set:function(value){self.inputElement.placeholder=value||""}})},TimePickerCtrl.prototype.setDisabled=function(isDisabled){this.isDisabled=isDisabled,this.inputElement.disabled=isDisabled,this.timeButton.disabled=isDisabled},TimePickerCtrl.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+EXTRA_INPUT_SIZE},TimePickerCtrl.prototype.handleInputEvent=function(self){var inputString=this.inputElement.value,arr=inputString.split(":");if(""===inputString)this.ngModelCtrl.$setViewValue(null),this.time=null,this.inputContainer.classList.remove(INVALID_CLASS);else if(arr.length<2)this.inputContainer.classList.toggle(INVALID_CLASS,inputString);else{var h=Number(arr[0]),m=Number(arr[1]),newVal=new Date(this.time);h&&h>=0&&23>=h&&m&&m>=0&&59>=m&&angular.isDate(newVal)?(newVal.setHours(h),newVal.setMinutes(m),this.ngModelCtrl.$setViewValue(newVal),this.time=newVal,this.inputContainer.classList.remove(INVALID_CLASS)):this.inputContainer.classList.toggle(INVALID_CLASS,inputString)}},TimePickerCtrl.prototype.attachTimePane=function(){var timePane=this.timePane;this.$element.addClass("sg-timepicker-open"),this.$element.find("button").addClass("md-primary");var elementRect=this.inputContainer.getBoundingClientRect(),bodyRect=document.body.getBoundingClientRect(),paneTop=elementRect.top-bodyRect.top,paneLeft=elementRect.left-bodyRect.left,paneWidth=this.$mdMedia("sm")?TIME_PANE_WIDTH.SM:TIME_PANE_WIDTH.GTSM;paneLeft+paneWidth>bodyRect.right&&bodyRect.right-paneWidth>0&&(paneLeft=bodyRect.right-paneWidth,timePane.classList.add("sg-timepicker-pos-adjusted")),timePane.style.left=paneLeft+"px";var min="object"==typeof this.time&&this.time.getMinutes()%5===0?"MIN5":"MIN1",paneHeight=this.$mdMedia("sm")?TIME_PANE_HEIGHT[min].SM:TIME_PANE_HEIGHT[min].GTSM;paneTop+paneHeight>bodyRect.bottom&&bodyRect.bottom-paneHeight>0&&(paneTop=bodyRect.bottom-paneHeight,timePane.classList.add("sg-timepicker-pos-adjusted")),timePane.style.top=paneTop+"px",document.body.appendChild(this.timePane),this.inputMask.style.left=elementRect.width+"px",this.$$rAF(function(){timePane.classList.add("md-pane-open")})},TimePickerCtrl.prototype.detachTimePane=function(){this.$element.removeClass("sg-timepicker-open"),this.$element.find("button").removeClass("md-primary"),this.timePane.classList.remove("md-pane-open"),this.timePane.classList.remove("md-timepicker-pos-adjusted"),this.timePane.parentNode&&this.timePane.parentNode.removeChild(this.timePane)},TimePickerCtrl.prototype.openTimePane=function(event){if(!this.isTimeOpen&&!this.isDisabled){this.isTimeOpen=!0,this.timePaneOpenedFrom=event.target,this.attachTimePane(),this.$mdUtil.disableScrollAround(this.timePane);var self=this;this.$mdUtil.nextTick(function(){document.body.addEventListener("click",self.bodyClickHandler)},!1),window.addEventListener("resize",this.windowResizeHandler)}},TimePickerCtrl.prototype.closeTimePane=function(){this.isTimeOpen=!1,this.detachTimePane(),this.timePaneOpenedFrom.focus(),this.timePaneOpenedFrom=null,this.$mdUtil.enableScrolling(),document.body.removeEventListener("click",this.bodyClickHandler),window.removeEventListener("resize",this.windowResizeHandler)},TimePickerCtrl.prototype.getTimePaneCtrl=function(){return angular.element(this.timePane.querySelector("sg-time-pane")).controller("sgTimePane")},TimePickerCtrl.prototype.focusTime=function(){var self=this;this.$mdUtil.nextTick(function(){var ctrl=self.getTimePaneCtrl();self.getTimePaneCtrl().focus(null,ctrl)},!1)},TimePickerCtrl.prototype.setFocused=function(isFocused){this.isFocused=isFocused},TimePickerCtrl.prototype.handleBodyClick=function(event){if(this.isTimeOpen){var isInTime=this.$mdUtil.getClosest(event.target,"sg-time-pane");isInTime||this.closeTimePane(),this.$scope.$digest()}}}(),function(){"use strict";function sgToggleGrid($parse){function link(scope,iElement,attrs,ctrl){function toggle(day){var i=_.findIndex(modelDays,function(o){return modelAttr?o[modelAttr]==day:o==day});if(0>i)if(modelAttr){var o={};o[modelAttr]=day,modelDays.push(o)}else modelDays.push(day);else modelDays.splice(i,1)}var tile,i,modelDays,modelAttr,ensureInitRunsOnce,toggleClass,tiles=iElement.find("md-grid-tile");for(ensureInitRunsOnce=scope.$watch(function(){return $parse(attrs.sgToggleGrid)(scope)},function(days){if(angular.isDefined(days)){var flattenedDays=days;modelDays=days,attrs.sgToggleGridAttr&&(modelAttr=attrs.sgToggleGridAttr,flattenedDays=_.pluck(days,attrs.sgToggleGridAttr)),_.each(tiles,function(o){var tile=angular.element(o);_.contains(flattenedDays,tile.attr("value"))&&tile.addClass("sg-active")}),ensureInitRunsOnce()}}),toggleClass=function(){var tile=angular.element(this),day=tile.attr("value");tile.toggleClass("sg-active"),toggle(day)},i=0;i>2,enc2=(3&chr1)<<4|chr2>>4,enc3=(15&chr2)<<2|chr3>>6,enc4=63&chr3,isNaN(chr2)?enc3=enc4=64:isNaN(chr3)&&(enc4=64),output=output+this._base64_keyStr.charAt(enc1)+this._base64_keyStr.charAt(enc2)+this._base64_keyStr.charAt(enc3)+this._base64_keyStr.charAt(enc4);return output},String.prototype.base64decode=function(){for(var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0,input=""+this;i>4,chr2=(15&enc2)<<4|enc3>>2,chr3=(3&enc3)<<6|enc4,output+=String.fromCharCode(chr1),64!=enc3&&(output+=String.fromCharCode(chr2)),64!=enc4&&(output+=String.fromCharCode(chr3));return output},String.prototype.md5=function(){if(this.length){var md5=function(s){function L(k,d){return k<>>32-d}function K(G,k){var I,d,F,H,x;return F=2147483648&G,H=2147483648&k,I=1073741824&G,d=1073741824&k,x=(1073741823&G)+(1073741823&k),I&d?2147483648^x^F^H:I|d?1073741824&x?3221225472^x^F^H:1073741824^x^F^H:x^F^H}function r(d,F,k){return d&F|~d&k}function q(d,F,k){return d&k|F&~k}function p(d,F,k){return d^F^k}function n(d,F,k){return F^(d|~k)}function u(G,F,aa,Z,k,H,I){return G=K(G,K(K(r(F,aa,Z),k),I)),K(L(G,H),F)}function f(G,F,aa,Z,k,H,I){return G=K(G,K(K(q(F,aa,Z),k),I)),K(L(G,H),F)}function D(G,F,aa,Z,k,H,I){return G=K(G,K(K(p(F,aa,Z),k),I)),K(L(G,H),F)}function t(G,F,aa,Z,k,H,I){return G=K(G,K(K(n(F,aa,Z),k),I)),K(L(G,H),F)}function e(G){for(var Z,F=G.length,x=F+8,k=(x-x%64)/64,I=16*(k+1),aa=Array(I-1),d=0,H=0;F>H;)Z=(H-H%4)/4,d=H%4*8,aa[Z]=aa[Z]|G.charCodeAt(H)<>>29,aa}function B(x){var G,d,k="",F="";for(d=0;3>=d;d++)G=x>>>8*d&255,F="0"+G.toString(16),k+=F.substr(F.length-2,2);return k}function J(k){k=k.replace(/rn/g,"n");for(var d="",F=0;Fx?d+=String.fromCharCode(x):x>127&&2048>x?(d+=String.fromCharCode(x>>6|192),d+=String.fromCharCode(63&x|128)):(d+=String.fromCharCode(x>>12|224),d+=String.fromCharCode(x>>6&63|128),d+=String.fromCharCode(63&x|128))}return d}var P,h,E,v,g,Y,X,W,V,C=Array(),S=7,Q=12,N=17,M=22,A=5,z=9,y=14,w=20,o=4,m=11,l=16,j=23,U=6,T=10,R=15,O=21;for(s=J(s),C=e(s),Y=1732584193,X=4023233417,W=2562383102,V=271733878,P=0;P12&&(p="pm",i=hours%12),10>minutes&&(m="0"+minutes),newString=newString.replace("%H",10>hours?"0"+hours:hours),newString=newString.replace("%I",10>i?"0"+i:i),newString=newString.replace("%M",m),newString=newString.replace("%p",p)},Date.prototype.daysUpTo=function(otherDate){var days=[],day1=this.getTime(),day2=otherDate.getTime();if(day1>day2){var tmp=day1;day1=day2,day2=tmp}for(var nbrDays=Math.round((day2-day1)/864e5)+1,i=0;nbrDays>i;i++){var newDate=new Date;newDate.setTime(day1+864e5*i),days.push(newDate)}return days},String.prototype.isValidEmail=function(){var emailRE=/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i;return emailRE.test(this)},String.prototype.asCSSIdentifier=function(){for(var characters=["_","\\.","#","@","\\*",":",","," ","'","&","\\+"],escapeds=["_U_","_D_","_H_","_A_","_S_","_C_","_CO_","_SP_","_SQ_","_AM_","_P_"],newString=this,i=0;iyear&&(year=""+(year+1900)),1==month.length&&(month="0"+month),1==day.length&&(day="0"+day),"-"==separator?str=year+"-"+month+"-"+day:str=day+"/"+month+"/"+year,str},Date.prototype.addDays=function(nbrDays){var milliSeconds=this.getTime();milliSeconds+=864e5*nbrDays,this.setTime(milliSeconds)},Date.prototype.addHours=function(nbrHours){var milliSeconds=this.getTime();milliSeconds+=36e5*nbrHours,this.setTime(milliSeconds)},Date.prototype.addMinutes=function(nbrMinutes){var milliSeconds=this.getTime();milliSeconds+=6e4*nbrMinutes,this.setTime(milliSeconds)},Date.prototype.beginOfDay=function(){var beginOfDay=new Date(this.getTime());return beginOfDay.setHours(0),beginOfDay.setMinutes(0),beginOfDay.setSeconds(0),beginOfDay.setMilliseconds(0),beginOfDay},Date.prototype.beginOfWeek=function(){var offset=firstDayOfWeek-this.getDay();offset>0&&(offset-=7);var beginOfWeek=this.beginOfDay();return beginOfWeek.setHours(12),beginOfWeek.addDays(offset),beginOfWeek},Date.prototype.endOfWeek=function(){var endOfWeek=this.beginOfWeek(); -return endOfWeek.addDays(6),endOfWeek.setHours(23),endOfWeek.setMinutes(59),endOfWeek.setSeconds(59),endOfWeek.setMilliseconds(999),endOfWeek},Date.prototype.getDayString=function(){var newString=this.getYear();1e3>newString&&(newString+=1900);var month=""+(this.getMonth()+1);1==month.length&&(month="0"+month),newString+=month;var day=""+this.getDate();return 1==day.length&&(day="0"+day),newString+=day},Date.prototype.getHourString=function(){var newString=this.getHours()+"00";return 3==newString.length&&(newString="0"+newString),newString}; +function l(){var key=arguments[0],value=key;labels[key]?value=labels[key]:clabels[key]&&(value=clabels[key]);for(var i=1,j=0;i0;)customSheet.deleteRule(0);angular.forEach(_$mdThemingProvider._THEMES,function(theme,themeName){addRule(fgDefault,bgDefault,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["default"]]),addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-2"]],"hue-2"),addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-3"]],"hue-3"),addRule(fgDefaultHue,bgDefaultHue,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["hue-1"]],"hue-1"),addBorderRule(bdrDefault,themeName,"primary",_$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues["default"]]),angular.forEach(theme.colors,function(color,paletteName){addRule(fgColor,bgColor,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["default"]]),addBorderRule(bdrColor,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["default"]]),addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-2"]],"hue-2"),addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-3"]],"hue-3"),addRule(fgHue,bgHue,themeName,paletteName,_$mdThemingProvider._PALETTES[color.name][color.hues["hue-1"]],"hue-1")})})}var _$mdThemingProvider;angular.module("mdColors",["ngMaterial"]).config(configure).run(runBlock),configure.$inject=["$mdThemingProvider"],runBlock.$inject=["$interpolate","$document","$log"]}(),function(){"use strict";function decodeUri($window){return $window.decodeURIComponent}decodeUri.$inject=["$window"],angular.module("SOGo.Common").filter("decodeUri",decodeUri)}(),function(){"use strict";function encodeUri($window){return $window.encodeURIComponent}encodeUri.$inject=["$window"],angular.module("SOGo.Common").filter("encodeUri",encodeUri)}(),function(){"use strict";function ensureTarget($sce){return function(element){var tree=angular.element("
"+element+"
");return tree.find("a").attr("target","_blank"),$sce.trustAs("html",tree.html())}}ensureTarget.$inject=["$sce"],angular.module("SOGo.Common").filter("ensureTarget",ensureTarget)}(),function(){"use strict";function loc(){return l}angular.module("SOGo.Common").filter("loc",loc)}(),function(){"use strict";function range(){return function(n){for(var res=[],i=0;i-1)deferred.resolve();else{var acls;acls=angular.isDefined(owner)?Acl.$$resource.userResource(owner).fetch(this.folderId,"addUserInAcls",param):Acl.$$resource.fetch(this.folderId,"addUserInAcls",param),acls.then(function(){user.wasSubscribed=!1,user.userClass=user.isGroup?"normal-group":"normal-user",user.$rights=angular.bind(user,user.$acl,_this.folderId),_this.users.push(user),deferred.resolve(_this.users)},function(data,status){deferred.reject(l("An error occured please try again."))})}return deferred.promise},Acl.prototype.$removeUser=function(uid){var _this=this,param={uid:uid};return Acl.$$resource.fetch(this.folderId,"removeUserFromAcls",param).then(function(){var i=_.indexOf(_.pluck(_this.users,"uid"),uid);i>=0&&_this.users.splice(i,1)})},Acl.prototype.$resetUsersRights=function(){angular.forEach(this.users,function(user){user.$resetRights()})},Acl.prototype.$saveUsersRights=function(owner){var _this=this,deferredSave=Acl.$q.defer(),deferredSubscribe=Acl.$q.defer(),param={action:"saveUserRights"},users=[];if(angular.forEach(this.users,function(user){user.$rightsAreDirty()&&users.push(user.$omit())}),users.length){var acls;acls=angular.isDefined(owner)?Acl.$$resource.userResource(owner).save(this.folderId,users,param):Acl.$$resource.save(this.folderId,users,param),acls.then(function(){angular.forEach(_this.users,function(user){user.$rightsAreDirty()&&(user.$shadowRights=angular.copy(user.rights))}),deferredSave.resolve()},deferredSave.reject)}else deferredSave.resolve();return users=[],angular.forEach(this.users,function(user){!user.wasSubscribed&&user.isSubscribed&&users.push(user.uid)}),users.length?(param={uids:users.join(",")},Acl.$$resource.fetch(this.folderId,"subscribeUsers",param).then(function(){angular.forEach(_this.users,function(user){user.wasSubscribed=user.isSubscribed}),deferredSubscribe.resolve()},deferredSubscribe.reject)):deferredSubscribe.resolve(),Acl.$q.all([deferredSave.promise,deferredSubscribe.promise])}}(),function(){"use strict";function Alarm(){this.currentAlarm=null}function AlarmService($timeout,Settings,Resource,$mdToast){return angular.extend(Alarm,{$timeout:$timeout,$$resource:new Resource(Settings.activeUser("folderURL")+"Calendar",Settings.activeUser()),$toast:$mdToast}),Alarm}Alarm.getAlarms=function(){var _this=this,now=new Date,browserTime=Math.floor(now.getTime()/1e3);this.$$resource.fetch("","alarmslist?browserTime="+browserTime).then(function(data){var alarms=data.alarms.sort(function(a,b){var x=parseInt(a[2]),y=parseInt(b[2]);return y-x});if(alarms.length>0){var next=alarms.pop(),now=new Date,utc=Math.floor(now.getTime()/1e3),url=next[0]+"/"+next[1],alarmTime=parseInt(next[2]),delay=alarmTime;alarmTime>0&&(delay-=utc);var f=(new Date(1e3*alarmTime),angular.bind(_this,Alarm.showAlarm,url));_this.currentAlarm&&_this.$timeout.cancel(_this.currentAlarm),_this.currentAlarm=_this.$timeout(f,1e3*delay)}})},Alarm.showAlarm=function(url){var _this=this;this.$$resource.fetch(url,"?resetAlarm=yes").then(function(data){function AlarmController(scope,$mdToast,url){scope.reminder="10",scope.cancel=function(){$mdToast.hide()},scope.ok=function(){_this.$$resource.fetch(url,"view?snoozeAlarm="+scope.reminder),$mdToast.hide()}}_this.$toast.show({position:"top right",hideDelay:0,template:[""," ",' ",' '," ",l("5 minutes")," "," ",l("10 minutes")," "," ",l("15 minutes")," "," ",l("30 minutes")," "," ",l("45 minutes")," "," ",l("1 hour")," "," ",l("1 day")," "," "," ",' ',l("Cancel")," ",' ',l("Ok")," ",""].join(""),locals:{url:url},controller:AlarmController}),AlarmController.$inject=["scope","$mdToast","url"]})},AlarmService.$inject=["$timeout","sgSettings","Resource","$mdToast"],angular.module("SOGo.Common").factory("Alarm",AlarmService)}(),function(){"use strict";function Authentication(){function readCookie(name){var foundCookie,prefix,pairs,i,currentPair,start;for(foundCookie=null,prefix=name+"=",pairs=document.cookie.split(";"),i=0;!foundCookie&&i0&&(currentPair=currentPair.substr(start)),0===currentPair.indexOf(prefix)&&(foundCookie=currentPair.substr(prefix.length))}return foundCookie}function readLoginCookie(){var value,loginValues=null,cookie=readCookie("0xHIGHFLYxSOGo");return cookie&&cookie.length>8&&(value=decodeURIComponent(cookie.substr(8)),loginValues=value.base64decode().split(":")),loginValues}function redirectUrl(username,domain){var userName,address,baseAddress,altBaseAddress,parts,hostpart,protocol,newAddress;return userName=username,domain&&(userName+="@"+domain.value),address=""+window.location.href,baseAddress=ApplicationBaseURL+"/"+encodeURIComponent(userName),"/"==baseAddress[0]&&(parts=address.split("/"),hostpart=parts[2],protocol=parts[0],baseAddress=protocol+"//"+hostpart+baseAddress),parts=baseAddress.split("/"),parts.splice(0,3),altBaseAddress=parts.join("/"),newAddress=!address.startsWith(baseAddress)&&!address.startsWith(altBaseAddress)||address.endsWith("/logoff")?baseAddress:address}function getService($q,$http,passwordPolicyConfig){var service,_this=this;return service={login:function(data){var language,d=$q.defer(),username=data.username,password=data.password,domain=data.domain,rememberLogin=data.rememberLogin?1:0;return data.loginSuffix&&!username.endsWith(data.loginSuffix)&&(username+=loginSuffix,domain=!1),data.language&&"WONoSelectionString"!=data.language&&(language=data.language),$http({method:"POST",url:"/SOGo/connect",data:{userName:username,password:password,domain:domain,language:language,rememberLogin:rememberLogin}}).success(function(data,status){var loginCookie=readLoginCookie();loginCookie?"undefined"!=typeof data.expire&&"undefined"!=typeof data.grace?data.expire<0&&data.grace>0?d.reject({grace:data.grace}):data.expire>0&&-1==data.grace?d.reject({expire:data.expire}):d.resolve(redirectUrl(username,domain)):d.resolve(redirectUrl(username,domain)):d.reject(l("cookiesNotEnabled"))}).error(function(data,status){var msg,perr;data&&data.LDAPPasswordPolicyError?(perr=data.LDAPPasswordPolicyError,msg=perr==passwordPolicyConfig.PolicyNoError?l("Wrong username or password."):perr==passwordPolicyConfig.PolicyAccountLocked?l("Your account was locked due to too many failed attempts."):l("Login failed due to unhandled error case: ")+perr):msg=l("Unhandled error response"),d.reject({error:msg})}),d.promise},changePassword:function(newPassword){var d=$q.defer(),loginCookie=_this.readLoginCookie();return $http({method:"POST",url:"/SOGo/so/changePassword",data:{userName:loginCookie[0],password:loginCookie[1],newPassword:newPassword}}).success(function(data,status){d.resolve()}).error(function(data,status){var error,perr=data.LDAPPasswordPolicyError;perr?perr==passwordPolicyConfig.PolicyNoError?error=l("Password change failed"):perr==passwordPolicyConfig.PolicyPasswordModNotAllowed?error=l("Password change failed - Permission denied"):perr==passwordPolicyConfig.PolicyInsufficientPasswordQuality?error=l("Password change failed - Insufficient password quality"):perr==passwordPolicyConfig.PolicyPasswordTooShort?error=l("Password change failed - Password is too short"):perr==passwordPolicyConfig.PolicyPasswordTooYoung?error=l("Password change failed - Password is too young"):perr==passwordPolicyConfig.PolicyPasswordInHistory?error=l("Password change failed - Password is in history"):(error=l("Unhandled policy error: %{0}").formatted(perr),perr=passwordPolicyConfig.PolicyPasswordUnknown):(perr=passwordPolicyConfig.PolicyPasswordSystemUnknown,error=_("Unhandled error response")),d.reject(error)}),d.promise}}}this.$get=getService,getService.$inject=["$q","$http","passwordPolicyConfig"]}angular.module("SOGo.Authentication",[]).constant("passwordPolicyConfig",{PolicyPasswordChangeUnsupported:-3,PolicyPasswordSystemUnknown:-2,PolicyPasswordUnknown:-1,PolicyPasswordExpired:0,PolicyAccountLocked:1,PolicyChangeAfterReset:2,PolicyPasswordModNotAllowed:3,PolicyMustSupplyOldPassword:4,PolicyInsufficientPasswordQuality:5,PolicyPasswordTooShort:6,PolicyPasswordTooYoung:7,PolicyPasswordInHistory:8,PolicyNoError:65535}).provider("Authentication",Authentication)}(),function(){"use strict";function Dialog(){}function DialogService($q,$mdDialog){return angular.extend(Dialog,{$q:$q,$modal:$mdDialog}),Dialog}Dialog.alert=function(title,content){var alert=this.$modal.alert().title(title).content(content).ok(l("OK"));this.$modal.show(alert)},Dialog.confirm=function(title,content,options){var confirm=this.$modal.confirm().title(title).content(content).ok(options&&options.ok?options.ok:l("OK")).cancel(options&&options.cancel?options.cancel:l("Cancel"));return this.$modal.show(confirm)},Dialog.prompt=function(title,label,options){function PromptDialogController(scope,$mdDialog){scope.title=title,scope.name="",scope.cancel=function(){d.reject(),$mdDialog.hide()},scope.ok=function(){d.resolve(scope.name),$mdDialog.hide()}}var o=options||{},d=this.$q.defer();return this.$modal.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,template:['',' ','

'," "," ",' '," ","
",'
',' '," "+l("Cancel")," ",' '," "+l("OK")," ","
","
"].join(""),controller:PromptDialogController}),PromptDialogController.$inject=["scope","$mdDialog"],d.promise},DialogService.$inject=["$q","$mdDialog"],angular.module("SOGo.Common").factory("Dialog",DialogService)}(),function(){"use strict";function Gravatar(){return function(email,size){var x,y,hash,s=size;return email?(x=email.indexOf("<"),x>=0&&(y=email.indexOf(">",x),y>x&&(email=email.substring(x+1,y))),size||(s=48),hash=email.md5(),"https://www.gravatar.com/avatar/"+hash+"?s="+s+"&d=404"):""}}angular.module("SOGo.Common").factory("Gravatar",Gravatar)}(),function(){"use strict";function Resource($http,$q,path,activeUser,options){angular.extend(this,{_http:$http,_q:$q,_path:path,_activeUser:activeUser}),angular.extend(this,options),this._path=this._path.replace(/\/$/,"")}Resource.$factory=["$http","$q",function($http,$q){return function(path,activeUser,options){return new Resource($http,$q,path,activeUser,options)}}],angular.module("SOGo.Common").factory("Resource",Resource.$factory),Resource.prototype.userResource=function(uid){var path=_.compact(this._activeUser.folderURL.split("/"));return path.splice(path.length-1,1,escape(uid)),new Resource(this._http,this._q,"/"+path.join("/"),this._activeUser)},Resource.prototype.fetch=function(folderId,action,params){var deferred=this._q.defer(),path=[this._path];return folderId&&path.push(folderId.split("/")),action&&path.push(action),path=_.compact(_.flatten(path)).join("/"),this._http({method:"GET",url:path,params:params}).success(deferred.resolve).error(function(data,status){return 404==status?deferred.reject():void 0}),deferred.promise},Resource.prototype.newguid=function(folderId){var deferred=this._q.defer(),path=this._path+"/"+folderId+"/newguid";return this._http.get(path).success(deferred.resolve).error(deferred.reject),deferred.promise},Resource.prototype.create=function(action,name){var deferred=this._q.defer(),path=this._path+"/"+action;return this._http.post(path,{name:name}).success(deferred.resolve).error(deferred.reject),deferred.promise},Resource.prototype.post=function(id,action,data){var deferred=this._q.defer(),path=[this._path];return id&&path.push(id),action&&path.push(action),path=_.compact(_.flatten(path)).join("/"),this._http.post(path,data).success(deferred.resolve).error(deferred.reject),deferred.promise},Resource.prototype.save=function(id,newValue,options){var action=(this._q.defer(),options&&options.action?options.action:"save");return this.post(id,action,newValue)},Resource.prototype.remove=function(uid){var deferred=this._q.defer(),path=this._path+"/"+uid+"/delete";return this._http.get(path).success(deferred.resolve).error(deferred.reject),deferred.promise}}(),function(){"use strict";function User(userData){userData&&this.init(userData)}User.factory=["$q","$log","sgSettings","Resource","Gravatar",function($q,$log,Settings,Resource,Gravatar){return angular.extend(User,{$q:$q,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL"),Settings.activeUser()),$gravatar:Gravatar,$query:"",$users:[]}),User}],angular.module("SOGo.Common").factory("User",User.factory),User.$filter=function(search,excludedUsers,options){var param={search:search};if(!options||!options.dry){if(!search)return User.$users.splice(0,User.$users.length),User.$q.when(User.$users);if(User.$query==search)return User.$q.when(User.$users);User.$query=search}return User.$$resource.fetch(null,"usersSearch",param).then(function(response){var results,index,user,users,compareUids=function(data){return this.uid==data.uid};for(users=options&&options.dry?[]:User.$users,results=excludedUsers?_.filter(response.users,function(user){return!_.find(excludedUsers,compareUids,user)}):response.users,index=users.length-1;index>=0;index--)user=users[index],_.find(results,compareUids,user)||users.splice(index,1);return _.each(results,function(data,index){if(_.isUndefined(_.find(users,compareUids,data))){var user=new User(data);users.splice(index,0,user)}}),User.$log.debug(users),users})},User.prototype.init=function(data){angular.extend(this,data),this.$$shortFormat||(this.$$shortFormat=this.$shortFormat()),this.$$image||(this.$$image=this.image||User.$gravatar(this.c_email)),this.empty=" "},User.prototype.$shortFormat=function(options){var fullname=this.cn||this.c_email,email=this.c_email,no_email=options&&options.email===!1;return!no_email&&email&&fullname!=email&&(fullname+=" <"+email+">"),fullname},User.prototype.$acl=function(folderId,owner){var _this=this,deferred=User.$q.defer(),param={uid:this.uid};if(this.$shadowRights)deferred.resolve(this.rights);else{var rights;rights=angular.isDefined(owner)?User.$$resource.userResource(owner).fetch(folderId,"userRights",param):User.$$resource.fetch(folderId,"userRights",param),rights.then(function(data){return _this.rights=data,_this.$shadowRights=angular.copy(data),deferred.resolve(data),data})}return deferred.promise},User.prototype.$isAnonymous=function(){return"anonymous"==this.uid},User.prototype.$isSpecial=function(){return this.userClass&&"public-user"==this.userClass},User.prototype.$confirmRights=function(){var confirmation=!1;return this.$confirmation?!1:(_.some(_.values(this.rights))&&("anonymous"==this.uid?confirmation=l("Potentially anyone on the Internet will be able to access your folder, even if they do not have an account on this system. Is this information suitable for the public Internet?"):""==this.uid&&(confirmation=l("Any user with an account on this system will be able to access your folder. Are you certain you trust them all?"))),this.$confirmation=confirmation,confirmation)},User.prototype.$rightsAreDirty=function(){return this.rights&&!_.isEqual(this.rights,this.$shadowRights)},User.prototype.$resetRights=function(zero){var _this=this;zero?_.map(_.keys(this.rights),function(key){angular.isString(_this.rights[key])?_this.rights[key]="None":_this.rights[key]=0}):this.rights=angular.copy(this.$shadowRights)},User.prototype.$folders=function(type){var _this=this,deferred=User.$q.defer(),param={type:type};return this.$$folders?deferred.resolve(this.$$folders):User.$$resource.userResource(this.uid).fetch(null,"foldersSearch",param).then(function(response){_this.$$folders=response.folders,deferred.resolve(response.folders)}),deferred.promise},User.prototype.$omit=function(){var user={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(user[key]=value)}),user},User.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";function sgFocus($rootScope,$timeout){return function(name){$timeout(function(){$rootScope.$broadcast("sgFocusOn",name)})}}sgFocus.$inject=["$rootScope","$timeout"],angular.module("SOGo.Common").factory("sgFocus",sgFocus)}(),function(){"use strict";function sgAvatarImage(){return{restrict:"AE",scope:{size:"@",email:"=sgEmail",src:"=sgSrc"},template:'',link:link,bindToController:!0,controller:"sgAvatarImageController",controllerAs:"vm"}}function link(scope,element,attrs,controller){var el=element[0],imgElement=(el.className,element.find("img")),img=imgElement[0];attrs.size&&(imgElement.attr("width",attrs.size),imgElement.attr("height",attrs.size)),imgElement.bind("error",function(){controller.insertGenericAvatar(img)})}function sgAvatarImageController($scope,$element,Gravatar){var vm=this;$scope.$watch("vm.email",function(email){var img=$element.find("img")[0];email||vm.genericAvatar?email&&!vm.url&&(vm.genericAvatar&&(vm.genericAvatar.parentNode.removeChild(vm.genericAvatar),delete vm.genericAvatar,img.classList.remove("ng-hide")),vm.url=Gravatar(email,vm.size)):vm.insertGenericAvatar(img)}),"sg-src"in $element[0].attributes&&$scope.$watch("vm.src",function(src){src&&(vm.url=src)}),vm.insertGenericAvatar=function(img){var avatar;vm.genericAvatar||(avatar=document.createElement("md-icon"),avatar.className="material-icons icon-person",img.classList.add("ng-hide"),vm.genericAvatar=img.parentNode.insertBefore(avatar,img))}}sgAvatarImageController.$inject=["$scope","$element","Gravatar"],angular.module("SOGo.Common").directive("sgAvatarImage",sgAvatarImage).controller("sgAvatarImageController",sgAvatarImageController)}(),function(){"use strict";function sgColorPicker($parse){function link(scope,iElement,iAttr,controller){controller.doSelect=$parse(iElement.attr("sg-on-select"))}return{restrict:"E",template:["",' '," color_lens"," ",' ',' ',' '," "," ",""].join(""),replace:!0,bindToController:!0,controller:sgColorPickerController,controllerAs:"$sgColorPickerController",link:link}}function sgColorPickerController($scope,sgColors){var vm=this;vm.colors=sgColors.selection,vm.select=function(color){ +vm.doSelect($scope,{color:color})}}sgColorPicker.$inject=["$parse"],sgColorPickerController.$inject=["$scope","sgColors"],angular.module("SOGo.Common").directive("sgColorPicker",sgColorPicker)}(),function(){"use strict";function sgCompile($compile){function sgCompileLink(scope,element,attrs){var ensureCompileRunsOnce=scope.$watch(function(scope){return scope.$eval(attrs.sgCompile)},function(value){element.html(value),$compile(element.contents())(scope),ensureCompileRunsOnce()})}return{restrict:"A",link:sgCompileLink}}sgCompile.$inject=["$compile"],angular.module("SOGo.Common").directive("sgCompile",sgCompile)}(),function(){"use strict";function sgEnter(){var ENTER_KEY=13;return function(scope,element,attrs){element.bind("keydown keypress",function(event){event.which===ENTER_KEY&&(scope.$apply(attrs.sgEnter),event.preventDefault())})}}angular.module("SOGo.Common").directive("sgEnter",sgEnter)}(),function(){"use strict";function sgEscape(){var ESCAPE_KEY=27;return function(scope,elem,attrs){elem.bind("keydown",function(event){event.keyCode===ESCAPE_KEY&&scope.$apply(attrs.sgEscape)})}}angular.module("SOGo.Common").directive("sgEscape",sgEscape)}(),function(){"use strict";function sgFocusOn(){return function(scope,elem,attr){scope.$on("sgFocusOn",function(e,name){name===attr.sgFocusOn&&(elem[0].focus(),elem[0].select())})}}angular.module("SOGo.Common").directive("sgFocusOn",sgFocusOn)}(),function(){"use strict";function sgFolderStylesheet(){return{restrict:"A",require:"ngModel",scope:{ngModel:"="},template:['"].join("")}}angular.module("SOGo.Common").directive("sgFolderStylesheet",sgFolderStylesheet)}(),function(){"use strict";function sgPlaceholder(){return{restrict:"A",scope:{placeholder:"=sgPlaceholder"},link:function(scope,elem,attr){scope.$watch("placeholder",function(){elem[0].placeholder=scope.placeholder})}}}angular.module("SOGo.Common").directive("sgPlaceholder",sgPlaceholder)}(),function(){"use strict";function sgSearchPreTransclude($parse){function compile(tElement,tAttr){var inputEl=(tElement.find("md-input-container"),tElement.find("input")),selectEl=tElement.find("md-select"),buttonEl=tElement.find("md-button");return inputEl.attr("ng-model","$sgSearchController.searchText"),inputEl.attr("ng-model-options","$sgSearchController.searchTextOptions"),inputEl.attr("ng-change","$sgSearchController.onChange()"),selectEl&&(selectEl.attr("ng-model","$sgSearchController.searchField"),selectEl.attr("ng-change","$sgSearchController.onChange()")),buttonEl&&buttonEl.attr("sg-search-cancel")?(buttonEl.attr("ng-click",buttonEl.attr("sg-search-cancel")),buttonEl.removeAttr("sg-search-cancel")):buttonEl=null,function(scope,iElement,iAttr,controller){var compiledButtonEl=iElement.find("button");controller.doSearch=$parse(iElement.attr("sg-search")),buttonEl&&compiledButtonEl&&compiledButtonEl.on("click",controller.cancelSearch)}}return{restrict:"A",controller:"sgSearchController",controllerAs:"$sgSearchController",priority:1001,compile:compile}}function sgSearch(){function compile(tElement,tAttr){return function(scope,iElement,iAttr,controller,transclude){transclude(function(clone){iElement.append(clone)})}}return{restrict:"A",priority:1e3,transclude:!0,compile:compile}}function sgSearchController($scope,$element){var vm=this;vm.previous={searchText:"",searchField:""},vm.searchText=null,vm.searchTextOptions={updateOn:"default blur",debounce:{"default":300,blur:0}},vm.onChange=function(){"undefined"!=typeof vm.searchText&&null!==vm.searchText&&(vm.searchText!=vm.previous.searchText||vm.searchField!=vm.previous.searchField)&&((vm.searchText.length>2||0===vm.searchText.length)&&vm.doSearch($scope,{searchText:vm.searchText,searchField:vm.searchField}),vm.previous={searchText:vm.searchText,searchField:vm.searchField})},vm.cancelSearch=function(){vm.searchText=""}}sgSearchPreTransclude.$inject=["$parse"],sgSearchController.$inject=["$scope","$element"],angular.module("SOGo.Common").controller("sgSearchController",sgSearchController).directive("sgSearch",sgSearchPreTransclude).directive("sgSearch",sgSearch)}(),function(){"use strict";function sgSubscribe(User){return{restrict:"A",scope:{folderType:"@sgSubscribe",onFolderSelect:"&sgSubscribeOnSelect"},replace:!1,bindToController:!0,controller:sgSubscribeDialogController,controllerAs:"$sgSubscribeDialogController",link:link}}function link(scope,element,attrs,controller){element.find("input");element.on("click",controller.showDialog)}function sgSubscribeDialogController($mdDialog){var vm=this;vm.showDialog=function(){$mdDialog.show({templateUrl:"../Contacts/UIxContactsUserFolders",clickOutsideToClose:!0,locals:{folderType:vm.folderType,onFolderSelect:vm.onFolderSelect},controller:sgSubscribeController,controllerAs:"subscribe"})}}function sgSubscribeController($mdDialog,folderType,onFolderSelect,User){var vm=this;vm.selectedUser=null,vm.users=User.$users,vm.searchTextOptions={updateOn:"default blur",debounce:{"default":300,blur:0}},vm.onChange=function(){User.$filter(vm.searchText).then(function(){vm.selectedUser&&_.isUndefined(_.find(User.$users,function(user){return user.uid==vm.selectedUser.uid}))&&(vm.selectedUser=null)})},vm.selectUser=function(i){vm.selectedUser==vm.users[i]?vm.selectedUser=null:vm.users[i].$folders(folderType).then(function(){vm.selectedUser=vm.users[i]})},vm.selectFolder=function(folder){onFolderSelect({folderData:folder})},vm.close=function(){$mdDialog.hide()}}sgSubscribe.$inject=["User"],sgSubscribeDialogController.$inject=["$mdDialog"],sgSubscribeController.$inject=["$mdDialog","folderType","onFolderSelect","User"],angular.module("SOGo.Common").directive("sgSubscribe",sgSubscribe)}(),function(){"use strict";function timePaneDirective(){return{template:['
','
','
','
',' {{hour.displayName}}',"
","
","
",'
','
','
',' {{minute.displayName}}',"
","
","
",'
','
','
',' {{minute.displayName}}',"
","
","
",'
',' ',"
","
"].join(""),scope:{},require:["ngModel","sgTimePane"],controller:TimePaneCtrl,controllerAs:"ctrl",bindToController:!0,link:function(scope,element,attrs,controllers){var ngModelCtrl=controllers[0],sgTimePaneCtrl=controllers[1],timePaneElement=element;sgTimePaneCtrl.configureNgModel(ngModelCtrl,sgTimePaneCtrl,timePaneElement)}}}function TimePaneCtrl($element,$attrs,$scope,$animate,$q,$mdConstant,$mdTheming,$$mdDateUtil,$mdDateLocale,$mdInkRipple,$mdUtil){var m;this.$scope=$scope,this.$element=$element,this.timePaneElement=$element[0].querySelector(".sg-time-pane"),this.$animate=$animate,this.$q=$q,this.$mdInkRipple=$mdInkRipple,this.$mdUtil=$mdUtil,this.keyCode=$mdConstant.KEY_CODE,this.dateUtil=$$mdDateUtil,this.id=nextTimePaneUniqueId++,this.ngModelCtrl=null,this.selectedTime=null,this.displayTime=null,this.isInitialized=!1,$scope.hours=[],$scope.hours[0]=[],$scope.hours[0][0]=[],$scope.hours[0][1]=[],$scope.hours[1]=[],$scope.hours[1][0]=[],$scope.hours[1][1]=[];for(var i=0;6>i;i++)$scope.hours[0][0][i]={id:"tp-"+this.id+"-hour-"+i,displayName:10>i?"0"+i:""+i,selected:!1},$scope.hours[0][1][i]={id:"tp-"+this.id+"-hour-"+(i+6),displayName:10>i+6?"0"+(i+6):""+(i+6),selected:!1},$scope.hours[1][0][i]={id:"tp-"+this.id+"-hour-"+(i+12),displayName:""+(i+12),selected:!1},$scope.hours[1][1][i]={id:"tp-"+this.id+"-hour-"+(i+18),displayName:""+(i+18),selected:!1};for($scope.min5=[],$scope.min5[0]=[],$scope.min5[1]=[],i=0;6>i;i++)m=5*i,$scope.min5[0][i]={id:"tp-"+this.id+"-minute5-"+m,displayName:10>m?":0"+m:":"+m,selected:!0},$scope.min5[1][i]={id:"tp-"+this.id+"-minute5-"+(m+30),displayName:":"+(m+30),selected:!1};for($scope.min1=[],i=0;12>i;i++){$scope.min1[i]=[];for(var ii=0;5>ii;ii++)m=5*i+ii,$scope.min1[i][ii]={id:"tp-"+this.id+"-minute-"+m,displayName:10>m?":0"+m:":"+m,selected:!0}}$scope.show5min=!0,$scope.getToggleBtnLbl=function(){return $scope.is5min()?">>":"<<"},$scope.toggleManual5min=function(){$scope.manual5min=!$scope.is5min()},$scope.is5min=function(){return $scope.manual5min===!0||$scope.manual5min===!1?$scope.manual5min:$scope.show5min},$attrs.tabindex||$element.attr("tabindex","-1");var self=this;this.hourClickHandler=function(displayVal){var updated=new Date(self.displayTime);updated.setHours(Number(displayVal)),self.setNgModelValue(updated,"hours")},$scope.hourClickHandler=this.hourClickHandler,this.minuteClickHandler=function(displayVal){var val=displayVal.substr(1),updated=new Date(self.displayTime);updated.setMinutes(Number(val)),self.setNgModelValue(updated,"minutes")},$scope.minuteClickHandler=this.minuteClickHandler,this.attachTimePaneEventListeners()}angular.module("SOGo.Common").directive("sgTimePane",timePaneDirective);var SELECTED_TIME_CLASS="md-bg",FOCUSED_TIME_CLASS="md-focus",nextTimePaneUniqueId=0;TimePaneCtrl.$inject=["$element","$attrs","$scope","$animate","$q","$mdConstant","$mdTheming","$$mdDateUtil","$mdDateLocale","$mdInkRipple","$mdUtil"],TimePaneCtrl.prototype.configureNgModel=function(ngModelCtrl,sgTimePaneCtrl,timePaneElement){this.ngModelCtrl=ngModelCtrl;var self=this;ngModelCtrl.$render=function(){self.changeSelectedTime(self.ngModelCtrl.$viewValue,sgTimePaneCtrl,timePaneElement)}},TimePaneCtrl.prototype.changeSelectedTime=function(date,sgTimePaneCtrl,timePaneElement){var previousSelectedTime=this.selectedTime;this.selectedTime=date,this.changeDisplayTime(date).then(function(){if(previousSelectedTime){var prevH=previousSelectedTime.getHours(),prevHCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+prevH);prevHCell&&(prevHCell.classList.remove(SELECTED_TIME_CLASS),prevHCell.setAttribute("aria-selected","false"));var prevM=previousSelectedTime.getMinutes(),prevMCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute-"+prevM);prevMCell&&(prevMCell.classList.remove(SELECTED_TIME_CLASS),prevMCell.setAttribute("aria-selected","false"));var prevM5Cell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute5-"+prevM);prevM5Cell&&(prevM5Cell.classList.remove(SELECTED_TIME_CLASS),prevM5Cell.setAttribute("aria-selected","false"))}if(date){var mCell,newH=date.getHours(),hCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+newH);hCell&&(hCell.classList.add(SELECTED_TIME_CLASS),hCell.setAttribute("aria-selected","true"));var newM=date.getMinutes();newM%5===0?(sgTimePaneCtrl.$scope.show5min=!0,mCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute5-"+newM),mCell&&(mCell.classList.add(SELECTED_TIME_CLASS),mCell.setAttribute("aria-selected","true"))):sgTimePaneCtrl.$scope.show5min=!1,mCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-minute-"+newM),mCell&&(mCell.classList.add(SELECTED_TIME_CLASS),mCell.setAttribute("aria-selected","true"))}})},TimePaneCtrl.prototype.changeDisplayTime=function(date){var d=new Date(date);return this.isInitialized?this.dateUtil.isValidDate(d)?(this.displayTime=d,this.$q.when()):this.$q.when():(this.buildInitialTimePaneDisplay(),this.$q.when())},TimePaneCtrl.prototype.buildInitialTimePaneDisplay=function(){this.displayTime=this.selectedTime||this.today,this.isInitialized=!0},TimePaneCtrl.prototype.attachTimePaneEventListeners=function(){this.$element.on("keydown",angular.bind(this,this.handleKeyEvent))},TimePaneCtrl.prototype.handleKeyEvent=function(event){var self=this;this.$scope.$apply(function(){return event.which==self.keyCode.ESCAPE||event.which==self.keyCode.TAB?(self.$scope.$emit("md-time-pane-close"),void(event.which==self.keyCode.TAB&&event.preventDefault())):event.which===self.keyCode.ENTER?(self.setNgModelValue(self.displayTime,"enter"),void event.preventDefault()):void 0})},TimePaneCtrl.prototype.setNgModelValue=function(date,mode){this.$scope.$emit("sg-time-pane-change",{date:date,changed:mode}),this.ngModelCtrl.$setViewValue(date),this.ngModelCtrl.$render()},TimePaneCtrl.prototype.focus=function(opt_date,sgTimePaneCtrl){var date=opt_date||this.selectedTime||this.today,previousFocus=this.timePaneElement.querySelector(".md-focus");if(previousFocus&&previousFocus.classList.remove(FOCUSED_TIME_CLASS),date){var newH=date.getHours(),hCell=document.getElementById("tp-"+sgTimePaneCtrl.id+"-hour-"+newH);hCell&&(hCell.classList.add(FOCUSED_TIME_CLASS),hCell.focus())}}}(),function(){"use strict";function timePickerDirective(){return{template:['",'
",' ',' ','
',"
","
",'
','
','
',"
",'
',' ',"
","
"].join(""),require:["ngModel","sgTimepicker"],scope:{placeholder:"@mdPlaceholder"},controller:TimePickerCtrl,controllerAs:"ctrl",bindToController:!0,link:function(scope,element,attr,controllers){var ngModelCtrl=controllers[0],mdTimePickerCtrl=controllers[1];mdTimePickerCtrl.configureNgModel(ngModelCtrl)}}}function TimePickerCtrl($scope,$element,$attrs,$compile,$timeout,$mdConstant,$mdMedia,$mdTheming,$mdUtil,$mdDateLocale,$$mdDateUtil,$$rAF){this.$compile=$compile,this.$timeout=$timeout,this.dateLocale=$mdDateLocale,this.dateUtil=$$mdDateUtil,this.$mdConstant=$mdConstant,this.$mdMedia=$mdMedia,this.$mdUtil=$mdUtil,this.$$rAF=$$rAF,this.ngModelCtrl=null,this.inputElement=$element[0].querySelector("input"),this.inputContainer=$element[0].querySelector(".sg-timepicker-input-container"),this.ngInputElement=angular.element(this.inputElement),this.timePane=$element[0].querySelector(".sg-timepicker-time-pane"),this.timeButton=$element[0].querySelector(".sg-timepicker-button"),this.inputMask=$element[0].querySelector(".sg-timepicker-input-mask-opaque"),this.$element=$element,this.$attrs=$attrs,this.$scope=$scope,this.date=null,this.isFocused=!1,this.isDisabled=!1,this.setDisabled($element[0].disabled||angular.isString($attrs.disabled)),this.isTimeOpen=!1,this.timePaneOpenedFrom=null,this.timePane.id="sg-time-pane"+$mdUtil.nextUid(),$mdTheming($element),this.bodyClickHandler=angular.bind(this,this.handleBodyClick),this.windowResizeHandler=$mdUtil.debounce(angular.bind(this,this.closeTimePane),100),$attrs.tabindex||$element.attr("tabindex","-1"),this.installPropertyInterceptors(),this.attachChangeListeners(),this.attachInteractionListeners();var self=this;$scope.$on("$destroy",function(){self.detachTimePane()})}angular.module("SOGo.Common").directive("sgTimepicker",timePickerDirective);var EXTRA_INPUT_SIZE=3,INVALID_CLASS="sg-timepicker-invalid",DEFAULT_DEBOUNCE_INTERVAL=500,TIME_PANE_HEIGHT={MIN5:{GTSM:192,SM:312},MIN1:{GTSM:384,SM:474}},TIME_PANE_WIDTH={GTSM:530,SM:292};TimePickerCtrl.$inject=["$scope","$element","$attrs","$compile","$timeout","$mdConstant","$mdMedia","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF"],TimePickerCtrl.prototype.configureNgModel=function(ngModelCtrl){this.ngModelCtrl=ngModelCtrl;var self=this;ngModelCtrl.$render=function(){self.time=self.ngModelCtrl.$viewValue,self.inputElement.value=self.formatTime(self.time),self.resizeInputElement()}},TimePickerCtrl.prototype.formatTime=function(time){var t=new Date(time);if(t){var h=t.getHours(),m=t.getMinutes();return(10>h?"0"+h:h)+":"+(10>m?"0"+m:m)}return""},TimePickerCtrl.prototype.attachChangeListeners=function(){var self=this;self.$scope.$on("sg-time-pane-change",function(event,data){var time=new Date(data.date);self.ngModelCtrl.$setViewValue(time),self.time=time,self.inputElement.value=self.formatTime(self.time),"minutes"==data.changed&&self.closeTimePane(),self.resizeInputElement(),self.inputContainer.classList.remove(INVALID_CLASS)}),self.ngInputElement.on("input",angular.bind(self,self.resizeInputElement)),self.ngInputElement.on("input",self.$mdUtil.debounce(self.handleInputEvent,DEFAULT_DEBOUNCE_INTERVAL,self))},TimePickerCtrl.prototype.attachInteractionListeners=function(){var self=this,$scope=this.$scope,keyCodes=this.$mdConstant.KEY_CODE;self.ngInputElement.on("keydown",function(event){event.altKey&&event.keyCode==keyCodes.DOWN_ARROW&&(self.openTimePane(event),$scope.$digest())}),$scope.$on("md-time-close",function(){self.closeTimePane()})},TimePickerCtrl.prototype.installPropertyInterceptors=function(){var self=this;if(this.$attrs.ngDisabled){var scope=this.$mdUtil.validateScope(this.$element)?this.$element.scope():null;scope&&scope.$watch(this.$attrs.ngDisabled,function(isDisabled){self.setDisabled(isDisabled)})}Object.defineProperty(this,"placeholder",{get:function(){return self.inputElement.placeholder},set:function(value){self.inputElement.placeholder=value||""}})},TimePickerCtrl.prototype.setDisabled=function(isDisabled){this.isDisabled=isDisabled,this.inputElement.disabled=isDisabled,this.timeButton.disabled=isDisabled},TimePickerCtrl.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+EXTRA_INPUT_SIZE},TimePickerCtrl.prototype.handleInputEvent=function(self){var inputString=this.inputElement.value,arr=inputString.split(":");if(""===inputString)this.ngModelCtrl.$setViewValue(null),this.time=null,this.inputContainer.classList.remove(INVALID_CLASS);else if(arr.length<2)this.inputContainer.classList.toggle(INVALID_CLASS,inputString);else{var h=Number(arr[0]),m=Number(arr[1]),newVal=new Date(this.time);h&&h>=0&&23>=h&&m&&m>=0&&59>=m&&angular.isDate(newVal)?(newVal.setHours(h),newVal.setMinutes(m),this.ngModelCtrl.$setViewValue(newVal),this.time=newVal,this.inputContainer.classList.remove(INVALID_CLASS)):this.inputContainer.classList.toggle(INVALID_CLASS,inputString)}},TimePickerCtrl.prototype.attachTimePane=function(){var timePane=this.timePane;this.$element.addClass("sg-timepicker-open"),this.$element.find("button").addClass("md-primary");var elementRect=this.inputContainer.getBoundingClientRect(),bodyRect=document.body.getBoundingClientRect(),paneTop=elementRect.top-bodyRect.top,paneLeft=elementRect.left-bodyRect.left,paneWidth=this.$mdMedia("sm")?TIME_PANE_WIDTH.SM:TIME_PANE_WIDTH.GTSM;paneLeft+paneWidth>bodyRect.right&&bodyRect.right-paneWidth>0&&(paneLeft=bodyRect.right-paneWidth,timePane.classList.add("sg-timepicker-pos-adjusted")),timePane.style.left=paneLeft+"px";var min="object"==typeof this.time&&this.time.getMinutes()%5===0?"MIN5":"MIN1",paneHeight=this.$mdMedia("sm")?TIME_PANE_HEIGHT[min].SM:TIME_PANE_HEIGHT[min].GTSM;paneTop+paneHeight>bodyRect.bottom&&bodyRect.bottom-paneHeight>0&&(paneTop=bodyRect.bottom-paneHeight,timePane.classList.add("sg-timepicker-pos-adjusted")),timePane.style.top=paneTop+"px",document.body.appendChild(this.timePane),this.inputMask.style.left=elementRect.width+"px",this.$$rAF(function(){timePane.classList.add("md-pane-open")})},TimePickerCtrl.prototype.detachTimePane=function(){this.$element.removeClass("sg-timepicker-open"),this.$element.find("button").removeClass("md-primary"),this.timePane.classList.remove("md-pane-open"),this.timePane.classList.remove("md-timepicker-pos-adjusted"),this.timePane.parentNode&&this.timePane.parentNode.removeChild(this.timePane)},TimePickerCtrl.prototype.openTimePane=function(event){if(!this.isTimeOpen&&!this.isDisabled){this.isTimeOpen=!0,this.timePaneOpenedFrom=event.target,this.attachTimePane(),this.$mdUtil.disableScrollAround(this.timePane);var self=this;this.$mdUtil.nextTick(function(){document.body.addEventListener("click",self.bodyClickHandler)},!1),window.addEventListener("resize",this.windowResizeHandler)}},TimePickerCtrl.prototype.closeTimePane=function(){this.isTimeOpen=!1,this.detachTimePane(),this.timePaneOpenedFrom.focus(),this.timePaneOpenedFrom=null,this.$mdUtil.enableScrolling(),document.body.removeEventListener("click",this.bodyClickHandler),window.removeEventListener("resize",this.windowResizeHandler)},TimePickerCtrl.prototype.getTimePaneCtrl=function(){return angular.element(this.timePane.querySelector("sg-time-pane")).controller("sgTimePane")},TimePickerCtrl.prototype.focusTime=function(){var self=this;this.$mdUtil.nextTick(function(){var ctrl=self.getTimePaneCtrl();self.getTimePaneCtrl().focus(null,ctrl)},!1)},TimePickerCtrl.prototype.setFocused=function(isFocused){this.isFocused=isFocused},TimePickerCtrl.prototype.handleBodyClick=function(event){if(this.isTimeOpen){var isInTime=this.$mdUtil.getClosest(event.target,"sg-time-pane");isInTime||this.closeTimePane(),this.$scope.$digest()}}}(),function(){"use strict";function sgToggleGrid($parse){function link(scope,iElement,attrs,ctrl){function toggle(day){var i=_.findIndex(modelDays,function(o){return modelAttr?o[modelAttr]==day:o==day});if(0>i)if(modelAttr){var o={};o[modelAttr]=day,modelDays.push(o)}else modelDays.push(day);else modelDays.splice(i,1)}var tile,i,modelDays,modelAttr,ensureInitRunsOnce,toggleClass,tiles=iElement.find("md-grid-tile");for(ensureInitRunsOnce=scope.$watch(function(){return $parse(attrs.sgToggleGrid)(scope)},function(days){if(angular.isDefined(days)){var flattenedDays=days;modelDays=days,attrs.sgToggleGridAttr&&(modelAttr=attrs.sgToggleGridAttr,flattenedDays=_.pluck(days,attrs.sgToggleGridAttr)),_.each(tiles,function(o){var tile=angular.element(o);_.contains(flattenedDays,tile.attr("value"))&&tile.addClass("sg-active")}),ensureInitRunsOnce()}}),toggleClass=function(){var tile=angular.element(this),day=tile.attr("value");tile.toggleClass("sg-active"),toggle(day)},i=0;i>2,enc2=(3&chr1)<<4|chr2>>4,enc3=(15&chr2)<<2|chr3>>6,enc4=63&chr3,isNaN(chr2)?enc3=enc4=64:isNaN(chr3)&&(enc4=64),output=output+this._base64_keyStr.charAt(enc1)+this._base64_keyStr.charAt(enc2)+this._base64_keyStr.charAt(enc3)+this._base64_keyStr.charAt(enc4);return output},String.prototype.base64decode=function(){for(var chr1,chr2,chr3,enc1,enc2,enc3,enc4,output="",i=0,input=""+this;i>4,chr2=(15&enc2)<<4|enc3>>2,chr3=(3&enc3)<<6|enc4,output+=String.fromCharCode(chr1),64!=enc3&&(output+=String.fromCharCode(chr2)),64!=enc4&&(output+=String.fromCharCode(chr3));return output},String.prototype.md5=function(){if(this.length){var md5=function(s){function L(k,d){return k<>>32-d}function K(G,k){var I,d,F,H,x;return F=2147483648&G,H=2147483648&k,I=1073741824&G,d=1073741824&k,x=(1073741823&G)+(1073741823&k),I&d?2147483648^x^F^H:I|d?1073741824&x?3221225472^x^F^H:1073741824^x^F^H:x^F^H}function r(d,F,k){return d&F|~d&k}function q(d,F,k){return d&k|F&~k}function p(d,F,k){return d^F^k}function n(d,F,k){return F^(d|~k)}function u(G,F,aa,Z,k,H,I){return G=K(G,K(K(r(F,aa,Z),k),I)),K(L(G,H),F)}function f(G,F,aa,Z,k,H,I){return G=K(G,K(K(q(F,aa,Z),k),I)),K(L(G,H),F)}function D(G,F,aa,Z,k,H,I){return G=K(G,K(K(p(F,aa,Z),k),I)),K(L(G,H),F)}function t(G,F,aa,Z,k,H,I){return G=K(G,K(K(n(F,aa,Z),k),I)),K(L(G,H),F)}function e(G){for(var Z,F=G.length,x=F+8,k=(x-x%64)/64,I=16*(k+1),aa=Array(I-1),d=0,H=0;F>H;)Z=(H-H%4)/4,d=H%4*8,aa[Z]=aa[Z]|G.charCodeAt(H)<>>29,aa}function B(x){var G,d,k="",F="";for(d=0;3>=d;d++)G=x>>>8*d&255,F="0"+G.toString(16),k+=F.substr(F.length-2,2);return k}function J(k){k=k.replace(/rn/g,"n");for(var d="",F=0;Fx?d+=String.fromCharCode(x):x>127&&2048>x?(d+=String.fromCharCode(x>>6|192),d+=String.fromCharCode(63&x|128)):(d+=String.fromCharCode(x>>12|224),d+=String.fromCharCode(x>>6&63|128),d+=String.fromCharCode(63&x|128))}return d}var P,h,E,v,g,Y,X,W,V,C=Array(),S=7,Q=12,N=17,M=22,A=5,z=9,y=14,w=20,o=4,m=11,l=16,j=23,U=6,T=10,R=15,O=21;for(s=J(s),C=e(s),Y=1732584193,X=4023233417,W=2562383102,V=271733878,P=0;P12&&(p="pm",i=hours%12),10>minutes&&(m="0"+minutes),newString=newString.replace("%H",10>hours?"0"+hours:hours),newString=newString.replace("%I",10>i?"0"+i:i),newString=newString.replace("%M",m),newString=newString.replace("%p",p)},Date.prototype.daysUpTo=function(otherDate){var days=[],day1=this.getTime(),day2=otherDate.getTime();if(day1>day2){var tmp=day1;day1=day2,day2=tmp}for(var nbrDays=Math.round((day2-day1)/864e5)+1,i=0;nbrDays>i;i++){var newDate=new Date;newDate.setTime(day1+864e5*i),days.push(newDate)}return days},String.prototype.isValidEmail=function(){var emailRE=/^([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*[\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)$/i;return emailRE.test(this)},String.prototype.asCSSIdentifier=function(){for(var characters=["_","\\.","#","@","\\*",":",","," ","'","&","\\+"],escapeds=["_U_","_D_","_H_","_A_","_S_","_C_","_CO_","_SP_","_SQ_","_AM_","_P_"],newString=this,i=0;iyear&&(year=""+(year+1900)),1==month.length&&(month="0"+month),1==day.length&&(day="0"+day),"-"==separator?str=year+"-"+month+"-"+day:str=day+"/"+month+"/"+year,str},Date.prototype.addDays=function(nbrDays){var milliSeconds=this.getTime();milliSeconds+=864e5*nbrDays,this.setTime(milliSeconds); +},Date.prototype.addHours=function(nbrHours){var milliSeconds=this.getTime();milliSeconds+=36e5*nbrHours,this.setTime(milliSeconds)},Date.prototype.addMinutes=function(nbrMinutes){var milliSeconds=this.getTime();milliSeconds+=6e4*nbrMinutes,this.setTime(milliSeconds)},Date.prototype.beginOfDay=function(){var beginOfDay=new Date(this.getTime());return beginOfDay.setHours(0),beginOfDay.setMinutes(0),beginOfDay.setSeconds(0),beginOfDay.setMilliseconds(0),beginOfDay},Date.prototype.beginOfWeek=function(){var offset=firstDayOfWeek-this.getDay();offset>0&&(offset-=7);var beginOfWeek=this.beginOfDay();return beginOfWeek.setHours(12),beginOfWeek.addDays(offset),beginOfWeek},Date.prototype.endOfWeek=function(){var endOfWeek=this.beginOfWeek();return endOfWeek.addDays(6),endOfWeek.setHours(23),endOfWeek.setMinutes(59),endOfWeek.setSeconds(59),endOfWeek.setMilliseconds(999),endOfWeek},Date.prototype.getDayString=function(){var newString=this.getYear();1e3>newString&&(newString+=1900);var month=""+(this.getMonth()+1);1==month.length&&(month="0"+month),newString+=month;var day=""+this.getDate();return 1==day.length&&(day="0"+day),newString+=day},Date.prototype.getHourString=function(){var newString=this.getHours()+"00";return 3==newString.length&&(newString="0"+newString),newString}; //# sourceMappingURL=Common.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Common.js.map b/UI/WebServerResources/js/Common.js.map index f43d5f08c..2ca728efb 100644 --- a/UI/WebServerResources/js/Common.js.map +++ b/UI/WebServerResources/js/Common.js.map @@ -1 +1 @@ -{"version":3,"file":"Common.js","sources":["Common/utils.js","Common/Common.app.js","Common/mdColors.app.js","Common/decodeUri.filter.js","Common/encodeUri.filter.js","Common/ensureTarget.filter.js","Common/loc.filter.js","Common/range.filter.js","Common/AclController.js","Common/navController.js","Common/Acl.service.js","Common/Alarm.service.js","Common/Authentication.service.js","Common/Dialog.service.js","Common/Gravatar.service.js","Common/Resource.service.js","Common/User.service.js","Common/sgFocus.service.js","Common/sgAvatarImage.directive.js","Common/sgColorPicker.directive.js","Common/sgCompile.directive.js","Common/sgEnter.directive.js","Common/sgEscape.directive.js","Common/sgFocus.directive.js","Common/sgFolderStylesheet.directive.js","Common/sgPlaceholder.directive.js","Common/sgSearch.directive.js","Common/sgSubscribe.directive.js","Common/sgTimepicker.directive.js","Common/sgToggleGrid.directive.js","Common/sgVariableScrollShrink.directive.js"],"names":["l","key","arguments","value","labels","clabels","i","j","length","replace","configure","$logProvider","$compileProvider","$mdThemingProvider","definePalette","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","contrastDefaultColor","contrastDarkColors","contrastLightColors","1000","theme","primaryPalette","default","hue-1","hue-2","hue-3","accentPalette","backgroundPalette","DebugEnabled","debugEnabled","debugInfoEnabled","angular","module","isPopup","document","body","classList","contains","baseURL","ApplicationBaseURL","activeUser","param","settings","login","UserLogin","identification","UserIdentification","email","UserEmail","language","UserLanguage","folderURL","UserFolderURL","isSuperUser","IsSuperUser","path","calendar","UserCalendarPath","contacts","UserContactsPath","mail","UserMailPath","preferences","UserPreferencesPath","administration","UserAdministrationPath","logoff","UserLogoffPath","constant","selection","sm","gt-sm","md","gt-md","lg","gt-lg","config","$inject","_$mdThemingProvider","runBlock","$interpolate","$document","$log","buildCssSelectors","selectors","result","join","addRule","fgInterpolate","bgInterpolate","themeName","paletteName","colorArray","hueName","colorValue","customSheet","insertRule","palette","hue","index","addBorderRule","bdrInterpolate","getStyleSheet","style","head","querySelector","createElement","title","appendChild","createTextNode","sheet","fgDefault","bgDefault","bdrDefault","fgDefaultHue","bgDefaultHue","fgColor","bgColor","bdrColor","fgHue","bgHue","cssRules","deleteRule","forEach","_THEMES","_PALETTES","colors","primary","name","hues","color","run","decodeUri","$window","decodeURIComponent","filter","encodeUri","encodeURIComponent","ensureTarget","element","tree","find","attr","append","html","loc","range","n","res","parseInt","push","AclController","$mdDialog","Dialog","usersWithACL","User","folder","userFilter","$query","$filter","$acl","users","closeModal","$resetUsersRights","hide","saveModal","$saveUsersRights","then","data","status","alert","confirmChange","user","confirmation","$confirmRights","vm","showing","message","removeUser","$removeUser","uid","addUser","$addUser","userToAdd","searchText","error","selectUser","selectedUser","$rights","this","controller","navController","$scope","$timeout","$interval","$http","$mdSidenav","$mdBottomSheet","$mdMedia","sgConstant","sgSettings","Alarm","currentDay","window","get","success","secondsBeforeTomorrow","toggleLeft","toggle","debug","toggleRight","toggleDetailView","detail","getElementById","toggleClass","$watch","newVal","isGtMedium","getAlarms","Acl","folderId","factory","$q","Settings","Resource","extend","$$resource","$User","prototype","$users","_this","deferred","defer","resolve","promise","fetch","response","canSubscribeUser","isSubscribed","wasSubscribed","bind","_","indexOf","pluck","userClass","isGroup","reject","splice","$resetRights","deferredSave","deferredSubscribe","action","$rightsAreDirty","$omit","save","$shadowRights","copy","rights","uids","all","currentAlarm","AlarmService","$mdToast","$toast","now","Date","browserTime","Math","floor","getTime","alarms","sort","a","b","x","y","next","pop","utc","url","alarmTime","delay","f","showAlarm","cancel","AlarmController","scope","reminder","ok","show","position","hideDelay","template","summary","locals","Authentication","readCookie","foundCookie","prefix","pairs","currentPair","start","cookie","split","charAt","substr","readLoginCookie","loginValues","base64decode","redirectUrl","username","domain","userName","address","baseAddress","altBaseAddress","parts","hostpart","protocol","newAddress","location","href","startsWith","endsWith","getService","passwordPolicyConfig","service","d","password","rememberLogin","loginSuffix","method","loginCookie","expire","grace","msg","perr","LDAPPasswordPolicyError","PolicyNoError","PolicyAccountLocked","changePassword","newPassword","PolicyPasswordModNotAllowed","PolicyInsufficientPasswordQuality","PolicyPasswordTooShort","PolicyPasswordTooYoung","PolicyPasswordInHistory","formatted","PolicyPasswordUnknown","PolicyPasswordSystemUnknown","$get","PolicyPasswordChangeUnsupported","PolicyPasswordExpired","PolicyChangeAfterReset","PolicyMustSupplyOldPassword","provider","DialogService","$modal","content","confirm","options","prompt","label","PromptDialogController","o","parent","clickOutsideToClose","escapeToClose","inputType","Gravatar","size","hash","s","substring","md5","_http","_q","_path","_activeUser","$factory","userResource","compact","escape","params","flatten","newguid","create","post","id","newValue","remove","userData","init","$gravatar","search","excludedUsers","when","results","compareUids","each","isUndefined","$$shortFormat","$shortFormat","$$image","image","c_email","empty","fullname","cn","no_email","$isAnonymous","$isSpecial","$confirmation","some","values","isEqual","zero","map","keys","isString","$folders","type","$$folders","folders","toString","sgFocus","$rootScope","$broadcast","sgAvatarImage","restrict","src","link","bindToController","controllerAs","attrs","el","imgElement","className","img","insertGenericAvatar","sgAvatarImageController","$element","genericAvatar","parentNode","removeChild","attributes","avatar","add","insertBefore","directive","sgColorPicker","$parse","iElement","iAttr","doSelect","sgColorPickerController","sgColors","select","sgCompile","$compile","sgCompileLink","ensureCompileRunsOnce","$eval","contents","sgEnter","ENTER_KEY","event","which","$apply","preventDefault","sgEscape","ESCAPE_KEY","elem","keyCode","sgFocusOn","$on","e","focus","sgFolderStylesheet","require","ngModel","sgPlaceholder","placeholder","sgSearchPreTransclude","compile","tElement","tAttr","inputEl","selectEl","buttonEl","removeAttr","compiledButtonEl","doSearch","on","cancelSearch","priority","sgSearch","transclude","clone","sgSearchController","previous","searchField","searchTextOptions","updateOn","debounce","blur","onChange","sgSubscribe","folderType","onFolderSelect","sgSubscribeDialogController","showDialog","templateUrl","sgSubscribeController","selectFolder","folderData","close","timePaneDirective","TimePaneCtrl","controllers","ngModelCtrl","sgTimePaneCtrl","timePaneElement","configureNgModel","$attrs","$animate","$mdConstant","$mdTheming","$$mdDateUtil","$mdDateLocale","$mdInkRipple","$mdUtil","m","KEY_CODE","dateUtil","nextTimePaneUniqueId","selectedTime","displayTime","isInitialized","hours","displayName","selected","min5","min1","ii","show5min","getToggleBtnLbl","is5min","toggleManual5min","manual5min","tabindex","self","hourClickHandler","displayVal","updated","setHours","Number","setNgModelValue","minuteClickHandler","val","setMinutes","attachTimePaneEventListeners","SELECTED_TIME_CLASS","FOCUSED_TIME_CLASS","$render","changeSelectedTime","$viewValue","date","previousSelectedTime","changeDisplayTime","prevH","getHours","prevHCell","setAttribute","prevM","getMinutes","prevMCell","prevM5Cell","mCell","newH","hCell","newM","isValidDate","buildInitialTimePaneDisplay","today","handleKeyEvent","ESCAPE","TAB","$emit","ENTER","mode","changed","$setViewValue","opt_date","previousFocus","timePickerDirective","TimePickerCtrl","mdTimePickerCtrl","$$rAF","dateLocale","inputElement","inputContainer","ngInputElement","timePane","timeButton","inputMask","isFocused","isDisabled","setDisabled","disabled","isTimeOpen","timePaneOpenedFrom","nextUid","bodyClickHandler","handleBodyClick","windowResizeHandler","closeTimePane","installPropertyInterceptors","attachChangeListeners","attachInteractionListeners","detachTimePane","EXTRA_INPUT_SIZE","INVALID_CLASS","DEFAULT_DEBOUNCE_INTERVAL","TIME_PANE_HEIGHT","MIN5","GTSM","SM","MIN1","TIME_PANE_WIDTH","time","formatTime","resizeInputElement","t","h","handleInputEvent","keyCodes","altKey","DOWN_ARROW","openTimePane","$digest","ngDisabled","validateScope","Object","defineProperty","set","inputString","arr","isDate","attachTimePane","addClass","elementRect","getBoundingClientRect","bodyRect","paneTop","top","paneLeft","left","paneWidth","right","min","paneHeight","bottom","width","removeClass","target","disableScrollAround","nextTick","addEventListener","enableScrolling","removeEventListener","getTimePaneCtrl","focusTime","ctrl","setFocused","isInTime","getClosest","sgToggleGrid","day","findIndex","modelDays","modelAttr","tile","ensureInitRunsOnce","tiles","days","isDefined","flattenedDays","sgToggleGridAttr","sgVariableScrollShrink","console","prop","String","suffix","pattern","isNumber","lastIndexOf","_base64_keyStr","base64encode","chr1","chr2","chr3","enc1","enc2","enc3","enc4","output","input","utf8encode","charCodeAt","isNaN","fromCharCode","L","k","K","G","I","F","H","r","q","p","u","aa","Z","D","Array","B","J","P","E","v","g","Y","X","W","V","C","S","Q","N","M","A","z","w","U","T","R","O","toLowerCase","capitalize","toUpperCase","slice","asDate","newDate","minutes","newString","daysUpTo","otherDate","day1","day2","tmp","nbrDays","round","setTime","isValidEmail","emailRE","test","asCSSIdentifier","characters","escapeds","re","RegExp","timeInterval","interval","stringWithSeparator","separator","month","getMonth","getDate","year","getYear","str","addDays","milliSeconds","addHours","nbrHours","addMinutes","nbrMinutes","beginOfDay","setSeconds","setMilliseconds","beginOfWeek","offset","firstDayOfWeek","getDay","endOfWeek","getDayString","getHourString"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\nString.prototype.endsWith = function(suffix) {\n return this.indexOf(suffix, this.length - suffix.length) !== -1;\n};\n\nString.prototype.startsWith = function(pattern, position) {\n position = angular.isNumber(position) ? position : 0;\n return this.lastIndexOf(pattern, position) === position;\n};\n\nString.prototype._base64_keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nString.prototype.base64encode = function () {\n var output = \"\";\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0;\n \n var input = this.utf8encode();\n\n while (i < input.length) {\n chr1 = input.charCodeAt(i++);\n chr2 = input.charCodeAt(i++);\n chr3 = input.charCodeAt(i++);\n \n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n enc4 = chr3 & 63;\n \n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n \n output = output +\n this._base64_keyStr.charAt(enc1) + this._base64_keyStr.charAt(enc2) +\n this._base64_keyStr.charAt(enc3) + this._base64_keyStr.charAt(enc4);\n }\n \n return output;\n};\n\nString.prototype.base64decode = function() { \n var output = \"\";\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0;\n \n var input = \"\" + this; // .replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\")\n while (i < input.length) {\n enc1 = this._base64_keyStr.indexOf(input.charAt(i++));\n enc2 = this._base64_keyStr.indexOf(input.charAt(i++));\n enc3 = this._base64_keyStr.indexOf(input.charAt(i++));\n enc4 = this._base64_keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n \n output = output + String.fromCharCode(chr1);\n \n if (enc3 != 64) {\n output = output + String.fromCharCode(chr2);\n }\n if (enc4 != 64) {\n output = output + String.fromCharCode(chr3);\n }\n }\n\n return output;\n};\n\nString.prototype.md5 = function() {\n if (!this.length) { return; }\n // MD5 (Message-Digest Algorithm) by WebToolkit\n var md5 = function(s){function L(k,d){return(k<>>(32-d));}function K(G,k){var I,d,F,H,x;F=(G&2147483648);H=(k&2147483648);I=(G&1073741824);d=(k&1073741824);x=(G&1073741823)+(k&1073741823);if(I&d){return(x^2147483648^F^H);}if(I|d){if(x&1073741824){return(x^3221225472^F^H);}else{return(x^1073741824^F^H);}}else{return(x^F^H);}}function r(d,F,k){return(d&F)|((~d)&k);}function q(d,F,k){return(d&k)|(F&(~k));}function p(d,F,k){return(d^F^k);}function n(d,F,k){return(F^(d|(~k)));}function u(G,F,aa,Z,k,H,I){G=K(G,K(K(r(F,aa,Z),k),I));return K(L(G,H),F);}function f(G,F,aa,Z,k,H,I){G=K(G,K(K(q(F,aa,Z),k),I));return K(L(G,H),F);}function D(G,F,aa,Z,k,H,I){G=K(G,K(K(p(F,aa,Z),k),I));return K(L(G,H),F);}function t(G,F,aa,Z,k,H,I){G=K(G,K(K(n(F,aa,Z),k),I));return K(L(G,H),F);}function e(G){var Z;var F=G.length;var x=F+8;var k=(x-(x%64))/64;var I=(k+1)*16;var aa=Array(I-1);var d=0;var H=0;while(H>>29;return aa;}function B(x){var k=\"\",F=\"\",G,d;for(d=0;d<=3;d++){G=(x>>>(d*8))&255;F=\"0\"+G.toString(16);k=k+F.substr(F.length-2,2);}return k;}function J(k){k=k.replace(/rn/g,\"n\");var d=\"\";for(var F=0;F127)&&(x<2048)){d+=String.fromCharCode((x>>6)|192);d+=String.fromCharCode((x&63)|128);}else{d+=String.fromCharCode((x>>12)|224);d+=String.fromCharCode(((x>>6)&63)|128);d+=String.fromCharCode((x&63)|128);}}}return d;}var C=Array();var P,h,E,v,g,Y,X,W,V;var S=7,Q=12,N=17,M=22;var A=5,z=9,y=14,w=20;var o=4,m=11,l=16,j=23;var U=6,T=10,R=15,O=21;s=J(s);C=e(s);Y=1732584193;X=4023233417;W=2562383102;V=271733878;for(P=0;P 12) {\n p = 'pm';\n i = hours % 12;\n }\n if (minutes < 10) {\n m = '0' + minutes;\n }\n\n // %H : hour as a decimal number using 24-hour clock\n newString = newString.replace(\"%H\", hours < 10 ? '0' + hours : hours);\n // %I : hour as a decimal number using 12-hour clock\n newString = newString.replace(\"%I\", i < 10 ? '0' + i : i);\n // %M : minute as decimal number\n newString = newString.replace(\"%M\", m);\n // %p : 'am' or 'pm'\n newString = newString.replace(\"%p\", p);\n\n return newString;\n};\n\nDate.prototype.daysUpTo = function(otherDate) {\n var days = [];\n\n var day1 = this.getTime();\n var day2 = otherDate.getTime();\n if (day1 > day2) {\n var tmp = day1;\n day1 = day2;\n day2 = tmp;\n }\n\n var nbrDays = Math.round((day2 - day1) / 86400000) + 1;\n for (var i = 0; i < nbrDays; i++) {\n var newDate = new Date();\n newDate.setTime(day1 + (i * 86400000));\n days.push(newDate);\n }\n\n return days;\n};\n\nString.prototype.isValidEmail = function() {\n var emailRE = /^([\\w\\!\\#$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`{\\|\\}\\~]+\\.)*[\\w\\!\\#$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`{\\|\\}\\~]+@((((([a-z0-9]{1}[a-z0-9\\-]{0,62}[a-z0-9]{1})|[a-z])\\.)+[a-z]{2,})|(\\d{1,3}\\.){3}\\d{1,3}(\\:\\d{1,5})?)$/i;\n return emailRE.test(this);\n};\n\nString.prototype.asCSSIdentifier = function() {\n var characters = [ '_' , '\\\\.', '#' , '@' , '\\\\*', ':' , ',' , ' ', \"'\", '&', '\\\\+' ];\n var escapeds = [ '_U_', '_D_', '_H_', '_A_', '_S_', '_C_', '_CO_', '_SP_', '_SQ_', '_AM_', '_P_' ];\n\n var newString = this;\n for (var i = 0; i < characters.length; i++) {\n var re = new RegExp(characters[i], 'g');\n newString = newString.replace(re, escapeds[i]);\n }\n\n if (/^\\d+/.test(newString)) {\n newString = '_' + newString;\n }\n\n return newString;\n};\n\nString.prototype.timeInterval = function () {\n var interval;\n if (this == \"once_per_hour\")\n interval = 3600;\n else if (this == \"every_minute\")\n interval = 60;\n else {\n interval = parseInt(this.substr(6)) * 60;\n }\n\n return interval;\n};\n\nDate.prototype.stringWithSeparator = function(separator) {\n var month = '' + (this.getMonth() + 1);\n var day = '' + this.getDate();\n var year = this.getYear();\n if (year < 1000)\n year = '' + (year + 1900);\n if (month.length == 1)\n month = '0' + month;\n if (day.length == 1)\n day = '0' + day;\n\n if (separator == '-')\n str = year + '-' + month + '-' + day;\n else\n str = day + '/' + month + '/' + year;\n\n return str;\n};\n\nDate.prototype.addDays = function(nbrDays) {\n var milliSeconds = this.getTime();\n milliSeconds += 86400000 * nbrDays;\n this.setTime(milliSeconds);\n};\n\nDate.prototype.addHours = function(nbrHours) {\n var milliSeconds = this.getTime();\n milliSeconds += 3600000 * nbrHours;\n this.setTime(milliSeconds);\n};\n\nDate.prototype.addMinutes = function(nbrMinutes) {\n var milliSeconds = this.getTime();\n milliSeconds += 60000 * nbrMinutes;\n this.setTime(milliSeconds);\n};\n\nDate.prototype.beginOfDay = function() {\n var beginOfDay = new Date(this.getTime());\n beginOfDay.setHours(0);\n beginOfDay.setMinutes(0);\n beginOfDay.setSeconds(0);\n beginOfDay.setMilliseconds(0);\n\n return beginOfDay;\n};\n\nDate.prototype.beginOfWeek = function() {\n var offset = firstDayOfWeek - this.getDay();\n if (offset > 0)\n offset -= 7;\n\n var beginOfWeek = this.beginOfDay();\n beginOfWeek.setHours(12);\n beginOfWeek.addDays(offset);\n\n return beginOfWeek;\n};\n\nDate.prototype.endOfWeek = function() {\n var endOfWeek = this.beginOfWeek();\n endOfWeek.addDays(6);\n\n endOfWeek.setHours(23);\n endOfWeek.setMinutes(59);\n endOfWeek.setSeconds(59);\n endOfWeek.setMilliseconds(999);\n\n return endOfWeek;\n};\n\n// YYYYMMDD\nDate.prototype.getDayString = function() {\n var newString = this.getYear();\n if (newString < 1000) newString += 1900;\n var month = '' + (this.getMonth() + 1);\n if (month.length == 1)\n month = '0' + month;\n newString += month;\n var day = '' + this.getDate();\n if (day.length == 1)\n day = '0' + day;\n newString += day;\n\n return newString;\n};\n\n// MMHH\nDate.prototype.getHourString = function() {\n var newString = this.getHours() + '00';\n if (newString.length == 3)\n newString = '0' + newString;\n\n return newString;\n};\n\nfunction l() {\n var key = arguments[0];\n var value = key;\n if (labels[key]) {\n value = labels[key];\n }\n else if (clabels[key]) {\n value = clabels[key];\n }\n for (var i = 1, j = 0; i < arguments.length; i++, j++) {\n value = value.replace('%{' + j + '}', arguments[i]);\n }\n\n return value;\n}\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.Common', ['ngAnimate', 'ngMaterial', 'mdColors'])\n .value('sgSettings', {\n isPopup: document.body.classList.contains('popup'),\n baseURL: function() {\n return ApplicationBaseURL || null;\n },\n activeUser: function(param) {\n var settings = {\n login: UserLogin || null,\n identification: UserIdentification || null,\n email: UserEmail || null,\n language: UserLanguage || null,\n folderURL: UserFolderURL || null,\n isSuperUser: IsSuperUser || null,\n path: {\n calendar: UserCalendarPath || null,\n contacts: UserContactsPath || null,\n mail: UserMailPath || null,\n preferences: UserPreferencesPath || null,\n administration: (IsSuperUser ? UserAdministrationPath : null),\n logoff: UserLogoffPath || null\n }\n };\n if (param)\n return settings[param];\n else\n return settings;\n }\n })\n\n .constant('sgColors', {\n selection: [\n '#FFFFFF',\n '#330033',\n '#C0C0C0',\n '#999999',\n '#666666',\n '#333333',\n '#000000',\n '#FFCCCC',\n '#FF6666',\n '#FF0000',\n '#CC0000',\n '#990000',\n '#660000',\n '#330000',\n '#FFCC99',\n '#FF9966',\n '#FF9900',\n '#FF6600',\n '#CC6600',\n '#993300',\n '#663300',\n '#FFFF99',\n '#FFFF66',\n '#FFCC66',\n '#FFCC33',\n '#CC9933',\n '#996633',\n '#663333',\n '#FFFFCC',\n '#FFFF33',\n '#FFFF00',\n '#FFCC00',\n '#999900',\n '#666600',\n '#333300',\n '#CCCCCC',\n '#66FF99',\n '#33FF33',\n '#33CC00',\n '#009900',\n '#006600',\n '#003300',\n '#99FFFF',\n '#33FFFF',\n '#66CCCC',\n '#00CCCC',\n '#339999',\n '#336666',\n '#003333',\n '#CCFFFF',\n '#66FFFF',\n '#33CCFF',\n '#3366FF',\n '#3333FF',\n '#000099',\n '#000066',\n '#CCCCFF',\n '#9999FF',\n '#6666CC',\n '#6633FF',\n '#6600CC',\n '#333399',\n '#330099',\n '#FFCCFF',\n '#FF99FF',\n '#CC66CC',\n '#CC33CC',\n '#993399',\n '#663366',\n '#99FF99'\n ]\n })\n\n // md break-points values are hard-coded in angular-material/src/core/util/constant.js\n // $mdMedia has a built-in support for those values but can also evaluate others\n // For some reasons, angular-material's break-points don't match the specs\n // Here we define values according to specs\n .constant('sgConstant', {\n 'sm': '(max-width: 600px)',\n 'gt-sm': '(min-width: 600px)',\n 'md': '(min-width: 600px) and (max-width: 1024px)',\n 'gt-md': '(min-width: 1025px)',\n 'lg': '(min-width: 1024px) and (max-width: 1280px)',\n 'gt-lg': '(min-width: 1280px)'\n })\n\n .config(configure);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$logProvider', '$compileProvider', '$mdThemingProvider'];\n function configure($logProvider, $compileProvider, $mdThemingProvider) {\n $mdThemingProvider.definePalette('sogo-green', {\n '50': 'eaf5e9',\n '100': 'cbe5c8',\n '200': 'aad6a5',\n '300': '88c781',\n '400': '66b86a',\n '500': '56b04c',\n '600': '4da143',\n '700': '388e3c',\n '800': '367d2e',\n '900': '225e1b',\n 'A100': 'b9f6ca',\n 'A200': '69f0ae',\n 'A400': '00e676',\n 'A700': '00c853',\n 'contrastDefaultColor': 'dark',\n 'contrastDarkColors': ['50', '100', '200'],\n 'contrastLightColors': ['300', '400', '500', '600', '700', '800', '900']\n });\n $mdThemingProvider.definePalette('sogo-blue', {\n '50': 'f0faf9',\n '100': 'e1f5f3',\n '200': 'ceebe8',\n '300': 'bfe0dd',\n '400': 'b2d6d3',\n '500': 'a1ccc8',\n '600': '8ebfbb',\n '700': '7db3b0',\n '800': '639997',\n '900': '4d8080',\n 'A100': 'd4f7fa',\n 'A200': 'c3f5fa',\n 'A400': '53e3f0',\n 'A700': '00b0c0',\n 'contrastDefaultColor': 'light',\n 'contrastDarkColors': ['50', '100', '200'],\n 'contrastLightColors': ['300', '400', '500', '600', '700', '800', '900', 'A100', 'A200', 'A400', 'A700']\n });\n $mdThemingProvider.definePalette('sogo-paper', {\n '50': 'fcf7f8',\n '100': 'f7f1dc',\n '200': 'ede5ca',\n '300': 'e6d8ba',\n '400': 'e2d2a3',\n '500': 'd6c48d',\n '600': 'baa870',\n '700': '857545',\n '800': '524517',\n '900': '433809',\n '1000': '000000',\n 'A100': 'ffffff',\n 'A200': 'eeeeee',\n 'A400': 'bdbdbd',\n 'A700': '616161',\n 'contrastDefaultColor': 'dark',\n 'contrastLightColors': ['800', '900']\n });\n // Default theme definition\n $mdThemingProvider.theme('default')\n .primaryPalette('sogo-blue', {\n 'default': '300',\n 'hue-1': '100',\n 'hue-2': '400',\n 'hue-3': 'A700'\n })\n .accentPalette('sogo-green', {\n 'default': '500',\n 'hue-1': '200',\n 'hue-2': '300',\n 'hue-3': 'A700'\n })\n .backgroundPalette('grey', {\n 'default': 'A100',\n 'hue-1': '200',\n 'hue-2': '300',\n 'hue-3': '500'\n });\n\n if (!DebugEnabled) {\n // Disable debug data\n $logProvider.debugEnabled(false);\n $compileProvider.debugInfoEnabled(false);\n }\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n/*\n * https://github.com/angular/material/issues/1269\n * https://gist.github.com/senthilprabhut/dd2147ebabc89bf223e7\n */\n\n(function() {\n 'use strict';\n\n var _$mdThemingProvider;\n\n angular\n .module('mdColors', ['ngMaterial'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$mdThemingProvider'];\n function configure($mdThemingProvider) {\n _$mdThemingProvider = $mdThemingProvider;\n }\n \n /**\n * @ngInject\n */\n runBlock.$inject = ['$interpolate', '$document', '$log'];\n function runBlock($interpolate, $document, $log) {\n\n function buildCssSelectors(selectors) {\n var result = selectors.join('');\n return result;\n }\n\n var fgDefault = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-fg']) + ' { color:{{value}};}'),\n bgDefault = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-bg']) + ' { background-color:{{value}};}'),\n bdrDefault = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-bdr']) + ' { border-color:{{value}};}'),\n fgDefaultHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{hue}}','.md-fg']) + ' { color:{{value}};}'),\n bgDefaultHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{hue}}','.md-bg']) + ' { background-color:{{value}};}'),\n fgColor = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}','.md-fg']) + ' { color:{{value}};}'),\n bgColor = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}','.md-bg']) + ' { background-color:{{value}};}'),\n bdrColor = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}','.md-bdr']) + ' { border-color:{{value}};}'),\n fgHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}.md-{{hue}}','.md-fg']) + ' { color:{{value}};}'),\n bgHue = $interpolate(buildCssSelectors(['.md-{{theme}}-theme','.md-{{palette}}.md-{{hue}}','.md-bg']) + ' { background-color:{{value}};}'),\n customSheet = getStyleSheet(),\n index = 0;\n\n // Clear out old rules from stylesheet\n while (customSheet.cssRules.length > 0 ) {\n customSheet.deleteRule(0);\n }\n angular.forEach(_$mdThemingProvider._THEMES, function(theme, themeName){\n // Add default selectors - primary is the default palette\n addRule(fgDefault, bgDefault, themeName, 'primary',\n _$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues.default]);\n addRule(fgDefaultHue, bgDefaultHue, themeName, 'primary',\n _$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues['hue-2'] ], 'hue-2');\n addRule(fgDefaultHue, bgDefaultHue, themeName, 'primary',\n _$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues['hue-3'] ], 'hue-3');\n addRule(fgDefaultHue, bgDefaultHue, themeName, 'primary',\n _$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues['hue-1'] ], 'hue-1');\n addBorderRule(bdrDefault, themeName, 'primary',\n _$mdThemingProvider._PALETTES[theme.colors.primary.name][theme.colors.primary.hues.default]);\n\n // Add selectors for palettes - accent, background, primary and warn\n angular.forEach(theme.colors, function(color, paletteName){\n addRule(fgColor, bgColor, themeName, paletteName, _$mdThemingProvider._PALETTES[color.name][color.hues.default]);\n addBorderRule(bdrColor, themeName, paletteName, _$mdThemingProvider._PALETTES[color.name][color.hues.default]);\n addRule(fgHue, bgHue, themeName, paletteName, _$mdThemingProvider._PALETTES[color.name][color.hues['hue-2'] ], 'hue-2');\n addRule(fgHue, bgHue, themeName, paletteName, _$mdThemingProvider._PALETTES[color.name][color.hues['hue-3'] ], 'hue-3');\n addRule(fgHue, bgHue, themeName, paletteName, _$mdThemingProvider._PALETTES[color.name][color.hues['hue-1'] ], 'hue-1');\n });\n\n //$log.debug(_.pluck(customSheet.cssRules, 'cssText').join(\"\\n\"));\n });\n\n function addRule(fgInterpolate, bgInterpolate, themeName, paletteName, colorArray, hueName){\n // Set up interpolation functions to build css rules.\n if (!colorArray) return;\n var colorValue = 'rgb(' + colorArray.value[0] + ',' + colorArray.value[1] + ',' + colorArray.value[2] + ')';\n\n // Insert foreground color rule\n customSheet.insertRule(fgInterpolate({\n theme: themeName,\n palette: paletteName,\n value: colorValue,\n hue: hueName\n }), index);\n index += 1;\n\n // Insert background color rule\n customSheet.insertRule(bgInterpolate({\n theme: themeName,\n palette: paletteName,\n value: colorValue,\n hue: hueName\n }), index);\n index += 1;\n }\n\n function addBorderRule(bdrInterpolate, themeName, paletteName, colorArray, hueName){\n // Set up interpolation functions to build css rule for border color.\n if (!colorArray) return;\n var colorValue = 'rgb(' + colorArray.value[0] + ',' + colorArray.value[1] + ',' + colorArray.value[2] + ')';\n\n customSheet.insertRule(bdrInterpolate({\n theme: themeName,\n palette: paletteName,\n value: colorValue,\n hue: hueName\n }), index);\n index += 1;\n }\n\n function getStyleSheet() {\n // function to add a dynamic style-sheet to the document\n var style = $document[0].head.querySelector('style[title=\"Dynamic-Generated-by-mdColors\"]');\n if (style === null) {\n style = $document[0].createElement('style');\n style.title = 'Dynamic-Generated-by-mdColors';\n // WebKit hack... (not sure if still needed)\n style.appendChild($document[0].createTextNode(''));\n $document[0].head.appendChild(style);\n }\n return style.sheet;\n }\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n/**\n * @type {angular.Module}\n */\n(function () {\n 'use strict';\n\n /**\n * @ngInject\n */\n decodeUri.$inject = ['$window'];\n function decodeUri($window) {\n return $window.decodeURIComponent;\n }\n\n angular.module('SOGo.Common')\n .filter('decodeUri', decodeUri);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n/**\n * @type {angular.Module}\n */\n(function () {\n 'use strict';\n\n /**\n * @ngInject\n */\n encodeUri.$inject = ['$window'];\n function encodeUri($window) {\n return $window.encodeURIComponent;\n }\n\n angular.module('SOGo.Common')\n .filter('encodeUri', encodeUri);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n/**\n * @type {angular.Module}\n */\n(function () {\n 'use strict';\n\n /**\n * @ngInject\n */\n function ensureTarget() {\n return function(element) {\n var tree = angular.element('
' + element + '
');\n tree.find('a').attr('target', '_blank');\n return angular.element('
').append(tree).html(); \n };\n }\n\n angular.module('SOGo.Common')\n .filter('ensureTarget', ensureTarget);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n/**\n * loc - A simple filter to return the localized version of a string.\n * @memberof SOGo.Common\n */\n(function () {\n 'use strict';\n\n /**\n * @ngInject\n */\n function loc() {\n return l;\n }\n\n angular.module('SOGo.Common')\n .filter('loc', loc);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n/**\n * range - A simple filter that will return an array of the size of its argument.\n * @memberof SOGo.Common\n */\n(function () {\n 'use strict';\n\n function range() {\n return function(n) {\n var res = [];\n for (var i = 0; i < parseInt(n); i++) {\n res.push(i);\n }\n return res;\n };\n }\n\n angular.module('SOGo.Common')\n .filter('range', range);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AclController.$inject = ['$mdDialog', 'Dialog', 'usersWithACL', 'User', 'folder'];\n function AclController($mdDialog, Dialog, usersWithACL, User, folder) {\n var vm = this;\n\n vm.users = usersWithACL; // ACL users\n vm.folder = folder;\n vm.selectedUser = null;\n vm.userToAdd = '';\n vm.searchText = '';\n vm.userFilter = userFilter;\n vm.closeModal = closeModal;\n vm.saveModal = saveModal;\n vm.confirmChange = confirmChange;\n vm.removeUser = removeUser;\n vm.addUser = addUser;\n vm.selectUser = selectUser;\n vm.confirmation = { showing: false,\n message: ''};\n\n function userFilter($query) {\n return User.$filter($query, folder.$acl.users);\n }\n\n function closeModal() {\n folder.$acl.$resetUsersRights(); // cancel changes\n $mdDialog.hide();\n }\n\n function saveModal() {\n folder.$acl.$saveUsersRights().then(function() {\n $mdDialog.hide();\n }, function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function confirmChange(user) {\n var confirmation = user.$confirmRights();\n if (confirmation) {\n vm.confirmation.showing = true;\n vm.confirmation.message = confirmation;\n }\n }\n\n function removeUser(user) {\n folder.$acl.$removeUser(user.uid).catch(function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function addUser(data) {\n if (data) {\n folder.$acl.$addUser(data).then(function() {\n vm.userToAdd = '';\n vm.searchText = '';\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n }\n\n function selectUser(user) {\n if (vm.selectedUser == user) {\n vm.selectedUser = null;\n }\n else {\n vm.selectedUser = user;\n vm.selectedUser.$rights();\n }\n }\n }\n\n angular\n .module('SOGo.Common')\n .controller('AclController', AclController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n/**\n * @type {angular.Module}\n */\n(function () {\n 'use strict';\n\n /**\n * @ngInject\n */\n navController.$inject = ['$scope', '$timeout', '$interval', '$http', '$mdSidenav', '$mdBottomSheet', '$mdMedia', '$log', 'sgConstant', 'sgSettings', 'Alarm'];\n function navController($scope, $timeout, $interval, $http, $mdSidenav, $mdBottomSheet, $mdMedia, $log, sgConstant, sgSettings, Alarm) {\n\n $scope.isPopup = sgSettings.isPopup;\n $scope.activeUser = sgSettings.activeUser();\n $scope.baseURL = sgSettings.baseURL();\n\n // Show current day in top bar\n $scope.currentDay = window.currentDay;\n $timeout(function() {\n // Update date when day ends\n $interval(function() {\n $http.get('../date').success(function(data) {\n $scope.currentDay = data;\n });\n }, 24 * 3600 * 1000);\n }, window.currentDay.secondsBeforeTomorrow * 1000);\n\n $scope.toggleLeft = function () {\n $mdSidenav('left').toggle()\n .then(function () {\n $log.debug(\"toggle left is done\");\n });\n };\n $scope.toggleRight = function () {\n $mdSidenav('right').toggle()\n .then(function () {\n $log.debug(\"toggle RIGHT is done\");\n });\n };\n // $scope.openBottomSheet = function() {\n // $mdBottomSheet.show({\n // parent: angular.element(document.getElementById('left-sidenav')),\n // templateUrl: 'bottomSheetTemplate.html'\n // });\n // };\n $scope.toggleDetailView = function() {\n var detail = angular.element(document.getElementById('detailView'));\n detail.toggleClass('sg-close');\n };\n $scope.$watch(function() {\n return $mdMedia(sgConstant['gt-md']);\n }, function(newVal) {\n $scope.isGtMedium = newVal;\n });\n\n Alarm.getAlarms();\n }\n\n angular.module('SOGo.Common')\n .controller('navController', navController);\n})();\n","(function() {\n 'use strict';\n\n /**\n * @name Acl\n * @constructor\n * @param {String} folderId - the folder ID associated to the ACLs\n */\n function Acl(folderId) {\n this.folderId = folderId;\n }\n\n /**\n * @memberof Acl\n * @desc The factory we'll use to register with Angular.\n * @return the Acl constructor\n */\n Acl.factory = ['$q', '$timeout', 'sgSettings', 'Resource', 'User', function($q, $timeout, Settings, Resource, User) {\n angular.extend(Acl, {\n $q: $q,\n $timeout: $timeout,\n $$resource: new Resource(Settings.activeUser('folderURL'), Settings.activeUser()),\n $User: User\n });\n\n return Acl;\n }];\n\n /**\n * @module SOGo.Common\n * @desc Factory registration of User in Angular module.\n */\n angular.module('SOGo.Common').factory('Acl', Acl.factory);\n\n /**\n * @function $users\n * @memberof Acl.prototype\n * @desc Fetch the list of users that have specific rights for the current folder.\n * @return a promise of an array of User objects\n */\n Acl.prototype.$users = function() {\n var _this = this,\n deferred = Acl.$q.defer(),\n user;\n if (this.users) {\n deferred.resolve(this.users);\n }\n else {\n return Acl.$$resource.fetch(this.folderId, 'acls').then(function(response) {\n _this.users = [];\n //console.debug(JSON.stringify(users, undefined, 2));\n angular.forEach(response.users, function(data) {\n user = new Acl.$User(data);\n user.canSubscribeUser = user.isSubscribed;\n user.wasSubscribed = user.isSubscribed;\n user.$rights = angular.bind(user, user.$acl, _this.folderId);\n _this.users.push(user);\n });\n deferred.resolve(_this.users);\n return _this.users;\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $addUser\n * @memberof Acl.prototype\n * @param {Object} user - a User object with minimal set of attributes (uid, isGroup, cn, c_email)\n * @see {@link User.$filter}\n */\n Acl.prototype.$addUser = function(user) {\n var _this = this,\n deferred = Acl.$q.defer(),\n param = {uid: user.uid};\n if (!user.uid || _.indexOf(_.pluck(this.users, 'uid'), user.uid) > -1) {\n // No UID specified or user already in ACLs\n deferred.resolve();\n }\n else {\n Acl.$$resource.fetch(this.folderId, 'addUserInAcls', param).then(function() {\n user.wasSubscribed = false;\n user.userClass = user.isGroup ? 'group-user' : 'normal-user';\n user.$rights = angular.bind(user, user.$acl, _this.folderId);\n _this.users.push(user);\n deferred.resolve(_this.users);\n }, function(data, status) {\n deferred.reject(l('An error occured please try again.'));\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $removeUser\n * @memberof Acl.prototype\n * @desc Remove a user from the folder's ACL\n * @return a promise of the server call to remove the user from the folder's ACL\n */\n Acl.prototype.$removeUser = function(uid) {\n var _this = this,\n param = {uid: uid};\n return Acl.$$resource.fetch(this.folderId, 'removeUserFromAcls', param).then(function() {\n var i = _.indexOf(_.pluck(_this.users, 'uid'), uid);\n if (i >= 0) {\n _this.users.splice(i, 1);\n }\n });\n };\n\n /**\n * @function $resetUsersRights\n * @memberof Acl.prototype\n * @desc Restore initial rights of all users.\n */\n Acl.prototype.$resetUsersRights = function() {\n angular.forEach(this.users, function(user) {\n user.$resetRights();\n });\n };\n\n /**\n * @function $saveUsersRights\n * @memberof Acl.prototype\n * @desc Save user rights that have changed and subscribe users that have been selected.\n * @return a promise that resolved only if the modifications and subscriptions were successful\n */\n Acl.prototype.$saveUsersRights = function() {\n var _this = this,\n deferredSave = Acl.$q.defer(),\n deferredSubscribe = Acl.$q.defer(),\n param = {action: 'saveUserRights'},\n users = [];\n\n // Save user rights\n angular.forEach(this.users, function(user) {\n if (user.$rightsAreDirty()) {\n users.push(user.$omit());\n // console.debug('save ' + JSON.stringify(user.$omit(), undefined, 2));\n }\n });\n if (users.length) {\n Acl.$$resource.save(this.folderId, users, param)\n .then(function() {\n // Save was successful; copy rights to shadow rights\n angular.forEach(_this.users, function(user) {\n if (user.$rightsAreDirty()) {\n user.$shadowRights = angular.copy(user.rights);\n }\n });\n deferredSave.resolve();\n }, deferredSave.reject);\n }\n else {\n deferredSave.resolve();\n }\n\n // Subscribe users\n users = [];\n angular.forEach(this.users, function(user) {\n if (!user.wasSubscribed && user.isSubscribed) {\n users.push(user.uid);\n // console.debug('subscribe ' + user.uid);\n }\n });\n if (users.length) {\n param = {uids: users.join(',')};\n Acl.$$resource.fetch(this.folderId, 'subscribeUsers', param)\n .then(function() {\n // Subscribe was successful; reset \"wasSubscribed\" attribute\n angular.forEach(_this.users, function(user) {\n user.wasSubscribed = user.isSubscribed;\n });\n deferredSubscribe.resolve();\n }, deferredSubscribe.reject);\n }\n else {\n deferredSubscribe.resolve();\n }\n return Acl.$q.all([deferredSave.promise, deferredSubscribe.promise]);\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Alarm\n * @constructor\n */\n function Alarm() {\n this.currentAlarm = null;\n }\n\n /**\n * @name getAlarms\n * @desc Fetch the list of alarms from the server and use the last one\n */\n Alarm.getAlarms = function() {\n var _this = this;\n var now = new Date();\n var browserTime = Math.floor(now.getTime()/1000);\n\n this.$$resource.fetch('', 'alarmslist?browserTime=' + browserTime).then(function(data) {\n \n var alarms = data.alarms.sort(function reverseSortByAlarmTime(a, b) {\n var x = parseInt(a[2]);\n var y = parseInt(b[2]);\n return (y - x);\n });\n\n if (alarms.length > 0) {\n var next = alarms.pop();\n var now = new Date();\n var utc = Math.floor(now.getTime()/1000);\n var url = next[0] + '/' + next[1];\n var alarmTime = parseInt(next[2]);\n var delay = alarmTime;\n if (alarmTime > 0) delay -= utc;\n var d = new Date(alarmTime*1000);\n //console.log (\"now = \" + now.toUTCString());\n //console.log (\"next event \" + url + \" in \" + delay + \" seconds (on \" + d.toUTCString() + \")\");\n\n var f = angular.bind(_this, Alarm.showAlarm, url);\n\n if (_this.currentAlarm)\n _this.$timeout.cancel(_this.currentAlarm);\n\n _this.currentAlarm = _this.$timeout(f, delay*1000);\n }\n });\n };\n \n /**\n * @name showAlarm\n * @desc Show the latest alarm using a toast\n * @param url The URL of the calendar component for snoozing\n */\n Alarm.showAlarm = function(url) {\n var _this = this;\n\n this.$$resource.fetch(url, '?resetAlarm=yes').then(function(data) {\n _this.$toast.show({\n position: 'top right',\n hideDelay: 0,\n template: [\n '',\n ' ',\n ' ',\n ' ',\n ' ',\n l('5 minutes'),\n ' ',\n ' ',\n l('10 minutes'),\n ' ',\n ' ',\n l('15 minutes'),\n ' ',\n ' ',\n l('30 minutes'),\n ' ',\n ' ',\n l('45 minutes'),\n ' ',\n ' ',\n l('1 hour'),\n ' ',\n ' ',\n l('1 day'),\n ' ',\n ' ',\n ' ',\n ' ',\n l('Cancel'),\n ' ',\n ' ',\n l('Ok'),\n ' ',\n ''\n ].join(''),\n locals: {\n url: url\n },\n controller: AlarmController\n });\n\n /**\n * @ngInject\n */\n AlarmController.$inject = ['scope', '$mdToast', 'url'];\n function AlarmController(scope, $mdToast, url) {\n scope.reminder = '10';\n scope.cancel = function() {\n $mdToast.hide();\n };\n scope.ok = function() {\n _this.$$resource.fetch(url, 'view?snoozeAlarm=' + scope.reminder);\n $mdToast.hide();\n };\n }\n });\n };\n\n /**\n * @memberof Alarm\n * @desc The factory we'll register as Alarm in the Angular module SOGo.Common\n * @ngInject\n */\n AlarmService.$inject = ['$timeout', 'sgSettings', 'Resource', '$mdToast'];\n function AlarmService($timeout, Settings, Resource, $mdToast) {\n angular.extend(Alarm, {\n $timeout: $timeout,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Calendar', Settings.activeUser()),\n $toast: $mdToast\n });\n\n return Alarm; // return constructor\n }\n\n /* Factory registration in Angular module */\n angular\n .module('SOGo.Common')\n .factory('Alarm', AlarmService);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for Authentication */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n angular.module('SOGo.Authentication', [])\n\n .constant('passwordPolicyConfig', {\n PolicyPasswordChangeUnsupported: -3,\n PolicyPasswordSystemUnknown: -2,\n PolicyPasswordUnknown: -1,\n PolicyPasswordExpired: 0,\n PolicyAccountLocked: 1,\n PolicyChangeAfterReset: 2,\n PolicyPasswordModNotAllowed: 3,\n PolicyMustSupplyOldPassword: 4,\n PolicyInsufficientPasswordQuality: 5,\n PolicyPasswordTooShort: 6,\n PolicyPasswordTooYoung: 7,\n PolicyPasswordInHistory: 8,\n PolicyNoError: 65535\n })\n\n // TODO: convert to a Factory recipe?\n .provider('Authentication', Authentication);\n\n function Authentication() {\n function readCookie(name) {\n var foundCookie, prefix, pairs, i, currentPair, start;\n foundCookie = null;\n prefix = name + '=';\n pairs = document.cookie.split(';');\n for (i = 0; !foundCookie && i < pairs.length; i++) {\n currentPair = pairs[i];\n start = 0;\n while (currentPair.charAt(start) == ' ')\n start++;\n if (start > 0)\n currentPair = currentPair.substr(start);\n if (currentPair.indexOf(prefix) === 0)\n foundCookie = currentPair.substr(prefix.length);\n }\n\n return foundCookie;\n }\n\n function readLoginCookie() {\n var loginValues = null,\n cookie = readCookie('0xHIGHFLYxSOGo'),\n value;\n if (cookie && cookie.length > 8) {\n value = decodeURIComponent(cookie.substr(8));\n loginValues = value.base64decode().split(':');\n }\n\n return loginValues;\n }\n\n function redirectUrl(username, domain) {\n var userName, address, baseAddress, altBaseAddress, parts, hostpart, protocol, newAddress;\n\n userName = username;\n if (domain)\n userName += '@' + domain.value;\n address = '' + window.location.href;\n baseAddress = ApplicationBaseURL + '/' + encodeURIComponent(userName);\n if (baseAddress[0] == '/') {\n parts = address.split('/');\n hostpart = parts[2];\n protocol = parts[0];\n baseAddress = protocol + '//' + hostpart + baseAddress;\n }\n parts = baseAddress.split('/');\n parts.splice(0, 3);\n altBaseAddress = parts.join('/');\n if ((address.startsWith(baseAddress) || address.startsWith(altBaseAddress)) &&\n !address.endsWith('/logoff')) {\n newAddress = address;\n }\n else {\n newAddress = baseAddress;\n }\n\n return newAddress;\n }\n\n this.$get = getService;\n\n /**\n * @ngInject\n */\n getService.$inject = ['$q', '$http', 'passwordPolicyConfig'];\n function getService($q, $http, passwordPolicyConfig) {\n var _this = this, service;\n\n service = {\n login: function(data) {\n var d = $q.defer(),\n username = data.username,\n password = data.password,\n domain = data.domain,\n language,\n rememberLogin = data.rememberLogin ? 1 : 0;\n\n if (data.loginSuffix && !username.endsWith(data.loginSuffix)) {\n username += loginSuffix;\n domain = false;\n }\n if (data.language && data.language != 'WONoSelectionString') {\n language = data.language;\n }\n\n $http({\n method: 'POST',\n url: '/SOGo/connect',\n data: {\n userName: username,\n password: password,\n domain: domain,\n language: language,\n rememberLogin: rememberLogin\n }\n }).success(function(data, status) {\n // Make sure browser's cookies are enabled\n var loginCookie = readLoginCookie();\n if (!loginCookie) {\n d.reject(l('cookiesNotEnabled'));\n }\n else {\n // Check password policy\n if (typeof data.expire != 'undefined' && typeof data.grace != 'undefined') {\n if (data.expire < 0 && data.grace > 0) {\n d.reject({grace: data.grace});\n //showPasswordDialog('grace', createPasswordGraceDialog, data['grace']);\n } else if (data.expire > 0 && data.grace == -1) {\n d.reject({expire: data.expire});\n //showPasswordDialog('expiration', createPasswordExpirationDialog, data['expire']);\n }\n else {\n d.resolve(redirectUrl(username, domain));\n }\n }\n else {\n d.resolve(redirectUrl(username, domain));\n }\n }\n }).error(function(data, status) {\n var msg, perr;\n if (data && data.LDAPPasswordPolicyError) {\n perr = data.LDAPPasswordPolicyError;\n if (perr == passwordPolicyConfig.PolicyNoError) {\n msg = l('Wrong username or password.');\n }\n else if (perr == passwordPolicyConfig.PolicyAccountLocked) {\n msg = l('Your account was locked due to too many failed attempts.');\n }\n else {\n msg = l('Login failed due to unhandled error case: ') + perr;\n }\n }\n else {\n msg = l('Unhandled error response');\n }\n d.reject({error: msg});\n });\n return d.promise;\n }, // login: function(data) { ...\n\n changePassword: function(newPassword) {\n var d = $q.defer(),\n loginCookie = _this.readLoginCookie();\n\n $http({\n method: 'POST',\n url: '/SOGo/so/changePassword',\n data: {\n userName: loginCookie[0],\n password: loginCookie[1],\n newPassword: newPassword }\n }).success(function(data, status) {\n d.resolve();\n }).error(function(data, status) {\n var error,\n perr = data.LDAPPasswordPolicyError;\n\n if (!perr) {\n perr = passwordPolicyConfig.PolicyPasswordSystemUnknown;\n error = _(\"Unhandled error response\");\n }\n else if (perr == passwordPolicyConfig.PolicyNoError) {\n error = l(\"Password change failed\");\n } else if (perr == passwordPolicyConfig.PolicyPasswordModNotAllowed) {\n error = l(\"Password change failed - Permission denied\");\n } else if (perr == passwordPolicyConfig.PolicyInsufficientPasswordQuality) {\n error = l(\"Password change failed - Insufficient password quality\");\n } else if (perr == passwordPolicyConfig.PolicyPasswordTooShort) {\n error = l(\"Password change failed - Password is too short\");\n } else if (perr == passwordPolicyConfig.PolicyPasswordTooYoung) {\n error = l(\"Password change failed - Password is too young\");\n } else if (perr == passwordPolicyConfig.PolicyPasswordInHistory) {\n error = l(\"Password change failed - Password is in history\");\n } else {\n error = l(\"Unhandled policy error: %{0}\").formatted(perr);\n perr = passwordPolicyConfig.PolicyPasswordUnknown;\n }\n\n d.reject(error);\n });\n return d.promise;\n }\n };\n return service;\n }\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Dialog\n * @constructor\n */\n function Dialog() {\n }\n\n /**\n * @name alert\n * @desc Show an alert dialog box with a single \"OK\" button\n * @param {string} title\n * @param {string} content\n */\n Dialog.alert = function(title, content) {\n var alert = this.$modal.alert()\n .title(title)\n .content(content)\n .ok(l('OK'));\n this.$modal.show(alert);\n };\n\n /**\n * @name confirm\n * @desc Show a confirmation dialog box with buttons 'Cancel' and 'OK'\n * @param {string} title\n * @param {string} content\n * @returns a promise that resolves if the user has clicked on the 'OK' button\n */\n Dialog.confirm = function(title, content, options) {\n var confirm = this.$modal.confirm()\n .title(title)\n .content(content)\n .ok((options && options.ok)? options.ok : l('OK'))\n .cancel((options && options.cancel)? options.cancel : l('Cancel'));\n return this.$modal.show(confirm);\n };\n\n /**\n * @name prompt\n * @desc Show a primpt dialog box with a input text field and the 'Cancel' and 'OK' buttons\n * @param {string} title\n * @param {string} label\n * @param {object} [options] - use a different input type by setting 'inputType'\n * @returns a promise that resolves with the input field value\n */\n Dialog.prompt = function(title, label, options) {\n var o = options || {},\n d = this.$q.defer();\n\n this.$modal.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '

',\n ' ',\n ' ',\n ' ',\n ' ',\n '
',\n '
',\n ' ',\n ' ' + l('Cancel'),\n ' ',\n ' ',\n ' ' + l('OK'),\n ' ',\n '
',\n '
'\n ].join(''),\n controller: PromptDialogController\n });\n\n /**\n * @ngInject\n */\n PromptDialogController.$inject = ['scope', '$mdDialog'];\n function PromptDialogController(scope, $mdDialog) {\n scope.title = title;\n scope.name = \"\";\n scope.cancel = function() {\n d.reject();\n $mdDialog.hide();\n };\n scope.ok = function() {\n d.resolve(scope.name);\n $mdDialog.hide();\n };\n }\n\n return d.promise;\n };\n\n /**\n * @memberof Dialog\n * @desc The factory we'll register as Dialog in the Angular module SOGo.Common\n * @ngInject\n */\n DialogService.$inject = ['$q', '$mdDialog'];\n function DialogService($q, $mdDialog) {\n angular.extend(Dialog, { $q: $q , $modal: $mdDialog });\n\n return Dialog; // return constructor\n }\n\n /* Factory registration in Angular module */\n angular\n .module('SOGo.Common')\n .factory('Dialog', DialogService);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * Gravatar - A service to build the Gravatar URL for an email address\n * @memberof SOGo.Common\n * @param {string} email\n * @param {number} [size] - the size of the image\n * @ngInject\n */\n function Gravatar() {\n return function(email, size) {\n var x, y, hash, s = size;\n if (!email) {\n return '';\n }\n x = email.indexOf('<');\n if (x >= 0) {\n y = email.indexOf('>', x);\n if (y > x)\n email = email.substring(x+1,y);\n }\n if (!size) {\n s = 48; // default to 48 pixels\n }\n hash = email.md5();\n\n return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=404';\n //return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=retro';\n // return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=identicon';\n // return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=wavatar';\n };\n }\n\n angular\n .module('SOGo.Common')\n .factory('Gravatar', Gravatar);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Resource\n * @constructor\n * @param {Object} $http - the Angular HTTP service\n * @param {Object} $q - the Angular promise/deferred service\n * @param {String} path - the base path of the external resource\n * @param {Object} options - extra attributes to be associated to the object\n */\n function Resource($http, $q, path, activeUser, options) {\n angular.extend(this, {\n _http: $http,\n _q: $q,\n _path: path,\n _activeUser: activeUser\n });\n angular.extend(this, options);\n // Trim trailing slash\n this._path = this._path.replace(/\\/$/, '');\n }\n\n /**\n * @memberof Resource\n * @desc The factory we'll use to register with Angular.\n * @return a new Resource object\n */\n Resource.$factory = ['$http', '$q', function($http, $q) {\n return function(path, activeUser, options) {\n return new Resource($http, $q, path, activeUser, options);\n };\n }];\n\n /**\n * @module SOGo.Common\n * @desc Factory registration of Resource in Angular module.\n */\n angular.module('SOGo.Common').factory('Resource', Resource.$factory);\n\n /**\n * @function userResource\n * @memberof Resource.prototype\n * @desc Create a new Resource object associated to a username different than the active user.\n * @param {String} uid - the user UID\n * @return a new Resource object\n */\n Resource.prototype.userResource = function(uid) {\n var path = _.compact(this._activeUser.folderURL.split('/'));\n path.splice(path.length - 1, 1, escape(uid));\n\n return new Resource(this._http, this._q, '/' + path.join('/'), this._activeUser);\n };\n\n /**\n * @function fetch\n * @memberof Resource.prototype\n * @desc Fetch resource using a specific folder, action and/or parameters.\n * @param {string} folderId - the folder on which the action will be applied (ex: addressbook, calendar)\n * @param {string} action - the action to be used in the URL\n * @param {Object} params - Object parameters injected through the $http service\n * @return a promise\n */\n Resource.prototype.fetch = function(folderId, action, params) {\n var deferred = this._q.defer(),\n path = [this._path];\n if (folderId) path.push(folderId.split('/'));\n if (action) path.push(action);\n path = _.compact(_.flatten(path)).join('/');\n\n this._http({\n method: 'GET',\n url: path,\n params: params\n })\n .success(deferred.resolve)\n .error(function(data, status) {\n if (status == 404)\n return deferred.reject();\n });\n\n return deferred.promise;\n };\n\n /**\n * @function newguid\n * @memberof Resource.prototype\n * @desc Fetch a new GUID on the specified folder ID.\n * @return a promise of the new data structure\n */\n Resource.prototype.newguid = function(folderId) {\n var deferred = this._q.defer(),\n path = this._path + '/' + folderId + '/newguid';\n\n this._http\n .get(path)\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function create\n * @memberof Resource.prototype\n * @desc Create a new resource using a specific action (post).\n * @param {string} action - the action to be used in the URL\n * @param {string} name - the new resource's name\n * @return a promise\n */\n Resource.prototype.create = function(action, name) {\n var deferred = this._q.defer(),\n path = this._path + '/' + action;\n\n this._http\n .post(path, { name: name })\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function post\n * @memberof Resource.prototype\n * @desc Post a resource attributes on the server.\n * @return a promise\n */\n Resource.prototype.post = function(id, action, data) {\n var deferred = this._q.defer(),\n path = [this._path];\n if (id) path.push(id);\n if (action) path.push(action);\n path = _.compact(_.flatten(path)).join('/');\n\n this._http\n .post(path, data)\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function save\n * @memberof Resource.prototype\n * @desc Save a resource attributes on the server (post /save).\n * @return a promise\n */\n Resource.prototype.save = function(id, newValue, options) {\n var deferred = this._q.defer(),\n action = (options && options.action)? options.action : 'save';\n\n return this.post(id, action, newValue);\n };\n\n /**\n * @function remove\n * @memberof Resource.prototype\n * @desc Delete a resource (get /delete).\n * @return a promise\n */\n Resource.prototype.remove = function(uid) {\n var deferred = this._q.defer(),\n path = this._path + '/' + uid + '/delete';\n\n this._http\n .get(path)\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n})();\n","(function() {\n 'use strict';\n\n /**\n * @name User\n * @constructor\n * @param {object} [userData] - some default values for the user\n */\n function User(userData) {\n if (userData) {\n this.init(userData);\n }\n }\n\n /**\n * @memberof User\n * @desc The factory we'll use to register with Angular.\n * @return the User constructor\n */\n User.factory = ['$q', '$log', 'sgSettings', 'Resource', 'Gravatar', function($q, $log, Settings, Resource, Gravatar) {\n angular.extend(User, {\n $q: $q,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL'), Settings.activeUser()),\n $gravatar: Gravatar,\n $query: '',\n $users: []\n });\n\n return User;\n }];\n\n /**\n * @module SOGo.Common\n * @desc Factory registration of User in Angular module.\n */\n angular.module('SOGo.Common').factory('User', User.factory);\n\n /**\n * @memberof User\n * @desc Search for users that match a string.\n * @param {string} search - a string used to performed the search\n * @param {object[]} excludedUsers - a list of User objects that must be excluded from the results\n * @return a promise of an array of matching User objects\n */\n User.$filter = function(search, excludedUsers) {\n var param = {search: search};\n var _this = this;\n\n if (!search) {\n // No query specified\n User.$users = [];\n return User.$q.when(User.$users);\n }\n if (User.$query == search) {\n // Query hasn't changed\n return User.$q.when(User.$users);\n }\n User.$query = search;\n\n return User.$$resource.fetch(null, 'usersSearch', param).then(function(response) {\n var results, index, user,\n compareUids = function(data) {\n return _this.uid == data.uid;\n };\n if (excludedUsers) {\n // Remove excluded users from response\n results = _.filter(response.users, function(data) {\n return !_.find(excludedUsers, compareUids, user);\n });\n }\n else {\n results = response.users;\n }\n // Remove users that no longer match the search query\n for (index = User.$users.length - 1; index >= 0; index--) {\n user = User.$users[index];\n if (!_.find(results, compareUids, user)) {\n User.$users.splice(index, 1);\n }\n }\n // Add new users matching the search query\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(User.$users, compareUids, data))) {\n var user = new User(data);\n User.$users.splice(index, 0, user);\n }\n });\n User.$log.debug(User.$users);\n return User.$users;\n });\n };\n\n /**\n * @function init\n * @memberof User.prototype\n * @desc Extend instance with required attributes and new data.\n * @param {object} data - attributes of user\n */\n User.prototype.init = function(data) {\n angular.extend(this, data);\n if (!this.$$shortFormat)\n this.$$shortFormat = this.$shortFormat();\n if (!this.$$image)\n this.$$image = this.image || User.$gravatar(this.c_email);\n\n // An empty attribute to trick md-autocomplete when adding users from the ACLs editor\n this.empty = ' ';\n };\n\n /**\n * @function $shortFormat\n * @memberof User.prototype\n * @return the fullname along with the email address\n */\n User.prototype.$shortFormat = function(options) {\n var fullname = this.cn || this.c_email;\n var email = this.c_email;\n var no_email = options && options.email === false;\n if (!no_email && email && fullname != email) {\n fullname += ' <' + email + '>';\n }\n return fullname;\n };\n\n /**\n * @function $acl\n * @memberof User.prototype\n * @desc Fetch the user rights associated to a specific folder and populate the 'rights' attribute.\n * @param {string} the folder ID\n * @return a promise\n */\n User.prototype.$acl = function(folderId) {\n var _this = this,\n deferred = User.$q.defer(),\n param = {uid: this.uid};\n if (this.$shadowRights) {\n deferred.resolve(this.rights);\n }\n else {\n User.$$resource.fetch(folderId, 'userRights', param).then(function(data) {\n _this.rights = data;\n // Convert numbers (0|1) to boolean values\n //angular.forEach(_.keys(_this.rights), function(key) {\n // _this.rights[key] = _this.rights[key] ? true : false;\n //});\n // console.debug('rights ' + _this.uid + ' => ' + JSON.stringify(data, undefined, 2));\n // Keep a copy of the server's version\n _this.$shadowRights = angular.copy(data);\n deferred.resolve(data);\n return data;\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $isAnonymous\n * @memberof User.prototype\n * @return true if it's the special anonymous user\n */\n User.prototype.$isAnonymous = function() {\n return this.uid == 'anonymous';\n };\n\n /**\n * @function $isSpecial\n * @memberof User.prototype\n * @desc Only accurate from the ACL editor.\n * @return true if the user is not a regular system user\n */\n User.prototype.$isSpecial = function() {\n return this.userClass && this.userClass == 'public-user';\n };\n\n /**\n * @function $confirmRights\n * @memberof User.prototype\n * @desc Check if a confirmation is required before giving some rights.\n * @return the confirmation message or false if no confirmation is required\n */\n User.prototype.$confirmRights = function() {\n var confirmation = false;\n\n if (this.$confirmation) {\n // Don't bother the user more than once\n return false;\n }\n\n if (_.some(_.values(this.rights))) {\n if (this.uid == 'anonymous') {\n confirmation = l('Potentially anyone on the Internet will be able to access your folder, even if they do not have an account on this system. Is this information suitable for the public Internet?');\n }\n else if (this.uid == '') {\n confirmation = l('Any user with an account on this system will be able to access your folder. Are you certain you trust them all?');\n }\n }\n\n this.$confirmation = confirmation;\n\n return confirmation;\n };\n\n /**\n * @function $rightsAreDirty\n * @memberof User.prototype\n * @return whether or not the rights have changed from their initial values\n */\n User.prototype.$rightsAreDirty = function() {\n return this.rights && !_.isEqual(this.rights, this.$shadowRights);\n };\n\n /**\n * @function $resetRights\n * @memberof User.prototype\n * @desc Restore initial rights or disable all rights\n * @param {boolean} [zero] - reset all rights to zero when true\n */\n User.prototype.$resetRights = function(zero) {\n var _this = this;\n if (zero) {\n // Disable all rights\n _.map(_.keys(this.rights), function(key) {\n if (angular.isString(_this.rights[key]))\n _this.rights[key] = 'None';\n else\n _this.rights[key] = 0;\n });\n }\n else {\n // Restore initial rights\n this.rights = angular.copy(this.$shadowRights);\n }\n };\n\n /**\n * @function $folders\n * @memberof User.prototype\n * @desc Retrieve the list of folders of a specific type\n * @param {string} type - either 'contact' or 'calendar'\n * @return a promise of the HTTP query result or the cached result\n */\n User.prototype.$folders = function(type) {\n var _this = this,\n deferred = User.$q.defer(),\n param = {type: type};\n if (this.$$folders) {\n deferred.resolve(this.$$folders);\n }\n else {\n User.$$resource.userResource(this.uid).fetch(null, 'foldersSearch', param).then(function(response) {\n _this.$$folders = response.folders;\n deferred.resolve(response.folders);\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $omit\n * @memberof User.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the User instance\n */\n User.prototype.$omit = function() {\n var user = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n user[key] = value;\n }\n });\n return user;\n };\n\n User.prototype.toString = function() {\n return '[User ' + this.c_email + ']';\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n \n /**\n * sgFocus - A service to set the focus on the element associated to a specific string\n * @memberof SOGo.Common\n * @param {string} name - the string identifier of the element\n * @see {@link SOGo.Common.sgFocusOn}\n * @ngInject\n */\n sgFocus.$inject = ['$rootScope', '$timeout'];\n function sgFocus($rootScope, $timeout) {\n return function(name) {\n $timeout(function() {\n $rootScope.$broadcast('sgFocusOn', name);\n });\n };\n }\n\n angular\n .module('SOGo.Common')\n .factory('sgFocus', sgFocus);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true, newcap: false */\n 'use strict';\n\n /**\n * sgAvatarImage - An avatar directive that returns un img element with either a local URL (if sg-src is specified)\n * or a Gravatar URL built from the Gravatar factory.\n * Based on http://blog.lingohub.com/2014/08/better-ux-with-angularjs-directives/.\n * @memberof SOGo.Common\n * @example:\n \n */\n function sgAvatarImage() {\n return {\n restrict: 'AE',\n scope: {\n size: '@',\n email: '=sgEmail',\n src: '=sgSrc'\n },\n template: '',\n link: link,\n bindToController: true,\n controller: 'sgAvatarImageController',\n controllerAs: 'vm'\n };\n }\n\n function link(scope, element, attrs, controller) {\n var el = element[0],\n className = el.className,\n imgElement = element.find('img'),\n img = imgElement[0];\n\n if (attrs.size) {\n imgElement.attr('width', attrs.size);\n imgElement.attr('height', attrs.size);\n }\n\n imgElement.bind('error', function() {\n // Error while loading external link; insert a generic avatar\n controller.insertGenericAvatar(img);\n });\n }\n\n /**\n * @ngInject\n */\n sgAvatarImageController.$inject = ['$scope', '$element', 'Gravatar'];\n function sgAvatarImageController($scope, $element, Gravatar) {\n var vm = this;\n\n $scope.$watch('vm.email', function(email) {\n var img = $element.find('img')[0];\n if (!email && !vm.genericAvatar) {\n // If no email is specified, insert a generic avatar\n vm.insertGenericAvatar(img);\n }\n else if (email && !vm.url) {\n if (vm.genericAvatar) {\n // Remove generic avatar and restore visibility of image\n vm.genericAvatar.parentNode.removeChild(vm.genericAvatar);\n delete vm.genericAvatar;\n img.classList.remove('ng-hide');\n }\n vm.url = Gravatar(email, vm.size);\n }\n });\n\n // If sg-src is defined, watch the expression for the URL of a local image\n if ('sg-src' in $element[0].attributes) {\n $scope.$watch('vm.src', function(src) {\n if (src) {\n vm.url = src;\n }\n });\n }\n\n vm.insertGenericAvatar = function(img) {\n var avatar;\n\n if (!vm.genericAvatar) {\n avatar = document.createElement('md-icon');\n avatar.className = 'material-icons icon-person';\n img.classList.add('ng-hide');\n vm.genericAvatar = img.parentNode.insertBefore(avatar, img);\n }\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgAvatarImage', sgAvatarImage)\n .controller('sgAvatarImageController', sgAvatarImageController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /*\n * sgColorPicker - Color picker widget\n * @restrict element\n * @param {function} sgOnSelect - the function to call when clicking on a color.\n * One variable is available: color.\n * @ngInject\n * @example:\n\n \n */\n sgColorPicker.$inject = ['$parse'];\n function sgColorPicker($parse) {\n return {\n restrict: 'E',\n template: [\n '',\n ' ',\n ' color_lens',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ''\n ].join(''),\n replace: true,\n bindToController: true,\n controller: sgColorPickerController,\n controllerAs: '$sgColorPickerController',\n link: link\n };\n\n function link(scope, iElement, iAttr, controller) {\n // Associate callback to controller\n controller.doSelect = $parse(iElement.attr('sg-on-select'));\n }\n }\n \n /**\n * @ngInject\n */\n sgColorPickerController.$inject = ['$scope', 'sgColors'];\n function sgColorPickerController($scope, sgColors) {\n var vm = this;\n\n vm.colors = sgColors.selection;\n vm.select = function(color) {\n vm.doSelect($scope, { color: color });\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgColorPicker', sgColorPicker);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCompile - Assign an expression to a DOM element and compile it.\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} sgCompile - the expression to compile\n * @ngInject\n * @example:\n\n
\n */\n sgCompile.$inject = ['$compile'];\n function sgCompile($compile) {\n return {\n restrict: 'A',\n link: sgCompileLink\n };\n\n function sgCompileLink(scope, element, attrs) {\n var ensureCompileRunsOnce = scope.$watch(\n function(scope) {\n // Watch the sg-compile expression for changes\n return scope.$eval(attrs.sgCompile);\n },\n function(value) {\n // When the sg-compile expression changes, assign it into the current DOM\n element.html(value);\n \n // Compile the new DOM and link it to the current scope.\n // NOTE: we only compile .childNodes so that we don't get into infinite loop compiling ourselves\n $compile(element.contents())(scope);\n \n // Use un-watch feature to ensure compilation happens only once.\n ensureCompileRunsOnce();\n }\n );\n }\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgCompile', sgCompile);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgEnter - A directive evaluated when the enter key is pressed\n * @memberof SOGo.Common\n * @ngInject\n * @example:\n\n \n */\n function sgEnter() {\n var ENTER_KEY = 13;\n return function(scope, element, attrs) {\n element.bind(\"keydown keypress\", function(event) {\n if (event.which === ENTER_KEY) {\n scope.$apply(attrs.sgEnter);\n event.preventDefault();\n }\n });\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgEnter', sgEnter);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgEscape - A directive evaluated when the escape key is pressed\n * @memberof SOGo.Common\n * @ngInject\n * @example:\n\n \n */\n function sgEscape() {\n var ESCAPE_KEY = 27;\n return function(scope, elem, attrs) {\n elem.bind('keydown', function(event) {\n if (event.keyCode === ESCAPE_KEY) {\n scope.$apply(attrs.sgEscape);\n }\n });\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgEscape', sgEscape);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgFocusOn - A directive that sets the focus on its element when the specified string is broadcasted\n * @memberof SOGo.Common\n * @see {@link SOGo.Common.sgFocus}\n * @ngInject\n * @example:\n\n \n */\n function sgFocusOn() {\n return function(scope, elem, attr) {\n scope.$on('sgFocusOn', function(e, name) {\n if (name === attr.sgFocusOn) {\n elem[0].focus();\n elem[0].select();\n }\n });\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgFocusOn', sgFocusOn);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgFolderStylesheet - Add CSS stylesheet for folder (addressbook or calendar)\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} ngModel - the object literal describing the folder (an Addressbook or Calendar instance)\n * @example:\n\n
\n
\n */\n function sgFolderStylesheet() {\n return {\n restrict: 'A',\n require: 'ngModel',\n scope: {\n ngModel: '='\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgFolderStylesheet', sgFolderStylesheet);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgPlaceholder - A directive for dynamic placeholder\n * @memberof SOGo.Common\n * @ngInject\n * @example:\n\n \n */\n function sgPlaceholder() {\n return {\n restrict: 'A',\n scope: {\n placeholder: '=sgPlaceholder'\n },\n link: function(scope, elem, attr) {\n scope.$watch('placeholder',function() {\n elem[0].placeholder = scope.placeholder;\n });\n }\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgPlaceholder', sgPlaceholder);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /*\n * sgSearch - Search within a list of items\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {function} sgSearch - the function to call when performing a search.\n * Two variables are available: searchField and searchText.\n * @example:\n\n
\n \n arrow_back\n \n \n \n \n \n Subject\n sender\n \n
\n */\n sgSearchPreTransclude.$inject = ['$parse'];\n function sgSearchPreTransclude($parse) {\n return {\n restrict: 'A',\n controller: 'sgSearchController',\n controllerAs: '$sgSearchController',\n priority: 1001,\n compile: compile\n };\n\n function compile(tElement, tAttr) {\n var mdInputEl = tElement.find('md-input-container'),\n inputEl = tElement.find('input'),\n selectEl = tElement.find('md-select'),\n buttonEl = tElement.find('md-button');\n\n inputEl.attr('ng-model', '$sgSearchController.searchText');\n inputEl.attr('ng-model-options', '$sgSearchController.searchTextOptions');\n inputEl.attr('ng-change', '$sgSearchController.onChange()');\n if (selectEl) {\n selectEl.attr('ng-model', '$sgSearchController.searchField');\n selectEl.attr('ng-change', '$sgSearchController.onChange()');\n }\n if (buttonEl && buttonEl.attr('sg-search-cancel')) {\n buttonEl.attr('ng-click', buttonEl.attr('sg-search-cancel'));\n buttonEl.removeAttr('sg-search-cancel');\n }\n else {\n buttonEl = null;\n }\n\n return function postLink(scope, iElement, iAttr, controller) {\n var compiledButtonEl = iElement.find('button');\n\n // Associate callback to controller\n controller.doSearch = $parse(iElement.attr('sg-search'));\n\n // Reset the input field when cancelling the search\n if (buttonEl && compiledButtonEl) {\n compiledButtonEl.on('click', controller.cancelSearch);\n }\n };\n }\n }\n\n function sgSearch() {\n return {\n restrict: 'A',\n priority: 1000,\n transclude: true,\n compile: compile\n };\n\n function compile(tElement, tAttr) {\n return function postLink(scope, iElement, iAttr, controller, transclude) {\n transclude(function(clone) {\n iElement.append(clone);\n });\n };\n }\n }\n\n /**\n * @ngInject\n */\n sgSearchController.$inject = ['$scope', '$element'];\n function sgSearchController($scope, $element) {\n var vm = this;\n\n // Controller variables\n vm.previous = { searchText: '', searchField: '' };\n vm.searchText = null;\n\n // Model options\n vm.searchTextOptions = {\n updateOn: 'default blur',\n debounce: {\n default: 300,\n blur: 0\n }\n };\n\n // Method to call on data changes\n vm.onChange = function() {\n if (typeof vm.searchText !== 'undefined' && vm.searchText !== null) {\n if (vm.searchText != vm.previous.searchText || vm.searchField != vm.previous.searchField) {\n if (vm.searchText.length > 2 || vm.searchText.length === 0) {\n // doSearch is the compiled expression of the sg-search attribute\n vm.doSearch($scope, { searchText: vm.searchText, searchField: vm.searchField });\n }\n vm.previous = { searchText: vm.searchText, searchField: vm.searchField };\n }\n }\n };\n\n // Reset input field when cancelling the search\n vm.cancelSearch = function() {\n vm.searchText = \"\";\n };\n }\n\n angular\n .module('SOGo.Common')\n .controller('sgSearchController', sgSearchController)\n .directive('sgSearch', sgSearchPreTransclude)\n .directive('sgSearch', sgSearch);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /*\n * sgSubscribe - Common subscription widget\n * @restrict attribute\n * @param {string} sgSubscribe - the folder type\n * @param {function} sgSubscribeOnSelect - the function to call when subscribing to a folder.\n * One variable is available: folderData.\n * @ngInject\n * @example:\n\n Subscribe ..\n */\n sgSubscribe.$inject = ['User'];\n function sgSubscribe(User) {\n return {\n restrict: 'A',\n scope: {\n folderType: '@sgSubscribe',\n onFolderSelect: '&sgSubscribeOnSelect'\n },\n replace: false,\n bindToController: true,\n controller: sgSubscribeDialogController,\n controllerAs: '$sgSubscribeDialogController',\n link: link\n };\n }\n\n function link(scope, element, attrs, controller) {\n var inputEl = element.find('input');\n element.on('click', controller.showDialog);\n }\n\n /**\n * @ngInject\n */\n sgSubscribeDialogController.$inject = ['$mdDialog'];\n function sgSubscribeDialogController($mdDialog) {\n var vm = this;\n vm.showDialog = function() {\n $mdDialog.show({\n templateUrl: '../Contacts/UIxContactsUserFolders',\n clickOutsideToClose: true,\n locals: {\n folderType: vm.folderType,\n onFolderSelect: vm.onFolderSelect\n },\n controller: sgSubscribeController,\n controllerAs: 'subscribe'\n });\n };\n }\n\n /**\n * @ngInject\n */\n sgSubscribeController.$inject = ['$mdDialog', 'folderType', 'onFolderSelect', 'User'];\n function sgSubscribeController($mdDialog, folderType, onFolderSelect, User) {\n var vm = this;\n\n vm.selectedUser = null;\n vm.users = User.$users;\n\n vm.searchTextOptions = {\n updateOn: 'default blur',\n debounce: {\n default: 300,\n blur: 0\n }\n };\n\n vm.onChange = function() {\n User.$filter(vm.searchText).then(function() {\n if (vm.selectedUser) {\n // If selected user is no longer part of the matching users, unselect it\n if (_.isUndefined(_.find(User.$users, function(user) {\n return user.uid == vm.selectedUser.uid;\n }))) {\n vm.selectedUser = null;\n }\n }\n });\n };\n\n vm.selectUser = function(i) {\n if (vm.selectedUser == vm.users[i]) {\n vm.selectedUser = null;\n }\n else {\n // Fetch folders of specific type for selected user\n vm.users[i].$folders(folderType).then(function() {\n vm.selectedUser = vm.users[i];\n });\n }\n };\n\n // Callback upon subscription to a folder\n vm.selectFolder = function(folder) {\n onFolderSelect({folderData: folder});\n };\n\n vm.close = function() {\n $mdDialog.hide();\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgSubscribe', sgSubscribe);\n})();\n","(function() {\n 'use strict';\n\n angular\n .module('SOGo.Common')\n .directive('sgTimePane', timePaneDirective);\n \n function timePaneDirective() {\n return {\n template: [\n '
',\n '
',\n '
',\n '
',\n ' {{hour.displayName}}',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n ' {{minute.displayName}}',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n ' {{minute.displayName}}',\n '
',\n '
',\n '
',\n '
',\n ' ',\n '
',\n '
'\n ].join(''),\n scope: {},\n require: ['ngModel', 'sgTimePane'],\n controller: TimePaneCtrl,\n controllerAs: 'ctrl',\n bindToController: true,\n link: function(scope, element, attrs, controllers) {\n var ngModelCtrl = controllers[0];\n var sgTimePaneCtrl = controllers[1];\n var timePaneElement = element;\n sgTimePaneCtrl.configureNgModel(ngModelCtrl, sgTimePaneCtrl, timePaneElement);\n }\n };\n }\n\n /** Class applied to the selected hour or minute cell/. */\n var SELECTED_TIME_CLASS = 'md-bg';\n\n /** Class applied to the focused hour or minute cell/. */\n var FOCUSED_TIME_CLASS = 'md-focus';\n\n /** Next identifier for calendar instance. */\n var nextTimePaneUniqueId = 0;\n\n function TimePaneCtrl($element, $attrs, $scope, $animate, $q, $mdConstant,\n $mdTheming, $$mdDateUtil, $mdDateLocale, $mdInkRipple, $mdUtil) {\n var m;\n this.$scope = $scope;\n this.$element = $element;\n this.timePaneElement = $element[0].querySelector('.sg-time-pane');\n this.$animate = $animate;\n this.$q = $q;\n this.$mdInkRipple = $mdInkRipple;\n this.$mdUtil = $mdUtil;\n this.keyCode = $mdConstant.KEY_CODE;\n this.dateUtil = $$mdDateUtil;\n this.id = nextTimePaneUniqueId++;\n this.ngModelCtrl = null;\n this.selectedTime = null;\n this.displayTime = null;\n this.isInitialized = false;\n\n $scope.hours=[];\n $scope.hours[0]=[];\n $scope.hours[0][0]=[];\n $scope.hours[0][1]=[];\n $scope.hours[1]=[];\n $scope.hours[1][0]=[];\n $scope.hours[1][1]=[];\n for(var i=0; i<6; i++){\n $scope.hours[0][0][i] = {id:'tp-'+this.id+'-hour-'+i, displayName:i<10?\"0\"+i:\"\"+i, selected:false};\n $scope.hours[0][1][i] = {id:'tp-'+this.id+'-hour-'+(i+6),displayName:(i+6)<10?\"0\"+(i+6):\"\"+(i+6), selected:false};\n $scope.hours[1][0][i] = {id:'tp-'+this.id+'-hour-'+(i+12), displayName:\"\"+(i+12), selected:false};\n $scope.hours[1][1][i] = {id:'tp-'+this.id+'-hour-'+(i+18), displayName:\"\"+(i+18), selected:false};\n }\n\n $scope.min5=[];\n $scope.min5[0]=[];\n $scope.min5[1]=[];\n for(i=0; i<6; i++){\n m=i*5;\n $scope.min5[0][i] = {id:'tp-'+this.id+'-minute5-'+m, displayName:m<10?\":0\"+m:\":\"+m, selected:true};\n $scope.min5[1][i] = {id:'tp-'+this.id+'-minute5-'+(m+30), displayName:\":\"+(m+30), selected:false};\n }\n\n $scope.min1=[];\n for(i=0; i<12; i++){\n $scope.min1[i]=[];\n for(var ii=0; ii<5; ii++){\n m=i*5 + ii;\n $scope.min1[i][ii] = {id:'tp-'+this.id+'-minute-'+m, displayName:m<10?\":0\"+m:\":\"+m, selected:true};\n }\n }\n\n $scope.show5min = true;\n $scope.getToggleBtnLbl = function() {\n return ($scope.is5min()) ? '>>' : '<<';\n };\n $scope.toggleManual5min = function() {\n $scope.manual5min = !$scope.is5min();\n };\n $scope.is5min = function() {\n if ($scope.manual5min === true || $scope.manual5min === false) {\n return $scope.manual5min;\n }\n else {\n return $scope.show5min;\n }\n };\n\n if (!$attrs.tabindex) {\n $element.attr('tabindex', '-1');\n }\n\n var self = this;\n\n this.hourClickHandler = function(displayVal) {\n var updated = new Date(self.displayTime);\n updated.setHours(Number(displayVal));\n self.setNgModelValue(updated, 'hours');\n };\n $scope.hourClickHandler = this.hourClickHandler;\n\n this.minuteClickHandler = function(displayVal) {\n //remove leading ':'\n var val = displayVal.substr(1);\n var updated = new Date(self.displayTime);\n updated.setMinutes(Number(val));\n self.setNgModelValue(updated, 'minutes');\n };\n $scope.minuteClickHandler = this.minuteClickHandler;\n\n this.attachTimePaneEventListeners();\n }\n TimePaneCtrl.$inject = [\"$element\", \"$attrs\", \"$scope\", \"$animate\", \"$q\", \"$mdConstant\", \"$mdTheming\", \"$$mdDateUtil\", \"$mdDateLocale\", \"$mdInkRipple\", \"$mdUtil\"];\n\n TimePaneCtrl.prototype.configureNgModel = function(ngModelCtrl, sgTimePaneCtrl, timePaneElement) {\n this.ngModelCtrl = ngModelCtrl;\n\n var self = this;\n ngModelCtrl.$render = function() {\n self.changeSelectedTime(self.ngModelCtrl.$viewValue, sgTimePaneCtrl, timePaneElement);\n };\n };\n\n /**\n * Change the selected date in the time (ngModel value has already been changed).\n */\n TimePaneCtrl.prototype.changeSelectedTime = function(date, sgTimePaneCtrl, timePaneElement) {\n var self = this;\n var previousSelectedTime = this.selectedTime;\n this.selectedTime = date;\n this.changeDisplayTime(date).then(function() {\n\n // Remove the selected class from the previously selected date, if any.\n if (previousSelectedTime) {\n var prevH = previousSelectedTime.getHours();\n var prevHCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+prevH);\n if (prevHCell) {\n prevHCell.classList.remove(SELECTED_TIME_CLASS);\n prevHCell.setAttribute('aria-selected', 'false');\n }\n var prevM = previousSelectedTime.getMinutes();\n var prevMCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute-'+prevM);\n if (prevMCell) {\n prevMCell.classList.remove(SELECTED_TIME_CLASS);\n prevMCell.setAttribute('aria-selected', 'false');\n }\n var prevM5Cell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute5-'+prevM);\n if (prevM5Cell) {\n prevM5Cell.classList.remove(SELECTED_TIME_CLASS);\n prevM5Cell.setAttribute('aria-selected', 'false');\n }\n }\n\n // Apply the select class to the new selected date if it is set.\n if (date) {\n var newH = date.getHours();\n var mCell, hCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+newH);\n if (hCell) {\n hCell.classList.add(SELECTED_TIME_CLASS);\n hCell.setAttribute('aria-selected', 'true');\n }\n var newM = date.getMinutes();\n if (newM % 5 === 0) {\n sgTimePaneCtrl.$scope.show5min = true;\n mCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute5-'+newM);\n if (mCell) {\n mCell.classList.add(SELECTED_TIME_CLASS);\n mCell.setAttribute('aria-selected', 'true');\n }\n }\n else {\n sgTimePaneCtrl.$scope.show5min = false;\n }\n mCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute-'+newM);\n if (mCell) {\n mCell.classList.add(SELECTED_TIME_CLASS);\n mCell.setAttribute('aria-selected', 'true');\n }\n\n }\n });\n };\n\n TimePaneCtrl.prototype.changeDisplayTime = function(date) {\n var d = new Date(date);\n if (!this.isInitialized) {\n this.buildInitialTimePaneDisplay();\n return this.$q.when();\n }\n if (!this.dateUtil.isValidDate(d)) {\n return this.$q.when();\n }\n\n this.displayTime = d;\n\n return this.$q.when();\n };\n TimePaneCtrl.prototype.buildInitialTimePaneDisplay = function() {\n this.displayTime = this.selectedTime || this.today;\n this.isInitialized = true;\n };\n\n TimePaneCtrl.prototype.attachTimePaneEventListeners = function() {\n // Keyboard interaction.\n this.$element.on('keydown', angular.bind(this, this.handleKeyEvent));\n };\n\n /*** User input handling ***/\n\n /**\n * Handles a key event in the calendar with the appropriate action. The action will either\n * be to select the focused date or to navigate to focus a new date.\n * @param {KeyboardEvent} event\n */\n TimePaneCtrl.prototype.handleKeyEvent = function(event) {\n var self = this;\n this.$scope.$apply(function() {\n // Capture escape and emit back up so that a wrapping component\n // (such as a time-picker) can decide to close.\n if (event.which == self.keyCode.ESCAPE || event.which == self.keyCode.TAB) {\n self.$scope.$emit('md-time-pane-close');\n\n if (event.which == self.keyCode.TAB) {\n event.preventDefault();\n }\n\n return;\n }\n\n // Remaining key events fall into two categories: selection and navigation.\n // Start by checking if this is a selection event.\n if (event.which === self.keyCode.ENTER) {\n self.setNgModelValue(self.displayTime, 'enter');\n event.preventDefault();\n return;\n }\n\n // Selection isn't occuring, so the key event is either navigation or nothing.\n /*var date = self.getFocusDateFromKeyEvent(event);\n if (date) {\n event.preventDefault();\n event.stopPropagation();\n\n // Since this is a keyboard interaction, actually give the newly focused date keyboard\n // focus after the been brought into view.\n self.changeDisplayTime(date).then(function () {\n self.focus(date);\n });\n }*/\n });\n };\n\n /**\n * Sets the ng-model value for the time pane and emits a change event.\n * @param {Date} date\n */\n TimePaneCtrl.prototype.setNgModelValue = function(date, mode) {\n this.$scope.$emit('sg-time-pane-change', {date:date, changed:mode});\n this.ngModelCtrl.$setViewValue(date);\n this.ngModelCtrl.$render();\n };\n\n /**\n * Focus the cell corresponding to the given date.\n * @param {Date=} opt_date\n */\n TimePaneCtrl.prototype.focus = function(opt_date, sgTimePaneCtrl) {\n var date = opt_date || this.selectedTime || this.today;\n\n var previousFocus = this.timePaneElement.querySelector('.md-focus');\n if (previousFocus) {\n previousFocus.classList.remove(FOCUSED_TIME_CLASS);\n }\n\n if (date) {\n var newH = date.getHours();\n var hCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+newH);\n if (hCell) {\n hCell.classList.add(FOCUSED_TIME_CLASS);\n hCell.focus();\n }\n }\n };\n})();\n\n(function() {\n 'use strict';\n \n angular.module('SOGo.Common')\n .directive('sgTimepicker', timePickerDirective);\n\n /**\n * @ngdoc directive\n * @name mdTimepicker\n * @module material.components.timepicker\n *\n * @param {Date} ng-model The component's model. Expects a JavaScript Date object.\n * @param {expression=} ng-change Expression evaluated when the model value changes.\n * @param {boolean=} disabled Whether the timepicker is disabled.\n *\n * @description\n * `` is a component used to select a single time.\n * For information on how to configure internationalization for the time picker,\n * see `$mdTimeLocaleProvider`.\n *\n * @usage\n * \n * \n * \n *\n */\n function timePickerDirective() {\n return {\n template: [\n // Buttons are not in the tab order because users can open the hours pane via keyboard\n // interaction on the text input, and multiple tab stops for one component (picker)\n // may be confusing.\n '',\n ' access_time',\n '',\n '
',\n ' ',\n ' ',\n '
',\n '
',\n '
',\n // This pane will be detached from here and re-attached to the document body.\n '
',\n '
',\n '
', // using mdColors\n '
',\n '
',\n ' ',\n '
',\n '
'\n ].join(''),\n require: ['ngModel', 'sgTimepicker'],\n scope: {\n placeholder: '@mdPlaceholder'\n },\n controller: TimePickerCtrl,\n controllerAs: 'ctrl',\n bindToController: true,\n link: function(scope, element, attr, controllers) {\n var ngModelCtrl = controllers[0];\n var mdTimePickerCtrl = controllers[1];\n\n mdTimePickerCtrl.configureNgModel(ngModelCtrl);\n }\n };\n }\n\n /** Additional offset for the input's `size` attribute, which is updated based on its content. */\n var EXTRA_INPUT_SIZE = 3;\n\n /** Class applied to the container if the date is invalid. */\n var INVALID_CLASS = 'sg-timepicker-invalid';\n\n /** Default time in ms to debounce input event by. */\n var DEFAULT_DEBOUNCE_INTERVAL = 500;\n\n /**\n * Height of the calendar pane used to check if the pane is going outside the boundary of\n * the viewport. See calendar.scss for how $md-calendar-height is computed; an extra 20px is\n * also added to space the pane away from the exact edge of the screen.\n *\n * This is computed statically now, but can be changed to be measured if the circumstances\n * of calendar sizing are changed.\n */\n var TIME_PANE_HEIGHT = { MIN5: { GTSM: 172 + 20, SM: 292 + 20 },\n MIN1: { GTSM: 364 + 20, SM: 454 + 20 } };\n\n /**\n * Width of the calendar pane used to check if the pane is going outside the boundary of\n * the viewport. See calendar.scss for how $md-calendar-width is computed; an extra 20px is\n * also added to space the pane away from the exact edge of the screen.\n *\n * This is computed statically now, but can be changed to be measured if the circumstances\n * of calendar sizing are changed.\n */\n var TIME_PANE_WIDTH = { GTSM: 510 + 20, SM: 272 + 20 };\n\n /**\n * Controller for sg-timepicker.\n *\n * ngInject @constructor\n */\n function TimePickerCtrl($scope, $element, $attrs, $compile, $timeout, $mdConstant, $mdMedia, $mdTheming,\n $mdUtil, $mdDateLocale, $$mdDateUtil, $$rAF) {\n /** @final */\n this.$compile = $compile;\n\n /** @final */\n this.$timeout = $timeout;\n\n /** @final */\n this.dateLocale = $mdDateLocale;\n\n /** @final */\n this.dateUtil = $$mdDateUtil;\n\n /** @final */\n this.$mdConstant = $mdConstant;\n\n /** @final */\n this.$mdMedia = $mdMedia;\n\n /* @final */\n this.$mdUtil = $mdUtil;\n\n /** @final */\n this.$$rAF = $$rAF;\n\n /** @type {!angular.NgModelController} */\n this.ngModelCtrl = null;\n\n /** @type {HTMLInputElement} */\n this.inputElement = $element[0].querySelector('input');\n\n /** @type {HTMLElement} */\n this.inputContainer = $element[0].querySelector('.sg-timepicker-input-container');\n\n /** @final {!angular.JQLite} */\n this.ngInputElement = angular.element(this.inputElement);\n\n /** @type {HTMLElement} Floating time pane. */\n this.timePane = $element[0].querySelector('.sg-timepicker-time-pane');\n\n /** @type {HTMLElement} Time icon button. */\n this.timeButton = $element[0].querySelector('.sg-timepicker-button');\n\n /**\n * Element covering everything but the input in the top of the floating calendar pane.\n * @type {HTMLElement}\n */\n this.inputMask = $element[0].querySelector('.sg-timepicker-input-mask-opaque');\n\n /** @final {!angular.JQLite} */\n this.$element = $element;\n\n /** @final {!angular.Attributes} */\n this.$attrs = $attrs;\n\n /** @final {!angular.Scope} */\n this.$scope = $scope;\n\n /** @type {Date} */\n this.date = null;\n\n /** @type {boolean} */\n this.isFocused = false;\n\n /** @type {boolean} */\n this.isDisabled = false;\n this.setDisabled($element[0].disabled || angular.isString($attrs.disabled));\n\n /** @type {boolean} Whether the date-picker's calendar pane is open. */\n this.isTimeOpen = false;\n\n /**\n * Element from which the calendar pane was opened. Keep track of this so that we can return\n * focus to it when the pane is closed.\n * @type {HTMLElement}\n */\n this.timePaneOpenedFrom = null;\n\n this.timePane.id = 'sg-time-pane' + $mdUtil.nextUid();\n\n $mdTheming($element);\n\n /** Pre-bound click handler is saved so that the event listener can be removed. */\n this.bodyClickHandler = angular.bind(this, this.handleBodyClick);\n\n /** Pre-bound resize handler so that the event listener can be removed. */\n this.windowResizeHandler = $mdUtil.debounce(angular.bind(this, this.closeTimePane), 100);\n\n // Unless the user specifies so, the datepicker should not be a tab stop.\n // This is necessary because ngAria might add a tabindex to anything with an ng-model\n // (based on whether or not the user has turned that particular feature on/off).\n if (!$attrs.tabindex) {\n $element.attr('tabindex', '-1');\n }\n\n this.installPropertyInterceptors();\n this.attachChangeListeners();\n this.attachInteractionListeners();\n\n var self = this;\n $scope.$on('$destroy', function() {\n self.detachTimePane();\n });\n }\n\n TimePickerCtrl.$inject = [\"$scope\", \"$element\", \"$attrs\", \"$compile\", \"$timeout\", \"$mdConstant\", \"$mdMedia\", \"$mdTheming\",\n \"$mdUtil\", \"$mdDateLocale\", \"$$mdDateUtil\", \"$$rAF\"];\n\n /**\n * Sets up the controller's reference to ngModelController.\n * @param {!angular.NgModelController} ngModelCtrl\n */\n TimePickerCtrl.prototype.configureNgModel = function(ngModelCtrl) {\n this.ngModelCtrl = ngModelCtrl;\n var self = this;\n ngModelCtrl.$render = function() {\n self.time = self.ngModelCtrl.$viewValue;\n self.inputElement.value = self.formatTime(self.time);\n self.resizeInputElement();\n };\n };\n\n TimePickerCtrl.prototype.formatTime = function(time) {\n var t = new Date(time);\n if (t) {\n var h = t.getHours();\n var m = t.getMinutes();\n return (h < 10? ('0' + h) : h) + ':' + (m < 10? ('0' + m) : m);\n }\n else return '';\n };\n /**\n * Attach event listeners for both the text input and the md-time.\n * Events are used instead of ng-model so that updates don't infinitely update the other\n * on a change. This should also be more performant than using a $watch.\n */\n TimePickerCtrl.prototype.attachChangeListeners = function() {\n var self = this;\n\n self.$scope.$on('sg-time-pane-change', function(event, data) {\n var time = new Date(data.date);\n self.ngModelCtrl.$setViewValue(time);\n self.time = time;\n self.inputElement.value = self.formatTime(self.time);\n if (data.changed == 'minutes') {\n self.closeTimePane();\n }\n self.resizeInputElement();\n self.inputContainer.classList.remove(INVALID_CLASS);\n });\n\n self.ngInputElement.on('input', angular.bind(self, self.resizeInputElement));\n self.ngInputElement.on('input', self.$mdUtil.debounce(self.handleInputEvent,\n DEFAULT_DEBOUNCE_INTERVAL, self));\n };\n\n /** Attach event listeners for user interaction. */\n TimePickerCtrl.prototype.attachInteractionListeners = function() {\n var self = this;\n var $scope = this.$scope;\n var keyCodes = this.$mdConstant.KEY_CODE;\n\n // Add event listener through angular so that we can triggerHandler in unit tests.\n self.ngInputElement.on('keydown', function(event) {\n if (event.altKey && event.keyCode == keyCodes.DOWN_ARROW) {\n self.openTimePane(event);\n $scope.$digest();\n }\n });\n\n $scope.$on('md-time-close', function() {\n self.closeTimePane();\n });\n };\n\n /**\n * Capture properties set to the time-picker and imperitively handle internal changes.\n * This is done to avoid setting up additional $watches.\n */\n TimePickerCtrl.prototype.installPropertyInterceptors = function() {\n var self = this;\n\n if (this.$attrs.ngDisabled) {\n // The expression is to be evaluated against the directive element's scope and not\n // the directive's isolate scope.\n var scope = this.$mdUtil.validateScope(this.$element) ? this.$element.scope() : null;\n if (scope) {\n scope.$watch(this.$attrs.ngDisabled, function(isDisabled) {\n self.setDisabled(isDisabled);\n });\n }\n }\n\n Object.defineProperty(this, 'placeholder', {\n get: function() { return self.inputElement.placeholder; },\n set: function(value) { self.inputElement.placeholder = value || ''; }\n });\n };\n\n /**\n * Sets whether the date-picker is disabled.\n * @param {boolean} isDisabled\n */\n TimePickerCtrl.prototype.setDisabled = function(isDisabled) {\n this.isDisabled = isDisabled;\n this.inputElement.disabled = isDisabled;\n this.timeButton.disabled = isDisabled;\n };\n\n /**\n * Resizes the input element based on the size of its content.\n */\n TimePickerCtrl.prototype.resizeInputElement = function() {\n this.inputElement.size = this.inputElement.value.length + EXTRA_INPUT_SIZE;\n };\n\n /**\n * Sets the model value if the user input is a valid time.\n * Adds an invalid class to the input element if not.\n */\n TimePickerCtrl.prototype.handleInputEvent = function(self) {\n var inputString = this.inputElement.value;\n var arr = inputString.split(':');\n\n if (inputString === '') {\n this.ngModelCtrl.$setViewValue(null);\n this.time = null;\n this.inputContainer.classList.remove(INVALID_CLASS);\n }\n else if (arr.length < 2) {\n this.inputContainer.classList.toggle(INVALID_CLASS, inputString);\n }\n else {\n var h = Number(arr[0]);\n var m = Number(arr[1]);\n var newVal = new Date(this.time);\n if (h && h >= 0 && h <= 23 && m && m >= 0 && m <= 59 && angular.isDate(newVal)) {\n newVal.setHours(h);\n newVal.setMinutes(m);\n this.ngModelCtrl.$setViewValue(newVal);\n this.time = newVal;\n this.inputContainer.classList.remove(INVALID_CLASS);\n }\n else {\n this.inputContainer.classList.toggle(INVALID_CLASS, inputString);\n }\n }\n };\n\n /** Position and attach the floating calendar to the document. */\n TimePickerCtrl.prototype.attachTimePane = function() {\n var timePane = this.timePane;\n this.$element.addClass('sg-timepicker-open');\n this.$element.find('button').addClass('md-primary');\n\n var elementRect = this.inputContainer.getBoundingClientRect();\n var bodyRect = document.body.getBoundingClientRect();\n\n // Check to see if the calendar pane would go off the screen. If so, adjust position\n // accordingly to keep it within the viewport.\n var paneTop = elementRect.top - bodyRect.top;\n var paneLeft = elementRect.left - bodyRect.left;\n\n // If the right edge of the pane would be off the screen and shifting it left by the\n // difference would not go past the left edge of the screen.\n var paneWidth = this.$mdMedia('sm')? TIME_PANE_WIDTH.SM : TIME_PANE_WIDTH.GTSM;\n if (paneLeft + paneWidth > bodyRect.right &&\n bodyRect.right - paneWidth > 0) {\n paneLeft = bodyRect.right - paneWidth;\n timePane.classList.add('sg-timepicker-pos-adjusted');\n }\n timePane.style.left = paneLeft + 'px';\n\n // If the bottom edge of the pane would be off the screen and shifting it up by the\n // difference would not go past the top edge of the screen.\n var min = (typeof this.time == 'object' && this.time.getMinutes() % 5 === 0)? 'MIN5' : 'MIN1';\n var paneHeight = this.$mdMedia('sm')? TIME_PANE_HEIGHT[min].SM : TIME_PANE_HEIGHT[min].GTSM;\n if (paneTop + paneHeight > bodyRect.bottom &&\n bodyRect.bottom - paneHeight > 0) {\n paneTop = bodyRect.bottom - paneHeight;\n timePane.classList.add('sg-timepicker-pos-adjusted');\n }\n\n timePane.style.top = paneTop + 'px';\n document.body.appendChild(this.timePane);\n\n // The top of the calendar pane is a transparent box that shows the text input underneath.\n // Since the pane is floating, though, the page underneath the pane *adjacent* to the input is\n // also shown unless we cover it up. The inputMask does this by filling up the remaining space\n // based on the width of the input.\n this.inputMask.style.left = elementRect.width + 'px';\n\n // Add CSS class after one frame to trigger open animation.\n this.$$rAF(function() {\n timePane.classList.add('md-pane-open');\n });\n };\n\n /** Detach the floating time pane from the document. */\n TimePickerCtrl.prototype.detachTimePane = function() {\n this.$element.removeClass('sg-timepicker-open');\n this.$element.find('button').removeClass('md-primary');\n this.timePane.classList.remove('md-pane-open');\n this.timePane.classList.remove('md-timepicker-pos-adjusted');\n\n if (this.timePane.parentNode) {\n // Use native DOM removal because we do not want any of the angular state of this element\n // to be disposed.\n this.timePane.parentNode.removeChild(this.timePane);\n }\n };\n\n /**\n * Open the floating time pane.\n * @param {Event} event\n */\n TimePickerCtrl.prototype.openTimePane = function(event) {\n if (!this.isTimeOpen && !this.isDisabled) {\n this.isTimeOpen = true;\n this.timePaneOpenedFrom = event.target;\n this.attachTimePane();\n //this.focusTime();\n\n // Because the time pane is attached directly to the body, it is possible that the\n // rest of the component (input, etc) is in a different scrolling container, such as\n // an md-content. This means that, if the container is scrolled, the pane would remain\n // stationary. To remedy this, we disable scrolling while the time pane is open, which\n // also matches the native behavior for things like `',\n ' ',\n ' ',\n '
',\n ' ',\n ' ' + l('Cancel'),\n ' ',\n ' ',\n ' ' + l('OK'),\n ' ',\n '
',\n ''\n ].join(''),\n controller: PromptDialogController\n });\n\n /**\n * @ngInject\n */\n PromptDialogController.$inject = ['scope', '$mdDialog'];\n function PromptDialogController(scope, $mdDialog) {\n scope.title = title;\n scope.name = \"\";\n scope.cancel = function() {\n d.reject();\n $mdDialog.hide();\n };\n scope.ok = function() {\n d.resolve(scope.name);\n $mdDialog.hide();\n };\n }\n\n return d.promise;\n };\n\n /**\n * @memberof Dialog\n * @desc The factory we'll register as Dialog in the Angular module SOGo.Common\n * @ngInject\n */\n DialogService.$inject = ['$q', '$mdDialog'];\n function DialogService($q, $mdDialog) {\n angular.extend(Dialog, { $q: $q , $modal: $mdDialog });\n\n return Dialog; // return constructor\n }\n\n /* Factory registration in Angular module */\n angular\n .module('SOGo.Common')\n .factory('Dialog', DialogService);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * Gravatar - A service to build the Gravatar URL for an email address\n * @memberof SOGo.Common\n * @param {string} email\n * @param {number} [size] - the size of the image\n * @ngInject\n */\n function Gravatar() {\n return function(email, size) {\n var x, y, hash, s = size;\n if (!email) {\n return '';\n }\n x = email.indexOf('<');\n if (x >= 0) {\n y = email.indexOf('>', x);\n if (y > x)\n email = email.substring(x+1,y);\n }\n if (!size) {\n s = 48; // default to 48 pixels\n }\n hash = email.md5();\n\n return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=404';\n //return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=retro';\n // return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=identicon';\n // return 'https://www.gravatar.com/avatar/' + hash + '?s=' + s + '&d=wavatar';\n };\n }\n\n angular\n .module('SOGo.Common')\n .factory('Gravatar', Gravatar);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Resource\n * @constructor\n * @param {Object} $http - the Angular HTTP service\n * @param {Object} $q - the Angular promise/deferred service\n * @param {String} path - the base path of the external resource\n * @param {Object} options - extra attributes to be associated to the object\n */\n function Resource($http, $q, path, activeUser, options) {\n angular.extend(this, {\n _http: $http,\n _q: $q,\n _path: path,\n _activeUser: activeUser\n });\n angular.extend(this, options);\n // Trim trailing slash\n this._path = this._path.replace(/\\/$/, '');\n }\n\n /**\n * @memberof Resource\n * @desc The factory we'll use to register with Angular.\n * @return a new Resource object\n */\n Resource.$factory = ['$http', '$q', function($http, $q) {\n return function(path, activeUser, options) {\n return new Resource($http, $q, path, activeUser, options);\n };\n }];\n\n /**\n * @module SOGo.Common\n * @desc Factory registration of Resource in Angular module.\n */\n angular.module('SOGo.Common').factory('Resource', Resource.$factory);\n\n /**\n * @function userResource\n * @memberof Resource.prototype\n * @desc Create a new Resource object associated to a username different than the active user.\n * @param {String} uid - the user UID\n * @return a new Resource object\n */\n Resource.prototype.userResource = function(uid) {\n var path = _.compact(this._activeUser.folderURL.split('/'));\n path.splice(path.length - 1, 1, escape(uid));\n\n return new Resource(this._http, this._q, '/' + path.join('/'), this._activeUser);\n };\n\n /**\n * @function fetch\n * @memberof Resource.prototype\n * @desc Fetch resource using a specific folder, action and/or parameters.\n * @param {string} folderId - the folder on which the action will be applied (ex: addressbook, calendar)\n * @param {string} action - the action to be used in the URL\n * @param {Object} params - Object parameters injected through the $http service\n * @return a promise\n */\n Resource.prototype.fetch = function(folderId, action, params) {\n var deferred = this._q.defer(),\n path = [this._path];\n if (folderId) path.push(folderId.split('/'));\n if (action) path.push(action);\n path = _.compact(_.flatten(path)).join('/');\n\n this._http({\n method: 'GET',\n url: path,\n params: params\n })\n .success(deferred.resolve)\n .error(function(data, status) {\n if (status == 404)\n return deferred.reject();\n });\n\n return deferred.promise;\n };\n\n /**\n * @function newguid\n * @memberof Resource.prototype\n * @desc Fetch a new GUID on the specified folder ID.\n * @return a promise of the new data structure\n */\n Resource.prototype.newguid = function(folderId) {\n var deferred = this._q.defer(),\n path = this._path + '/' + folderId + '/newguid';\n\n this._http\n .get(path)\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function create\n * @memberof Resource.prototype\n * @desc Create a new resource using a specific action (post).\n * @param {string} action - the action to be used in the URL\n * @param {string} name - the new resource's name\n * @return a promise\n */\n Resource.prototype.create = function(action, name) {\n var deferred = this._q.defer(),\n path = this._path + '/' + action;\n\n this._http\n .post(path, { name: name })\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function post\n * @memberof Resource.prototype\n * @desc Post a resource attributes on the server.\n * @return a promise\n */\n Resource.prototype.post = function(id, action, data) {\n var deferred = this._q.defer(),\n path = [this._path];\n if (id) path.push(id);\n if (action) path.push(action);\n path = _.compact(_.flatten(path)).join('/');\n\n this._http\n .post(path, data)\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function save\n * @memberof Resource.prototype\n * @desc Save a resource attributes on the server (post /save).\n * @return a promise\n */\n Resource.prototype.save = function(id, newValue, options) {\n var deferred = this._q.defer(),\n action = (options && options.action)? options.action : 'save';\n\n return this.post(id, action, newValue);\n };\n\n /**\n * @function remove\n * @memberof Resource.prototype\n * @desc Delete a resource (get /delete).\n * @return a promise\n */\n Resource.prototype.remove = function(uid) {\n var deferred = this._q.defer(),\n path = this._path + '/' + uid + '/delete';\n\n this._http\n .get(path)\n .success(deferred.resolve)\n .error(deferred.reject);\n\n return deferred.promise;\n };\n\n})();\n","(function() {\n 'use strict';\n\n /**\n * @name User\n * @constructor\n * @param {object} [userData] - some default values for the user\n */\n function User(userData) {\n if (userData) {\n this.init(userData);\n }\n }\n\n /**\n * @memberof User\n * @desc The factory we'll use to register with Angular.\n * @return the User constructor\n */\n User.factory = ['$q', '$log', 'sgSettings', 'Resource', 'Gravatar', function($q, $log, Settings, Resource, Gravatar) {\n angular.extend(User, {\n $q: $q,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL'), Settings.activeUser()),\n $gravatar: Gravatar,\n $query: '',\n $users: []\n });\n\n return User;\n }];\n\n /**\n * @module SOGo.Common\n * @desc Factory registration of User in Angular module.\n */\n angular.module('SOGo.Common').factory('User', User.factory);\n\n /**\n * @memberof User\n * @desc Search for users that match a string.\n * @param {string} search - a string used to performed the search\n * @param {object[]} excludedUsers - a list of User objects that must be excluded from the results\n * @return a promise of an array of matching User objects\n */\n User.$filter = function(search, excludedUsers, options) {\n var _this = this, param = {search: search};\n\n if (!options || !options.dry) {\n if (!search) {\n // No query specified\n User.$users.splice(0, User.$users.length);\n return User.$q.when(User.$users);\n }\n if (User.$query == search) {\n // Query hasn't changed\n return User.$q.when(User.$users);\n }\n User.$query = search;\n }\n\n return User.$$resource.fetch(null, 'usersSearch', param).then(function(response) {\n var results, index, user, users,\n compareUids = function(data) {\n return this.uid == data.uid;\n };\n\n if (options && options.dry)\n users = [];\n else\n users = User.$users;\n\n if (excludedUsers) {\n // Remove excluded users from response\n results = _.filter(response.users, function(user) {\n return !_.find(excludedUsers, compareUids, user);\n });\n }\n else {\n results = response.users;\n }\n\n // Remove users that no longer match the search query\n for (index = users.length - 1; index >= 0; index--) {\n user = users[index];\n if (!_.find(results, compareUids, user)) {\n users.splice(index, 1);\n }\n }\n // Add new users matching the search query\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(users, compareUids, data))) {\n var user = new User(data);\n users.splice(index, 0, user);\n }\n });\n User.$log.debug(users);\n return users;\n });\n };\n\n /**\n * @function init\n * @memberof User.prototype\n * @desc Extend instance with required attributes and new data.\n * @param {object} data - attributes of user\n */\n User.prototype.init = function(data) {\n angular.extend(this, data);\n if (!this.$$shortFormat)\n this.$$shortFormat = this.$shortFormat();\n if (!this.$$image)\n this.$$image = this.image || User.$gravatar(this.c_email);\n\n // An empty attribute to trick md-autocomplete when adding users from the ACLs editor\n this.empty = ' ';\n };\n\n /**\n * @function $shortFormat\n * @memberof User.prototype\n * @return the fullname along with the email address\n */\n User.prototype.$shortFormat = function(options) {\n var fullname = this.cn || this.c_email;\n var email = this.c_email;\n var no_email = options && options.email === false;\n if (!no_email && email && fullname != email) {\n fullname += ' <' + email + '>';\n }\n return fullname;\n };\n\n /**\n * @function $acl\n * @memberof User.prototype\n * @desc Fetch the user rights associated to a specific folder and populate the 'rights' attribute.\n * @param {string} the folder ID\n * @param {Object} owner - the owner to use when fetching the ACL as it might not be the Settings.activeUser\n * @return a promise\n */\n User.prototype.$acl = function(folderId, owner) {\n var _this = this,\n deferred = User.$q.defer(),\n param = {uid: this.uid};\n if (this.$shadowRights) {\n deferred.resolve(this.rights);\n }\n else {\n var rights;\n\n if (angular.isDefined(owner))\n rights = User.$$resource.userResource(owner).fetch(folderId, 'userRights', param);\n else\n rights = User.$$resource.fetch(folderId, 'userRights', param);\n\n rights.then(function(data) {\n _this.rights = data;\n // Convert numbers (0|1) to boolean values\n //angular.forEach(_.keys(_this.rights), function(key) {\n // _this.rights[key] = _this.rights[key] ? true : false;\n //});\n // console.debug('rights ' + _this.uid + ' => ' + JSON.stringify(data, undefined, 2));\n // Keep a copy of the server's version\n _this.$shadowRights = angular.copy(data);\n deferred.resolve(data);\n return data;\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $isAnonymous\n * @memberof User.prototype\n * @return true if it's the special anonymous user\n */\n User.prototype.$isAnonymous = function() {\n return this.uid == 'anonymous';\n };\n\n /**\n * @function $isSpecial\n * @memberof User.prototype\n * @desc Only accurate from the ACL editor.\n * @return true if the user is not a regular system user\n */\n User.prototype.$isSpecial = function() {\n return this.userClass && this.userClass == 'public-user';\n };\n\n /**\n * @function $confirmRights\n * @memberof User.prototype\n * @desc Check if a confirmation is required before giving some rights.\n * @return the confirmation message or false if no confirmation is required\n */\n User.prototype.$confirmRights = function() {\n var confirmation = false;\n\n if (this.$confirmation) {\n // Don't bother the user more than once\n return false;\n }\n\n if (_.some(_.values(this.rights))) {\n if (this.uid == 'anonymous') {\n confirmation = l('Potentially anyone on the Internet will be able to access your folder, even if they do not have an account on this system. Is this information suitable for the public Internet?');\n }\n else if (this.uid == '') {\n confirmation = l('Any user with an account on this system will be able to access your folder. Are you certain you trust them all?');\n }\n }\n\n this.$confirmation = confirmation;\n\n return confirmation;\n };\n\n /**\n * @function $rightsAreDirty\n * @memberof User.prototype\n * @return whether or not the rights have changed from their initial values\n */\n User.prototype.$rightsAreDirty = function() {\n return this.rights && !_.isEqual(this.rights, this.$shadowRights);\n };\n\n /**\n * @function $resetRights\n * @memberof User.prototype\n * @desc Restore initial rights or disable all rights\n * @param {boolean} [zero] - reset all rights to zero when true\n */\n User.prototype.$resetRights = function(zero) {\n var _this = this;\n if (zero) {\n // Disable all rights\n _.map(_.keys(this.rights), function(key) {\n if (angular.isString(_this.rights[key]))\n _this.rights[key] = 'None';\n else\n _this.rights[key] = 0;\n });\n }\n else {\n // Restore initial rights\n this.rights = angular.copy(this.$shadowRights);\n }\n };\n\n /**\n * @function $folders\n * @memberof User.prototype\n * @desc Retrieve the list of folders of a specific type\n * @param {string} type - either 'contact' or 'calendar'\n * @return a promise of the HTTP query result or the cached result\n */\n User.prototype.$folders = function(type) {\n var _this = this,\n deferred = User.$q.defer(),\n param = {type: type};\n if (this.$$folders) {\n deferred.resolve(this.$$folders);\n }\n else {\n User.$$resource.userResource(this.uid).fetch(null, 'foldersSearch', param).then(function(response) {\n _this.$$folders = response.folders;\n deferred.resolve(response.folders);\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $omit\n * @memberof User.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the User instance\n */\n User.prototype.$omit = function() {\n var user = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n user[key] = value;\n }\n });\n return user;\n };\n\n User.prototype.toString = function() {\n return '[User ' + this.c_email + ']';\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n \n /**\n * sgFocus - A service to set the focus on the element associated to a specific string\n * @memberof SOGo.Common\n * @param {string} name - the string identifier of the element\n * @see {@link SOGo.Common.sgFocusOn}\n * @ngInject\n */\n sgFocus.$inject = ['$rootScope', '$timeout'];\n function sgFocus($rootScope, $timeout) {\n return function(name) {\n $timeout(function() {\n $rootScope.$broadcast('sgFocusOn', name);\n });\n };\n }\n\n angular\n .module('SOGo.Common')\n .factory('sgFocus', sgFocus);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true, newcap: false */\n 'use strict';\n\n /**\n * sgAvatarImage - An avatar directive that returns un img element with either a local URL (if sg-src is specified)\n * or a Gravatar URL built from the Gravatar factory.\n * Based on http://blog.lingohub.com/2014/08/better-ux-with-angularjs-directives/.\n * @memberof SOGo.Common\n * @example:\n \n */\n function sgAvatarImage() {\n return {\n restrict: 'AE',\n scope: {\n size: '@',\n email: '=sgEmail',\n src: '=sgSrc'\n },\n template: '',\n link: link,\n bindToController: true,\n controller: 'sgAvatarImageController',\n controllerAs: 'vm'\n };\n }\n\n function link(scope, element, attrs, controller) {\n var el = element[0],\n className = el.className,\n imgElement = element.find('img'),\n img = imgElement[0];\n\n if (attrs.size) {\n imgElement.attr('width', attrs.size);\n imgElement.attr('height', attrs.size);\n }\n\n imgElement.bind('error', function() {\n // Error while loading external link; insert a generic avatar\n controller.insertGenericAvatar(img);\n });\n }\n\n /**\n * @ngInject\n */\n sgAvatarImageController.$inject = ['$scope', '$element', 'Gravatar'];\n function sgAvatarImageController($scope, $element, Gravatar) {\n var vm = this;\n\n $scope.$watch('vm.email', function(email) {\n var img = $element.find('img')[0];\n if (!email && !vm.genericAvatar) {\n // If no email is specified, insert a generic avatar\n vm.insertGenericAvatar(img);\n }\n else if (email && !vm.url) {\n if (vm.genericAvatar) {\n // Remove generic avatar and restore visibility of image\n vm.genericAvatar.parentNode.removeChild(vm.genericAvatar);\n delete vm.genericAvatar;\n img.classList.remove('ng-hide');\n }\n vm.url = Gravatar(email, vm.size);\n }\n });\n\n // If sg-src is defined, watch the expression for the URL of a local image\n if ('sg-src' in $element[0].attributes) {\n $scope.$watch('vm.src', function(src) {\n if (src) {\n vm.url = src;\n }\n });\n }\n\n vm.insertGenericAvatar = function(img) {\n var avatar;\n\n if (!vm.genericAvatar) {\n avatar = document.createElement('md-icon');\n avatar.className = 'material-icons icon-person';\n img.classList.add('ng-hide');\n vm.genericAvatar = img.parentNode.insertBefore(avatar, img);\n }\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgAvatarImage', sgAvatarImage)\n .controller('sgAvatarImageController', sgAvatarImageController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /*\n * sgColorPicker - Color picker widget\n * @restrict element\n * @param {function} sgOnSelect - the function to call when clicking on a color.\n * One variable is available: color.\n * @ngInject\n * @example:\n\n \n */\n sgColorPicker.$inject = ['$parse'];\n function sgColorPicker($parse) {\n return {\n restrict: 'E',\n template: [\n '',\n ' ',\n ' color_lens',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n ''\n ].join(''),\n replace: true,\n bindToController: true,\n controller: sgColorPickerController,\n controllerAs: '$sgColorPickerController',\n link: link\n };\n\n function link(scope, iElement, iAttr, controller) {\n // Associate callback to controller\n controller.doSelect = $parse(iElement.attr('sg-on-select'));\n }\n }\n \n /**\n * @ngInject\n */\n sgColorPickerController.$inject = ['$scope', 'sgColors'];\n function sgColorPickerController($scope, sgColors) {\n var vm = this;\n\n vm.colors = sgColors.selection;\n vm.select = function(color) {\n vm.doSelect($scope, { color: color });\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgColorPicker', sgColorPicker);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCompile - Assign an expression to a DOM element and compile it.\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} sgCompile - the expression to compile\n * @ngInject\n * @example:\n\n
\n */\n sgCompile.$inject = ['$compile'];\n function sgCompile($compile) {\n return {\n restrict: 'A',\n link: sgCompileLink\n };\n\n function sgCompileLink(scope, element, attrs) {\n var ensureCompileRunsOnce = scope.$watch(\n function(scope) {\n // Watch the sg-compile expression for changes\n return scope.$eval(attrs.sgCompile);\n },\n function(value) {\n // When the sg-compile expression changes, assign it into the current DOM\n element.html(value);\n \n // Compile the new DOM and link it to the current scope.\n // NOTE: we only compile .childNodes so that we don't get into infinite loop compiling ourselves\n $compile(element.contents())(scope);\n \n // Use un-watch feature to ensure compilation happens only once.\n ensureCompileRunsOnce();\n }\n );\n }\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgCompile', sgCompile);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgEnter - A directive evaluated when the enter key is pressed\n * @memberof SOGo.Common\n * @ngInject\n * @example:\n\n \n */\n function sgEnter() {\n var ENTER_KEY = 13;\n return function(scope, element, attrs) {\n element.bind(\"keydown keypress\", function(event) {\n if (event.which === ENTER_KEY) {\n scope.$apply(attrs.sgEnter);\n event.preventDefault();\n }\n });\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgEnter', sgEnter);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgEscape - A directive evaluated when the escape key is pressed\n * @memberof SOGo.Common\n * @ngInject\n * @example:\n\n \n */\n function sgEscape() {\n var ESCAPE_KEY = 27;\n return function(scope, elem, attrs) {\n elem.bind('keydown', function(event) {\n if (event.keyCode === ESCAPE_KEY) {\n scope.$apply(attrs.sgEscape);\n }\n });\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgEscape', sgEscape);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgFocusOn - A directive that sets the focus on its element when the specified string is broadcasted\n * @memberof SOGo.Common\n * @see {@link SOGo.Common.sgFocus}\n * @ngInject\n * @example:\n\n \n */\n function sgFocusOn() {\n return function(scope, elem, attr) {\n scope.$on('sgFocusOn', function(e, name) {\n if (name === attr.sgFocusOn) {\n elem[0].focus();\n elem[0].select();\n }\n });\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgFocusOn', sgFocusOn);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgFolderStylesheet - Add CSS stylesheet for folder (addressbook or calendar)\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {object} ngModel - the object literal describing the folder (an Addressbook or Calendar instance)\n * @example:\n\n
\n
\n */\n function sgFolderStylesheet() {\n return {\n restrict: 'A',\n require: 'ngModel',\n scope: {\n ngModel: '='\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgFolderStylesheet', sgFolderStylesheet);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * sgPlaceholder - A directive for dynamic placeholder\n * @memberof SOGo.Common\n * @ngInject\n * @example:\n\n \n */\n function sgPlaceholder() {\n return {\n restrict: 'A',\n scope: {\n placeholder: '=sgPlaceholder'\n },\n link: function(scope, elem, attr) {\n scope.$watch('placeholder',function() {\n elem[0].placeholder = scope.placeholder;\n });\n }\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgPlaceholder', sgPlaceholder);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /*\n * sgSearch - Search within a list of items\n * @memberof SOGo.Common\n * @restrict attribute\n * @param {function} sgSearch - the function to call when performing a search.\n * Two variables are available: searchField and searchText.\n * @example:\n\n
\n \n arrow_back\n \n \n \n \n \n Subject\n sender\n \n
\n */\n sgSearchPreTransclude.$inject = ['$parse'];\n function sgSearchPreTransclude($parse) {\n return {\n restrict: 'A',\n controller: 'sgSearchController',\n controllerAs: '$sgSearchController',\n priority: 1001,\n compile: compile\n };\n\n function compile(tElement, tAttr) {\n var mdInputEl = tElement.find('md-input-container'),\n inputEl = tElement.find('input'),\n selectEl = tElement.find('md-select'),\n buttonEl = tElement.find('md-button');\n\n inputEl.attr('ng-model', '$sgSearchController.searchText');\n inputEl.attr('ng-model-options', '$sgSearchController.searchTextOptions');\n inputEl.attr('ng-change', '$sgSearchController.onChange()');\n if (selectEl) {\n selectEl.attr('ng-model', '$sgSearchController.searchField');\n selectEl.attr('ng-change', '$sgSearchController.onChange()');\n }\n if (buttonEl && buttonEl.attr('sg-search-cancel')) {\n buttonEl.attr('ng-click', buttonEl.attr('sg-search-cancel'));\n buttonEl.removeAttr('sg-search-cancel');\n }\n else {\n buttonEl = null;\n }\n\n return function postLink(scope, iElement, iAttr, controller) {\n var compiledButtonEl = iElement.find('button');\n\n // Associate callback to controller\n controller.doSearch = $parse(iElement.attr('sg-search'));\n\n // Reset the input field when cancelling the search\n if (buttonEl && compiledButtonEl) {\n compiledButtonEl.on('click', controller.cancelSearch);\n }\n };\n }\n }\n\n function sgSearch() {\n return {\n restrict: 'A',\n priority: 1000,\n transclude: true,\n compile: compile\n };\n\n function compile(tElement, tAttr) {\n return function postLink(scope, iElement, iAttr, controller, transclude) {\n transclude(function(clone) {\n iElement.append(clone);\n });\n };\n }\n }\n\n /**\n * @ngInject\n */\n sgSearchController.$inject = ['$scope', '$element'];\n function sgSearchController($scope, $element) {\n var vm = this;\n\n // Controller variables\n vm.previous = { searchText: '', searchField: '' };\n vm.searchText = null;\n\n // Model options\n vm.searchTextOptions = {\n updateOn: 'default blur',\n debounce: {\n default: 300,\n blur: 0\n }\n };\n\n // Method to call on data changes\n vm.onChange = function() {\n if (typeof vm.searchText !== 'undefined' && vm.searchText !== null) {\n if (vm.searchText != vm.previous.searchText || vm.searchField != vm.previous.searchField) {\n if (vm.searchText.length > 2 || vm.searchText.length === 0) {\n // doSearch is the compiled expression of the sg-search attribute\n vm.doSearch($scope, { searchText: vm.searchText, searchField: vm.searchField });\n }\n vm.previous = { searchText: vm.searchText, searchField: vm.searchField };\n }\n }\n };\n\n // Reset input field when cancelling the search\n vm.cancelSearch = function() {\n vm.searchText = \"\";\n };\n }\n\n angular\n .module('SOGo.Common')\n .controller('sgSearchController', sgSearchController)\n .directive('sgSearch', sgSearchPreTransclude)\n .directive('sgSearch', sgSearch);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /*\n * sgSubscribe - Common subscription widget\n * @restrict attribute\n * @param {string} sgSubscribe - the folder type\n * @param {function} sgSubscribeOnSelect - the function to call when subscribing to a folder.\n * One variable is available: folderData.\n * @ngInject\n * @example:\n\n Subscribe ..\n */\n sgSubscribe.$inject = ['User'];\n function sgSubscribe(User) {\n return {\n restrict: 'A',\n scope: {\n folderType: '@sgSubscribe',\n onFolderSelect: '&sgSubscribeOnSelect'\n },\n replace: false,\n bindToController: true,\n controller: sgSubscribeDialogController,\n controllerAs: '$sgSubscribeDialogController',\n link: link\n };\n }\n\n function link(scope, element, attrs, controller) {\n var inputEl = element.find('input');\n element.on('click', controller.showDialog);\n }\n\n /**\n * @ngInject\n */\n sgSubscribeDialogController.$inject = ['$mdDialog'];\n function sgSubscribeDialogController($mdDialog) {\n var vm = this;\n vm.showDialog = function() {\n $mdDialog.show({\n templateUrl: '../Contacts/UIxContactsUserFolders',\n clickOutsideToClose: true,\n locals: {\n folderType: vm.folderType,\n onFolderSelect: vm.onFolderSelect\n },\n controller: sgSubscribeController,\n controllerAs: 'subscribe'\n });\n };\n }\n\n /**\n * @ngInject\n */\n sgSubscribeController.$inject = ['$mdDialog', 'folderType', 'onFolderSelect', 'User'];\n function sgSubscribeController($mdDialog, folderType, onFolderSelect, User) {\n var vm = this;\n\n vm.selectedUser = null;\n vm.users = User.$users;\n\n vm.searchTextOptions = {\n updateOn: 'default blur',\n debounce: {\n default: 300,\n blur: 0\n }\n };\n\n vm.onChange = function() {\n User.$filter(vm.searchText).then(function() {\n if (vm.selectedUser) {\n // If selected user is no longer part of the matching users, unselect it\n if (_.isUndefined(_.find(User.$users, function(user) {\n return user.uid == vm.selectedUser.uid;\n }))) {\n vm.selectedUser = null;\n }\n }\n });\n };\n\n vm.selectUser = function(i) {\n if (vm.selectedUser == vm.users[i]) {\n vm.selectedUser = null;\n }\n else {\n // Fetch folders of specific type for selected user\n vm.users[i].$folders(folderType).then(function() {\n vm.selectedUser = vm.users[i];\n });\n }\n };\n\n // Callback upon subscription to a folder\n vm.selectFolder = function(folder) {\n onFolderSelect({folderData: folder});\n };\n\n vm.close = function() {\n $mdDialog.hide();\n };\n }\n\n angular\n .module('SOGo.Common')\n .directive('sgSubscribe', sgSubscribe);\n})();\n","(function() {\n 'use strict';\n\n angular\n .module('SOGo.Common')\n .directive('sgTimePane', timePaneDirective);\n \n function timePaneDirective() {\n return {\n template: [\n '
',\n '
',\n '
',\n '
',\n ' {{hour.displayName}}',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n ' {{minute.displayName}}',\n '
',\n '
',\n '
',\n '
',\n '
',\n '
',\n ' {{minute.displayName}}',\n '
',\n '
',\n '
',\n '
',\n ' ',\n '
',\n '
'\n ].join(''),\n scope: {},\n require: ['ngModel', 'sgTimePane'],\n controller: TimePaneCtrl,\n controllerAs: 'ctrl',\n bindToController: true,\n link: function(scope, element, attrs, controllers) {\n var ngModelCtrl = controllers[0];\n var sgTimePaneCtrl = controllers[1];\n var timePaneElement = element;\n sgTimePaneCtrl.configureNgModel(ngModelCtrl, sgTimePaneCtrl, timePaneElement);\n }\n };\n }\n\n /** Class applied to the selected hour or minute cell/. */\n var SELECTED_TIME_CLASS = 'md-bg';\n\n /** Class applied to the focused hour or minute cell/. */\n var FOCUSED_TIME_CLASS = 'md-focus';\n\n /** Next identifier for calendar instance. */\n var nextTimePaneUniqueId = 0;\n\n function TimePaneCtrl($element, $attrs, $scope, $animate, $q, $mdConstant,\n $mdTheming, $$mdDateUtil, $mdDateLocale, $mdInkRipple, $mdUtil) {\n var m;\n this.$scope = $scope;\n this.$element = $element;\n this.timePaneElement = $element[0].querySelector('.sg-time-pane');\n this.$animate = $animate;\n this.$q = $q;\n this.$mdInkRipple = $mdInkRipple;\n this.$mdUtil = $mdUtil;\n this.keyCode = $mdConstant.KEY_CODE;\n this.dateUtil = $$mdDateUtil;\n this.id = nextTimePaneUniqueId++;\n this.ngModelCtrl = null;\n this.selectedTime = null;\n this.displayTime = null;\n this.isInitialized = false;\n\n $scope.hours=[];\n $scope.hours[0]=[];\n $scope.hours[0][0]=[];\n $scope.hours[0][1]=[];\n $scope.hours[1]=[];\n $scope.hours[1][0]=[];\n $scope.hours[1][1]=[];\n for(var i=0; i<6; i++){\n $scope.hours[0][0][i] = {id:'tp-'+this.id+'-hour-'+i, displayName:i<10?\"0\"+i:\"\"+i, selected:false};\n $scope.hours[0][1][i] = {id:'tp-'+this.id+'-hour-'+(i+6),displayName:(i+6)<10?\"0\"+(i+6):\"\"+(i+6), selected:false};\n $scope.hours[1][0][i] = {id:'tp-'+this.id+'-hour-'+(i+12), displayName:\"\"+(i+12), selected:false};\n $scope.hours[1][1][i] = {id:'tp-'+this.id+'-hour-'+(i+18), displayName:\"\"+(i+18), selected:false};\n }\n\n $scope.min5=[];\n $scope.min5[0]=[];\n $scope.min5[1]=[];\n for(i=0; i<6; i++){\n m=i*5;\n $scope.min5[0][i] = {id:'tp-'+this.id+'-minute5-'+m, displayName:m<10?\":0\"+m:\":\"+m, selected:true};\n $scope.min5[1][i] = {id:'tp-'+this.id+'-minute5-'+(m+30), displayName:\":\"+(m+30), selected:false};\n }\n\n $scope.min1=[];\n for(i=0; i<12; i++){\n $scope.min1[i]=[];\n for(var ii=0; ii<5; ii++){\n m=i*5 + ii;\n $scope.min1[i][ii] = {id:'tp-'+this.id+'-minute-'+m, displayName:m<10?\":0\"+m:\":\"+m, selected:true};\n }\n }\n\n $scope.show5min = true;\n $scope.getToggleBtnLbl = function() {\n return ($scope.is5min()) ? '>>' : '<<';\n };\n $scope.toggleManual5min = function() {\n $scope.manual5min = !$scope.is5min();\n };\n $scope.is5min = function() {\n if ($scope.manual5min === true || $scope.manual5min === false) {\n return $scope.manual5min;\n }\n else {\n return $scope.show5min;\n }\n };\n\n if (!$attrs.tabindex) {\n $element.attr('tabindex', '-1');\n }\n\n var self = this;\n\n this.hourClickHandler = function(displayVal) {\n var updated = new Date(self.displayTime);\n updated.setHours(Number(displayVal));\n self.setNgModelValue(updated, 'hours');\n };\n $scope.hourClickHandler = this.hourClickHandler;\n\n this.minuteClickHandler = function(displayVal) {\n //remove leading ':'\n var val = displayVal.substr(1);\n var updated = new Date(self.displayTime);\n updated.setMinutes(Number(val));\n self.setNgModelValue(updated, 'minutes');\n };\n $scope.minuteClickHandler = this.minuteClickHandler;\n\n this.attachTimePaneEventListeners();\n }\n TimePaneCtrl.$inject = [\"$element\", \"$attrs\", \"$scope\", \"$animate\", \"$q\", \"$mdConstant\", \"$mdTheming\", \"$$mdDateUtil\", \"$mdDateLocale\", \"$mdInkRipple\", \"$mdUtil\"];\n\n TimePaneCtrl.prototype.configureNgModel = function(ngModelCtrl, sgTimePaneCtrl, timePaneElement) {\n this.ngModelCtrl = ngModelCtrl;\n\n var self = this;\n ngModelCtrl.$render = function() {\n self.changeSelectedTime(self.ngModelCtrl.$viewValue, sgTimePaneCtrl, timePaneElement);\n };\n };\n\n /**\n * Change the selected date in the time (ngModel value has already been changed).\n */\n TimePaneCtrl.prototype.changeSelectedTime = function(date, sgTimePaneCtrl, timePaneElement) {\n var self = this;\n var previousSelectedTime = this.selectedTime;\n this.selectedTime = date;\n this.changeDisplayTime(date).then(function() {\n\n // Remove the selected class from the previously selected date, if any.\n if (previousSelectedTime) {\n var prevH = previousSelectedTime.getHours();\n var prevHCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+prevH);\n if (prevHCell) {\n prevHCell.classList.remove(SELECTED_TIME_CLASS);\n prevHCell.setAttribute('aria-selected', 'false');\n }\n var prevM = previousSelectedTime.getMinutes();\n var prevMCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute-'+prevM);\n if (prevMCell) {\n prevMCell.classList.remove(SELECTED_TIME_CLASS);\n prevMCell.setAttribute('aria-selected', 'false');\n }\n var prevM5Cell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute5-'+prevM);\n if (prevM5Cell) {\n prevM5Cell.classList.remove(SELECTED_TIME_CLASS);\n prevM5Cell.setAttribute('aria-selected', 'false');\n }\n }\n\n // Apply the select class to the new selected date if it is set.\n if (date) {\n var newH = date.getHours();\n var mCell, hCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+newH);\n if (hCell) {\n hCell.classList.add(SELECTED_TIME_CLASS);\n hCell.setAttribute('aria-selected', 'true');\n }\n var newM = date.getMinutes();\n if (newM % 5 === 0) {\n sgTimePaneCtrl.$scope.show5min = true;\n mCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute5-'+newM);\n if (mCell) {\n mCell.classList.add(SELECTED_TIME_CLASS);\n mCell.setAttribute('aria-selected', 'true');\n }\n }\n else {\n sgTimePaneCtrl.$scope.show5min = false;\n }\n mCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-minute-'+newM);\n if (mCell) {\n mCell.classList.add(SELECTED_TIME_CLASS);\n mCell.setAttribute('aria-selected', 'true');\n }\n\n }\n });\n };\n\n TimePaneCtrl.prototype.changeDisplayTime = function(date) {\n var d = new Date(date);\n if (!this.isInitialized) {\n this.buildInitialTimePaneDisplay();\n return this.$q.when();\n }\n if (!this.dateUtil.isValidDate(d)) {\n return this.$q.when();\n }\n\n this.displayTime = d;\n\n return this.$q.when();\n };\n TimePaneCtrl.prototype.buildInitialTimePaneDisplay = function() {\n this.displayTime = this.selectedTime || this.today;\n this.isInitialized = true;\n };\n\n TimePaneCtrl.prototype.attachTimePaneEventListeners = function() {\n // Keyboard interaction.\n this.$element.on('keydown', angular.bind(this, this.handleKeyEvent));\n };\n\n /*** User input handling ***/\n\n /**\n * Handles a key event in the calendar with the appropriate action. The action will either\n * be to select the focused date or to navigate to focus a new date.\n * @param {KeyboardEvent} event\n */\n TimePaneCtrl.prototype.handleKeyEvent = function(event) {\n var self = this;\n this.$scope.$apply(function() {\n // Capture escape and emit back up so that a wrapping component\n // (such as a time-picker) can decide to close.\n if (event.which == self.keyCode.ESCAPE || event.which == self.keyCode.TAB) {\n self.$scope.$emit('md-time-pane-close');\n\n if (event.which == self.keyCode.TAB) {\n event.preventDefault();\n }\n\n return;\n }\n\n // Remaining key events fall into two categories: selection and navigation.\n // Start by checking if this is a selection event.\n if (event.which === self.keyCode.ENTER) {\n self.setNgModelValue(self.displayTime, 'enter');\n event.preventDefault();\n return;\n }\n\n // Selection isn't occuring, so the key event is either navigation or nothing.\n /*var date = self.getFocusDateFromKeyEvent(event);\n if (date) {\n event.preventDefault();\n event.stopPropagation();\n\n // Since this is a keyboard interaction, actually give the newly focused date keyboard\n // focus after the been brought into view.\n self.changeDisplayTime(date).then(function () {\n self.focus(date);\n });\n }*/\n });\n };\n\n /**\n * Sets the ng-model value for the time pane and emits a change event.\n * @param {Date} date\n */\n TimePaneCtrl.prototype.setNgModelValue = function(date, mode) {\n this.$scope.$emit('sg-time-pane-change', {date:date, changed:mode});\n this.ngModelCtrl.$setViewValue(date);\n this.ngModelCtrl.$render();\n };\n\n /**\n * Focus the cell corresponding to the given date.\n * @param {Date=} opt_date\n */\n TimePaneCtrl.prototype.focus = function(opt_date, sgTimePaneCtrl) {\n var date = opt_date || this.selectedTime || this.today;\n\n var previousFocus = this.timePaneElement.querySelector('.md-focus');\n if (previousFocus) {\n previousFocus.classList.remove(FOCUSED_TIME_CLASS);\n }\n\n if (date) {\n var newH = date.getHours();\n var hCell = document.getElementById('tp-'+sgTimePaneCtrl.id+'-hour-'+newH);\n if (hCell) {\n hCell.classList.add(FOCUSED_TIME_CLASS);\n hCell.focus();\n }\n }\n };\n})();\n\n(function() {\n 'use strict';\n \n angular.module('SOGo.Common')\n .directive('sgTimepicker', timePickerDirective);\n\n /**\n * @ngdoc directive\n * @name mdTimepicker\n * @module material.components.timepicker\n *\n * @param {Date} ng-model The component's model. Expects a JavaScript Date object.\n * @param {expression=} ng-change Expression evaluated when the model value changes.\n * @param {boolean=} disabled Whether the timepicker is disabled.\n *\n * @description\n * `` is a component used to select a single time.\n * For information on how to configure internationalization for the time picker,\n * see `$mdTimeLocaleProvider`.\n *\n * @usage\n * \n * \n * \n *\n */\n function timePickerDirective() {\n return {\n template: [\n // Buttons are not in the tab order because users can open the hours pane via keyboard\n // interaction on the text input, and multiple tab stops for one component (picker)\n // may be confusing.\n '',\n ' access_time',\n '',\n '
',\n ' ',\n ' ',\n '
',\n '
',\n '
',\n // This pane will be detached from here and re-attached to the document body.\n '
',\n '
',\n '
', // using mdColors\n '
',\n '
',\n ' ',\n '
',\n '
'\n ].join(''),\n require: ['ngModel', 'sgTimepicker'],\n scope: {\n placeholder: '@mdPlaceholder'\n },\n controller: TimePickerCtrl,\n controllerAs: 'ctrl',\n bindToController: true,\n link: function(scope, element, attr, controllers) {\n var ngModelCtrl = controllers[0];\n var mdTimePickerCtrl = controllers[1];\n\n mdTimePickerCtrl.configureNgModel(ngModelCtrl);\n }\n };\n }\n\n /** Additional offset for the input's `size` attribute, which is updated based on its content. */\n var EXTRA_INPUT_SIZE = 3;\n\n /** Class applied to the container if the date is invalid. */\n var INVALID_CLASS = 'sg-timepicker-invalid';\n\n /** Default time in ms to debounce input event by. */\n var DEFAULT_DEBOUNCE_INTERVAL = 500;\n\n /**\n * Height of the calendar pane used to check if the pane is going outside the boundary of\n * the viewport. See calendar.scss for how $md-calendar-height is computed; an extra 20px is\n * also added to space the pane away from the exact edge of the screen.\n *\n * This is computed statically now, but can be changed to be measured if the circumstances\n * of calendar sizing are changed.\n */\n var TIME_PANE_HEIGHT = { MIN5: { GTSM: 172 + 20, SM: 292 + 20 },\n MIN1: { GTSM: 364 + 20, SM: 454 + 20 } };\n\n /**\n * Width of the calendar pane used to check if the pane is going outside the boundary of\n * the viewport. See calendar.scss for how $md-calendar-width is computed; an extra 20px is\n * also added to space the pane away from the exact edge of the screen.\n *\n * This is computed statically now, but can be changed to be measured if the circumstances\n * of calendar sizing are changed.\n */\n var TIME_PANE_WIDTH = { GTSM: 510 + 20, SM: 272 + 20 };\n\n /**\n * Controller for sg-timepicker.\n *\n * ngInject @constructor\n */\n function TimePickerCtrl($scope, $element, $attrs, $compile, $timeout, $mdConstant, $mdMedia, $mdTheming,\n $mdUtil, $mdDateLocale, $$mdDateUtil, $$rAF) {\n /** @final */\n this.$compile = $compile;\n\n /** @final */\n this.$timeout = $timeout;\n\n /** @final */\n this.dateLocale = $mdDateLocale;\n\n /** @final */\n this.dateUtil = $$mdDateUtil;\n\n /** @final */\n this.$mdConstant = $mdConstant;\n\n /** @final */\n this.$mdMedia = $mdMedia;\n\n /* @final */\n this.$mdUtil = $mdUtil;\n\n /** @final */\n this.$$rAF = $$rAF;\n\n /** @type {!angular.NgModelController} */\n this.ngModelCtrl = null;\n\n /** @type {HTMLInputElement} */\n this.inputElement = $element[0].querySelector('input');\n\n /** @type {HTMLElement} */\n this.inputContainer = $element[0].querySelector('.sg-timepicker-input-container');\n\n /** @final {!angular.JQLite} */\n this.ngInputElement = angular.element(this.inputElement);\n\n /** @type {HTMLElement} Floating time pane. */\n this.timePane = $element[0].querySelector('.sg-timepicker-time-pane');\n\n /** @type {HTMLElement} Time icon button. */\n this.timeButton = $element[0].querySelector('.sg-timepicker-button');\n\n /**\n * Element covering everything but the input in the top of the floating calendar pane.\n * @type {HTMLElement}\n */\n this.inputMask = $element[0].querySelector('.sg-timepicker-input-mask-opaque');\n\n /** @final {!angular.JQLite} */\n this.$element = $element;\n\n /** @final {!angular.Attributes} */\n this.$attrs = $attrs;\n\n /** @final {!angular.Scope} */\n this.$scope = $scope;\n\n /** @type {Date} */\n this.date = null;\n\n /** @type {boolean} */\n this.isFocused = false;\n\n /** @type {boolean} */\n this.isDisabled = false;\n this.setDisabled($element[0].disabled || angular.isString($attrs.disabled));\n\n /** @type {boolean} Whether the date-picker's calendar pane is open. */\n this.isTimeOpen = false;\n\n /**\n * Element from which the calendar pane was opened. Keep track of this so that we can return\n * focus to it when the pane is closed.\n * @type {HTMLElement}\n */\n this.timePaneOpenedFrom = null;\n\n this.timePane.id = 'sg-time-pane' + $mdUtil.nextUid();\n\n $mdTheming($element);\n\n /** Pre-bound click handler is saved so that the event listener can be removed. */\n this.bodyClickHandler = angular.bind(this, this.handleBodyClick);\n\n /** Pre-bound resize handler so that the event listener can be removed. */\n this.windowResizeHandler = $mdUtil.debounce(angular.bind(this, this.closeTimePane), 100);\n\n // Unless the user specifies so, the datepicker should not be a tab stop.\n // This is necessary because ngAria might add a tabindex to anything with an ng-model\n // (based on whether or not the user has turned that particular feature on/off).\n if (!$attrs.tabindex) {\n $element.attr('tabindex', '-1');\n }\n\n this.installPropertyInterceptors();\n this.attachChangeListeners();\n this.attachInteractionListeners();\n\n var self = this;\n $scope.$on('$destroy', function() {\n self.detachTimePane();\n });\n }\n\n TimePickerCtrl.$inject = [\"$scope\", \"$element\", \"$attrs\", \"$compile\", \"$timeout\", \"$mdConstant\", \"$mdMedia\", \"$mdTheming\",\n \"$mdUtil\", \"$mdDateLocale\", \"$$mdDateUtil\", \"$$rAF\"];\n\n /**\n * Sets up the controller's reference to ngModelController.\n * @param {!angular.NgModelController} ngModelCtrl\n */\n TimePickerCtrl.prototype.configureNgModel = function(ngModelCtrl) {\n this.ngModelCtrl = ngModelCtrl;\n var self = this;\n ngModelCtrl.$render = function() {\n self.time = self.ngModelCtrl.$viewValue;\n self.inputElement.value = self.formatTime(self.time);\n self.resizeInputElement();\n };\n };\n\n TimePickerCtrl.prototype.formatTime = function(time) {\n var t = new Date(time);\n if (t) {\n var h = t.getHours();\n var m = t.getMinutes();\n return (h < 10? ('0' + h) : h) + ':' + (m < 10? ('0' + m) : m);\n }\n else return '';\n };\n /**\n * Attach event listeners for both the text input and the md-time.\n * Events are used instead of ng-model so that updates don't infinitely update the other\n * on a change. This should also be more performant than using a $watch.\n */\n TimePickerCtrl.prototype.attachChangeListeners = function() {\n var self = this;\n\n self.$scope.$on('sg-time-pane-change', function(event, data) {\n var time = new Date(data.date);\n self.ngModelCtrl.$setViewValue(time);\n self.time = time;\n self.inputElement.value = self.formatTime(self.time);\n if (data.changed == 'minutes') {\n self.closeTimePane();\n }\n self.resizeInputElement();\n self.inputContainer.classList.remove(INVALID_CLASS);\n });\n\n self.ngInputElement.on('input', angular.bind(self, self.resizeInputElement));\n self.ngInputElement.on('input', self.$mdUtil.debounce(self.handleInputEvent,\n DEFAULT_DEBOUNCE_INTERVAL, self));\n };\n\n /** Attach event listeners for user interaction. */\n TimePickerCtrl.prototype.attachInteractionListeners = function() {\n var self = this;\n var $scope = this.$scope;\n var keyCodes = this.$mdConstant.KEY_CODE;\n\n // Add event listener through angular so that we can triggerHandler in unit tests.\n self.ngInputElement.on('keydown', function(event) {\n if (event.altKey && event.keyCode == keyCodes.DOWN_ARROW) {\n self.openTimePane(event);\n $scope.$digest();\n }\n });\n\n $scope.$on('md-time-close', function() {\n self.closeTimePane();\n });\n };\n\n /**\n * Capture properties set to the time-picker and imperitively handle internal changes.\n * This is done to avoid setting up additional $watches.\n */\n TimePickerCtrl.prototype.installPropertyInterceptors = function() {\n var self = this;\n\n if (this.$attrs.ngDisabled) {\n // The expression is to be evaluated against the directive element's scope and not\n // the directive's isolate scope.\n var scope = this.$mdUtil.validateScope(this.$element) ? this.$element.scope() : null;\n if (scope) {\n scope.$watch(this.$attrs.ngDisabled, function(isDisabled) {\n self.setDisabled(isDisabled);\n });\n }\n }\n\n Object.defineProperty(this, 'placeholder', {\n get: function() { return self.inputElement.placeholder; },\n set: function(value) { self.inputElement.placeholder = value || ''; }\n });\n };\n\n /**\n * Sets whether the date-picker is disabled.\n * @param {boolean} isDisabled\n */\n TimePickerCtrl.prototype.setDisabled = function(isDisabled) {\n this.isDisabled = isDisabled;\n this.inputElement.disabled = isDisabled;\n this.timeButton.disabled = isDisabled;\n };\n\n /**\n * Resizes the input element based on the size of its content.\n */\n TimePickerCtrl.prototype.resizeInputElement = function() {\n this.inputElement.size = this.inputElement.value.length + EXTRA_INPUT_SIZE;\n };\n\n /**\n * Sets the model value if the user input is a valid time.\n * Adds an invalid class to the input element if not.\n */\n TimePickerCtrl.prototype.handleInputEvent = function(self) {\n var inputString = this.inputElement.value;\n var arr = inputString.split(':');\n\n if (inputString === '') {\n this.ngModelCtrl.$setViewValue(null);\n this.time = null;\n this.inputContainer.classList.remove(INVALID_CLASS);\n }\n else if (arr.length < 2) {\n this.inputContainer.classList.toggle(INVALID_CLASS, inputString);\n }\n else {\n var h = Number(arr[0]);\n var m = Number(arr[1]);\n var newVal = new Date(this.time);\n if (h && h >= 0 && h <= 23 && m && m >= 0 && m <= 59 && angular.isDate(newVal)) {\n newVal.setHours(h);\n newVal.setMinutes(m);\n this.ngModelCtrl.$setViewValue(newVal);\n this.time = newVal;\n this.inputContainer.classList.remove(INVALID_CLASS);\n }\n else {\n this.inputContainer.classList.toggle(INVALID_CLASS, inputString);\n }\n }\n };\n\n /** Position and attach the floating calendar to the document. */\n TimePickerCtrl.prototype.attachTimePane = function() {\n var timePane = this.timePane;\n this.$element.addClass('sg-timepicker-open');\n this.$element.find('button').addClass('md-primary');\n\n var elementRect = this.inputContainer.getBoundingClientRect();\n var bodyRect = document.body.getBoundingClientRect();\n\n // Check to see if the calendar pane would go off the screen. If so, adjust position\n // accordingly to keep it within the viewport.\n var paneTop = elementRect.top - bodyRect.top;\n var paneLeft = elementRect.left - bodyRect.left;\n\n // If the right edge of the pane would be off the screen and shifting it left by the\n // difference would not go past the left edge of the screen.\n var paneWidth = this.$mdMedia('sm')? TIME_PANE_WIDTH.SM : TIME_PANE_WIDTH.GTSM;\n if (paneLeft + paneWidth > bodyRect.right &&\n bodyRect.right - paneWidth > 0) {\n paneLeft = bodyRect.right - paneWidth;\n timePane.classList.add('sg-timepicker-pos-adjusted');\n }\n timePane.style.left = paneLeft + 'px';\n\n // If the bottom edge of the pane would be off the screen and shifting it up by the\n // difference would not go past the top edge of the screen.\n var min = (typeof this.time == 'object' && this.time.getMinutes() % 5 === 0)? 'MIN5' : 'MIN1';\n var paneHeight = this.$mdMedia('sm')? TIME_PANE_HEIGHT[min].SM : TIME_PANE_HEIGHT[min].GTSM;\n if (paneTop + paneHeight > bodyRect.bottom &&\n bodyRect.bottom - paneHeight > 0) {\n paneTop = bodyRect.bottom - paneHeight;\n timePane.classList.add('sg-timepicker-pos-adjusted');\n }\n\n timePane.style.top = paneTop + 'px';\n document.body.appendChild(this.timePane);\n\n // The top of the calendar pane is a transparent box that shows the text input underneath.\n // Since the pane is floating, though, the page underneath the pane *adjacent* to the input is\n // also shown unless we cover it up. The inputMask does this by filling up the remaining space\n // based on the width of the input.\n this.inputMask.style.left = elementRect.width + 'px';\n\n // Add CSS class after one frame to trigger open animation.\n this.$$rAF(function() {\n timePane.classList.add('md-pane-open');\n });\n };\n\n /** Detach the floating time pane from the document. */\n TimePickerCtrl.prototype.detachTimePane = function() {\n this.$element.removeClass('sg-timepicker-open');\n this.$element.find('button').removeClass('md-primary');\n this.timePane.classList.remove('md-pane-open');\n this.timePane.classList.remove('md-timepicker-pos-adjusted');\n\n if (this.timePane.parentNode) {\n // Use native DOM removal because we do not want any of the angular state of this element\n // to be disposed.\n this.timePane.parentNode.removeChild(this.timePane);\n }\n };\n\n /**\n * Open the floating time pane.\n * @param {Event} event\n */\n TimePickerCtrl.prototype.openTimePane = function(event) {\n if (!this.isTimeOpen && !this.isDisabled) {\n this.isTimeOpen = true;\n this.timePaneOpenedFrom = event.target;\n this.attachTimePane();\n //this.focusTime();\n\n // Because the time pane is attached directly to the body, it is possible that the\n // rest of the component (input, etc) is in a different scrolling container, such as\n // an md-content. This means that, if the container is scrolled, the pane would remain\n // stationary. To remedy this, we disable scrolling while the time pane is open, which\n // also matches the native behavior for things like `',"
",' '+l("No file chosen")+"",' {{ uploader.queue[0].file.name }}',"
"," ",'
',' '+l("Upload")+"","
",""].join(""),controller:CardsImportDialogController,locals:{folder:folder}}),CardsImportDialogController.$inject=["scope","$mdDialog","folder"]}function exportCards(){window.location.href=ApplicationBaseURL+"/"+vm.service.selectedFolder.id+"/exportFolder"}function showLinks(addressbook){function LinksDialogController($mdDialog,addressbook){function close(){$mdDialog.hide()}this.addressbook=addressbook,this.close=close}$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:addressbook.id+"/links",controller:LinksDialogController,controllerAs:"links",locals:{addressbook:addressbook}}),LinksDialogController.$inject=["$mdDialog","addressbook"]}function share(addressbook){addressbook.$acl.$users().then(function(){$mdDialog.show({templateUrl:addressbook.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:addressbook.$acl.users,User:User,folder:addressbook}})})}function subscribeToFolder(addressbookData){console.debug("subscribeToFolder "+addressbookData.owner+addressbookData.name),AddressBook.$subscribe(addressbookData.owner,addressbookData.name)["catch"](function(data){Dialog.alert(l("Warning"),l("An error occured please try again."))})}var vm=this;vm.activeUser=Settings.activeUser,vm.service=AddressBook,vm.select=select,vm.newAddressbook=newAddressbook,vm.edit=edit,vm.revertEditing=revertEditing,vm.save=save,vm.confirmDelete=confirmDelete,vm.importCards=importCards,vm.exportCards=exportCards,vm.showLinks=showLinks,vm.share=share,vm.subscribeToFolder=subscribeToFolder}AddressBooksController.$inject=["$state","$scope","$rootScope","$stateParams","$timeout","$mdDialog","$mdToast","FileUploader","sgFocus","Card","AddressBook","Dialog","sgSettings","User","stateAddressbooks"],angular.module("SOGo.ContactsUI").controller("AddressBooksController",AddressBooksController)}(),function(){"use strict";function CardController($scope,$timeout,$mdDialog,AddressBook,Card,Dialog,focus,$state,$stateParams,stateCard){function addOrgUnit(){var i=vm.card.$addOrgUnit("");focus("orgUnit_"+i)}function addBirthday(){vm.card.birthday=new Date}function addEmail(){var i=vm.card.$addEmail("");focus("email_"+i)}function addPhone(){var i=vm.card.$addPhone("");focus("phone_"+i)}function addUrl(){var i=vm.card.$addUrl("","");focus("url_"+i)}function addAddress(){var i=vm.card.$addAddress("","","","","","","","");focus("address_"+i)}function addMember(){var i=vm.card.$addMember("");focus("ref_"+i)}function userFilter($query,excludedCards){return AddressBook.selectedFolder.$filter($query,{dry:!0,excludeLists:!0},excludedCards),AddressBook.selectedFolder.$cards}function save(form){form.$valid&&vm.card.$save().then(function(data){var i=_.indexOf(_.pluck(AddressBook.selectedFolder.cards,"id"),vm.card.id);0>i?AddressBook.selectedFolder.$reload():AddressBook.selectedFolder.cards[i]=angular.copy(vm.card),$state.go("app.addressbook.card.view",{cardId:vm.card.id})})["catch"](function(err){console.log(err)})}function close(){$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id}).then(function(){vm.card=null,delete AddressBook.selectedFolder.selectedCard})}function reset(){vm.card.$reset()}function cancel(){vm.card.$reset(),vm.card.isNew?(vm.card=null,delete AddressBook.selectedFolder.selectedCard,$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id})):$state.go("app.addressbook.card.view",{cardId:vm.card.id})}function confirmDelete(card){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the card of %{0}?",card.$fullname()),{ok:l("Yes"),cancel:l("No")}).then(function(){card.$delete().then(function(){AddressBook.selectedFolder.cards=_.reject(AddressBook.selectedFolder.cards,function(o){return o.id==card.id}),vm.card=null,$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id})},function(data,status){Dialog.alert(l("Warning"),l('An error occured while deleting the card "%{0}".',card.$fullname()))})})}function exportCard(){window.location.href=ApplicationBaseURL+"/"+vm.currentFolder.id+"/export?uid="+vm.card.id}function viewRawSource($event){Card.$$resource.post(vm.currentFolder.id+"/"+vm.card.id,"raw").then(function(data){function CardRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:[''," ","
",data,"    
","
",'
',' '+l("Close")+"","
","
"].join(""),controller:CardRawSourceDialogController}),CardRawSourceDialogController.$inject=["scope","$mdDialog"]})}var vm=this;vm.card=stateCard,vm.currentFolder=AddressBook.selectedFolder,vm.allEmailTypes=Card.$EMAIL_TYPES,vm.allTelTypes=Card.$TEL_TYPES,vm.allUrlTypes=Card.$URL_TYPES,vm.allAddressTypes=Card.$ADDRESS_TYPES,vm.categories={},vm.userFilterResults=[],vm.addOrgUnit=addOrgUnit,vm.addBirthday=addBirthday,vm.addEmail=addEmail,vm.addPhone=addPhone,vm.addUrl=addUrl,vm.addAddress=addAddress,vm.addMember=addMember,vm.userFilter=userFilter,vm.save=save,vm.close=close,vm.reset=reset,vm.cancel=cancel,vm.confirmDelete=confirmDelete,vm.exportCard=exportCard,vm.viewRawSource=viewRawSource}CardController.$inject=["$scope","$timeout","$mdDialog","AddressBook","Card","Dialog","sgFocus","$state","$stateParams","stateCard"],angular.module("SOGo.ContactsUI").controller("CardController",CardController)}(),function(){"use strict";function sgAddress(){return{restrict:"A",scope:{data:"=sgAddress"},controller:["$scope",function($scope){$scope.addressLines=function(data){var lines=[],locality_region=[];return data.street&&lines.push(data.street),data.street2&&lines.push(data.street2),data.locality&&locality_region.push(data.locality),data.region&&locality_region.push(data.region),locality_region.length>0&&lines.push(locality_region.join(", ")),data.country&&lines.push(data.country),data.postalcode&&lines.push(data.postalcode),lines.join("
")}}],template:'
'}}angular.module("SOGo.Common").directive("sgAddress",sgAddress)}(); +!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("app",{url:"/addressbooks","abstract":!0,views:{addressbooks:{templateUrl:"UIxContactFoldersView",controller:"AddressBooksController",controllerAs:"app"}},resolve:{stateAddressbooks:stateAddressbooks}}).state("app.addressbook",{url:"/:addressbookId",views:{addressbook:{templateUrl:"addressbook",controller:"AddressBookController",controllerAs:"addressbook"}},resolve:{stateAddressbook:stateAddressbook}}).state("app.addressbook.new",{url:"/{contactType:(?:card|list)}/new",views:{card:{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}},resolve:{stateCard:stateNewCard}}).state("app.addressbook.card",{url:"/:cardId","abstract":!0,views:{card:{template:""}},resolve:{stateCard:stateCard}}).state("app.addressbook.card.view",{url:"/view",views:{"card@app.addressbook":{templateUrl:"UIxContactViewTemplate",controller:"CardController",controllerAs:"editor"}}}).state("app.addressbook.card.editor",{url:"/edit",views:{"card@app.addressbook":{templateUrl:"UIxContactEditorTemplate",controller:"CardController",controllerAs:"editor"}}}),$urlRouterProvider.otherwise("/addressbooks/personal")}function stateAddressbooks(AddressBook){return AddressBook.$findAll(window.contactFolders)}function stateAddressbook($stateParams,AddressBook){return AddressBook.$find($stateParams.addressbookId).$futureAddressBookData}function stateNewCard($stateParams,stateAddressbook,Card){var tag="v"+$stateParams.contactType,card=new Card({pid:$stateParams.addressbookId,c_component:tag});return stateAddressbook.selectedCard=!0,card}function stateCard($stateParams,stateAddressbook){return stateAddressbook.selectedCard=$stateParams.cardId,stateAddressbook.$getCard($stateParams.cardId)}function runBlock($rootScope,$log,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error),$state.go("app")}),$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}angular.module("SOGo.ContactsUI",["ngSanitize","ui.router","angularFileUpload","ck","SOGo.Common","SOGo.PreferencesUI","SOGo.MailerUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateAddressbooks.$inject=["AddressBook"],stateAddressbook.$inject=["$stateParams","AddressBook"],stateNewCard.$inject=["$stateParams","stateAddressbook","Card"],stateCard.$inject=["$stateParams","stateAddressbook"],runBlock.$inject=["$rootScope","$log","$state"]}(),function(){"use strict";function AddressBookController($scope,$q,$state,$timeout,$mdDialog,focus,Account,Card,AddressBook,Dialog,Settings,stateAddressbooks,stateAddressbook){function selectCard(card){$state.go("app.addressbook.card.view",{addressbookId:stateAddressbook.id,cardId:card.id})}function toggleCardSelection($event,card){card.selected=!card.selected,$event.preventDefault(),$event.stopPropagation()}function newComponent(ev){function ComponentDialogController(scope,$mdDialog,$state,addressbookId){scope.create=function(type){$mdDialog.hide(),$state.go("app.addressbook.new",{addressbookId:addressbookId,contactType:type})}}$mdDialog.show({parent:angular.element(document.body),targetEvent:ev,clickOutsideToClose:!0,escapeToClose:!0,template:[''," ",'
'," "," "+l("Contact")," "," "," "+l("List")," ","
","
","
"].join(""),locals:{addressbookId:vm.selectedFolder.id},controller:ComponentDialogController}),ComponentDialogController.$inject=["scope","$mdDialog","$state","addressbookId"]}function notSelectedComponent(currentCard,type){return currentCard&¤tCard.c_component==type&&!currentCard.selected}function unselectCards(){_.each(vm.selectedFolder.cards,function(card){card.selected=!1})}function confirmDeleteSelectedCards(){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the selected contacts?")).then(function(){var selectedCards=_.filter(vm.selectedFolder.cards,function(card){return card.selected});vm.selectedFolder.$deleteCards(selectedCards),delete vm.selectedFolder.selectedCard},function(data,status){})}function saveSelectedCards(){var selectedCards=_.filter(vm.selectedFolder.cards,function(card){return card.selected}),selectedUIDs=_.pluck(selectedCards,"id");window.location.href=ApplicationBaseURL+"/"+vm.selectedFolder.id+"/export?uid="+selectedUIDs.join("&uid=")}function copySelectedCards(folder){var selectedCards=_.filter(vm.selectedFolder.cards,function(card){return card.selected});vm.selectedFolder.$copyCards(selectedCards,folder).then(function(){},function(error){Dialog.alert(l("Error"),error)})}function selectAll(){_.each(vm.selectedFolder.cards,function(card){card.selected=!0})}function sort(field){vm.selectedFolder.$filter("",{sort:field})}function sortedBy(field){return AddressBook.$query.sort==field}function cancelSearch(){vm.mode.search=!1,vm.selectedFolder.$filter("")}function newMessage($event,recipients){Account.$findAll().then(function(accounts){var account=_.filter(accounts,function(o){return 0===o.id?o:void 0})[0];account.$getMailboxes().then(function(mailboxes){account.$newMessage().then(function(message){$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"../Mail/UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:accounts,stateMessage:message,stateRecipients:recipients}})})})})}function newMessageWithRecipient($event,recipient,fn){var recipients=[{full:fn+" <"+recipient+">"}];vm.newMessage($event,recipients)}function newMessageWithSelectedCards($event){var selectedCards=_.filter(vm.selectedFolder.cards,function(card){return card.selected}),promises=[],recipients=[];_.each(selectedCards,function(card){"vcard"==card.c_component&&card.c_mail.length?recipients.push({full:card.c_cn+" <"+card.c_mail+">"}):"vlist"==card.c_component&&(angular.isDefined(card.refs)&&card.refs.length?_.each(card.refs,function(ref){ref.email.length&&recipients.push({full:ref.c_cn+" <"+ref.email+">"})}):promises.push(vm.selectedFolder.$getCard(card.id).then(function(card){return card.$futureCardData.then(function(data){_.each(data.refs,function(ref){ref.email.length&&recipients.push({full:ref.c_cn+" <"+ref.email+">"})})})})))}),$q.all(promises).then(function(){recipients.length&&vm.newMessage($event,recipients)})}var vm=this;AddressBook.selectedFolder=stateAddressbook,vm.service=AddressBook,vm.selectedFolder=stateAddressbook,vm.selectCard=selectCard,vm.toggleCardSelection=toggleCardSelection,vm.newComponent=newComponent,vm.notSelectedComponent=notSelectedComponent,vm.unselectCards=unselectCards,vm.confirmDeleteSelectedCards=confirmDeleteSelectedCards,vm.saveSelectedCards=saveSelectedCards,vm.copySelectedCards=copySelectedCards,vm.selectAll=selectAll,vm.sort=sort,vm.sortedBy=sortedBy,vm.cancelSearch=cancelSearch,vm.newMessage=newMessage,vm.newMessageWithSelectedCards=newMessageWithSelectedCards,vm.newMessageWithRecipient=newMessageWithRecipient,vm.mode={search:!1}}AddressBookController.$inject=["$scope","$q","$state","$timeout","$mdDialog","sgFocus","Account","Card","AddressBook","Dialog","sgSettings","stateAddressbooks","stateAddressbook"],angular.module("SOGo.ContactsUI").controller("AddressBookController",AddressBookController)}(),function(){"use strict";function AddressBooksController($state,$scope,$rootScope,$stateParams,$timeout,$mdDialog,$mdToast,FileUploader,focus,Card,AddressBook,Dialog,Settings,User,stateAddressbooks){function select($event,folder){$state.params.addressbookId!=folder.id&&vm.editMode!=folder.id?(vm.editMode=!1,AddressBook.$query.value="",$state.go("app.addressbook",{addressbookId:folder.id})):($event.preventDefault(),$event.stopPropagation())}function newAddressbook(){Dialog.prompt(l("New addressbook"),l("Name of new addressbook")).then(function(name){var addressbook=new AddressBook({name:name,isEditable:!0,isRemote:!1,owner:UserLogin});AddressBook.$add(addressbook)})}function edit(folder){folder.isRemote||(vm.editMode=folder.id,vm.originalAddressbook=angular.extend({},folder.$omit()),focus("addressBookName_"+folder.id))}function revertEditing(folder){folder.name=vm.originalAddressbook.name,vm.editMode=!1}function save(folder){var name=folder.name;name&&name.length>0&&name!=vm.originalAddressbook.name&&folder.$rename(name).then(function(data){vm.editMode=!1},function(data,status){Dialog.alert(l("Warning"),data)})}function confirmDelete(){vm.service.selectedFolder.isSubscription?vm.service.selectedFolder.$delete().then(function(){vm.service.selectedFolder=null,$state.go("app.addressbook",{addressbookId:"personal"})},function(data,status){Dialog.alert(l('An error occured while deleting the addressbook "%{0}".',vm.service.selectedFolder.name),l(data.error))}):Dialog.confirm(l("Warning"),l("Are you sure you want to delete the addressbook %{0}?",vm.service.selectedFolder.name)).then(function(){return vm.service.selectedFolder.$delete()}).then(function(){return vm.service.selectedFolder=null,!0})["catch"](function(data,status){Dialog.alert(l('An error occured while deleting the addressbook "%{0}".',vm.service.selectedFolder.name),l(data.error))})}function importCards($event,folder){function CardsImportDialogController(scope,$mdDialog,folder){scope.uploader=new FileUploader({url:ApplicationBaseURL+"/"+folder.id+"/import",onProgressItem:function(item,progress){console.debug(item),console.debug(progress)},onSuccessItem:function(item,response,status,headers){console.debug(item),console.debug("success = "+JSON.stringify(response,void 0,2)),$mdDialog.hide(),$mdToast.show($mdToast.simple().content(l("A total of %{0} cards were imported in the addressbook.",response.imported)).position("top right").hideDelay(3e3)),AddressBook.selectedFolder.$reload()},onCancelItem:function(item,response,status,headers){console.debug(item),console.debug("cancel = "+JSON.stringify(response,void 0,2))},onErrorItem:function(item,response,status,headers){console.debug(item),console.debug("error = "+JSON.stringify(response,void 0,2))}}),scope.close=function(){$mdDialog.hide()},scope.upload=function(){scope.uploader.uploadAll()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:['',' ','
',' import_export','
','
'+l("Import Cards")+"
","
",' ',' close'," ","
","
"," ",'
','
'," "+l("Select a vCard or LDIF file.")+"",' ",' ',"
",' '+l("No file chosen")+"",' {{ uploader.queue[0].file.name }}',"
","
",'
',' '+l("Upload")+"","
","
"].join(""),controller:CardsImportDialogController,locals:{folder:folder}}),CardsImportDialogController.$inject=["scope","$mdDialog","folder"]}function exportCards(){window.location.href=ApplicationBaseURL+"/"+vm.service.selectedFolder.id+"/exportFolder"}function showLinks(addressbook){function LinksDialogController($mdDialog,addressbook){function close(){$mdDialog.hide()}this.addressbook=addressbook,this.close=close}$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:addressbook.id+"/links",controller:LinksDialogController,controllerAs:"links",locals:{addressbook:addressbook}}),LinksDialogController.$inject=["$mdDialog","addressbook"]}function share(addressbook){addressbook.$acl.$users().then(function(){$mdDialog.show({templateUrl:addressbook.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:addressbook.$acl.users,User:User,folder:addressbook}})})}function subscribeToFolder(addressbookData){console.debug("subscribeToFolder "+addressbookData.owner+addressbookData.name),AddressBook.$subscribe(addressbookData.owner,addressbookData.name)["catch"](function(data){Dialog.alert(l("Warning"),l("An error occured please try again."))})}var vm=this;vm.activeUser=Settings.activeUser,vm.service=AddressBook,vm.select=select,vm.newAddressbook=newAddressbook,vm.edit=edit,vm.revertEditing=revertEditing,vm.save=save,vm.confirmDelete=confirmDelete,vm.importCards=importCards,vm.exportCards=exportCards,vm.showLinks=showLinks,vm.share=share,vm.subscribeToFolder=subscribeToFolder}AddressBooksController.$inject=["$state","$scope","$rootScope","$stateParams","$timeout","$mdDialog","$mdToast","FileUploader","sgFocus","Card","AddressBook","Dialog","sgSettings","User","stateAddressbooks"],angular.module("SOGo.ContactsUI").controller("AddressBooksController",AddressBooksController)}(),function(){"use strict";function CardController($scope,$timeout,$mdDialog,AddressBook,Card,Dialog,focus,$state,$stateParams,stateCard){function addOrgUnit(){var i=vm.card.$addOrgUnit("");focus("orgUnit_"+i)}function addBirthday(){vm.card.birthday=new Date}function addEmail(){var i=vm.card.$addEmail("");focus("email_"+i)}function addPhone(){var i=vm.card.$addPhone("");focus("phone_"+i)}function addUrl(){var i=vm.card.$addUrl("","");focus("url_"+i)}function addAddress(){var i=vm.card.$addAddress("","","","","","","","");focus("address_"+i)}function addMember(){var i=vm.card.$addMember("");focus("ref_"+i)}function userFilter($query,excludedCards){return AddressBook.selectedFolder.$filter($query,{dry:!0,excludeLists:!0},excludedCards),AddressBook.selectedFolder.$cards}function save(form){form.$valid&&vm.card.$save().then(function(data){var i=_.indexOf(_.pluck(AddressBook.selectedFolder.cards,"id"),vm.card.id);0>i?AddressBook.selectedFolder.$reload():AddressBook.selectedFolder.cards[i]=angular.copy(vm.card),$state.go("app.addressbook.card.view",{cardId:vm.card.id})})["catch"](function(err){console.log(err)})}function close(){$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id}).then(function(){vm.card=null,delete AddressBook.selectedFolder.selectedCard})}function reset(){vm.card.$reset()}function cancel(){vm.card.$reset(),vm.card.isNew?(vm.card=null,delete AddressBook.selectedFolder.selectedCard,$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id})):$state.go("app.addressbook.card.view",{cardId:vm.card.id})}function confirmDelete(card){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the card of %{0}?",card.$fullname()),{ok:l("Yes"),cancel:l("No")}).then(function(){card.$delete().then(function(){AddressBook.selectedFolder.cards=_.reject(AddressBook.selectedFolder.cards,function(o){return o.id==card.id}),vm.card=null,$state.go("app.addressbook",{addressbookId:AddressBook.selectedFolder.id})},function(data,status){Dialog.alert(l("Warning"),l('An error occured while deleting the card "%{0}".',card.$fullname()))})})}function exportCard(){window.location.href=ApplicationBaseURL+"/"+vm.currentFolder.id+"/export?uid="+vm.card.id}function viewRawSource($event){Card.$$resource.post(vm.currentFolder.id+"/"+vm.card.id,"raw").then(function(data){function CardRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:[''," ","
",data,"    
","
",'
',' '+l("Close")+"","
","
"].join(""),controller:CardRawSourceDialogController}),CardRawSourceDialogController.$inject=["scope","$mdDialog"]})}var vm=this;vm.card=stateCard,vm.currentFolder=AddressBook.selectedFolder,vm.allEmailTypes=Card.$EMAIL_TYPES,vm.allTelTypes=Card.$TEL_TYPES,vm.allUrlTypes=Card.$URL_TYPES,vm.allAddressTypes=Card.$ADDRESS_TYPES,vm.categories={},vm.userFilterResults=[],vm.addOrgUnit=addOrgUnit,vm.addBirthday=addBirthday,vm.addEmail=addEmail,vm.addPhone=addPhone,vm.addUrl=addUrl,vm.addAddress=addAddress,vm.addMember=addMember,vm.userFilter=userFilter,vm.save=save,vm.close=close,vm.reset=reset,vm.cancel=cancel,vm.confirmDelete=confirmDelete,vm.exportCard=exportCard,vm.viewRawSource=viewRawSource}CardController.$inject=["$scope","$timeout","$mdDialog","AddressBook","Card","Dialog","sgFocus","$state","$stateParams","stateCard"],angular.module("SOGo.ContactsUI").controller("CardController",CardController)}(),function(){"use strict";function sgAddress(){return{restrict:"A",scope:{data:"=sgAddress"},controller:["$scope",function($scope){$scope.addressLines=function(data){var lines=[],locality_region=[];return data.street&&lines.push(data.street),data.street2&&lines.push(data.street2),data.locality&&locality_region.push(data.locality),data.region&&locality_region.push(data.region),locality_region.length>0&&lines.push(locality_region.join(", ")),data.country&&lines.push(data.country),data.postalcode&&lines.push(data.postalcode),lines.join("
")}}],template:'
'}}angular.module("SOGo.Common").directive("sgAddress",sgAddress)}(); //# sourceMappingURL=Contacts.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Contacts.js.map b/UI/WebServerResources/js/Contacts.js.map index 890005c7a..bb01f35a8 100644 --- a/UI/WebServerResources/js/Contacts.js.map +++ b/UI/WebServerResources/js/Contacts.js.map @@ -1 +1 @@ -{"version":3,"file":"Contacts.js","sources":["Contacts/Contacts.app.js","Contacts/AddressBookController.js","Contacts/AddressBooksController.js","Contacts/CardController.js","Contacts/sgAddress.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","abstract","views","addressbooks","templateUrl","controller","controllerAs","resolve","stateAddressbooks","addressbook","stateAddressbook","card","stateCard","stateNewCard","template","card@app.addressbook","otherwise","AddressBook","$findAll","window","contactFolders","$stateParams","$find","addressbookId","$futureAddressBookData","Card","tag","contactType","pid","c_component","selectedCard","cardId","$getCard","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","angular","module","config","run","$inject","AddressBookController","$scope","$q","$state","$timeout","$mdDialog","focus","Account","Dialog","Settings","selectCard","go","id","toggleCardSelection","$event","selected","preventDefault","stopPropagation","newComponent","ev","ComponentDialogController","scope","create","type","hide","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","l","join","locals","vm","selectedFolder","notSelectedComponent","currentCard","unselectCards","_","each","cards","confirmDeleteSelectedCards","confirm","then","selectedCards","filter","$deleteCards","data","status","saveSelectedCards","selectedUIDs","pluck","location","href","ApplicationBaseURL","copySelectedCards","folder","$copyCards","alert","selectAll","sort","field","$filter","sortedBy","$query","cancelSearch","mode","search","newMessage","recipients","accounts","account","o","$getMailboxes","mailboxes","$newMessage","message","stateAccounts","stateMessage","stateRecipients","newMessageWithRecipient","recipient","fn","full","newMessageWithSelectedCards","promises","c_mail","length","push","c_cn","isDefined","refs","ref","email","$futureCardData","all","this","service","AddressBooksController","$mdToast","FileUploader","User","select","editMode","value","newAddressbook","prompt","name","isEditable","isRemote","owner","UserLogin","$add","edit","originalAddressbook","extend","$omit","revertEditing","save","$rename","confirmDelete","isSubscription","$delete","importCards","CardsImportDialogController","uploader","onProgressItem","item","progress","debug","onSuccessItem","response","headers","JSON","stringify","undefined","simple","content","imported","position","hideDelay","$reload","onCancelItem","onErrorItem","close","upload","uploadAll","exportCards","showLinks","LinksDialogController","share","$acl","$users","usersWithACL","users","subscribeToFolder","addressbookData","$subscribe","activeUser","CardController","addOrgUnit","i","$addOrgUnit","addBirthday","birthday","Date","addEmail","$addEmail","addPhone","$addPhone","addUrl","$addUrl","addAddress","$addAddress","addMember","$addMember","userFilter","excludedCards","dry","excludeLists","$cards","form","$valid","$save","indexOf","copy","err","log","reset","$reset","cancel","isNew","$fullname","ok","reject","exportCard","currentFolder","viewRawSource","$$resource","post","CardRawSourceDialogController","allEmailTypes","$EMAIL_TYPES","allTelTypes","$TEL_TYPES","allUrlTypes","$URL_TYPES","allAddressTypes","$ADDRESS_TYPES","categories","userFilterResults","sgAddress","restrict","addressLines","lines","locality_region","street","street2","locality","region","country","postalcode","directive"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoContacts */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.ContactsUI', ['ngSanitize', 'ui.router', 'angularFileUpload', 'ck', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.MailerUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('app', {\n url: '/addressbooks',\n abstract: true,\n views: {\n addressbooks: {\n templateUrl: 'UIxContactFoldersView', // UI/Templates/Contacts/UIxContactFoldersView.wox\n controller: 'AddressBooksController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateAddressbooks: stateAddressbooks\n }\n })\n .state('app.addressbook', {\n url: '/:addressbookId',\n views: {\n addressbook: {\n templateUrl: 'addressbook',\n controller: 'AddressBookController',\n controllerAs: 'addressbook'\n }\n },\n resolve: {\n stateAddressbook: stateAddressbook\n }\n })\n .state('app.addressbook.new', {\n url: '/{contactType:(?:card|list)}/new',\n views: {\n card: {\n templateUrl: 'UIxContactEditorTemplate', // UI/Templates/Contacts/UIxContactEditorTemplate.wox\n controller: 'CardController',\n controllerAs: 'editor'\n }\n },\n resolve: {\n stateCard: stateNewCard\n }\n })\n .state('app.addressbook.card', {\n url: '/:cardId',\n abstract: true,\n views: {\n card: {\n template: ''\n }\n },\n resolve: {\n stateCard: stateCard\n }\n })\n .state('app.addressbook.card.view', {\n url: '/view',\n views: {\n 'card@app.addressbook': {\n templateUrl: 'UIxContactViewTemplate', // UI/Templates/Contacts/UIxContactViewTemplate.wox\n controller: 'CardController',\n controllerAs: 'editor'\n }\n }\n })\n .state('app.addressbook.card.editor', {\n url: '/edit',\n views: {\n 'card@app.addressbook': {\n templateUrl: 'UIxContactEditorTemplate', // UI/Templates/Contacts/UIxContactEditorTemplate.wox\n controller: 'CardController',\n controllerAs: 'editor'\n }\n }\n });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/addressbooks/personal');\n }\n\n /**\n * @ngInject\n */\n stateAddressbooks.$inject = ['AddressBook'];\n function stateAddressbooks(AddressBook) {\n return AddressBook.$findAll(window.contactFolders);\n }\n\n /**\n * @ngInject\n */\n stateAddressbook.$inject = ['$stateParams', 'AddressBook'];\n function stateAddressbook($stateParams, AddressBook) {\n return AddressBook.$find($stateParams.addressbookId).$futureAddressBookData;\n }\n\n /**\n * @ngInject\n */\n stateNewCard.$inject = ['$stateParams', 'stateAddressbook', 'Card'];\n function stateNewCard($stateParams, stateAddressbook, Card) {\n var tag = 'v' + $stateParams.contactType,\n card = new Card({ pid: $stateParams.addressbookId, c_component: tag });\n stateAddressbook.selectedCard = true;\n return card;\n }\n\n /**\n * @ngInject\n */\n stateCard.$inject = ['$stateParams', 'stateAddressbook'];\n function stateCard($stateParams, stateAddressbook) {\n stateAddressbook.selectedCard = $stateParams.cardId;\n return stateAddressbook.$getCard($stateParams.cardId);\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope'];\n function runBlock($rootScope) {\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n console.error(event, current, previous, rejection);\n });\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AddressBookController.$inject = ['$scope', '$q', '$state', '$timeout', '$mdDialog', 'sgFocus', 'Account', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'stateAddressbooks', 'stateAddressbook'];\n function AddressBookController($scope, $q, $state, $timeout, $mdDialog, focus, Account, Card, AddressBook, Dialog, Settings, stateAddressbooks, stateAddressbook) {\n var vm = this;\n\n AddressBook.selectedFolder = stateAddressbook;\n\n vm.service = AddressBook;\n vm.selectedFolder = stateAddressbook;\n vm.selectCard = selectCard;\n vm.toggleCardSelection = toggleCardSelection;\n vm.newComponent = newComponent;\n vm.notSelectedComponent = notSelectedComponent;\n vm.unselectCards = unselectCards;\n vm.confirmDeleteSelectedCards = confirmDeleteSelectedCards;\n vm.saveSelectedCards = saveSelectedCards;\n vm.copySelectedCards = copySelectedCards;\n vm.selectAll = selectAll;\n vm.sort = sort;\n vm.sortedBy = sortedBy;\n vm.cancelSearch = cancelSearch;\n vm.newMessage = newMessage;\n vm.newMessageWithSelectedCards = newMessageWithSelectedCards;\n vm.newMessageWithRecipient = newMessageWithRecipient;\n vm.mode = { search: false };\n \n function selectCard(card) {\n $state.go('app.addressbook.card.view', {addressbookId: stateAddressbook.id, cardId: card.id});\n }\n \n function toggleCardSelection($event, card) {\n card.selected = !card.selected;\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n function newComponent(ev) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: ev,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n ' ',\n ' ' + l('Contact'),\n ' ',\n ' ',\n ' ' + l('List'),\n ' ',\n '
',\n '
',\n '
'\n ].join(''),\n locals: {\n addressbookId: vm.selectedFolder.id\n },\n controller: ComponentDialogController\n });\n \n /**\n * @ngInject\n */\n ComponentDialogController.$inject = ['scope', '$mdDialog', '$state', 'addressbookId'];\n function ComponentDialogController(scope, $mdDialog, $state, addressbookId) {\n scope.create = function(type) {\n $mdDialog.hide();\n $state.go('app.addressbook.new', { addressbookId: addressbookId, contactType: type });\n };\n }\n }\n\n function notSelectedComponent(currentCard, type) {\n return (currentCard && currentCard.c_component == type && !currentCard.selected);\n }\n\n function unselectCards() {\n _.each(vm.selectedFolder.cards, function(card) { card.selected = false; });\n }\n \n function confirmDeleteSelectedCards() {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the selected contacts?'))\n .then(function() {\n // User confirmed the deletion\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n vm.selectedFolder.$deleteCards(selectedCards);\n delete vm.selectedFolder.selectedCard;\n }, function(data, status) {\n // Delete failed\n });\n }\n\n function saveSelectedCards() {\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n var selectedUIDs = _.pluck(selectedCards, 'id');\n window.location.href = ApplicationBaseURL + '/' + vm.selectedFolder.id + '/export?uid=' + selectedUIDs.join('&uid=');\n }\n\n function copySelectedCards(folder) {\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n vm.selectedFolder.$copyCards(selectedCards, folder).then(function() {\n // TODO: refresh target addressbook?\n }, function(error) {\n Dialog.alert(l('Error'), error);\n });\n }\n\n function selectAll() {\n _.each(vm.selectedFolder.cards, function(card) {\n card.selected = true;\n });\n }\n\n function sort(field) {\n vm.selectedFolder.$filter('', { sort: field });\n }\n\n function sortedBy(field) {\n return AddressBook.$query.sort == field;\n }\n\n function cancelSearch() {\n vm.mode.search = false;\n vm.selectedFolder.$filter('');\n }\n\n function newMessage($event, recipients) {\n Account.$findAll().then(function(accounts) {\n var account = _.filter(accounts, function(o) {\n if (o.id === 0)\n return o;\n })[0];\n\n // We must initialize the Account with its mailbox\n // list before proceeding with message's creation\n account.$getMailboxes().then(function(mailboxes) {\n account.$newMessage().then(function(message) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: '../Mail/UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: accounts,\n stateMessage: message,\n stateRecipients: recipients\n }\n });\n });\n });\n });\n }\n\n function newMessageWithRecipient($event, recipient, fn) {\n var recipients = [{full: fn + ' <' + recipient + '>'}];\n vm.newMessage($event, recipients);\n }\n\n function newMessageWithSelectedCards($event) {\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n var promises = [], recipients = [];\n\n _.each(selectedCards, function(card) {\n if (card.c_component == 'vcard' && card.c_mail.length) {\n recipients.push({full: card.c_cn + ' <' + card.c_mail + '>'});\n }\n else if (card.c_component == 'vlist') {\n // If the list's members were already fetch, use them\n if (angular.isDefined(card.refs) && card.refs.length) {\n _.each(card.refs, function(ref) {\n if (ref.email.length)\n recipients.push({full: ref.c_cn + ' <' + ref.email + '>'});\n });\n }\n else {\n promises.push(vm.selectedFolder.$getCard(card.id).then(function(card) {\n return card.$futureCardData.then(function(data) {\n _.each(data.refs, function(ref) {\n if (ref.email.length)\n recipients.push({full: ref.c_cn + ' <' + ref.email + '>'});\n });\n });\n }));\n }\n }\n });\n\n $q.all(promises).then(function() {\n if (recipients.length)\n vm.newMessage($event, recipients);\n });\n }\n }\n\n angular\n .module('SOGo.ContactsUI') \n .controller('AddressBookController', AddressBookController); \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AddressBooksController.$inject = ['$state', '$scope', '$rootScope', '$stateParams', '$timeout', '$mdDialog', '$mdToast', 'FileUploader', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'User', 'stateAddressbooks'];\n function AddressBooksController($state, $scope, $rootScope, $stateParams, $timeout, $mdDialog, $mdToast, FileUploader, focus, Card, AddressBook, Dialog, Settings, User, stateAddressbooks) {\n var vm = this;\n\n vm.activeUser = Settings.activeUser;\n vm.service = AddressBook;\n vm.select = select;\n vm.newAddressbook = newAddressbook;\n vm.edit = edit;\n vm.revertEditing = revertEditing;\n vm.save = save;\n vm.confirmDelete = confirmDelete;\n vm.importCards = importCards;\n vm.exportCards = exportCards;\n vm.showLinks = showLinks;\n vm.share = share;\n vm.subscribeToFolder = subscribeToFolder;\n\n function select(folder) {\n vm.editMode = false;\n AddressBook.$query.value = '';\n $state.go('app.addressbook', {addressbookId: folder.id});\n }\n\n function newAddressbook() {\n Dialog.prompt(l('New addressbook'),\n l('Name of new addressbook'))\n .then(function(name) {\n var addressbook = new AddressBook(\n {\n name: name,\n isEditable: true,\n isRemote: false,\n owner: UserLogin\n }\n );\n AddressBook.$add(addressbook);\n });\n }\n\n function edit(folder) {\n if (!folder.isRemote) {\n vm.editMode = folder.id;\n vm.originalAddressbook = angular.extend({}, folder.$omit());\n focus('addressBookName_' + folder.id);\n }\n }\n\n function revertEditing(folder) {\n folder.name = vm.originalAddressbook.name;\n vm.editMode = false;\n }\n\n function save(folder) {\n var name = folder.name;\n if (name && name.length > 0 && name != vm.originalAddressbook.name) {\n folder.$rename(name)\n .then(function(data) {\n vm.editMode = false;\n }, function(data, status) {\n Dialog.alert(l('Warning'), data);\n });\n }\n }\n\n function confirmDelete() {\n if (vm.service.selectedFolder.isSubscription) {\n // Unsubscribe without confirmation\n vm.service.selectedFolder.$delete()\n .then(function() {\n vm.service.selectedFolder = null;\n $state.go('app.addressbook', { addressbookId: 'personal' });\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the addressbook \"%{0}\".',\n vm.service.selectedFolder.name),\n l(data.error));\n });\n }\n else {\n Dialog.confirm(l('Warning'), l('Are you sure you want to delete the addressbook %{0}?',\n vm.service.selectedFolder.name))\n .then(function() {\n return vm.service.selectedFolder.$delete();\n })\n .then(function() {\n vm.service.selectedFolder = null;\n return true;\n })\n .catch(function(data, status) {\n Dialog.alert(l('An error occured while deleting the addressbook \"%{0}\".',\n vm.service.selectedFolder.name),\n l(data.error));\n });\n }\n }\n\n function importCards($event, folder) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n ' import_export',\n '
',\n '
' + l('Import Cards') + '
',\n '
',\n ' ',\n ' close',\n ' ',\n '
',\n '
',\n ' ',\n '
',\n '
',\n ' ' + l('Select a vCard or LDIF file.') + '',\n ' ',\n ' ',\n '
',\n ' ' + l('No file chosen') + '',\n ' 0\">{{ uploader.queue[0].file.name }}',\n '
',\n '
',\n '
',\n ' ' + l('Upload') + '',\n '
',\n '
'\n ].join(''),\n controller: CardsImportDialogController,\n locals: {\n folder: folder\n }\n });\n\n /**\n * @ngInject\n */\n CardsImportDialogController.$inject = ['scope', '$mdDialog', 'folder'];\n function CardsImportDialogController(scope, $mdDialog, folder) {\n\n scope.uploader = new FileUploader({\n url: ApplicationBaseURL + '/' + folder.id + '/import',\n onProgressItem: function(item, progress) {\n console.debug(item); console.debug(progress);\n },\n onSuccessItem: function(item, response, status, headers) {\n console.debug(item); console.debug('success = ' + JSON.stringify(response, undefined, 2));\n $mdDialog.hide();\n $mdToast.show(\n $mdToast.simple()\n .content(l('A total of %{0} cards were imported in the addressbook.', response.imported))\n .position('top right')\n .hideDelay(3000));\n AddressBook.selectedFolder.$reload();\n },\n onCancelItem: function(item, response, status, headers) {\n console.debug(item); console.debug('cancel = ' + JSON.stringify(response, undefined, 2));\n },\n onErrorItem: function(item, response, status, headers) {\n console.debug(item); console.debug('error = ' + JSON.stringify(response, undefined, 2));\n }\n });\n\n scope.close = function() {\n $mdDialog.hide();\n };\n scope.upload = function() {\n scope.uploader.uploadAll();\n };\n }\n }\n\n function exportCards() {\n window.location.href = ApplicationBaseURL + '/' + vm.service.selectedFolder.id + '/exportFolder';\n }\n\n function showLinks(addressbook) {\n $mdDialog.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: addressbook.id + '/links',\n controller: LinksDialogController,\n controllerAs: 'links',\n locals: {\n addressbook: addressbook\n }\n });\n \n /**\n * @ngInject\n */\n LinksDialogController.$inject = ['$mdDialog', 'addressbook'];\n function LinksDialogController($mdDialog, addressbook) {\n var vm = this;\n this.addressbook = addressbook;\n this.close = close;\n\n function close() {\n $mdDialog.hide();\n }\n }\n }\n\n function share(addressbook) {\n // Fetch list of ACL users\n addressbook.$acl.$users().then(function() {\n // Show ACL editor\n $mdDialog.show({\n templateUrl: addressbook.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox\n controller: 'AclController', // from the ng module SOGo.Common\n controllerAs: 'acl',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n usersWithACL: addressbook.$acl.users,\n User: User,\n folder: addressbook\n }\n });\n });\n }\n\n /**\n * subscribeToFolder - Callback of sgSubscribe directive\n */\n function subscribeToFolder(addressbookData) {\n console.debug('subscribeToFolder ' + addressbookData.owner + addressbookData.name);\n AddressBook.$subscribe(addressbookData.owner, addressbookData.name).catch(function(data) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n }\n\n angular\n .module('SOGo.ContactsUI')\n .controller('AddressBooksController', AddressBooksController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * Controller to view and edit a card\n * @ngInject\n */\n CardController.$inject = ['$scope', '$timeout', '$mdDialog', 'AddressBook', 'Card', 'Dialog', 'sgFocus', '$state', '$stateParams', 'stateCard'];\n function CardController($scope, $timeout, $mdDialog, AddressBook, Card, Dialog, focus, $state, $stateParams, stateCard) {\n var vm = this;\n\n vm.card = stateCard;\n\n vm.currentFolder = AddressBook.selectedFolder;\n vm.allEmailTypes = Card.$EMAIL_TYPES;\n vm.allTelTypes = Card.$TEL_TYPES;\n vm.allUrlTypes = Card.$URL_TYPES;\n vm.allAddressTypes = Card.$ADDRESS_TYPES;\n vm.categories = {};\n vm.userFilterResults = [];\n vm.addOrgUnit = addOrgUnit;\n vm.addBirthday = addBirthday;\n vm.addEmail = addEmail;\n vm.addPhone = addPhone;\n vm.addUrl = addUrl;\n vm.addAddress = addAddress;\n vm.addMember = addMember;\n vm.userFilter = userFilter;\n vm.save = save;\n vm.close = close;\n vm.reset = reset;\n vm.cancel = cancel;\n vm.confirmDelete = confirmDelete;\n vm.exportCard = exportCard;\n vm.viewRawSource = viewRawSource;\n\n function addOrgUnit() {\n var i = vm.card.$addOrgUnit('');\n focus('orgUnit_' + i);\n }\n function addBirthday() {\n vm.card.birthday = new Date();\n }\n function addEmail() {\n var i = vm.card.$addEmail('');\n focus('email_' + i);\n }\n function addPhone() {\n var i = vm.card.$addPhone('');\n focus('phone_' + i);\n }\n function addUrl() {\n var i = vm.card.$addUrl('', '');\n focus('url_' + i);\n }\n function addAddress() {\n var i = vm.card.$addAddress('', '', '', '', '', '', '', '');\n focus('address_' + i);\n }\n function addMember() {\n var i = vm.card.$addMember('');\n focus('ref_' + i);\n }\n function userFilter($query, excludedCards) {\n AddressBook.selectedFolder.$filter($query, {dry: true, excludeLists: true}, excludedCards);\n return AddressBook.selectedFolder.$cards;\n }\n function save(form) {\n if (form.$valid) {\n vm.card.$save()\n .then(function(data) {\n var i = _.indexOf(_.pluck(AddressBook.selectedFolder.cards, 'id'), vm.card.id);\n if (i < 0) {\n // New card; reload contacts list and show addressbook in which the card has been created\n AddressBook.selectedFolder.$reload();\n }\n else {\n // Update contacts list with new version of the Card object\n AddressBook.selectedFolder.cards[i] = angular.copy(vm.card);\n }\n $state.go('app.addressbook.card.view', { cardId: vm.card.id });\n })\n .catch(function(err) {\n console.log(err);\n });\n }\n }\n function close() {\n $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id }).then(function() {\n vm.card = null;\n delete AddressBook.selectedFolder.selectedCard;\n });\n }\n function reset() {\n vm.card.$reset();\n }\n function cancel() {\n vm.card.$reset();\n if (vm.card.isNew) {\n // Cancelling the creation of a card\n vm.card = null;\n delete AddressBook.selectedFolder.selectedCard;\n $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id });\n }\n else {\n // Cancelling the edition of an existing card\n $state.go('app.addressbook.card.view', { cardId: vm.card.id });\n }\n }\n function confirmDelete(card) {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the card of %{0}?', card.$fullname()),\n {ok: l('Yes'), cancel: l('No')})\n .then(function() {\n // User confirmed the deletion\n card.$delete()\n .then(function() {\n // Remove card from list of addressbook\n AddressBook.selectedFolder.cards = _.reject(AddressBook.selectedFolder.cards, function(o) {\n return o.id == card.id;\n });\n // Remove card object from scope\n vm.card = null;\n $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id });\n }, function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured while deleting the card \"%{0}\".',\n card.$fullname()));\n });\n });\n }\n\n function exportCard() {\n window.location.href = ApplicationBaseURL + '/' + vm.currentFolder.id + '/export?uid=' + vm.card.id;\n }\n\n function viewRawSource($event) {\n Card.$$resource.post(vm.currentFolder.id + '/' + vm.card.id, \"raw\").then(function(data) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n            data,\n            '    
',\n '
',\n '
',\n ' ' + l('Close') + '',\n '
',\n '
'\n ].join(''),\n controller: CardRawSourceDialogController\n });\n\n /**\n * @ngInject\n */\n CardRawSourceDialogController.$inject = ['scope', '$mdDialog'];\n function CardRawSourceDialogController(scope, $mdDialog) {\n scope.close = function() {\n $mdDialog.hide();\n };\n }\n });\n }\n }\n\n angular\n .module('SOGo.ContactsUI')\n .controller('CardController', CardController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name sgAddress\n * @memberof ContactsUI\n * @desc Directive to format a postal address.\n * @ngInject\n */\n function sgAddress() {\n return {\n restrict: 'A',\n scope: { data: '=sgAddress' },\n controller: ['$scope', function($scope) {\n $scope.addressLines = function(data) {\n var lines = [],\n locality_region = [];\n if (data.street) lines.push(data.street);\n if (data.street2) lines.push(data.street2);\n if (data.locality) locality_region.push(data.locality);\n if (data.region) locality_region.push(data.region);\n if (locality_region.length > 0) lines.push(locality_region.join(', '));\n if (data.country) lines.push(data.country);\n if (data.postalcode) lines.push(data.postalcode);\n return lines.join('
');\n };\n }],\n template: '
'\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgAddress', sgAddress);\n})();\n"]} \ No newline at end of file +{"version":3,"file":"Contacts.js","sources":["Contacts/Contacts.app.js","Contacts/AddressBookController.js","Contacts/AddressBooksController.js","Contacts/CardController.js","Contacts/sgAddress.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","abstract","views","addressbooks","templateUrl","controller","controllerAs","resolve","stateAddressbooks","addressbook","stateAddressbook","card","stateCard","stateNewCard","template","card@app.addressbook","otherwise","AddressBook","$findAll","window","contactFolders","$stateParams","$find","addressbookId","$futureAddressBookData","Card","tag","contactType","pid","c_component","selectedCard","cardId","$getCard","runBlock","$rootScope","$log","$state","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","angular","module","config","run","$inject","AddressBookController","$scope","$q","$timeout","$mdDialog","focus","Account","Dialog","Settings","selectCard","id","toggleCardSelection","$event","selected","preventDefault","stopPropagation","newComponent","ev","ComponentDialogController","scope","create","type","hide","show","parent","element","document","body","targetEvent","clickOutsideToClose","escapeToClose","l","join","locals","vm","selectedFolder","notSelectedComponent","currentCard","unselectCards","_","each","cards","confirmDeleteSelectedCards","confirm","then","selectedCards","filter","$deleteCards","data","status","saveSelectedCards","selectedUIDs","pluck","location","href","ApplicationBaseURL","copySelectedCards","folder","$copyCards","alert","selectAll","sort","field","$filter","sortedBy","$query","cancelSearch","mode","search","newMessage","recipients","accounts","account","o","$getMailboxes","mailboxes","$newMessage","message","stateAccounts","stateMessage","stateRecipients","newMessageWithRecipient","recipient","fn","full","newMessageWithSelectedCards","promises","c_mail","length","push","c_cn","isDefined","refs","ref","email","$futureCardData","all","this","service","AddressBooksController","$mdToast","FileUploader","User","select","params","editMode","value","newAddressbook","prompt","name","isEditable","isRemote","owner","UserLogin","$add","edit","originalAddressbook","extend","$omit","revertEditing","save","$rename","confirmDelete","isSubscription","$delete","importCards","CardsImportDialogController","uploader","onProgressItem","item","progress","console","debug","onSuccessItem","response","headers","JSON","stringify","undefined","simple","content","imported","position","hideDelay","$reload","onCancelItem","onErrorItem","close","upload","uploadAll","exportCards","showLinks","LinksDialogController","share","$acl","$users","usersWithACL","users","subscribeToFolder","addressbookData","$subscribe","activeUser","CardController","addOrgUnit","i","$addOrgUnit","addBirthday","birthday","Date","addEmail","$addEmail","addPhone","$addPhone","addUrl","$addUrl","addAddress","$addAddress","addMember","$addMember","userFilter","excludedCards","dry","excludeLists","$cards","form","$valid","$save","indexOf","copy","err","log","reset","$reset","cancel","isNew","$fullname","ok","reject","exportCard","currentFolder","viewRawSource","$$resource","post","CardRawSourceDialogController","allEmailTypes","$EMAIL_TYPES","allTelTypes","$TEL_TYPES","allUrlTypes","$URL_TYPES","allAddressTypes","$ADDRESS_TYPES","categories","userFilterResults","sgAddress","restrict","addressLines","lines","locality_region","street","street2","locality","region","country","postalcode","directive"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoContacts */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.ContactsUI', ['ngSanitize', 'ui.router', 'angularFileUpload', 'ck', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.MailerUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('app', {\n url: '/addressbooks',\n abstract: true,\n views: {\n addressbooks: {\n templateUrl: 'UIxContactFoldersView', // UI/Templates/Contacts/UIxContactFoldersView.wox\n controller: 'AddressBooksController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateAddressbooks: stateAddressbooks\n }\n })\n .state('app.addressbook', {\n url: '/:addressbookId',\n views: {\n addressbook: {\n templateUrl: 'addressbook',\n controller: 'AddressBookController',\n controllerAs: 'addressbook'\n }\n },\n resolve: {\n stateAddressbook: stateAddressbook\n }\n })\n .state('app.addressbook.new', {\n url: '/{contactType:(?:card|list)}/new',\n views: {\n card: {\n templateUrl: 'UIxContactEditorTemplate', // UI/Templates/Contacts/UIxContactEditorTemplate.wox\n controller: 'CardController',\n controllerAs: 'editor'\n }\n },\n resolve: {\n stateCard: stateNewCard\n }\n })\n .state('app.addressbook.card', {\n url: '/:cardId',\n abstract: true,\n views: {\n card: {\n template: ''\n }\n },\n resolve: {\n stateCard: stateCard\n }\n })\n .state('app.addressbook.card.view', {\n url: '/view',\n views: {\n 'card@app.addressbook': {\n templateUrl: 'UIxContactViewTemplate', // UI/Templates/Contacts/UIxContactViewTemplate.wox\n controller: 'CardController',\n controllerAs: 'editor'\n }\n }\n })\n .state('app.addressbook.card.editor', {\n url: '/edit',\n views: {\n 'card@app.addressbook': {\n templateUrl: 'UIxContactEditorTemplate', // UI/Templates/Contacts/UIxContactEditorTemplate.wox\n controller: 'CardController',\n controllerAs: 'editor'\n }\n }\n });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/addressbooks/personal');\n }\n\n /**\n * @ngInject\n */\n stateAddressbooks.$inject = ['AddressBook'];\n function stateAddressbooks(AddressBook) {\n return AddressBook.$findAll(window.contactFolders);\n }\n\n /**\n * @ngInject\n */\n stateAddressbook.$inject = ['$stateParams', 'AddressBook'];\n function stateAddressbook($stateParams, AddressBook) {\n return AddressBook.$find($stateParams.addressbookId).$futureAddressBookData;\n }\n\n /**\n * @ngInject\n */\n stateNewCard.$inject = ['$stateParams', 'stateAddressbook', 'Card'];\n function stateNewCard($stateParams, stateAddressbook, Card) {\n var tag = 'v' + $stateParams.contactType,\n card = new Card({ pid: $stateParams.addressbookId, c_component: tag });\n stateAddressbook.selectedCard = true;\n return card;\n }\n\n /**\n * @ngInject\n */\n stateCard.$inject = ['$stateParams', 'stateAddressbook'];\n function stateCard($stateParams, stateAddressbook) {\n stateAddressbook.selectedCard = $stateParams.cardId;\n return stateAddressbook.$getCard($stateParams.cardId);\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope', '$log', '$state'];\n function runBlock($rootScope, $log, $state) {\n $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {\n $log.error(error);\n $state.go('app');\n });\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n $log.error(event, current, previous, rejection);\n });\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AddressBookController.$inject = ['$scope', '$q', '$state', '$timeout', '$mdDialog', 'sgFocus', 'Account', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'stateAddressbooks', 'stateAddressbook'];\n function AddressBookController($scope, $q, $state, $timeout, $mdDialog, focus, Account, Card, AddressBook, Dialog, Settings, stateAddressbooks, stateAddressbook) {\n var vm = this;\n\n AddressBook.selectedFolder = stateAddressbook;\n\n vm.service = AddressBook;\n vm.selectedFolder = stateAddressbook;\n vm.selectCard = selectCard;\n vm.toggleCardSelection = toggleCardSelection;\n vm.newComponent = newComponent;\n vm.notSelectedComponent = notSelectedComponent;\n vm.unselectCards = unselectCards;\n vm.confirmDeleteSelectedCards = confirmDeleteSelectedCards;\n vm.saveSelectedCards = saveSelectedCards;\n vm.copySelectedCards = copySelectedCards;\n vm.selectAll = selectAll;\n vm.sort = sort;\n vm.sortedBy = sortedBy;\n vm.cancelSearch = cancelSearch;\n vm.newMessage = newMessage;\n vm.newMessageWithSelectedCards = newMessageWithSelectedCards;\n vm.newMessageWithRecipient = newMessageWithRecipient;\n vm.mode = { search: false };\n \n function selectCard(card) {\n $state.go('app.addressbook.card.view', {addressbookId: stateAddressbook.id, cardId: card.id});\n }\n \n function toggleCardSelection($event, card) {\n card.selected = !card.selected;\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n function newComponent(ev) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: ev,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n ' ',\n ' ' + l('Contact'),\n ' ',\n ' ',\n ' ' + l('List'),\n ' ',\n '
',\n '
',\n '
'\n ].join(''),\n locals: {\n addressbookId: vm.selectedFolder.id\n },\n controller: ComponentDialogController\n });\n \n /**\n * @ngInject\n */\n ComponentDialogController.$inject = ['scope', '$mdDialog', '$state', 'addressbookId'];\n function ComponentDialogController(scope, $mdDialog, $state, addressbookId) {\n scope.create = function(type) {\n $mdDialog.hide();\n $state.go('app.addressbook.new', { addressbookId: addressbookId, contactType: type });\n };\n }\n }\n\n function notSelectedComponent(currentCard, type) {\n return (currentCard && currentCard.c_component == type && !currentCard.selected);\n }\n\n function unselectCards() {\n _.each(vm.selectedFolder.cards, function(card) { card.selected = false; });\n }\n \n function confirmDeleteSelectedCards() {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the selected contacts?'))\n .then(function() {\n // User confirmed the deletion\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n vm.selectedFolder.$deleteCards(selectedCards);\n delete vm.selectedFolder.selectedCard;\n }, function(data, status) {\n // Delete failed\n });\n }\n\n function saveSelectedCards() {\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n var selectedUIDs = _.pluck(selectedCards, 'id');\n window.location.href = ApplicationBaseURL + '/' + vm.selectedFolder.id + '/export?uid=' + selectedUIDs.join('&uid=');\n }\n\n function copySelectedCards(folder) {\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n vm.selectedFolder.$copyCards(selectedCards, folder).then(function() {\n // TODO: refresh target addressbook?\n }, function(error) {\n Dialog.alert(l('Error'), error);\n });\n }\n\n function selectAll() {\n _.each(vm.selectedFolder.cards, function(card) {\n card.selected = true;\n });\n }\n\n function sort(field) {\n vm.selectedFolder.$filter('', { sort: field });\n }\n\n function sortedBy(field) {\n return AddressBook.$query.sort == field;\n }\n\n function cancelSearch() {\n vm.mode.search = false;\n vm.selectedFolder.$filter('');\n }\n\n function newMessage($event, recipients) {\n Account.$findAll().then(function(accounts) {\n var account = _.filter(accounts, function(o) {\n if (o.id === 0)\n return o;\n })[0];\n\n // We must initialize the Account with its mailbox\n // list before proceeding with message's creation\n account.$getMailboxes().then(function(mailboxes) {\n account.$newMessage().then(function(message) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: '../Mail/UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: accounts,\n stateMessage: message,\n stateRecipients: recipients\n }\n });\n });\n });\n });\n }\n\n function newMessageWithRecipient($event, recipient, fn) {\n var recipients = [{full: fn + ' <' + recipient + '>'}];\n vm.newMessage($event, recipients);\n }\n\n function newMessageWithSelectedCards($event) {\n var selectedCards = _.filter(vm.selectedFolder.cards, function(card) { return card.selected; });\n var promises = [], recipients = [];\n\n _.each(selectedCards, function(card) {\n if (card.c_component == 'vcard' && card.c_mail.length) {\n recipients.push({full: card.c_cn + ' <' + card.c_mail + '>'});\n }\n else if (card.c_component == 'vlist') {\n // If the list's members were already fetch, use them\n if (angular.isDefined(card.refs) && card.refs.length) {\n _.each(card.refs, function(ref) {\n if (ref.email.length)\n recipients.push({full: ref.c_cn + ' <' + ref.email + '>'});\n });\n }\n else {\n promises.push(vm.selectedFolder.$getCard(card.id).then(function(card) {\n return card.$futureCardData.then(function(data) {\n _.each(data.refs, function(ref) {\n if (ref.email.length)\n recipients.push({full: ref.c_cn + ' <' + ref.email + '>'});\n });\n });\n }));\n }\n }\n });\n\n $q.all(promises).then(function() {\n if (recipients.length)\n vm.newMessage($event, recipients);\n });\n }\n }\n\n angular\n .module('SOGo.ContactsUI') \n .controller('AddressBookController', AddressBookController); \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AddressBooksController.$inject = ['$state', '$scope', '$rootScope', '$stateParams', '$timeout', '$mdDialog', '$mdToast', 'FileUploader', 'sgFocus', 'Card', 'AddressBook', 'Dialog', 'sgSettings', 'User', 'stateAddressbooks'];\n function AddressBooksController($state, $scope, $rootScope, $stateParams, $timeout, $mdDialog, $mdToast, FileUploader, focus, Card, AddressBook, Dialog, Settings, User, stateAddressbooks) {\n var vm = this;\n\n vm.activeUser = Settings.activeUser;\n vm.service = AddressBook;\n vm.select = select;\n vm.newAddressbook = newAddressbook;\n vm.edit = edit;\n vm.revertEditing = revertEditing;\n vm.save = save;\n vm.confirmDelete = confirmDelete;\n vm.importCards = importCards;\n vm.exportCards = exportCards;\n vm.showLinks = showLinks;\n vm.share = share;\n vm.subscribeToFolder = subscribeToFolder;\n\n function select($event, folder) {\n if ($state.params.addressbookId != folder.id &&\n vm.editMode != folder.id) {\n vm.editMode = false;\n AddressBook.$query.value = '';\n $state.go('app.addressbook', {addressbookId: folder.id});\n }\n else {\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n\n function newAddressbook() {\n Dialog.prompt(l('New addressbook'),\n l('Name of new addressbook'))\n .then(function(name) {\n var addressbook = new AddressBook(\n {\n name: name,\n isEditable: true,\n isRemote: false,\n owner: UserLogin\n }\n );\n AddressBook.$add(addressbook);\n });\n }\n\n function edit(folder) {\n if (!folder.isRemote) {\n vm.editMode = folder.id;\n vm.originalAddressbook = angular.extend({}, folder.$omit());\n focus('addressBookName_' + folder.id);\n }\n }\n\n function revertEditing(folder) {\n folder.name = vm.originalAddressbook.name;\n vm.editMode = false;\n }\n\n function save(folder) {\n var name = folder.name;\n if (name && name.length > 0 && name != vm.originalAddressbook.name) {\n folder.$rename(name)\n .then(function(data) {\n vm.editMode = false;\n }, function(data, status) {\n Dialog.alert(l('Warning'), data);\n });\n }\n }\n\n function confirmDelete() {\n if (vm.service.selectedFolder.isSubscription) {\n // Unsubscribe without confirmation\n vm.service.selectedFolder.$delete()\n .then(function() {\n vm.service.selectedFolder = null;\n $state.go('app.addressbook', { addressbookId: 'personal' });\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the addressbook \"%{0}\".',\n vm.service.selectedFolder.name),\n l(data.error));\n });\n }\n else {\n Dialog.confirm(l('Warning'), l('Are you sure you want to delete the addressbook %{0}?',\n vm.service.selectedFolder.name))\n .then(function() {\n return vm.service.selectedFolder.$delete();\n })\n .then(function() {\n vm.service.selectedFolder = null;\n return true;\n })\n .catch(function(data, status) {\n Dialog.alert(l('An error occured while deleting the addressbook \"%{0}\".',\n vm.service.selectedFolder.name),\n l(data.error));\n });\n }\n }\n\n function importCards($event, folder) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n ' import_export',\n '
',\n '
' + l('Import Cards') + '
',\n '
',\n ' ',\n ' close',\n ' ',\n '
',\n '
',\n ' ',\n '
',\n '
',\n ' ' + l('Select a vCard or LDIF file.') + '',\n ' ',\n ' ',\n '
',\n ' ' + l('No file chosen') + '',\n ' 0\">{{ uploader.queue[0].file.name }}',\n '
',\n '
',\n '
',\n ' ' + l('Upload') + '',\n '
',\n '
'\n ].join(''),\n controller: CardsImportDialogController,\n locals: {\n folder: folder\n }\n });\n\n /**\n * @ngInject\n */\n CardsImportDialogController.$inject = ['scope', '$mdDialog', 'folder'];\n function CardsImportDialogController(scope, $mdDialog, folder) {\n\n scope.uploader = new FileUploader({\n url: ApplicationBaseURL + '/' + folder.id + '/import',\n onProgressItem: function(item, progress) {\n console.debug(item); console.debug(progress);\n },\n onSuccessItem: function(item, response, status, headers) {\n console.debug(item); console.debug('success = ' + JSON.stringify(response, undefined, 2));\n $mdDialog.hide();\n $mdToast.show(\n $mdToast.simple()\n .content(l('A total of %{0} cards were imported in the addressbook.', response.imported))\n .position('top right')\n .hideDelay(3000));\n AddressBook.selectedFolder.$reload();\n },\n onCancelItem: function(item, response, status, headers) {\n console.debug(item); console.debug('cancel = ' + JSON.stringify(response, undefined, 2));\n },\n onErrorItem: function(item, response, status, headers) {\n console.debug(item); console.debug('error = ' + JSON.stringify(response, undefined, 2));\n }\n });\n\n scope.close = function() {\n $mdDialog.hide();\n };\n scope.upload = function() {\n scope.uploader.uploadAll();\n };\n }\n }\n\n function exportCards() {\n window.location.href = ApplicationBaseURL + '/' + vm.service.selectedFolder.id + '/exportFolder';\n }\n\n function showLinks(addressbook) {\n $mdDialog.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: addressbook.id + '/links',\n controller: LinksDialogController,\n controllerAs: 'links',\n locals: {\n addressbook: addressbook\n }\n });\n \n /**\n * @ngInject\n */\n LinksDialogController.$inject = ['$mdDialog', 'addressbook'];\n function LinksDialogController($mdDialog, addressbook) {\n var vm = this;\n this.addressbook = addressbook;\n this.close = close;\n\n function close() {\n $mdDialog.hide();\n }\n }\n }\n\n function share(addressbook) {\n // Fetch list of ACL users\n addressbook.$acl.$users().then(function() {\n // Show ACL editor\n $mdDialog.show({\n templateUrl: addressbook.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox\n controller: 'AclController', // from the ng module SOGo.Common\n controllerAs: 'acl',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n usersWithACL: addressbook.$acl.users,\n User: User,\n folder: addressbook\n }\n });\n });\n }\n\n /**\n * subscribeToFolder - Callback of sgSubscribe directive\n */\n function subscribeToFolder(addressbookData) {\n console.debug('subscribeToFolder ' + addressbookData.owner + addressbookData.name);\n AddressBook.$subscribe(addressbookData.owner, addressbookData.name).catch(function(data) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n }\n\n angular\n .module('SOGo.ContactsUI')\n .controller('AddressBooksController', AddressBooksController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * Controller to view and edit a card\n * @ngInject\n */\n CardController.$inject = ['$scope', '$timeout', '$mdDialog', 'AddressBook', 'Card', 'Dialog', 'sgFocus', '$state', '$stateParams', 'stateCard'];\n function CardController($scope, $timeout, $mdDialog, AddressBook, Card, Dialog, focus, $state, $stateParams, stateCard) {\n var vm = this;\n\n vm.card = stateCard;\n\n vm.currentFolder = AddressBook.selectedFolder;\n vm.allEmailTypes = Card.$EMAIL_TYPES;\n vm.allTelTypes = Card.$TEL_TYPES;\n vm.allUrlTypes = Card.$URL_TYPES;\n vm.allAddressTypes = Card.$ADDRESS_TYPES;\n vm.categories = {};\n vm.userFilterResults = [];\n vm.addOrgUnit = addOrgUnit;\n vm.addBirthday = addBirthday;\n vm.addEmail = addEmail;\n vm.addPhone = addPhone;\n vm.addUrl = addUrl;\n vm.addAddress = addAddress;\n vm.addMember = addMember;\n vm.userFilter = userFilter;\n vm.save = save;\n vm.close = close;\n vm.reset = reset;\n vm.cancel = cancel;\n vm.confirmDelete = confirmDelete;\n vm.exportCard = exportCard;\n vm.viewRawSource = viewRawSource;\n\n function addOrgUnit() {\n var i = vm.card.$addOrgUnit('');\n focus('orgUnit_' + i);\n }\n function addBirthday() {\n vm.card.birthday = new Date();\n }\n function addEmail() {\n var i = vm.card.$addEmail('');\n focus('email_' + i);\n }\n function addPhone() {\n var i = vm.card.$addPhone('');\n focus('phone_' + i);\n }\n function addUrl() {\n var i = vm.card.$addUrl('', '');\n focus('url_' + i);\n }\n function addAddress() {\n var i = vm.card.$addAddress('', '', '', '', '', '', '', '');\n focus('address_' + i);\n }\n function addMember() {\n var i = vm.card.$addMember('');\n focus('ref_' + i);\n }\n function userFilter($query, excludedCards) {\n AddressBook.selectedFolder.$filter($query, {dry: true, excludeLists: true}, excludedCards);\n return AddressBook.selectedFolder.$cards;\n }\n function save(form) {\n if (form.$valid) {\n vm.card.$save()\n .then(function(data) {\n var i = _.indexOf(_.pluck(AddressBook.selectedFolder.cards, 'id'), vm.card.id);\n if (i < 0) {\n // New card; reload contacts list and show addressbook in which the card has been created\n AddressBook.selectedFolder.$reload();\n }\n else {\n // Update contacts list with new version of the Card object\n AddressBook.selectedFolder.cards[i] = angular.copy(vm.card);\n }\n $state.go('app.addressbook.card.view', { cardId: vm.card.id });\n })\n .catch(function(err) {\n console.log(err);\n });\n }\n }\n function close() {\n $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id }).then(function() {\n vm.card = null;\n delete AddressBook.selectedFolder.selectedCard;\n });\n }\n function reset() {\n vm.card.$reset();\n }\n function cancel() {\n vm.card.$reset();\n if (vm.card.isNew) {\n // Cancelling the creation of a card\n vm.card = null;\n delete AddressBook.selectedFolder.selectedCard;\n $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id });\n }\n else {\n // Cancelling the edition of an existing card\n $state.go('app.addressbook.card.view', { cardId: vm.card.id });\n }\n }\n function confirmDelete(card) {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the card of %{0}?', card.$fullname()),\n {ok: l('Yes'), cancel: l('No')})\n .then(function() {\n // User confirmed the deletion\n card.$delete()\n .then(function() {\n // Remove card from list of addressbook\n AddressBook.selectedFolder.cards = _.reject(AddressBook.selectedFolder.cards, function(o) {\n return o.id == card.id;\n });\n // Remove card object from scope\n vm.card = null;\n $state.go('app.addressbook', { addressbookId: AddressBook.selectedFolder.id });\n }, function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured while deleting the card \"%{0}\".',\n card.$fullname()));\n });\n });\n }\n\n function exportCard() {\n window.location.href = ApplicationBaseURL + '/' + vm.currentFolder.id + '/export?uid=' + vm.card.id;\n }\n\n function viewRawSource($event) {\n Card.$$resource.post(vm.currentFolder.id + '/' + vm.card.id, \"raw\").then(function(data) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n            data,\n            '    
',\n '
',\n '
',\n ' ' + l('Close') + '',\n '
',\n '
'\n ].join(''),\n controller: CardRawSourceDialogController\n });\n\n /**\n * @ngInject\n */\n CardRawSourceDialogController.$inject = ['scope', '$mdDialog'];\n function CardRawSourceDialogController(scope, $mdDialog) {\n scope.close = function() {\n $mdDialog.hide();\n };\n }\n });\n }\n }\n\n angular\n .module('SOGo.ContactsUI')\n .controller('CardController', CardController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name sgAddress\n * @memberof ContactsUI\n * @desc Directive to format a postal address.\n * @ngInject\n */\n function sgAddress() {\n return {\n restrict: 'A',\n scope: { data: '=sgAddress' },\n controller: ['$scope', function($scope) {\n $scope.addressLines = function(data) {\n var lines = [],\n locality_region = [];\n if (data.street) lines.push(data.street);\n if (data.street2) lines.push(data.street2);\n if (data.locality) locality_region.push(data.locality);\n if (data.region) locality_region.push(data.region);\n if (locality_region.length > 0) lines.push(locality_region.join(', '));\n if (data.country) lines.push(data.country);\n if (data.postalcode) lines.push(data.postalcode);\n return lines.join('
');\n };\n }],\n template: '
'\n };\n }\n \n angular\n .module('SOGo.Common')\n .directive('sgAddress', sgAddress);\n})();\n"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Contacts.services.js b/UI/WebServerResources/js/Contacts.services.js index 8b86889c6..ec80237cc 100644 --- a/UI/WebServerResources/js/Contacts.services.js +++ b/UI/WebServerResources/js/Contacts.services.js @@ -1,2 +1,2 @@ -!function(){"use strict";function AddressBook(futureAddressBookData){if("function"!=typeof futureAddressBookData.then)if(this.init(futureAddressBookData),this.name&&!this.id){var newAddressBookData=AddressBook.$$resource.create("createFolder",this.name);this.$unwrap(newAddressBookData)}else this.id&&(this.$acl=new AddressBook.$$Acl("Contacts/"+this.id));else this.$unwrap(futureAddressBookData)}AddressBook.$factory=["$q","$timeout","$log","sgSettings","Resource","Card","Acl","Preferences",function($q,$timeout,$log,Settings,Resource,Card,Acl,Preferences){return angular.extend(AddressBook,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Contacts",Settings.activeUser()),$Card:Card,$$Acl:Acl,$Preferences:Preferences,$query:{search:"name_or_address",value:"",sort:"c_cn",asc:1},activeUser:Settings.activeUser(),selectedFolder:null,$refreshTimeout:null}),Preferences.ready().then(function(){Preferences.settings.Contact.SortingState&&(AddressBook.$query.sort=Preferences.settings.Contact.SortingState[0],AddressBook.$query.asc=parseInt(Preferences.settings.Contact.SortingState[1]))}),AddressBook}];try{angular.module("SOGo.ContactsUI")}catch(e){angular.module("SOGo.ContactsUI",["SOGo.Common"])}angular.module("SOGo.ContactsUI").factory("AddressBook",AddressBook.$factory),AddressBook.$filterAll=function(search,options,excludedCards){var params={search:search};if(!search)return AddressBook.$cards=[],AddressBook.$q.when(AddressBook.$cards);if(angular.isUndefined(AddressBook.$cards))AddressBook.$cards=[];else if(AddressBook.$query.value==search)return AddressBook.$q.when(AddressBook.$cards);return AddressBook.$query.value=search,angular.extend(params,options),AddressBook.$$resource.fetch(null,"allContactSearch",params).then(function(response){var results,card,index,compareIds=function(data){return this.id==data.id};for(results=excludedCards?_.filter(response.contacts,function(data){return _.isUndefined(_.find(excludedCards,compareIds,data))}):response.contacts,index=AddressBook.$cards.length-1;index>=0;index--)card=AddressBook.$cards[index],_.isUndefined(_.find(results,compareIds,card))&&AddressBook.$cards.splice(index,1);return _.each(results,function(data,index){if(_.isUndefined(_.find(AddressBook.$cards,compareIds,data))){var card=new AddressBook.$Card(data,search);AddressBook.$cards.splice(index,0,card)}}),AddressBook.$log.debug(AddressBook.$cards),AddressBook.$cards})},AddressBook.$add=function(addressbook){var list,sibling,i;list=addressbook.isSubscription?this.$subscriptions:this.$addressbooks,sibling=_.find(list,function(o){return"personal"==addressbook.id||"personal"!=o.id&&1===o.name.localeCompare(addressbook.name)}),i=sibling?_.indexOf(_.pluck(list,"id"),sibling.id):1,list.splice(i,0,addressbook)},AddressBook.$findAll=function(data){var _this=this;return data&&(this.$addressbooks=[],this.$subscriptions=[],this.$remotes=[],angular.forEach(data,function(o,i){var addressbook=new AddressBook(o);addressbook.isRemote?_this.$remotes.push(addressbook):addressbook.isSubscription?_this.$subscriptions.push(addressbook):_this.$addressbooks.push(addressbook)})),_.union(this.$addressbooks,this.$subscriptions,this.$remotes)},AddressBook.$find=function(addressbookId){var futureAddressBookData=AddressBook.$Preferences.ready().then(function(){return AddressBook.$$resource.fetch(addressbookId,"view",AddressBook.$query)});return new AddressBook(futureAddressBookData)},AddressBook.$subscribe=function(uid,path){var _this=this;return AddressBook.$$resource.userResource(uid).fetch(path,"subscribe").then(function(addressbookData){var addressbook=new AddressBook(addressbookData);return _.isUndefined(_.find(_this.$subscriptions,function(o){return o.id==addressbookData.id}))&&AddressBook.$add(addressbook),addressbook})},AddressBook.prototype.init=function(data){this.$isLoading=!0,this.$cards=[],this.cards=[],angular.extend(this,data),this.isOwned=AddressBook.activeUser.isSuperUser||this.owner==AddressBook.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=AddressBook.activeUser.login},AddressBook.prototype.$id=function(){return this.id?AddressBook.$q.when(this.id):this.$futureAddressBookData.then(function(addressbook){return addressbook.id})},AddressBook.prototype.$selectedCount=function(){var count;return count=0,this.cards&&(count=_.filter(this.cards,function(card){return card.selected}).length),count},AddressBook.prototype.$startRefreshTimeout=function(){var _this=this;AddressBook.$refreshTimeout&&AddressBook.$timeout.cancel(AddressBook.$refreshTimeout),AddressBook.$Preferences.ready().then(function(){var refreshViewCheck=AddressBook.$Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&"manually"!=refreshViewCheck){var f=angular.bind(_this,AddressBook.prototype.$reload);AddressBook.$refreshTimeout=AddressBook.$timeout(f,1e3*refreshViewCheck.timeInterval())}})},AddressBook.prototype.$reload=function(){return this.$startRefreshTimeout(),this.$filter()},AddressBook.prototype.$filter=function(search,options,excludedCards){var _this=this;return options&&options.dry||(this.$isLoading=!0),AddressBook.$Preferences.ready().then(function(){if(options&&(angular.extend(AddressBook.$query,options),options.dry)){if(!search)return _this.$cards=[],AddressBook.$q.when(_this.$cards);if(AddressBook.$query.value==search)return AddressBook.$q.when(_this.$cards)}return angular.isDefined(search)&&(AddressBook.$query.value=search),_this.$id().then(function(addressbookId){return AddressBook.$$resource.fetch(addressbookId,"view",AddressBook.$query)}).then(function(response){var results,cards,card,index,compareIds=function(data){return _this.id==data.id};for(cards=options&&options.dry?_this.$cards:_this.cards,results=excludedCards?_.filter(response.cards,function(card){return _.isUndefined(_.find(excludedCards,compareIds,card))}):response.cards,index=cards.length-1;index>=0;index--)card=cards[index],_.isUndefined(_.find(results,compareIds,card))&&cards.splice(index,1);return _.each(results,function(data,index){if(_.isUndefined(_.find(cards,compareIds,data))){var card=new AddressBook.$Card(data,search);cards.splice(index,0,card)}}),_.each(results,function(data,index){var oldIndex,removedCards;cards[index].id!=data.id&&(oldIndex=_.findIndex(cards,compareIds,data),removedCards=cards.splice(oldIndex,1),cards.splice(index,0,removedCards[0]))}),_this.$isLoading=!1,cards})})},AddressBook.prototype.$rename=function(name){var i=_.indexOf(_.pluck(AddressBook.$addressbooks,"id"),this.id);return this.name=name,AddressBook.$addressbooks.splice(i,1),AddressBook.$add(this),this.$save()},AddressBook.prototype.$delete=function(){var list,promise,_this=this,d=AddressBook.$q.defer();return this.isSubscription?(promise=AddressBook.$$resource.fetch(this.id,"unsubscribe"),list=AddressBook.$subscriptions):(promise=AddressBook.$$resource.remove(this.id),list=AddressBook.$addressbooks),promise.then(function(){var i=_.indexOf(_.pluck(list,"id"),_this.id);list.splice(i,1),d.resolve()},function(data,status){d.reject(data)}),d.promise},AddressBook.prototype.$deleteCards=function(cards){var uids=_.map(cards,function(card){return card.id}),_this=this;return AddressBook.$$resource.post(this.id,"batchDelete",{uids:uids}).then(function(){_this.cards=_.difference(_this.cards,cards)})},AddressBook.prototype.$copyCards=function(cards,folder){var uids=_.map(cards,function(card){return card.id});return AddressBook.$$resource.post(this.id,"copy",{uids:uids,folder:folder})},AddressBook.prototype.$save=function(){return AddressBook.$$resource.save(this.id,this.$omit()).then(function(data){return data})},AddressBook.prototype.$getCard=function(cardId){var _this=this;return this.$id().then(function(addressbookId){var fullCard,cachedCard=_.find(_this.cards,function(data){return cardId==data.id});return cachedCard&&cachedCard.$futureCardData?cachedCard:(fullCard=AddressBook.$Card.$find(addressbookId,cardId),fullCard.$id().then(function(cardId){cachedCard&&angular.extend(cachedCard,fullCard)}),fullCard)})},AddressBook.prototype.$unwrap=function(futureAddressBookData){var _this=this;this.$futureAddressBookData=futureAddressBookData.then(function(data){return AddressBook.$timeout(function(){return angular.forEach(AddressBook.$findAll(),function(o,i){o.id==data.id&&angular.extend(_this,o)}),_this.init(data),angular.forEach(_this.cards,function(o,i){_this.cards[i]=new AddressBook.$Card(o)}),_this.$acl=new AddressBook.$$Acl("Contacts/"+_this.id),_this.$startRefreshTimeout(),_this.$isLoading=!1,_this})},function(data){_this.isError=!0,angular.isObject(data)&&AddressBook.$timeout(function(){angular.extend(_this,data)})})},AddressBook.prototype.$omit=function(){var addressbook={};return angular.forEach(this,function(value,key){"constructor"!=key&&"cards"!=key&&"$"!=key[0]&&(addressbook[key]=value)}),addressbook}}(),function(){"use strict";function Card(futureCardData,partial){if("function"!=typeof futureCardData.then){if(this.init(futureCardData,partial),this.pid&&!this.id){var newCardData=Card.$$resource.newguid(this.pid);this.$unwrap(newCardData),this.isNew=!0}}else this.$unwrap(futureCardData)}Card.$TEL_TYPES=["work","home","cell","fax","pager"],Card.$EMAIL_TYPES=["work","home","pref"],Card.$URL_TYPES=["work","home","pref"],Card.$ADDRESS_TYPES=["work","home"],Card.$factory=["$timeout","sgSettings","Resource","Preferences","Gravatar",function($timeout,Settings,Resource,Preferences,Gravatar){return angular.extend(Card,{$$resource:new Resource(Settings.activeUser("folderURL")+"Contacts",Settings.activeUser()),$timeout:$timeout,$gravatar:Gravatar}),Preferences.ready().then(function(){Preferences.defaults.SOGoContactsCategories&&(Card.$categories=Preferences.defaults.SOGoContactsCategories)}),Card}];try{angular.module("SOGo.ContactsUI")}catch(e){angular.module("SOGo.ContactsUI",["SOGo.Common"])}angular.module("SOGo.ContactsUI").factory("Card",Card.$factory),Card.$find=function(addressbookId,cardId){var futureCardData=this.$$resource.fetch([addressbookId,cardId].join("/"),"view");return cardId?new Card(futureCardData):Card.$unwrapCollection(futureCardData)},Card.filterCategories=function(query){var re=new RegExp(query,"i");return _.filter(Card.$categories,function(category){return-1!=category.search(re)})},Card.$unwrapCollection=function(futureCardData){var collection={};return collection.$futureCardData=futureCardData,futureCardData.then(function(cards){Card.$timeout(function(){angular.forEach(cards,function(data,index){collection[data.id]=new Card(data)})})}),collection},Card.prototype.init=function(data,partial){this.refs=[],angular.extend(this,data),this.$$fullname||(this.$$fullname=this.$fullname()),this.$$email||(this.$$email=this.$preferredEmail(partial)),this.$$image||(this.$$image=this.image||Card.$gravatar(this.$preferredEmail(partial),32)),this.selected=!1,this.empty=" "},Card.prototype.$id=function(){return this.$futureCardData.then(function(data){return data.id})},Card.prototype.$save=function(){var _this=this,action="saveAsContact";return"vlist"==this.c_component&&(action="saveAsList"),Card.$$resource.save([this.pid,this.id||"_new_"].join("/"),this.$omit(),{action:action}).then(function(data){return _this.$shadowData=_this.$omit(!0),data})},Card.prototype.$delete=function(attribute,index){return attribute?void(index>-1&&this[attribute].length>index?this[attribute].splice(index,1):delete this[attribute]):Card.$$resource.remove([this.pid,this.id].join("/"))},Card.prototype.$fullname=function(){var names,fn=this.c_cn||"";return 0===fn.length&&(names=[],this.c_givenname&&this.c_givenname.length>0&&names.push(this.c_givenname),this.nickname&&this.nickname.length>0&&names.push(""+this.nickname+""),this.c_sn&&this.c_sn.length>0&&names.push(this.c_sn),names.length>0?fn=names.join(" "):this.c_org&&this.c_org.length>0?fn=this.c_org:this.emails&&this.emails.length>0?fn=_.find(this.emails,function(i){return""!==i.value}).value:this.c_cn&&this.c_cn.length>0&&(fn=this.c_cn)),fn},Card.prototype.$description=function(){var description=[];return this.title&&description.push(this.title),this.role&&description.push(this.role),this.orgUnits&&this.orgUnits.length>0&&_.forEach(this.orgUnits,function(unit){""!==unit.value&&description.push(unit.value)}),this.c_org&&description.push(this.c_org),this.description&&description.push(this.description),description.join(", ")},Card.prototype.$preferredEmail=function(partial){var email,re;return partial&&(re=new RegExp(partial,"i"),email=_.find(this.emails,function(o){return re.test(o.value)})),email?email=email.value:(email=_.find(this.emails,function(o){return"pref"==o.type}),email=email?email.value:this.emails&&this.emails.length?this.emails[0].value:""),email},Card.prototype.$shortFormat=function(partial){var fullname=this.$fullname(),email=this.$preferredEmail(partial);return email&&email!=fullname&&(fullname+=" <"+email+">"),fullname},Card.prototype.$birthday=function(){return this.birthday?[this.birthday.getFullYear(),this.birthday.getMonth()+1,this.birthday.getDate()].join("/"):""},Card.prototype.$isCard=function(){return"vcard"==this.c_component},Card.prototype.$isList=function(){return"vlist"==this.c_component},Card.prototype.$addOrgUnit=function(orgUnit){if(angular.isUndefined(this.orgUnits))this.orgUnits=[{value:orgUnit}];else{for(var i=0;i"),"["+desc+"]"}}(); +!function(){"use strict";function AddressBook(futureAddressBookData){if("function"!=typeof futureAddressBookData.then)if(this.init(futureAddressBookData),this.name&&!this.id){var newAddressBookData=AddressBook.$$resource.create("createFolder",this.name);this.$unwrap(newAddressBookData)}else this.id&&(this.$acl=new AddressBook.$$Acl("Contacts/"+this.id));else this.$unwrap(futureAddressBookData)}AddressBook.$factory=["$q","$timeout","$log","sgSettings","Resource","Card","Acl","Preferences",function($q,$timeout,$log,Settings,Resource,Card,Acl,Preferences){return angular.extend(AddressBook,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Contacts",Settings.activeUser()),$Card:Card,$$Acl:Acl,$Preferences:Preferences,$query:{search:"name_or_address",value:"",sort:"c_cn",asc:1},activeUser:Settings.activeUser(),selectedFolder:null,$refreshTimeout:null}),Preferences.ready().then(function(){Preferences.settings.Contact.SortingState&&(AddressBook.$query.sort=Preferences.settings.Contact.SortingState[0],AddressBook.$query.asc=parseInt(Preferences.settings.Contact.SortingState[1]))}),AddressBook}];try{angular.module("SOGo.ContactsUI")}catch(e){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").factory("AddressBook",AddressBook.$factory),AddressBook.$filterAll=function(search,options,excludedCards){var params={search:search};if(!search)return AddressBook.$cards=[],AddressBook.$q.when(AddressBook.$cards);if(angular.isUndefined(AddressBook.$cards))AddressBook.$cards=[];else if(AddressBook.$query.value==search)return AddressBook.$q.when(AddressBook.$cards);return AddressBook.$query.value=search,angular.extend(params,options),AddressBook.$$resource.fetch(null,"allContactSearch",params).then(function(response){var results,card,index,compareIds=function(data){return this.id==data.id};for(results=excludedCards?_.filter(response.contacts,function(data){return _.isUndefined(_.find(excludedCards,compareIds,data))}):response.contacts,index=AddressBook.$cards.length-1;index>=0;index--)card=AddressBook.$cards[index],_.isUndefined(_.find(results,compareIds,card))&&AddressBook.$cards.splice(index,1);return _.each(results,function(data,index){if(_.isUndefined(_.find(AddressBook.$cards,compareIds,data))){var card=new AddressBook.$Card(data,search);AddressBook.$cards.splice(index,0,card)}}),AddressBook.$log.debug(AddressBook.$cards),AddressBook.$cards})},AddressBook.$add=function(addressbook){var list,sibling,i;list=addressbook.isSubscription?this.$subscriptions:this.$addressbooks,sibling=_.find(list,function(o){return"personal"==addressbook.id||"personal"!=o.id&&1===o.name.localeCompare(addressbook.name)}),i=sibling?_.indexOf(_.pluck(list,"id"),sibling.id):1,list.splice(i,0,addressbook)},AddressBook.$findAll=function(data){var _this=this;return data&&(this.$addressbooks=[],this.$subscriptions=[],this.$remotes=[],angular.forEach(data,function(o,i){var addressbook=new AddressBook(o);addressbook.isRemote?_this.$remotes.push(addressbook):addressbook.isSubscription?_this.$subscriptions.push(addressbook):_this.$addressbooks.push(addressbook)})),_.union(this.$addressbooks,this.$subscriptions,this.$remotes)},AddressBook.$find=function(addressbookId){var futureAddressBookData=AddressBook.$Preferences.ready().then(function(){return AddressBook.$$resource.fetch(addressbookId,"view",AddressBook.$query)});return new AddressBook(futureAddressBookData)},AddressBook.$subscribe=function(uid,path){var _this=this;return AddressBook.$$resource.userResource(uid).fetch(path,"subscribe").then(function(addressbookData){var addressbook=new AddressBook(addressbookData);return _.isUndefined(_.find(_this.$subscriptions,function(o){return o.id==addressbookData.id}))&&AddressBook.$add(addressbook),addressbook})},AddressBook.prototype.init=function(data){this.$isLoading=!0,this.$cards=[],this.cards=[],angular.extend(this,data),this.isOwned=AddressBook.activeUser.isSuperUser||this.owner==AddressBook.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=AddressBook.activeUser.login},AddressBook.prototype.$id=function(){return this.id?AddressBook.$q.when(this.id):this.$futureAddressBookData.then(function(addressbook){return addressbook.id})},AddressBook.prototype.$selectedCount=function(){var count;return count=0,this.cards&&(count=_.filter(this.cards,function(card){return card.selected}).length),count},AddressBook.prototype.$startRefreshTimeout=function(){var _this=this;AddressBook.$refreshTimeout&&AddressBook.$timeout.cancel(AddressBook.$refreshTimeout),AddressBook.$Preferences.ready().then(function(){var refreshViewCheck=AddressBook.$Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&"manually"!=refreshViewCheck){var f=angular.bind(_this,AddressBook.prototype.$reload);AddressBook.$refreshTimeout=AddressBook.$timeout(f,1e3*refreshViewCheck.timeInterval())}})},AddressBook.prototype.$reload=function(){return this.$startRefreshTimeout(),this.$filter()},AddressBook.prototype.$filter=function(search,options,excludedCards){var _this=this;return options&&options.dry||(this.$isLoading=!0),AddressBook.$Preferences.ready().then(function(){if(options&&(angular.extend(AddressBook.$query,options),options.dry)){if(!search)return _this.$cards=[],AddressBook.$q.when(_this.$cards);if(AddressBook.$query.value==search)return AddressBook.$q.when(_this.$cards)}return angular.isDefined(search)&&(AddressBook.$query.value=search),_this.$id().then(function(addressbookId){return AddressBook.$$resource.fetch(addressbookId,"view",AddressBook.$query)}).then(function(response){var results,cards,card,index,compareIds=function(data){return _this.id==data.id};for(cards=options&&options.dry?_this.$cards:_this.cards,results=excludedCards?_.filter(response.cards,function(card){return _.isUndefined(_.find(excludedCards,compareIds,card))}):response.cards,index=cards.length-1;index>=0;index--)card=cards[index],_.isUndefined(_.find(results,compareIds,card))&&cards.splice(index,1);return _.each(results,function(data,index){if(_.isUndefined(_.find(cards,compareIds,data))){var card=new AddressBook.$Card(data,search);cards.splice(index,0,card)}}),_.each(results,function(data,index){var oldIndex,removedCards;cards[index].id!=data.id&&(oldIndex=_.findIndex(cards,compareIds,data),removedCards=cards.splice(oldIndex,1),cards.splice(index,0,removedCards[0]))}),_this.$isLoading=!1,cards})})},AddressBook.prototype.$rename=function(name){var i=_.indexOf(_.pluck(AddressBook.$addressbooks,"id"),this.id);return this.name=name,AddressBook.$addressbooks.splice(i,1),AddressBook.$add(this),this.$save()},AddressBook.prototype.$delete=function(){var list,promise,_this=this,d=AddressBook.$q.defer();return this.isSubscription?(promise=AddressBook.$$resource.fetch(this.id,"unsubscribe"),list=AddressBook.$subscriptions):(promise=AddressBook.$$resource.remove(this.id),list=AddressBook.$addressbooks),promise.then(function(){var i=_.indexOf(_.pluck(list,"id"),_this.id);list.splice(i,1),d.resolve()},function(data,status){d.reject(data)}),d.promise},AddressBook.prototype.$deleteCards=function(cards){var uids=_.map(cards,function(card){return card.id}),_this=this;return AddressBook.$$resource.post(this.id,"batchDelete",{uids:uids}).then(function(){_this.cards=_.difference(_this.cards,cards)})},AddressBook.prototype.$copyCards=function(cards,folder){var uids=_.map(cards,function(card){return card.id});return AddressBook.$$resource.post(this.id,"copy",{uids:uids,folder:folder})},AddressBook.prototype.$save=function(){return AddressBook.$$resource.save(this.id,this.$omit()).then(function(data){return data})},AddressBook.prototype.$getCard=function(cardId){var _this=this;return this.$id().then(function(addressbookId){var fullCard,cachedCard=_.find(_this.cards,function(data){return cardId==data.id});return cachedCard&&cachedCard.$futureCardData?cachedCard:(fullCard=AddressBook.$Card.$find(addressbookId,cardId),fullCard.$id().then(function(cardId){cachedCard&&angular.extend(cachedCard,fullCard)}),fullCard)})},AddressBook.prototype.$unwrap=function(futureAddressBookData){var _this=this;this.$futureAddressBookData=futureAddressBookData.then(function(data){return AddressBook.$timeout(function(){return angular.forEach(AddressBook.$findAll(),function(o,i){o.id==data.id&&angular.extend(_this,o)}),_this.init(data),angular.forEach(_this.cards,function(o,i){_this.cards[i]=new AddressBook.$Card(o)}),_this.$acl=new AddressBook.$$Acl("Contacts/"+_this.id),_this.$startRefreshTimeout(),_this.$isLoading=!1,_this})},function(data){_this.isError=!0,angular.isObject(data)&&AddressBook.$timeout(function(){angular.extend(_this,data)})})},AddressBook.prototype.$omit=function(){var addressbook={};return angular.forEach(this,function(value,key){"constructor"!=key&&"cards"!=key&&"$"!=key[0]&&(addressbook[key]=value)}),addressbook}}(),function(){"use strict";function Card(futureCardData,partial){if("function"!=typeof futureCardData.then){if(this.init(futureCardData,partial),this.pid&&!this.id){var newCardData=Card.$$resource.newguid(this.pid);this.$unwrap(newCardData),this.isNew=!0}}else this.$unwrap(futureCardData)}Card.$TEL_TYPES=["work","home","cell","fax","pager"],Card.$EMAIL_TYPES=["work","home","pref"],Card.$URL_TYPES=["work","home","pref"],Card.$ADDRESS_TYPES=["work","home"],Card.$factory=["$timeout","sgSettings","Resource","Preferences","Gravatar",function($timeout,Settings,Resource,Preferences,Gravatar){return angular.extend(Card,{$$resource:new Resource(Settings.activeUser("folderURL")+"Contacts",Settings.activeUser()),$timeout:$timeout,$gravatar:Gravatar}),Preferences.ready().then(function(){Preferences.defaults.SOGoContactsCategories&&(Card.$categories=Preferences.defaults.SOGoContactsCategories)}),Card}];try{angular.module("SOGo.ContactsUI")}catch(e){angular.module("SOGo.ContactsUI",["SOGo.Common","SOGo.PreferencesUI"])}angular.module("SOGo.ContactsUI").factory("Card",Card.$factory),Card.$find=function(addressbookId,cardId){var futureCardData=this.$$resource.fetch([addressbookId,cardId].join("/"),"view");return cardId?new Card(futureCardData):Card.$unwrapCollection(futureCardData)},Card.filterCategories=function(query){var re=new RegExp(query,"i");return _.filter(Card.$categories,function(category){return-1!=category.search(re)})},Card.$unwrapCollection=function(futureCardData){var collection={};return collection.$futureCardData=futureCardData,futureCardData.then(function(cards){Card.$timeout(function(){angular.forEach(cards,function(data,index){collection[data.id]=new Card(data)})})}),collection},Card.prototype.init=function(data,partial){this.refs=[],angular.extend(this,data),this.$$fullname||(this.$$fullname=this.$fullname()),this.$$email||(this.$$email=this.$preferredEmail(partial)),this.$$image||(this.$$image=this.image||Card.$gravatar(this.$preferredEmail(partial),32)),this.selected=!1,this.empty=" "},Card.prototype.$id=function(){return this.$futureCardData.then(function(data){return data.id})},Card.prototype.$save=function(){var _this=this,action="saveAsContact";return"vlist"==this.c_component&&(action="saveAsList"),Card.$$resource.save([this.pid,this.id||"_new_"].join("/"),this.$omit(),{action:action}).then(function(data){return _this.$shadowData=_this.$omit(!0),data})},Card.prototype.$delete=function(attribute,index){return attribute?void(index>-1&&this[attribute].length>index?this[attribute].splice(index,1):delete this[attribute]):Card.$$resource.remove([this.pid,this.id].join("/"))},Card.prototype.$fullname=function(){var names,fn=this.c_cn||"";return 0===fn.length&&(names=[],this.c_givenname&&this.c_givenname.length>0&&names.push(this.c_givenname),this.nickname&&this.nickname.length>0&&names.push(""+this.nickname+""),this.c_sn&&this.c_sn.length>0&&names.push(this.c_sn),names.length>0?fn=names.join(" "):this.c_org&&this.c_org.length>0?fn=this.c_org:this.emails&&this.emails.length>0?fn=_.find(this.emails,function(i){return""!==i.value}).value:this.c_cn&&this.c_cn.length>0&&(fn=this.c_cn)),fn},Card.prototype.$description=function(){var description=[];return this.title&&description.push(this.title),this.role&&description.push(this.role),this.orgUnits&&this.orgUnits.length>0&&_.forEach(this.orgUnits,function(unit){""!==unit.value&&description.push(unit.value)}),this.c_org&&description.push(this.c_org),this.description&&description.push(this.description),description.join(", ")},Card.prototype.$preferredEmail=function(partial){var email,re;return partial&&(re=new RegExp(partial,"i"),email=_.find(this.emails,function(o){return re.test(o.value)})),email?email=email.value:(email=_.find(this.emails,function(o){return"pref"==o.type}),email=email?email.value:this.emails&&this.emails.length?this.emails[0].value:""),email},Card.prototype.$shortFormat=function(partial){var fullname=this.$fullname(),email=this.$preferredEmail(partial);return email&&email!=fullname&&(fullname+=" <"+email+">"),fullname},Card.prototype.$birthday=function(){return this.birthday?[this.birthday.getFullYear(),this.birthday.getMonth()+1,this.birthday.getDate()].join("/"):""},Card.prototype.$isCard=function(){return"vcard"==this.c_component},Card.prototype.$isList=function(){return"vlist"==this.c_component},Card.prototype.$addOrgUnit=function(orgUnit){if(angular.isUndefined(this.orgUnits))this.orgUnits=[{value:orgUnit}];else{for(var i=0;i"),"["+desc+"]"}}(); //# sourceMappingURL=Contacts.services.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Contacts.services.js.map b/UI/WebServerResources/js/Contacts.services.js.map index 08fa8c422..6aad48e80 100644 --- a/UI/WebServerResources/js/Contacts.services.js.map +++ b/UI/WebServerResources/js/Contacts.services.js.map @@ -1 +1 @@ -{"version":3,"file":"Contacts.services.js","sources":["Contacts/AddressBook.service.js","Contacts/Card.service.js"],"names":["AddressBook","futureAddressBookData","then","this","init","name","id","newAddressBookData","$$resource","create","$unwrap","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","Resource","Card","Acl","Preferences","angular","extend","activeUser","$Card","$Preferences","$query","search","value","sort","asc","selectedFolder","$refreshTimeout","ready","settings","Contact","SortingState","parseInt","module","e","factory","$filterAll","options","excludedCards","params","$cards","when","isUndefined","fetch","response","results","card","index","compareIds","data","_","filter","contacts","find","length","splice","each","debug","$add","addressbook","list","sibling","i","isSubscription","$subscriptions","$addressbooks","o","localeCompare","indexOf","pluck","$findAll","_this","$remotes","forEach","isRemote","push","union","$find","addressbookId","$subscribe","uid","path","userResource","addressbookData","prototype","$isLoading","cards","isOwned","isSuperUser","owner","login","$id","$futureAddressBookData","$selectedCount","count","selected","$startRefreshTimeout","cancel","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","$reload","timeInterval","$filter","dry","isDefined","oldIndex","removedCards","findIndex","$rename","$save","$delete","promise","d","defer","remove","resolve","status","reject","$deleteCards","uids","map","post","difference","$copyCards","folder","save","$omit","$getCard","cardId","fullCard","cachedCard","$futureCardData","isError","isObject","key","futureCardData","partial","pid","newCardData","newguid","isNew","$TEL_TYPES","$EMAIL_TYPES","$URL_TYPES","$ADDRESS_TYPES","Gravatar","$gravatar","SOGoContactsCategories","$categories","join","$unwrapCollection","filterCategories","query","re","RegExp","category","collection","refs","$$fullname","$fullname","$$email","$preferredEmail","$$image","image","empty","action","c_component","$shadowData","attribute","names","fn","c_cn","c_givenname","nickname","c_sn","c_org","emails","$description","description","title","role","orgUnits","unit","email","test","type","$shortFormat","fullname","$birthday","birthday","getFullYear","getMonth","getDate","$isCard","$isList","$addOrgUnit","orgUnit","$addCategory","categories","$addEmail","$addPhone","phones","$addUrl","url","urls","$addAddress","postoffice","street","street2","locality","region","country","postalcode","addresses","$addMember","$reset","reference","Date","deep","copy","getTime","toString","desc"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name AddressBook\n * @constructor\n * @param {object} futureAddressBookData - either an object literal or a promise\n */\n function AddressBook(futureAddressBookData) {\n // Data is immediately available\n if (typeof futureAddressBookData.then !== 'function') {\n this.init(futureAddressBookData);\n if (this.name && !this.id) {\n // Create a new addressbook on the server\n var newAddressBookData = AddressBook.$$resource.create('createFolder', this.name);\n this.$unwrap(newAddressBookData);\n }\n else if (this.id) {\n this.$acl = new AddressBook.$$Acl('Contacts/' + this.id);\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureAddressBookData);\n }\n }\n\n /**\n * @memberof AddressBook\n * @desc The factory we'll use to register with Angular\n * @returns the AddressBook constructor\n */\n AddressBook.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Card', 'Acl', 'Preferences', function($q, $timeout, $log, Settings, Resource, Card, Acl, Preferences) {\n angular.extend(AddressBook, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Contacts', Settings.activeUser()),\n $Card: Card,\n $$Acl: Acl,\n $Preferences: Preferences,\n $query: {search: 'name_or_address', value: '', sort: 'c_cn', asc: 1},\n activeUser: Settings.activeUser(),\n selectedFolder: null,\n $refreshTimeout: null\n });\n // Initialize sort parameters from user's settings\n Preferences.ready().then(function() {\n if (Preferences.settings.Contact.SortingState) {\n AddressBook.$query.sort = Preferences.settings.Contact.SortingState[0];\n AddressBook.$query.asc = parseInt(Preferences.settings.Contact.SortingState[1]);\n }\n });\n return AddressBook; // return constructor\n }];\n\n /**\n * @module SOGo.ContactsUI\n * @desc Factory registration of AddressBook in Angular module.\n */\n try {\n angular.module('SOGo.ContactsUI');\n }\n catch(e) {\n angular.module('SOGo.ContactsUI', ['SOGo.Common']);\n }\n angular.module('SOGo.ContactsUI')\n .factory('AddressBook', AddressBook.$factory);\n\n /**\n * @memberof AddressBook\n * @desc Search for cards among all addressbooks matching some criterias.\n * @param {string} search - the search string to match\n * @param {object} [options] - additional options to the query (excludeGroups and excludeLists)\n * @param {object[]} excludedCards - a list of Card objects that must be excluded from the results\n * @returns a collection of Cards instances\n */\n AddressBook.$filterAll = function(search, options, excludedCards) {\n var params = {search: search};\n\n if (!search) {\n // No query specified\n AddressBook.$cards = [];\n return AddressBook.$q.when(AddressBook.$cards);\n }\n if (angular.isUndefined(AddressBook.$cards)) {\n // First session query\n AddressBook.$cards = [];\n }\n else if (AddressBook.$query.value == search) {\n // Query hasn't changed\n return AddressBook.$q.when(AddressBook.$cards);\n }\n AddressBook.$query.value = search;\n\n angular.extend(params, options);\n\n return AddressBook.$$resource.fetch(null, 'allContactSearch', params).then(function(response) {\n var results, card, index,\n compareIds = function(data) {\n return this.id == data.id;\n };\n if (excludedCards) {\n // Remove excluded cards from results\n results = _.filter(response.contacts, function(data) {\n return _.isUndefined(_.find(excludedCards, compareIds, data));\n });\n }\n else {\n results = response.contacts;\n }\n // Remove cards that no longer match the search query\n for (index = AddressBook.$cards.length - 1; index >= 0; index--) {\n card = AddressBook.$cards[index];\n if (_.isUndefined(_.find(results, compareIds, card))) {\n AddressBook.$cards.splice(index, 1);\n }\n }\n // Add new cards matching the search query\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(AddressBook.$cards, compareIds, data))) {\n var card = new AddressBook.$Card(data, search);\n AddressBook.$cards.splice(index, 0, card);\n }\n });\n AddressBook.$log.debug(AddressBook.$cards);\n return AddressBook.$cards;\n });\n };\n\n /**\n * @memberof AddressBook\n * @desc Add a new addressbook to the static list of addressbooks\n * @param {AddressBook} addressbook - an Addressbook object instance\n */\n AddressBook.$add = function(addressbook) {\n // Insert new addressbook at proper index\n var list, sibling, i;\n\n list = addressbook.isSubscription? this.$subscriptions : this.$addressbooks;\n sibling = _.find(list, function(o) {\n return (addressbook.id == 'personal' ||\n (o.id != 'personal' &&\n o.name.localeCompare(addressbook.name) === 1));\n });\n i = sibling ? _.indexOf(_.pluck(list, 'id'), sibling.id) : 1;\n list.splice(i, 0, addressbook);\n };\n\n /**\n * @memberof AddressBook\n * @desc Set or get the list of addressbooks. Will instantiate a new AddressBook object for each item.\n * @param {array} [data] - the metadata of the addressbooks\n * @returns the list of addressbooks\n */\n AddressBook.$findAll = function(data) {\n var _this = this;\n if (data) {\n this.$addressbooks = [];\n this.$subscriptions = [];\n this.$remotes = [];\n // Instanciate AddressBook objects\n angular.forEach(data, function(o, i) {\n var addressbook = new AddressBook(o);\n if (addressbook.isRemote)\n _this.$remotes.push(addressbook);\n else if (addressbook.isSubscription)\n _this.$subscriptions.push(addressbook);\n else\n _this.$addressbooks.push(addressbook);\n });\n }\n return _.union(this.$addressbooks, this.$subscriptions, this.$remotes);\n };\n\n /**\n * @memberOf AddressBook\n * @desc Fetch list of cards and return an AddressBook instance.\n * @param {string} addressbookId - the addressbook identifier\n * @returns an AddressBook object instance\n */\n AddressBook.$find = function(addressbookId) {\n var futureAddressBookData = AddressBook.$Preferences.ready().then(function() {\n return AddressBook.$$resource.fetch(addressbookId, 'view', AddressBook.$query);\n });\n return new AddressBook(futureAddressBookData);\n };\n\n /**\n * @memberOf AddressBook\n * @desc Subscribe to another user's addressbook and add it to the list of addressbooks.\n * @param {string} uid - user id\n * @param {string} path - path of folder for specified user\n * @returns a promise of the HTTP query result\n */\n AddressBook.$subscribe = function(uid, path) {\n var _this = this;\n return AddressBook.$$resource.userResource(uid).fetch(path, 'subscribe').then(function(addressbookData) {\n var addressbook = new AddressBook(addressbookData);\n if (_.isUndefined(_.find(_this.$subscriptions, function(o) {\n return o.id == addressbookData.id;\n }))) {\n // Not already subscribed\n AddressBook.$add(addressbook);\n }\n return addressbook;\n });\n };\n\n /**\n * @function init\n * @memberof AddressBook.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of addressbook\n */\n AddressBook.prototype.init = function(data) {\n this.$isLoading = true;\n this.$cards = [];\n this.cards = [];\n angular.extend(this, data);\n // Add 'isOwned' and 'isSubscription' attributes based on active user (TODO: add it server-side?)\n this.isOwned = AddressBook.activeUser.isSuperUser || this.owner == AddressBook.activeUser.login;\n this.isSubscription = !this.isRemote && this.owner != AddressBook.activeUser.login;\n };\n\n /**\n * @function $id\n * @memberof AddressBook.prototype\n * @desc Resolve the addressbook id.\n * @returns a promise of the addressbook id\n */\n AddressBook.prototype.$id = function() {\n if (this.id) {\n // Object already unwrapped\n return AddressBook.$q.when(this.id);\n }\n else {\n // Wait until object is unwrapped\n return this.$futureAddressBookData.then(function(addressbook) {\n return addressbook.id;\n });\n }\n };\n\n /**\n * @function $selectedCount\n * @memberof AddressBook.prototype\n * @desc Return the number of cards selected by the user.\n * @returns the number of selected cards\n */\n AddressBook.prototype.$selectedCount = function() {\n var count;\n\n count = 0;\n if (this.cards) {\n count = (_.filter(this.cards, function(card) { return card.selected; })).length;\n }\n return count;\n };\n\n /**\n * @function $startRefreshTimeout\n * @memberof AddressBook.prototype\n * @desc Starts the refresh timeout for the current selected address book\n */\n AddressBook.prototype.$startRefreshTimeout = function() {\n var _this = this;\n\n if (AddressBook.$refreshTimeout)\n AddressBook.$timeout.cancel(AddressBook.$refreshTimeout);\n\n AddressBook.$Preferences.ready().then(function() {\n // Restart the refresh timer, if needed\n var refreshViewCheck = AddressBook.$Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually') {\n var f = angular.bind(_this, AddressBook.prototype.$reload);\n AddressBook.$refreshTimeout = AddressBook.$timeout(f, refreshViewCheck.timeInterval()*1000);\n }\n });\n };\n\n /**\n * @function $reload\n * @memberof AddressBook.prototype\n * @desc Reload list of cards\n * @returns a promise of the Cards instances\n */\n AddressBook.prototype.$reload = function() {\n var _this = this;\n\n this.$startRefreshTimeout();\n return this.$filter();\n };\n\n /**\n * @function $filter\n * @memberof AddressBook.prototype\n * @desc Search for cards matching some criterias\n * @param {string} search - the search string to match\n * @param {object} [options] - additional options to the query\n * @returns a collection of Cards instances\n */\n AddressBook.prototype.$filter = function(search, options, excludedCards) {\n var _this = this;\n\n if (!options || !options.dry)\n this.$isLoading = true;\n\n return AddressBook.$Preferences.ready().then(function() {\n if (options) {\n angular.extend(AddressBook.$query, options);\n\n if (options.dry) {\n if (!search) {\n // No query specified\n _this.$cards = [];\n return AddressBook.$q.when(_this.$cards);\n }\n else if (AddressBook.$query.value == search) {\n // Query hasn't changed\n return AddressBook.$q.when(_this.$cards);\n }\n }\n }\n\n if (angular.isDefined(search))\n AddressBook.$query.value = search;\n\n return _this.$id().then(function(addressbookId) {\n return AddressBook.$$resource.fetch(addressbookId, 'view', AddressBook.$query);\n }).then(function(response) {\n var results, cards, card, index,\n compareIds = function(data) {\n return _this.id == data.id;\n };\n if (options && options.dry) {\n // Don't keep a copy of the resulting cards.\n // This is usefull when doing autocompletion.\n cards = _this.$cards;\n }\n else {\n cards = _this.cards;\n }\n if (excludedCards) {\n // Remove excluded cards from results\n results = _.filter(response.cards, function(card) {\n return _.isUndefined(_.find(excludedCards, compareIds, card));\n });\n }\n else {\n results = response.cards;\n }\n // Remove cards that no longer match the search query\n for (index = cards.length - 1; index >= 0; index--) {\n card = cards[index];\n if (_.isUndefined(_.find(results, compareIds, card))) {\n cards.splice(index, 1);\n }\n }\n // Add new cards matching the search query\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(cards, compareIds, data))) {\n var card = new AddressBook.$Card(data, search);\n cards.splice(index, 0, card);\n }\n });\n // Respect the order of the results\n _.each(results, function(data, index) {\n var oldIndex, removedCards;\n if (cards[index].id != data.id) {\n oldIndex = _.findIndex(cards, compareIds, data);\n removedCards = cards.splice(oldIndex, 1);\n cards.splice(index, 0, removedCards[0]);\n }\n });\n _this.$isLoading = false;\n return cards;\n });\n });\n };\n\n /**\n * @function $rename\n * @memberof AddressBook.prototype\n * @desc Rename the addressbook and keep the list sorted\n * @param {string} name - the new name\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$rename = function(name) {\n var i = _.indexOf(_.pluck(AddressBook.$addressbooks, 'id'), this.id);\n this.name = name;\n AddressBook.$addressbooks.splice(i, 1);\n AddressBook.$add(this);\n return this.$save();\n };\n\n /**\n * @function $delete\n * @memberof AddressBook.prototype\n * @desc Delete the addressbook from the server and the static list of addressbooks.\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$delete = function() {\n var _this = this,\n d = AddressBook.$q.defer(),\n list,\n promise;\n\n if (this.isSubscription) {\n promise = AddressBook.$$resource.fetch(this.id, 'unsubscribe');\n list = AddressBook.$subscriptions;\n }\n else {\n promise = AddressBook.$$resource.remove(this.id);\n list = AddressBook.$addressbooks;\n }\n\n promise.then(function() {\n var i = _.indexOf(_.pluck(list, 'id'), _this.id);\n list.splice(i, 1);\n d.resolve();\n }, function(data, status) {\n d.reject(data);\n });\n return d.promise;\n };\n\n /**\n * @function $deleteCards\n * @memberof AddressBook.prototype\n * @desc Delete multiple cards from addressbook.\n * @return a promise of the HTTP operation\n */\n AddressBook.prototype.$deleteCards = function(cards) {\n\n var uids = _.map(cards, function(card) { return card.id; });\n var _this = this;\n \n return AddressBook.$$resource.post(this.id, 'batchDelete', {uids: uids}).then(function() {\n _this.cards = _.difference(_this.cards, cards);\n });\n };\n\n /**\n * @function $copyCards\n * @memberof AddressBook.prototype\n * @desc Copy multiple cards from addressbook to an other one.\n * @return a promise of the HTTP operation\n */\n AddressBook.prototype.$copyCards = function(cards, folder) {\n var uids = _.map(cards, function(card) { return card.id; });\n return AddressBook.$$resource.post(this.id, 'copy', {uids: uids, folder: folder});\n };\n\n /**\n * @function $save\n * @memberof AddressBook.prototype\n * @desc Save the addressbook to the server. This currently can only affect the name of the addressbook.\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$save = function() {\n return AddressBook.$$resource.save(this.id, this.$omit()).then(function(data) {\n return data;\n });\n };\n\n /**\n * @function $getCard\n * @memberof AddressBook.prototype\n * @desc Fetch the card attributes from the server.\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$getCard = function(cardId) {\n var _this = this;\n\n return this.$id().then(function(addressbookId) {\n var fullCard,\n cachedCard = _.find(_this.cards, function(data) {\n return cardId == data.id;\n });\n\n if (cachedCard && cachedCard.$futureCardData)\n // Full card is available\n return cachedCard;\n\n fullCard = AddressBook.$Card.$find(addressbookId, cardId);\n fullCard.$id().then(function(cardId) {\n // Extend the Card object of the addressbook list with the full card description\n if (cachedCard)\n angular.extend(cachedCard, fullCard);\n });\n return fullCard;\n });\n };\n\n /**\n * @function $unwrap\n * @memberof AddressBook.prototype\n * @desc Unwrap a promise and instanciate new Card objects using received data.\n * @param {promise} futureAddressBookData - a promise of the AddressBook's data\n */\n AddressBook.prototype.$unwrap = function(futureAddressBookData) {\n var _this = this;\n\n // Expose and sesolve the promise\n this.$futureAddressBookData = futureAddressBookData.then(function(data) {\n return AddressBook.$timeout(function() {\n // Extend AddressBook instance from data of addressbooks list.\n // Will inherit attributes such as isEditable and isRemote.\n angular.forEach(AddressBook.$findAll(), function(o, i) {\n if (o.id == data.id) {\n angular.extend(_this, o);\n }\n });\n // Extend AddressBook instance with received data\n _this.init(data);\n // Instanciate Card objects\n angular.forEach(_this.cards, function(o, i) {\n _this.cards[i] = new AddressBook.$Card(o);\n });\n // Instanciate Acl object\n _this.$acl = new AddressBook.$$Acl('Contacts/' + _this.id);\n\n _this.$startRefreshTimeout();\n\n _this.$isLoading = false;\n\n return _this;\n });\n }, function(data) {\n _this.isError = true;\n if (angular.isObject(data)) {\n AddressBook.$timeout(function() {\n angular.extend(_this, data);\n });\n }\n });\n };\n\n /**\n * @function $omit\n * @memberof AddressBook.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Addressbook instance\n */\n AddressBook.prototype.$omit = function() {\n var addressbook = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' &&\n key != 'cards' &&\n key[0] != '$') {\n addressbook[key] = value;\n }\n });\n return addressbook;\n };\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Card\n * @constructor\n * @param {object} futureCardData\n * @param {string} [partial]\n */\n function Card(futureCardData, partial) {\n\n // Data is immediately available\n if (typeof futureCardData.then !== 'function') {\n this.init(futureCardData, partial);\n if (this.pid && !this.id) {\n // Prepare for the creation of a new card;\n // Get UID from the server.\n var newCardData = Card.$$resource.newguid(this.pid);\n this.$unwrap(newCardData);\n this.isNew = true;\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureCardData);\n }\n }\n\n Card.$TEL_TYPES = ['work', 'home', 'cell', 'fax', 'pager'];\n Card.$EMAIL_TYPES = ['work', 'home', 'pref'];\n Card.$URL_TYPES = ['work', 'home', 'pref'];\n Card.$ADDRESS_TYPES = ['work', 'home'];\n\n /**\n * @memberof Card\n * @desc The factory we'll use to register with Angular.\n * @returns the Card constructor\n */\n Card.$factory = ['$timeout', 'sgSettings', 'Resource', 'Preferences', 'Gravatar', function($timeout, Settings, Resource, Preferences, Gravatar) {\n angular.extend(Card, {\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Contacts', Settings.activeUser()),\n $timeout: $timeout,\n $gravatar: Gravatar\n });\n // Initialize categories from user's defaults\n Preferences.ready().then(function() {\n if (Preferences.defaults.SOGoContactsCategories) {\n Card.$categories = Preferences.defaults.SOGoContactsCategories;\n }\n });\n\n return Card; // return constructor\n }];\n\n /**\n * @module SOGo.ContactsUI\n * @desc Factory registration of Card in Angular module.\n */\n try {\n angular.module('SOGo.ContactsUI');\n }\n catch(e) {\n angular.module('SOGo.ContactsUI', ['SOGo.Common']);\n }\n angular.module('SOGo.ContactsUI')\n .factory('Card', Card.$factory);\n\n /**\n * @memberof Card\n * @desc Fetch a card from a specific addressbook.\n * @param {string} addressbookId - the addressbook ID\n * @param {string} cardId - the card ID\n * @see {@link AddressBook.$getCard}\n */\n Card.$find = function(addressbookId, cardId) {\n var futureCardData = this.$$resource.fetch([addressbookId, cardId].join('/'), 'view');\n\n if (cardId) return new Card(futureCardData); // a single card\n\n return Card.$unwrapCollection(futureCardData); // a collection of cards\n };\n\n /**\n * @function filterCategories\n * @memberof Card.prototype\n * @desc Search for categories matching some criterias\n * @param {string} search - the search string to match\n * @returns a collection of strings\n */\n Card.filterCategories = function(query) {\n var re = new RegExp(query, 'i');\n return _.filter(Card.$categories, function(category) {\n return category.search(re) != -1;\n });\n };\n\n /**\n * @memberof Card\n * @desc Unwrap to a collection of Card instances.\n * @param {object} futureCardData\n */\n Card.$unwrapCollection = function(futureCardData) {\n var collection = {};\n\n collection.$futureCardData = futureCardData;\n\n futureCardData.then(function(cards) {\n Card.$timeout(function() {\n angular.forEach(cards, function(data, index) {\n collection[data.id] = new Card(data);\n });\n });\n });\n\n return collection;\n };\n\n /**\n * @function init\n * @memberof Card.prototype\n * @desc Extend instance with required attributes and new data.\n * @param {object} data - attributes of card\n */\n Card.prototype.init = function(data, partial) {\n this.refs = [];\n angular.extend(this, data);\n if (!this.$$fullname)\n this.$$fullname = this.$fullname();\n if (!this.$$email)\n this.$$email = this.$preferredEmail(partial);\n if (!this.$$image)\n this.$$image = this.image || Card.$gravatar(this.$preferredEmail(partial), 32);\n this.selected = false;\n\n // An empty attribute to trick md-autocomplete when adding attendees from the appointment editor\n this.empty = ' ';\n };\n\n /**\n * @function $id\n * @memberof Card.prototype\n * @desc Return the card ID.\n * @returns the card ID\n */\n Card.prototype.$id = function() {\n return this.$futureCardData.then(function(data) {\n return data.id;\n });\n };\n\n /**\n * @function $save\n * @memberof Card.prototype\n * @desc Save the card to the server.\n */\n Card.prototype.$save = function() {\n var _this = this,\n action = 'saveAsContact';\n\n if (this.c_component == 'vlist') action = 'saveAsList';\n\n return Card.$$resource.save([this.pid, this.id || '_new_'].join('/'),\n this.$omit(),\n { action: action })\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n Card.prototype.$delete = function(attribute, index) {\n if (attribute) {\n if (index > -1 && this[attribute].length > index) {\n this[attribute].splice(index, 1);\n }\n else\n delete this[attribute];\n }\n else {\n // No arguments -- delete card\n return Card.$$resource.remove([this.pid, this.id].join('/'));\n }\n };\n\n Card.prototype.$fullname = function() {\n var fn = this.c_cn || '', names;\n if (fn.length === 0) {\n names = [];\n if (this.c_givenname && this.c_givenname.length > 0)\n names.push(this.c_givenname);\n if (this.nickname && this.nickname.length > 0)\n names.push('' + this.nickname + '');\n if (this.c_sn && this.c_sn.length > 0)\n names.push(this.c_sn);\n if (names.length > 0)\n fn = names.join(' ');\n else if (this.c_org && this.c_org.length > 0) {\n fn = this.c_org;\n }\n else if (this.emails && this.emails.length > 0) {\n fn = _.find(this.emails, function(i) { return i.value !== ''; }).value;\n }\n else if (this.c_cn && this.c_cn.length > 0) {\n fn = this.c_cn;\n }\n }\n\n return fn;\n };\n\n Card.prototype.$description = function() {\n var description = [];\n if (this.title) description.push(this.title);\n if (this.role) description.push(this.role);\n if (this.orgUnits && this.orgUnits.length > 0)\n _.forEach(this.orgUnits, function(unit) {\n if (unit.value !== '')\n description.push(unit.value);\n });\n if (this.c_org) description.push(this.c_org);\n if (this.description) description.push(this.description);\n\n return description.join(', ');\n };\n\n /**\n * @function $preferredEmail\n * @memberof Card.prototype\n * @desc Get the preferred email address.\n * @param {string} [partial] - a partial string that the email must match\n * @returns the first email address of type \"pref\" or the first address if none found\n */\n Card.prototype.$preferredEmail = function(partial) {\n var email, re;\n if (partial) {\n re = new RegExp(partial, 'i');\n email = _.find(this.emails, function(o) {\n return re.test(o.value);\n });\n }\n if (email) {\n email = email.value;\n }\n else {\n email = _.find(this.emails, function(o) {\n return o.type == 'pref';\n });\n if (email) {\n email = email.value;\n }\n else if (this.emails && this.emails.length) {\n email = this.emails[0].value;\n }\n else {\n email = '';\n }\n }\n\n return email;\n };\n\n /**\n * @function $shortFormat\n * @memberof Card.prototype\n * @param {string} [partial] - a partial string that the email must match\n * @returns the fullname along with a matching email address in parentheses\n */\n Card.prototype.$shortFormat = function(partial) {\n var fullname = this.$fullname(),\n email = this.$preferredEmail(partial);\n if (email && email != fullname)\n fullname += ' <' + email + '>';\n return fullname;\n };\n\n /**\n * @function $birthday\n * @memberof Card.prototype\n * @returns the formatted birthday object\n */\n Card.prototype.$birthday = function() {\n if (this.birthday) {\n return [this.birthday.getFullYear(), this.birthday.getMonth() + 1, this.birthday.getDate()].join('/');\n }\n return '';\n };\n\n Card.prototype.$isCard = function() {\n return this.c_component == 'vcard';\n };\n\n Card.prototype.$isList = function() {\n return this.c_component == 'vlist';\n };\n\n Card.prototype.$addOrgUnit = function(orgUnit) {\n if (angular.isUndefined(this.orgUnits)) {\n this.orgUnits = [{value: orgUnit}];\n }\n else {\n for (var i = 0; i < this.orgUnits.length; i++) {\n if (this.orgUnits[i].value == orgUnit) {\n break;\n }\n }\n if (i == this.orgUnits.length)\n this.orgUnits.push({value: orgUnit});\n }\n return this.orgUnits.length - 1;\n };\n\n Card.prototype.$addCategory = function(category) {\n if (angular.isUndefined(this.categories)) {\n this.categories = [{value: category}];\n }\n else {\n for (var i = 0; i < this.categories.length; i++) {\n if (this.categories[i].value == category) {\n break;\n }\n }\n if (i == this.categories.length)\n this.categories.push({value: category});\n }\n };\n\n Card.prototype.$addEmail = function(type) {\n if (angular.isUndefined(this.emails)) {\n this.emails = [{type: type, value: ''}];\n }\n else if (_.isUndefined(_.find(this.emails, function(i) { return i.value === ''; }))) {\n this.emails.push({type: type, value: ''});\n }\n return this.emails.length - 1;\n };\n\n Card.prototype.$addPhone = function(type) {\n if (angular.isUndefined(this.phones)) {\n this.phones = [{type: type, value: ''}];\n }\n else if (_.isUndefined(_.find(this.phones, function(i) { return i.value === ''; }))) {\n this.phones.push({type: type, value: ''});\n }\n return this.phones.length - 1;\n };\n\n Card.prototype.$addUrl = function(type, url) {\n if (angular.isUndefined(this.urls)) {\n this.urls = [{type: type, value: url}];\n }\n else if (_.isUndefined(_.find(this.urls, function(i) { return i.value == url; }))) {\n this.urls.push({type: type, value: url});\n }\n return this.urls.length - 1;\n };\n\n Card.prototype.$addAddress = function(type, postoffice, street, street2, locality, region, country, postalcode) {\n if (angular.isUndefined(this.addresses)) {\n this.addresses = [{type: type, postoffice: postoffice, street: street, street2: street2, locality: locality, region: region, country: country, postalcode: postalcode}];\n }\n else if (!_.find(this.addresses, function(i) {\n return i.street == street &&\n i.street2 == street2 &&\n i.locality == locality &&\n i.country == country &&\n i.postalcode == postalcode;\n })) {\n this.addresses.push({type: type, postoffice: postoffice, street: street, street2: street2, locality: locality, region: region, country: country, postalcode: postalcode});\n }\n return this.addresses.length - 1;\n };\n\n Card.prototype.$addMember = function(email) {\n var card = new Card({email: email, emails: [{value: email}]}),\n i;\n if (angular.isUndefined(this.refs)) {\n this.refs = [card];\n }\n else if (email.length === 0) {\n this.refs.push(card);\n }\n else {\n for (i = 0; i < this.refs.length; i++) {\n if (this.refs[i].email == email) {\n break;\n }\n }\n if (i == this.refs.length)\n this.refs.push(card);\n }\n return this.refs.length - 1;\n };\n\n /**\n * @function $reset\n * @memberof Card.prototype\n * @desc Reset the original state the card's data.\n */\n Card.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n delete _this[key];\n }\n });\n angular.extend(this, this.$shadowData);\n // Reinstanciate Card objects for list members\n angular.forEach(this.refs, function(o, i) {\n if (o.email) o.emails = [{value: o.email}];\n _this.refs[i] = new Card(o);\n });\n this.$shadowData = this.$omit(true);\n };\n\n /**\n * @function $updateMember\n * @memberof Card.prototype\n * @desc Update an existing list member from a Card instance.\n * A list member has the following attribtues:\n * - email\n * - reference\n * - fn\n * @param {number} index\n * @param {string} email\n * @param {Card} card\n */\n // Card.prototype.$updateMember = function(index, email, card) {\n // var ref = {\n // email: email,\n // emails: [{value: email}],\n // reference: card.c_name,\n // c_cn: card.$fullname()\n // };\n // this.refs[index] = new Card(ref);\n // };\n\n /**\n * @function $unwrap\n * @memberof Card.prototype\n * @desc Unwrap a promise and make a copy of the resolved data.\n * @param {object} futureCardData - a promise of the Card's data\n */\n Card.prototype.$unwrap = function(futureCardData) {\n var _this = this;\n\n // Expose the promise\n this.$futureCardData = futureCardData.then(function(data) {\n _this.init(data);\n // Instanciate Card objects for list members\n angular.forEach(_this.refs, function(o, i) {\n if (o.email) o.emails = [{value: o.email}];\n o.id = o.reference;\n _this.refs[i] = new Card(o);\n });\n if (_this.birthday) {\n _this.birthday = new Date(_this.birthday * 1000);\n }\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return _this;\n });\n };\n\n /**\n * @function $omit\n * @memberof Card.prototype\n * @desc Return a sanitized object used to send to the server.\n * @param {boolean} [deep] - make a deep copy if true\n * @return an object literal copy of the Card instance\n */\n Card.prototype.$omit = function(deep) {\n var card = {};\n angular.forEach(this, function(value, key) {\n if (key == 'refs') {\n card.refs = _.map(value, function(o) {\n return o.$omit(deep);\n });\n }\n else if (key != 'constructor' && key[0] != '$') {\n if (deep)\n card[key] = angular.copy(value);\n else\n card[key] = value;\n }\n });\n\n // We convert back our birthday object\n if (!deep) {\n if (card.birthday)\n card.birthday = card.birthday.getTime()/1000;\n else\n card.birthday = 0;\n }\n\n return card;\n };\n\n Card.prototype.toString = function() {\n var desc = this.id + ' ' + this.$$fullname;\n\n if (this.$$email)\n desc += ' <' + this.$$email + '>';\n\n return '[' + desc + ']';\n };\n})();\n"]} \ No newline at end of file +{"version":3,"file":"Contacts.services.js","sources":["Contacts/AddressBook.service.js","Contacts/Card.service.js"],"names":["AddressBook","futureAddressBookData","then","this","init","name","id","newAddressBookData","$$resource","create","$unwrap","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","Resource","Card","Acl","Preferences","angular","extend","activeUser","$Card","$Preferences","$query","search","value","sort","asc","selectedFolder","$refreshTimeout","ready","settings","Contact","SortingState","parseInt","module","e","factory","$filterAll","options","excludedCards","params","$cards","when","isUndefined","fetch","response","results","card","index","compareIds","data","_","filter","contacts","find","length","splice","each","debug","$add","addressbook","list","sibling","i","isSubscription","$subscriptions","$addressbooks","o","localeCompare","indexOf","pluck","$findAll","_this","$remotes","forEach","isRemote","push","union","$find","addressbookId","$subscribe","uid","path","userResource","addressbookData","prototype","$isLoading","cards","isOwned","isSuperUser","owner","login","$id","$futureAddressBookData","$selectedCount","count","selected","$startRefreshTimeout","cancel","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","$reload","timeInterval","$filter","dry","isDefined","oldIndex","removedCards","findIndex","$rename","$save","$delete","promise","d","defer","remove","resolve","status","reject","$deleteCards","uids","map","post","difference","$copyCards","folder","save","$omit","$getCard","cardId","fullCard","cachedCard","$futureCardData","isError","isObject","key","futureCardData","partial","pid","newCardData","newguid","isNew","$TEL_TYPES","$EMAIL_TYPES","$URL_TYPES","$ADDRESS_TYPES","Gravatar","$gravatar","SOGoContactsCategories","$categories","join","$unwrapCollection","filterCategories","query","re","RegExp","category","collection","refs","$$fullname","$fullname","$$email","$preferredEmail","$$image","image","empty","action","c_component","$shadowData","attribute","names","fn","c_cn","c_givenname","nickname","c_sn","c_org","emails","$description","description","title","role","orgUnits","unit","email","test","type","$shortFormat","fullname","$birthday","birthday","getFullYear","getMonth","getDate","$isCard","$isList","$addOrgUnit","orgUnit","$addCategory","categories","$addEmail","$addPhone","phones","$addUrl","url","urls","$addAddress","postoffice","street","street2","locality","region","country","postalcode","addresses","$addMember","$reset","reference","Date","deep","copy","getTime","toString","desc"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name AddressBook\n * @constructor\n * @param {object} futureAddressBookData - either an object literal or a promise\n */\n function AddressBook(futureAddressBookData) {\n // Data is immediately available\n if (typeof futureAddressBookData.then !== 'function') {\n this.init(futureAddressBookData);\n if (this.name && !this.id) {\n // Create a new addressbook on the server\n var newAddressBookData = AddressBook.$$resource.create('createFolder', this.name);\n this.$unwrap(newAddressBookData);\n }\n else if (this.id) {\n this.$acl = new AddressBook.$$Acl('Contacts/' + this.id);\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureAddressBookData);\n }\n }\n\n /**\n * @memberof AddressBook\n * @desc The factory we'll use to register with Angular\n * @returns the AddressBook constructor\n */\n AddressBook.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Card', 'Acl', 'Preferences', function($q, $timeout, $log, Settings, Resource, Card, Acl, Preferences) {\n angular.extend(AddressBook, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Contacts', Settings.activeUser()),\n $Card: Card,\n $$Acl: Acl,\n $Preferences: Preferences,\n $query: {search: 'name_or_address', value: '', sort: 'c_cn', asc: 1},\n activeUser: Settings.activeUser(),\n selectedFolder: null,\n $refreshTimeout: null\n });\n // Initialize sort parameters from user's settings\n Preferences.ready().then(function() {\n if (Preferences.settings.Contact.SortingState) {\n AddressBook.$query.sort = Preferences.settings.Contact.SortingState[0];\n AddressBook.$query.asc = parseInt(Preferences.settings.Contact.SortingState[1]);\n }\n });\n return AddressBook; // return constructor\n }];\n\n /**\n * @module SOGo.ContactsUI\n * @desc Factory registration of AddressBook in Angular module.\n */\n try {\n angular.module('SOGo.ContactsUI');\n }\n catch(e) {\n angular.module('SOGo.ContactsUI', ['SOGo.Common', 'SOGo.PreferencesUI']);\n }\n angular.module('SOGo.ContactsUI')\n .factory('AddressBook', AddressBook.$factory);\n\n /**\n * @memberof AddressBook\n * @desc Search for cards among all addressbooks matching some criterias.\n * @param {string} search - the search string to match\n * @param {object} [options] - additional options to the query (excludeGroups and excludeLists)\n * @param {object[]} excludedCards - a list of Card objects that must be excluded from the results\n * @returns a collection of Cards instances\n */\n AddressBook.$filterAll = function(search, options, excludedCards) {\n var params = {search: search};\n\n if (!search) {\n // No query specified\n AddressBook.$cards = [];\n return AddressBook.$q.when(AddressBook.$cards);\n }\n if (angular.isUndefined(AddressBook.$cards)) {\n // First session query\n AddressBook.$cards = [];\n }\n else if (AddressBook.$query.value == search) {\n // Query hasn't changed\n return AddressBook.$q.when(AddressBook.$cards);\n }\n AddressBook.$query.value = search;\n\n angular.extend(params, options);\n\n return AddressBook.$$resource.fetch(null, 'allContactSearch', params).then(function(response) {\n var results, card, index,\n compareIds = function(data) {\n return this.id == data.id;\n };\n if (excludedCards) {\n // Remove excluded cards from results\n results = _.filter(response.contacts, function(data) {\n return _.isUndefined(_.find(excludedCards, compareIds, data));\n });\n }\n else {\n results = response.contacts;\n }\n // Remove cards that no longer match the search query\n for (index = AddressBook.$cards.length - 1; index >= 0; index--) {\n card = AddressBook.$cards[index];\n if (_.isUndefined(_.find(results, compareIds, card))) {\n AddressBook.$cards.splice(index, 1);\n }\n }\n // Add new cards matching the search query\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(AddressBook.$cards, compareIds, data))) {\n var card = new AddressBook.$Card(data, search);\n AddressBook.$cards.splice(index, 0, card);\n }\n });\n AddressBook.$log.debug(AddressBook.$cards);\n return AddressBook.$cards;\n });\n };\n\n /**\n * @memberof AddressBook\n * @desc Add a new addressbook to the static list of addressbooks\n * @param {AddressBook} addressbook - an Addressbook object instance\n */\n AddressBook.$add = function(addressbook) {\n // Insert new addressbook at proper index\n var list, sibling, i;\n\n list = addressbook.isSubscription? this.$subscriptions : this.$addressbooks;\n sibling = _.find(list, function(o) {\n return (addressbook.id == 'personal' ||\n (o.id != 'personal' &&\n o.name.localeCompare(addressbook.name) === 1));\n });\n i = sibling ? _.indexOf(_.pluck(list, 'id'), sibling.id) : 1;\n list.splice(i, 0, addressbook);\n };\n\n /**\n * @memberof AddressBook\n * @desc Set or get the list of addressbooks. Will instantiate a new AddressBook object for each item.\n * @param {array} [data] - the metadata of the addressbooks\n * @returns the list of addressbooks\n */\n AddressBook.$findAll = function(data) {\n var _this = this;\n if (data) {\n this.$addressbooks = [];\n this.$subscriptions = [];\n this.$remotes = [];\n // Instanciate AddressBook objects\n angular.forEach(data, function(o, i) {\n var addressbook = new AddressBook(o);\n if (addressbook.isRemote)\n _this.$remotes.push(addressbook);\n else if (addressbook.isSubscription)\n _this.$subscriptions.push(addressbook);\n else\n _this.$addressbooks.push(addressbook);\n });\n }\n return _.union(this.$addressbooks, this.$subscriptions, this.$remotes);\n };\n\n /**\n * @memberOf AddressBook\n * @desc Fetch list of cards and return an AddressBook instance.\n * @param {string} addressbookId - the addressbook identifier\n * @returns an AddressBook object instance\n */\n AddressBook.$find = function(addressbookId) {\n var futureAddressBookData = AddressBook.$Preferences.ready().then(function() {\n return AddressBook.$$resource.fetch(addressbookId, 'view', AddressBook.$query);\n });\n return new AddressBook(futureAddressBookData);\n };\n\n /**\n * @memberOf AddressBook\n * @desc Subscribe to another user's addressbook and add it to the list of addressbooks.\n * @param {string} uid - user id\n * @param {string} path - path of folder for specified user\n * @returns a promise of the HTTP query result\n */\n AddressBook.$subscribe = function(uid, path) {\n var _this = this;\n return AddressBook.$$resource.userResource(uid).fetch(path, 'subscribe').then(function(addressbookData) {\n var addressbook = new AddressBook(addressbookData);\n if (_.isUndefined(_.find(_this.$subscriptions, function(o) {\n return o.id == addressbookData.id;\n }))) {\n // Not already subscribed\n AddressBook.$add(addressbook);\n }\n return addressbook;\n });\n };\n\n /**\n * @function init\n * @memberof AddressBook.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of addressbook\n */\n AddressBook.prototype.init = function(data) {\n this.$isLoading = true;\n this.$cards = [];\n this.cards = [];\n angular.extend(this, data);\n // Add 'isOwned' and 'isSubscription' attributes based on active user (TODO: add it server-side?)\n this.isOwned = AddressBook.activeUser.isSuperUser || this.owner == AddressBook.activeUser.login;\n this.isSubscription = !this.isRemote && this.owner != AddressBook.activeUser.login;\n };\n\n /**\n * @function $id\n * @memberof AddressBook.prototype\n * @desc Resolve the addressbook id.\n * @returns a promise of the addressbook id\n */\n AddressBook.prototype.$id = function() {\n if (this.id) {\n // Object already unwrapped\n return AddressBook.$q.when(this.id);\n }\n else {\n // Wait until object is unwrapped\n return this.$futureAddressBookData.then(function(addressbook) {\n return addressbook.id;\n });\n }\n };\n\n /**\n * @function $selectedCount\n * @memberof AddressBook.prototype\n * @desc Return the number of cards selected by the user.\n * @returns the number of selected cards\n */\n AddressBook.prototype.$selectedCount = function() {\n var count;\n\n count = 0;\n if (this.cards) {\n count = (_.filter(this.cards, function(card) { return card.selected; })).length;\n }\n return count;\n };\n\n /**\n * @function $startRefreshTimeout\n * @memberof AddressBook.prototype\n * @desc Starts the refresh timeout for the current selected address book\n */\n AddressBook.prototype.$startRefreshTimeout = function() {\n var _this = this;\n\n if (AddressBook.$refreshTimeout)\n AddressBook.$timeout.cancel(AddressBook.$refreshTimeout);\n\n AddressBook.$Preferences.ready().then(function() {\n // Restart the refresh timer, if needed\n var refreshViewCheck = AddressBook.$Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually') {\n var f = angular.bind(_this, AddressBook.prototype.$reload);\n AddressBook.$refreshTimeout = AddressBook.$timeout(f, refreshViewCheck.timeInterval()*1000);\n }\n });\n };\n\n /**\n * @function $reload\n * @memberof AddressBook.prototype\n * @desc Reload list of cards\n * @returns a promise of the Cards instances\n */\n AddressBook.prototype.$reload = function() {\n var _this = this;\n\n this.$startRefreshTimeout();\n return this.$filter();\n };\n\n /**\n * @function $filter\n * @memberof AddressBook.prototype\n * @desc Search for cards matching some criterias\n * @param {string} search - the search string to match\n * @param {object} [options] - additional options to the query\n * @returns a collection of Cards instances\n */\n AddressBook.prototype.$filter = function(search, options, excludedCards) {\n var _this = this;\n\n if (!options || !options.dry)\n this.$isLoading = true;\n\n return AddressBook.$Preferences.ready().then(function() {\n if (options) {\n angular.extend(AddressBook.$query, options);\n\n if (options.dry) {\n if (!search) {\n // No query specified\n _this.$cards = [];\n return AddressBook.$q.when(_this.$cards);\n }\n else if (AddressBook.$query.value == search) {\n // Query hasn't changed\n return AddressBook.$q.when(_this.$cards);\n }\n }\n }\n\n if (angular.isDefined(search))\n AddressBook.$query.value = search;\n\n return _this.$id().then(function(addressbookId) {\n return AddressBook.$$resource.fetch(addressbookId, 'view', AddressBook.$query);\n }).then(function(response) {\n var results, cards, card, index,\n compareIds = function(data) {\n return _this.id == data.id;\n };\n if (options && options.dry) {\n // Don't keep a copy of the resulting cards.\n // This is usefull when doing autocompletion.\n cards = _this.$cards;\n }\n else {\n cards = _this.cards;\n }\n if (excludedCards) {\n // Remove excluded cards from results\n results = _.filter(response.cards, function(card) {\n return _.isUndefined(_.find(excludedCards, compareIds, card));\n });\n }\n else {\n results = response.cards;\n }\n // Remove cards that no longer match the search query\n for (index = cards.length - 1; index >= 0; index--) {\n card = cards[index];\n if (_.isUndefined(_.find(results, compareIds, card))) {\n cards.splice(index, 1);\n }\n }\n // Add new cards matching the search query\n _.each(results, function(data, index) {\n if (_.isUndefined(_.find(cards, compareIds, data))) {\n var card = new AddressBook.$Card(data, search);\n cards.splice(index, 0, card);\n }\n });\n // Respect the order of the results\n _.each(results, function(data, index) {\n var oldIndex, removedCards;\n if (cards[index].id != data.id) {\n oldIndex = _.findIndex(cards, compareIds, data);\n removedCards = cards.splice(oldIndex, 1);\n cards.splice(index, 0, removedCards[0]);\n }\n });\n _this.$isLoading = false;\n return cards;\n });\n });\n };\n\n /**\n * @function $rename\n * @memberof AddressBook.prototype\n * @desc Rename the addressbook and keep the list sorted\n * @param {string} name - the new name\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$rename = function(name) {\n var i = _.indexOf(_.pluck(AddressBook.$addressbooks, 'id'), this.id);\n this.name = name;\n AddressBook.$addressbooks.splice(i, 1);\n AddressBook.$add(this);\n return this.$save();\n };\n\n /**\n * @function $delete\n * @memberof AddressBook.prototype\n * @desc Delete the addressbook from the server and the static list of addressbooks.\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$delete = function() {\n var _this = this,\n d = AddressBook.$q.defer(),\n list,\n promise;\n\n if (this.isSubscription) {\n promise = AddressBook.$$resource.fetch(this.id, 'unsubscribe');\n list = AddressBook.$subscriptions;\n }\n else {\n promise = AddressBook.$$resource.remove(this.id);\n list = AddressBook.$addressbooks;\n }\n\n promise.then(function() {\n var i = _.indexOf(_.pluck(list, 'id'), _this.id);\n list.splice(i, 1);\n d.resolve();\n }, function(data, status) {\n d.reject(data);\n });\n return d.promise;\n };\n\n /**\n * @function $deleteCards\n * @memberof AddressBook.prototype\n * @desc Delete multiple cards from addressbook.\n * @return a promise of the HTTP operation\n */\n AddressBook.prototype.$deleteCards = function(cards) {\n\n var uids = _.map(cards, function(card) { return card.id; });\n var _this = this;\n \n return AddressBook.$$resource.post(this.id, 'batchDelete', {uids: uids}).then(function() {\n _this.cards = _.difference(_this.cards, cards);\n });\n };\n\n /**\n * @function $copyCards\n * @memberof AddressBook.prototype\n * @desc Copy multiple cards from addressbook to an other one.\n * @return a promise of the HTTP operation\n */\n AddressBook.prototype.$copyCards = function(cards, folder) {\n var uids = _.map(cards, function(card) { return card.id; });\n return AddressBook.$$resource.post(this.id, 'copy', {uids: uids, folder: folder});\n };\n\n /**\n * @function $save\n * @memberof AddressBook.prototype\n * @desc Save the addressbook to the server. This currently can only affect the name of the addressbook.\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$save = function() {\n return AddressBook.$$resource.save(this.id, this.$omit()).then(function(data) {\n return data;\n });\n };\n\n /**\n * @function $getCard\n * @memberof AddressBook.prototype\n * @desc Fetch the card attributes from the server.\n * @returns a promise of the HTTP operation\n */\n AddressBook.prototype.$getCard = function(cardId) {\n var _this = this;\n\n return this.$id().then(function(addressbookId) {\n var fullCard,\n cachedCard = _.find(_this.cards, function(data) {\n return cardId == data.id;\n });\n\n if (cachedCard && cachedCard.$futureCardData)\n // Full card is available\n return cachedCard;\n\n fullCard = AddressBook.$Card.$find(addressbookId, cardId);\n fullCard.$id().then(function(cardId) {\n // Extend the Card object of the addressbook list with the full card description\n if (cachedCard)\n angular.extend(cachedCard, fullCard);\n });\n return fullCard;\n });\n };\n\n /**\n * @function $unwrap\n * @memberof AddressBook.prototype\n * @desc Unwrap a promise and instanciate new Card objects using received data.\n * @param {promise} futureAddressBookData - a promise of the AddressBook's data\n */\n AddressBook.prototype.$unwrap = function(futureAddressBookData) {\n var _this = this;\n\n // Expose and sesolve the promise\n this.$futureAddressBookData = futureAddressBookData.then(function(data) {\n return AddressBook.$timeout(function() {\n // Extend AddressBook instance from data of addressbooks list.\n // Will inherit attributes such as isEditable and isRemote.\n angular.forEach(AddressBook.$findAll(), function(o, i) {\n if (o.id == data.id) {\n angular.extend(_this, o);\n }\n });\n // Extend AddressBook instance with received data\n _this.init(data);\n // Instanciate Card objects\n angular.forEach(_this.cards, function(o, i) {\n _this.cards[i] = new AddressBook.$Card(o);\n });\n // Instanciate Acl object\n _this.$acl = new AddressBook.$$Acl('Contacts/' + _this.id);\n\n _this.$startRefreshTimeout();\n\n _this.$isLoading = false;\n\n return _this;\n });\n }, function(data) {\n _this.isError = true;\n if (angular.isObject(data)) {\n AddressBook.$timeout(function() {\n angular.extend(_this, data);\n });\n }\n });\n };\n\n /**\n * @function $omit\n * @memberof AddressBook.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Addressbook instance\n */\n AddressBook.prototype.$omit = function() {\n var addressbook = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' &&\n key != 'cards' &&\n key[0] != '$') {\n addressbook[key] = value;\n }\n });\n return addressbook;\n };\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Card\n * @constructor\n * @param {object} futureCardData\n * @param {string} [partial]\n */\n function Card(futureCardData, partial) {\n\n // Data is immediately available\n if (typeof futureCardData.then !== 'function') {\n this.init(futureCardData, partial);\n if (this.pid && !this.id) {\n // Prepare for the creation of a new card;\n // Get UID from the server.\n var newCardData = Card.$$resource.newguid(this.pid);\n this.$unwrap(newCardData);\n this.isNew = true;\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureCardData);\n }\n }\n\n Card.$TEL_TYPES = ['work', 'home', 'cell', 'fax', 'pager'];\n Card.$EMAIL_TYPES = ['work', 'home', 'pref'];\n Card.$URL_TYPES = ['work', 'home', 'pref'];\n Card.$ADDRESS_TYPES = ['work', 'home'];\n\n /**\n * @memberof Card\n * @desc The factory we'll use to register with Angular.\n * @returns the Card constructor\n */\n Card.$factory = ['$timeout', 'sgSettings', 'Resource', 'Preferences', 'Gravatar', function($timeout, Settings, Resource, Preferences, Gravatar) {\n angular.extend(Card, {\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Contacts', Settings.activeUser()),\n $timeout: $timeout,\n $gravatar: Gravatar\n });\n // Initialize categories from user's defaults\n Preferences.ready().then(function() {\n if (Preferences.defaults.SOGoContactsCategories) {\n Card.$categories = Preferences.defaults.SOGoContactsCategories;\n }\n });\n\n return Card; // return constructor\n }];\n\n /**\n * @module SOGo.ContactsUI\n * @desc Factory registration of Card in Angular module.\n */\n try {\n angular.module('SOGo.ContactsUI');\n }\n catch(e) {\n angular.module('SOGo.ContactsUI', ['SOGo.Common', 'SOGo.PreferencesUI']);\n }\n angular.module('SOGo.ContactsUI')\n .factory('Card', Card.$factory);\n\n /**\n * @memberof Card\n * @desc Fetch a card from a specific addressbook.\n * @param {string} addressbookId - the addressbook ID\n * @param {string} cardId - the card ID\n * @see {@link AddressBook.$getCard}\n */\n Card.$find = function(addressbookId, cardId) {\n var futureCardData = this.$$resource.fetch([addressbookId, cardId].join('/'), 'view');\n\n if (cardId) return new Card(futureCardData); // a single card\n\n return Card.$unwrapCollection(futureCardData); // a collection of cards\n };\n\n /**\n * @function filterCategories\n * @memberof Card.prototype\n * @desc Search for categories matching some criterias\n * @param {string} search - the search string to match\n * @returns a collection of strings\n */\n Card.filterCategories = function(query) {\n var re = new RegExp(query, 'i');\n return _.filter(Card.$categories, function(category) {\n return category.search(re) != -1;\n });\n };\n\n /**\n * @memberof Card\n * @desc Unwrap to a collection of Card instances.\n * @param {object} futureCardData\n */\n Card.$unwrapCollection = function(futureCardData) {\n var collection = {};\n\n collection.$futureCardData = futureCardData;\n\n futureCardData.then(function(cards) {\n Card.$timeout(function() {\n angular.forEach(cards, function(data, index) {\n collection[data.id] = new Card(data);\n });\n });\n });\n\n return collection;\n };\n\n /**\n * @function init\n * @memberof Card.prototype\n * @desc Extend instance with required attributes and new data.\n * @param {object} data - attributes of card\n */\n Card.prototype.init = function(data, partial) {\n this.refs = [];\n angular.extend(this, data);\n if (!this.$$fullname)\n this.$$fullname = this.$fullname();\n if (!this.$$email)\n this.$$email = this.$preferredEmail(partial);\n if (!this.$$image)\n this.$$image = this.image || Card.$gravatar(this.$preferredEmail(partial), 32);\n this.selected = false;\n\n // An empty attribute to trick md-autocomplete when adding attendees from the appointment editor\n this.empty = ' ';\n };\n\n /**\n * @function $id\n * @memberof Card.prototype\n * @desc Return the card ID.\n * @returns the card ID\n */\n Card.prototype.$id = function() {\n return this.$futureCardData.then(function(data) {\n return data.id;\n });\n };\n\n /**\n * @function $save\n * @memberof Card.prototype\n * @desc Save the card to the server.\n */\n Card.prototype.$save = function() {\n var _this = this,\n action = 'saveAsContact';\n\n if (this.c_component == 'vlist') action = 'saveAsList';\n\n return Card.$$resource.save([this.pid, this.id || '_new_'].join('/'),\n this.$omit(),\n { action: action })\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n Card.prototype.$delete = function(attribute, index) {\n if (attribute) {\n if (index > -1 && this[attribute].length > index) {\n this[attribute].splice(index, 1);\n }\n else\n delete this[attribute];\n }\n else {\n // No arguments -- delete card\n return Card.$$resource.remove([this.pid, this.id].join('/'));\n }\n };\n\n Card.prototype.$fullname = function() {\n var fn = this.c_cn || '', names;\n if (fn.length === 0) {\n names = [];\n if (this.c_givenname && this.c_givenname.length > 0)\n names.push(this.c_givenname);\n if (this.nickname && this.nickname.length > 0)\n names.push('' + this.nickname + '');\n if (this.c_sn && this.c_sn.length > 0)\n names.push(this.c_sn);\n if (names.length > 0)\n fn = names.join(' ');\n else if (this.c_org && this.c_org.length > 0) {\n fn = this.c_org;\n }\n else if (this.emails && this.emails.length > 0) {\n fn = _.find(this.emails, function(i) { return i.value !== ''; }).value;\n }\n else if (this.c_cn && this.c_cn.length > 0) {\n fn = this.c_cn;\n }\n }\n\n return fn;\n };\n\n Card.prototype.$description = function() {\n var description = [];\n if (this.title) description.push(this.title);\n if (this.role) description.push(this.role);\n if (this.orgUnits && this.orgUnits.length > 0)\n _.forEach(this.orgUnits, function(unit) {\n if (unit.value !== '')\n description.push(unit.value);\n });\n if (this.c_org) description.push(this.c_org);\n if (this.description) description.push(this.description);\n\n return description.join(', ');\n };\n\n /**\n * @function $preferredEmail\n * @memberof Card.prototype\n * @desc Get the preferred email address.\n * @param {string} [partial] - a partial string that the email must match\n * @returns the first email address of type \"pref\" or the first address if none found\n */\n Card.prototype.$preferredEmail = function(partial) {\n var email, re;\n if (partial) {\n re = new RegExp(partial, 'i');\n email = _.find(this.emails, function(o) {\n return re.test(o.value);\n });\n }\n if (email) {\n email = email.value;\n }\n else {\n email = _.find(this.emails, function(o) {\n return o.type == 'pref';\n });\n if (email) {\n email = email.value;\n }\n else if (this.emails && this.emails.length) {\n email = this.emails[0].value;\n }\n else {\n email = '';\n }\n }\n\n return email;\n };\n\n /**\n * @function $shortFormat\n * @memberof Card.prototype\n * @param {string} [partial] - a partial string that the email must match\n * @returns the fullname along with a matching email address in parentheses\n */\n Card.prototype.$shortFormat = function(partial) {\n var fullname = this.$fullname(),\n email = this.$preferredEmail(partial);\n if (email && email != fullname)\n fullname += ' <' + email + '>';\n return fullname;\n };\n\n /**\n * @function $birthday\n * @memberof Card.prototype\n * @returns the formatted birthday object\n */\n Card.prototype.$birthday = function() {\n if (this.birthday) {\n return [this.birthday.getFullYear(), this.birthday.getMonth() + 1, this.birthday.getDate()].join('/');\n }\n return '';\n };\n\n Card.prototype.$isCard = function() {\n return this.c_component == 'vcard';\n };\n\n Card.prototype.$isList = function() {\n return this.c_component == 'vlist';\n };\n\n Card.prototype.$addOrgUnit = function(orgUnit) {\n if (angular.isUndefined(this.orgUnits)) {\n this.orgUnits = [{value: orgUnit}];\n }\n else {\n for (var i = 0; i < this.orgUnits.length; i++) {\n if (this.orgUnits[i].value == orgUnit) {\n break;\n }\n }\n if (i == this.orgUnits.length)\n this.orgUnits.push({value: orgUnit});\n }\n return this.orgUnits.length - 1;\n };\n\n Card.prototype.$addCategory = function(category) {\n if (angular.isUndefined(this.categories)) {\n this.categories = [{value: category}];\n }\n else {\n for (var i = 0; i < this.categories.length; i++) {\n if (this.categories[i].value == category) {\n break;\n }\n }\n if (i == this.categories.length)\n this.categories.push({value: category});\n }\n };\n\n Card.prototype.$addEmail = function(type) {\n if (angular.isUndefined(this.emails)) {\n this.emails = [{type: type, value: ''}];\n }\n else if (_.isUndefined(_.find(this.emails, function(i) { return i.value === ''; }))) {\n this.emails.push({type: type, value: ''});\n }\n return this.emails.length - 1;\n };\n\n Card.prototype.$addPhone = function(type) {\n if (angular.isUndefined(this.phones)) {\n this.phones = [{type: type, value: ''}];\n }\n else if (_.isUndefined(_.find(this.phones, function(i) { return i.value === ''; }))) {\n this.phones.push({type: type, value: ''});\n }\n return this.phones.length - 1;\n };\n\n Card.prototype.$addUrl = function(type, url) {\n if (angular.isUndefined(this.urls)) {\n this.urls = [{type: type, value: url}];\n }\n else if (_.isUndefined(_.find(this.urls, function(i) { return i.value == url; }))) {\n this.urls.push({type: type, value: url});\n }\n return this.urls.length - 1;\n };\n\n Card.prototype.$addAddress = function(type, postoffice, street, street2, locality, region, country, postalcode) {\n if (angular.isUndefined(this.addresses)) {\n this.addresses = [{type: type, postoffice: postoffice, street: street, street2: street2, locality: locality, region: region, country: country, postalcode: postalcode}];\n }\n else if (!_.find(this.addresses, function(i) {\n return i.street == street &&\n i.street2 == street2 &&\n i.locality == locality &&\n i.country == country &&\n i.postalcode == postalcode;\n })) {\n this.addresses.push({type: type, postoffice: postoffice, street: street, street2: street2, locality: locality, region: region, country: country, postalcode: postalcode});\n }\n return this.addresses.length - 1;\n };\n\n Card.prototype.$addMember = function(email) {\n var card = new Card({email: email, emails: [{value: email}]}),\n i;\n if (angular.isUndefined(this.refs)) {\n this.refs = [card];\n }\n else if (email.length === 0) {\n this.refs.push(card);\n }\n else {\n for (i = 0; i < this.refs.length; i++) {\n if (this.refs[i].email == email) {\n break;\n }\n }\n if (i == this.refs.length)\n this.refs.push(card);\n }\n return this.refs.length - 1;\n };\n\n /**\n * @function $reset\n * @memberof Card.prototype\n * @desc Reset the original state the card's data.\n */\n Card.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n delete _this[key];\n }\n });\n angular.extend(this, this.$shadowData);\n // Reinstanciate Card objects for list members\n angular.forEach(this.refs, function(o, i) {\n if (o.email) o.emails = [{value: o.email}];\n _this.refs[i] = new Card(o);\n });\n this.$shadowData = this.$omit(true);\n };\n\n /**\n * @function $updateMember\n * @memberof Card.prototype\n * @desc Update an existing list member from a Card instance.\n * A list member has the following attribtues:\n * - email\n * - reference\n * - fn\n * @param {number} index\n * @param {string} email\n * @param {Card} card\n */\n // Card.prototype.$updateMember = function(index, email, card) {\n // var ref = {\n // email: email,\n // emails: [{value: email}],\n // reference: card.c_name,\n // c_cn: card.$fullname()\n // };\n // this.refs[index] = new Card(ref);\n // };\n\n /**\n * @function $unwrap\n * @memberof Card.prototype\n * @desc Unwrap a promise and make a copy of the resolved data.\n * @param {object} futureCardData - a promise of the Card's data\n */\n Card.prototype.$unwrap = function(futureCardData) {\n var _this = this;\n\n // Expose the promise\n this.$futureCardData = futureCardData.then(function(data) {\n _this.init(data);\n // Instanciate Card objects for list members\n angular.forEach(_this.refs, function(o, i) {\n if (o.email) o.emails = [{value: o.email}];\n o.id = o.reference;\n _this.refs[i] = new Card(o);\n });\n if (_this.birthday) {\n _this.birthday = new Date(_this.birthday * 1000);\n }\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return _this;\n });\n };\n\n /**\n * @function $omit\n * @memberof Card.prototype\n * @desc Return a sanitized object used to send to the server.\n * @param {boolean} [deep] - make a deep copy if true\n * @return an object literal copy of the Card instance\n */\n Card.prototype.$omit = function(deep) {\n var card = {};\n angular.forEach(this, function(value, key) {\n if (key == 'refs') {\n card.refs = _.map(value, function(o) {\n return o.$omit(deep);\n });\n }\n else if (key != 'constructor' && key[0] != '$') {\n if (deep)\n card[key] = angular.copy(value);\n else\n card[key] = value;\n }\n });\n\n // We convert back our birthday object\n if (!deep) {\n if (card.birthday)\n card.birthday = card.birthday.getTime()/1000;\n else\n card.birthday = 0;\n }\n\n return card;\n };\n\n Card.prototype.toString = function() {\n var desc = this.id + ' ' + this.$$fullname;\n\n if (this.$$email)\n desc += ' <' + this.$$email + '>';\n\n return '[' + desc + ']';\n };\n})();\n"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.js b/UI/WebServerResources/js/Mailer.js index 8775cea2f..965ffeeb2 100644 --- a/UI/WebServerResources/js/Mailer.js +++ b/UI/WebServerResources/js/Mailer.js @@ -1,2 +1,2 @@ -!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("mail",{url:"/Mail",views:{mailboxes:{templateUrl:"UIxMailMainFrame",controller:"MailboxesController",controllerAs:"app"}},resolve:{stateAccounts:stateAccounts}}).state("mail.account",{url:"/:accountId","abstract":!0,views:{mailbox:{template:""}},resolve:{stateAccount:stateAccount}}).state("mail.account.virtualMailbox",{url:"/virtual",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateVirtualMailbox}}).state("mail.account.virtualMailbox.message",{url:"/:mailboxId/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMailbox:stateVirtualMailboxOfMessage,stateMessage:stateMessage}}).state("mail.account.mailbox",{url:"/:mailboxId",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateMailbox,stateMessages:stateMessages}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMessage:stateMessage}}),$urlRouterProvider.otherwise("/Mail")}function stateAccounts($q,Account){var accounts=Account.$findAll(mailAccounts),promises=[];return angular.forEach(accounts,function(account,i){var mailboxes=account.$getMailboxes();promises.push(mailboxes.then(function(objects){return account}))}),$q.all(promises)}function stateAccount($stateParams,stateAccounts){return _.find(stateAccounts,function(account){return account.id==$stateParams.accountId})}function stateMailbox(Mailbox,$stateParams,stateAccount,decodeUriFilter){var _find,mailboxId=decodeUriFilter($stateParams.mailboxId);return _find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.path==mailboxId});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox},Mailbox.$virtualMode?Mailbox.selectedFolder:_find(stateAccount.$mailboxes)}function stateMessages($q,Mailbox,stateMailbox){return Mailbox.$virtualMode?[]:stateMailbox.$filter()}function stateVirtualMailbox($q,Mailbox){return Mailbox.$virtualMode?Mailbox.selectedFolder:$q.reject("No virtual mailbox defined")}function stateVirtualMailboxOfMessage($q,Mailbox,decodeUriFilter,$stateParams){var mailboxId=decodeUriFilter($stateParams.mailboxId);return Mailbox.$virtualMode?_.find(Mailbox.selectedFolder.$mailboxes,function(mailboxObject){return mailboxObject.path==mailboxId}):$q.reject("No virtual mailbox defined for message")}function stateMessage(Mailbox,encodeUriFilter,$stateParams,$state,stateMailbox){var message;return(message=_.find(stateMailbox.$messages,function(messageObject){return messageObject.uid==$stateParams.messageId}))?(stateMailbox.selectedMessage=$stateParams.messageId,message.$reload()):void $state.go("mail.account.mailbox",{accountId:stateMailbox.$account.id,mailboxId:encodeUriFilter(stateMailbox.path)})}function runBlock($rootScope,$log,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error),$state.go("mail")}),$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}angular.module("SOGo.MailerUI",["ngSanitize","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","ngAnimate","SOGo.PreferencesUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateAccounts.$inject=["$q","Account"],stateAccount.$inject=["$stateParams","stateAccounts"],stateMailbox.$inject=["Mailbox","$stateParams","stateAccount","decodeUriFilter"],stateMessages.$inject=["$q","Mailbox","stateMailbox"],stateVirtualMailbox.$inject=["$q","Mailbox"],stateVirtualMailboxOfMessage.$inject=["$q","Mailbox","decodeUriFilter","$stateParams"],stateMessage.$inject=["Mailbox","encodeUriFilter","$stateParams","$state","stateMailbox"],runBlock.$inject=["$rootScope","$log","$state"]}(); +!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("mail",{url:"/Mail",views:{mailboxes:{templateUrl:"UIxMailMainFrame",controller:"MailboxesController",controllerAs:"app"}},resolve:{stateAccounts:stateAccounts}}).state("mail.account",{url:"/:accountId","abstract":!0,views:{mailbox:{template:""}},resolve:{stateAccount:stateAccount}}).state("mail.account.virtualMailbox",{url:"/virtual",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateVirtualMailbox}}).state("mail.account.virtualMailbox.message",{url:"/:mailboxId/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMailbox:stateVirtualMailboxOfMessage,stateMessages:stateMessages,stateMessage:stateMessage}}).state("mail.account.mailbox",{url:"/:mailboxId",views:{"mailbox@mail":{templateUrl:"UIxMailFolderTemplate",controller:"MailboxController",controllerAs:"mailbox"}},resolve:{stateMailbox:stateMailbox,stateMessages:stateMessages}}).state("mail.account.mailbox.message",{url:"/:messageId",views:{message:{templateUrl:"UIxMailViewTemplate",controller:"MessageController",controllerAs:"viewer"}},resolve:{stateMessage:stateMessage}}),$urlRouterProvider.otherwise("/Mail")}function stateAccounts($q,Account){var accounts=Account.$findAll(mailAccounts),promises=[];return angular.forEach(accounts,function(account,i){var mailboxes=account.$getMailboxes();promises.push(mailboxes.then(function(objects){return account}))}),$q.all(promises)}function stateAccount($stateParams,stateAccounts){return _.find(stateAccounts,function(account){return account.id==$stateParams.accountId})}function stateMailbox(Mailbox,$stateParams,stateAccount,decodeUriFilter){var _find,mailboxId=decodeUriFilter($stateParams.mailboxId);return(_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.path==mailboxId});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox})(stateAccount.$mailboxes)}function stateMessages(Mailbox,stateMailbox){return Mailbox.$virtualMode?[]:stateMailbox.$filter()}function stateVirtualMailbox($q,Mailbox){return Mailbox.$virtualMode?Mailbox.selectedFolder:$q.reject("No virtual mailbox defined")}function stateVirtualMailboxOfMessage($q,Mailbox,decodeUriFilter,$stateParams){var mailboxId=decodeUriFilter($stateParams.mailboxId);return Mailbox.$virtualMode?(Mailbox.selectedFolder.resetSelectedMessage(),_.find(Mailbox.selectedFolder.$mailboxes,function(mailboxObject){return mailboxObject.path==mailboxId})):$q.reject("No virtual mailbox defined for message")}function stateMessage(Mailbox,encodeUriFilter,$stateParams,$state,stateMailbox,stateMessages){var message;return(message=_.find(stateMailbox.$messages,function(messageObject){return messageObject.uid==$stateParams.messageId}))?(stateMailbox.selectedMessage=$stateParams.messageId,message.$reload()):void $state.go("mail.account.mailbox",{accountId:stateMailbox.$account.id,mailboxId:encodeUriFilter(stateMailbox.path)})}function runBlock($rootScope,$log,$state){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error),$state.go("mail")}),$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)})}angular.module("SOGo.MailerUI",["ngSanitize","ui.router","ck","angularFileUpload","SOGo.Common","SOGo.ContactsUI","ngAnimate","SOGo.PreferencesUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateAccounts.$inject=["$q","Account"],stateAccount.$inject=["$stateParams","stateAccounts"],stateMailbox.$inject=["Mailbox","$stateParams","stateAccount","decodeUriFilter"],stateMessages.$inject=["Mailbox","stateMailbox"],stateVirtualMailbox.$inject=["$q","Mailbox"],stateVirtualMailboxOfMessage.$inject=["$q","Mailbox","decodeUriFilter","$stateParams"],stateMessage.$inject=["Mailbox","encodeUriFilter","$stateParams","$state","stateMailbox","stateMessages"],runBlock.$inject=["$rootScope","$log","$state"]}(); //# sourceMappingURL=Mailer.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.js.map b/UI/WebServerResources/js/Mailer.js.map index 3d4febdd4..cbb1ec947 100644 --- a/UI/WebServerResources/js/Mailer.js.map +++ b/UI/WebServerResources/js/Mailer.js.map @@ -1 +1 @@ -{"version":3,"file":"Mailer.js","sources":["Mailer/Mailer.app.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateVirtualMailbox","message","stateVirtualMailboxOfMessage","stateMessage","stateMessages","otherwise","$q","Account","accounts","$findAll","mailAccounts","promises","angular","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","Mailbox","decodeUriFilter","_find","mailboxId","o","path","children","length","$virtualMode","selectedFolder","$mailboxes","$filter","reject","mailboxObject","encodeUriFilter","$state","$messages","messageObject","uid","messageId","selectedMessage","$reload","go","$account","runBlock","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","current","previous","rejection","module","config","run","$inject"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.MailerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.MailerUI', ['ngSanitize', 'ui.router', 'ck', 'angularFileUpload', 'SOGo.Common', 'SOGo.ContactsUI', 'ngAnimate', 'SOGo.PreferencesUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('mail', {\n url: '/Mail',\n views: {\n mailboxes: {\n templateUrl: 'UIxMailMainFrame', // UI/Templates/MailerUI/UIxMailMainFrame.wox\n controller: 'MailboxesController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateAccounts: stateAccounts\n }\n })\n .state('mail.account', {\n url: '/:accountId',\n abstract: true,\n views: {\n mailbox: {\n template: ''\n }\n },\n resolve: {\n stateAccount: stateAccount\n }\n })\n .state('mail.account.virtualMailbox', {\n url: '/virtual',\n views: {\n 'mailbox@mail': {\n templateUrl: 'UIxMailFolderTemplate', // UI/Templates/MailerUI/UIxMailFolderTemplate.wox\n controller: 'MailboxController',\n controllerAs: 'mailbox'\n }\n },\n resolve: {\n stateMailbox: stateVirtualMailbox\n }\n })\n .state('mail.account.virtualMailbox.message', {\n url: '/:mailboxId/:messageId',\n views: {\n message: {\n templateUrl: 'UIxMailViewTemplate', // UI/Templates/MailerUI/UIxMailViewTemplate.wox\n controller: 'MessageController',\n controllerAs: 'viewer'\n }\n },\n resolve: {\n stateMailbox: stateVirtualMailboxOfMessage,\n stateMessage: stateMessage\n }\n })\n .state('mail.account.mailbox', {\n url: '/:mailboxId',\n views: {\n 'mailbox@mail': {\n templateUrl: 'UIxMailFolderTemplate', // UI/Templates/MailerUI/UIxMailFolderTemplate.wox\n controller: 'MailboxController',\n controllerAs: 'mailbox'\n }\n },\n resolve: {\n stateMailbox: stateMailbox,\n stateMessages: stateMessages\n }\n })\n // .state('mail.account.mailbox.newMessage', {\n // url: '/new',\n // views: {\n // 'mailbox@mail': {\n // templateUrl: 'UIxMailEditor', // UI/Templates/MailerUI/UIxMailEditor.wox\n // controller: 'MessageEditorController',\n // controllerAs: 'editor'\n // }\n // },\n // resolve: {\n // stateMessage: stateNewMessage\n // }\n // })\n .state('mail.account.mailbox.message', {\n url: '/:messageId',\n views: {\n message: {\n templateUrl: 'UIxMailViewTemplate', // UI/Templates/MailerUI/UIxMailViewTemplate.wox\n controller: 'MessageController',\n controllerAs: 'viewer'\n }\n },\n resolve: {\n stateMessage: stateMessage\n }\n });\n // .state('mail.account.mailbox.message.edit', {\n // url: '/edit',\n // views: {\n // 'mailbox@mail': {\n // templateUrl: 'UIxMailEditor', // UI/Templates/MailerUI/UIxMailEditor.wox\n // controller: 'MessageEditorController',\n // controllerAs: 'editor'\n // }\n // },\n // resolve: {\n // stateContent: stateContent\n // }\n // })\n // .state('mail.account.mailbox.message.action', {\n // url: '/{actionName:(?:reply|replyall|forward)}',\n // views: {\n // 'mailbox@mail': {\n // templateUrl: 'UIxMailEditor', // UI/Templates/MailerUI/UIxMailEditor.wox\n // controller: 'MessageEditorController',\n // controllerAs: 'editor'\n // }\n // }\n // });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/Mail');\n\n // Set default configuration for tags input\n // tagsInputConfigProvider.setDefaults('tagsInput', {\n // addOnComma: false,\n // replaceSpacesWithDashes: false,\n // allowedTagsPattern: /([\\w\\!\\#$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`{\\|\\}\\~]+\\.)*[\\w\\!\\#$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`{\\|\\}\\~]+@((((([a-z0-9]{1}[a-z0-9\\-]{0,62}[a-z0-9]{1})|[a-z])\\.)+[a-z]{2,})|(\\d{1,3}\\.){3}\\d{1,3}(\\:\\d{1,5})?)/i\n // });\n }\n\n /**\n * @ngInject\n */\n stateAccounts.$inject = ['$q', 'Account'];\n function stateAccounts($q, Account) {\n var accounts = Account.$findAll(mailAccounts),\n promises = [];\n // Fetch list of mailboxes for each account\n angular.forEach(accounts, function(account, i) {\n var mailboxes = account.$getMailboxes();\n promises.push(mailboxes.then(function(objects) {\n return account;\n }));\n });\n return $q.all(promises);\n }\n\n /**\n * @ngInject\n */\n stateAccount.$inject = ['$stateParams', 'stateAccounts'];\n function stateAccount($stateParams, stateAccounts) {\n return _.find(stateAccounts, function(account) {\n return account.id == $stateParams.accountId;\n });\n }\n\n /**\n * @ngInject\n */\n stateMailbox.$inject = ['Mailbox', '$stateParams', 'stateAccount', 'decodeUriFilter'];\n function stateMailbox(Mailbox, $stateParams, stateAccount, decodeUriFilter) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId),\n _find;\n\n // Recursive find function\n _find = function(mailboxes) {\n var mailbox = _.find(mailboxes, function(o) {\n return o.path == mailboxId;\n });\n if (!mailbox) {\n angular.forEach(mailboxes, function(o) {\n if (!mailbox && o.children && o.children.length > 0) {\n mailbox = _find(o.children);\n }\n });\n }\n return mailbox;\n };\n\n if (Mailbox.$virtualMode)\n return Mailbox.selectedFolder;\n\n return _find(stateAccount.$mailboxes);\n }\n\n /**\n * @ngInject\n */\n stateMessages.$inject = ['$q', 'Mailbox', 'stateMailbox'];\n function stateMessages($q, Mailbox, stateMailbox) {\n if (Mailbox.$virtualMode)\n return [];\n\n return stateMailbox.$filter();\n }\n\n /**\n * @ngInject\n */\n // stateNewMessage.$inject = ['stateAccount'];\n // function stateNewMessage(stateAccount) {\n // return stateAccount.$newMessage();\n // }\n\n /**\n * Return a VirtualMailbox instance\n * @ngInject\n */\n stateVirtualMailbox.$inject = ['$q', 'Mailbox'];\n function stateVirtualMailbox($q, Mailbox) {\n if (Mailbox.$virtualMode)\n return Mailbox.selectedFolder;\n else\n return $q.reject(\"No virtual mailbox defined\");\n }\n\n /**\n * Return a Mailbox instance from a VirtualMailbox instance\n * @ngInject\n */\n stateVirtualMailboxOfMessage.$inject = ['$q', 'Mailbox', 'decodeUriFilter', '$stateParams'];\n function stateVirtualMailboxOfMessage($q, Mailbox, decodeUriFilter, $stateParams) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId);\n\n if (Mailbox.$virtualMode)\n return _.find(Mailbox.selectedFolder.$mailboxes, function(mailboxObject) {\n return mailboxObject.path == mailboxId;\n });\n else\n return $q.reject(\"No virtual mailbox defined for message\");\n }\n\n /**\n * @ngInject\n */\n stateMessage.$inject = ['Mailbox', 'encodeUriFilter', '$stateParams', '$state', 'stateMailbox'];\n function stateMessage(Mailbox, encodeUriFilter, $stateParams, $state, stateMailbox) {\n var message;\n\n message = _.find(stateMailbox.$messages, function(messageObject) {\n return messageObject.uid == $stateParams.messageId;\n });\n\n if (message) {\n stateMailbox.selectedMessage = $stateParams.messageId;\n return message.$reload();\n }\n else {\n // Message not found\n $state.go('mail.account.mailbox', { accountId: stateMailbox.$account.id, mailboxId: encodeUriFilter(stateMailbox.path) });\n }\n }\n\n /**\n * @ngInject\n */\n // stateContent.$inject = ['stateMessage'];\n // function stateContent(stateMessage) {\n // return stateMessage.$editableContent();\n // }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope', '$log', '$state'];\n function runBlock($rootScope, $log, $state) {\n $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {\n $log.error(error);\n $state.go('mail');\n });\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n $log.error(event, current, previous, rejection);\n });\n }\n\n})();\n"]} \ No newline at end of file +{"version":3,"file":"Mailer.js","sources":["Mailer/Mailer.app.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","mailboxes","templateUrl","controller","controllerAs","resolve","stateAccounts","abstract","mailbox","template","stateAccount","mailbox@mail","stateMailbox","stateVirtualMailbox","message","stateVirtualMailboxOfMessage","stateMessages","stateMessage","otherwise","$q","Account","accounts","$findAll","mailAccounts","promises","angular","forEach","account","i","$getMailboxes","push","then","objects","all","$stateParams","_","find","id","accountId","Mailbox","decodeUriFilter","_find","mailboxId","o","path","children","length","$mailboxes","$virtualMode","$filter","selectedFolder","reject","resetSelectedMessage","mailboxObject","encodeUriFilter","$state","$messages","messageObject","uid","messageId","selectedMessage","$reload","go","$account","runBlock","$rootScope","$log","$on","event","toState","toParams","fromState","fromParams","error","current","previous","rejection","module","config","run","$inject"],"mappings":"CAGA,WACE,YAUA,SAASA,WAAUC,eAAgBC,oBACjCD,eACGE,MAAM,QACLC,IAAK,QACLC,OACEC,WACEC,YAAa,mBACbC,WAAY,sBACZC,aAAc,QAGlBC,SACEC,cAAeA,iBAGlBR,MAAM,gBACLC,IAAK,cACLQ,YAAU,EACVP,OACEQ,SACEC,SAAU,eAGdJ,SACEK,aAAcA,gBAGjBZ,MAAM,+BACLC,IAAK,WACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcC,uBAGjBf,MAAM,uCACLC,IAAK,yBACLC,OACGc,SACCZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBC,SACEO,aAAcG,6BACdC,cAAeA,cACfC,aAAcA,gBAGjBnB,MAAM,wBACLC,IAAK,cACLC,OACEW,gBACET,YAAa,wBACbC,WAAY,oBACZC,aAAc,YAGlBC,SACEO,aAAcA,aACdI,cAAeA,iBAgBlBlB,MAAM,gCACLC,IAAK,cACLC,OACEc,SACEZ,YAAa,sBACbC,WAAY,oBACZC,aAAc,WAGlBC,SACEY,aAAcA,gBA4BpBpB,mBAAmBqB,UAAU,SAc/B,QAASZ,eAAca,GAAIC,SACzB,GAAIC,UAAWD,QAAQE,SAASC,cAC5BC,WAQJ,OANAC,SAAQC,QAAQL,SAAU,SAASM,QAASC,GAC1C,GAAI3B,WAAY0B,QAAQE,eACxBL,UAASM,KAAK7B,UAAU8B,KAAK,SAASC,SACpC,MAAOL,cAGJR,GAAGc,IAAIT,UAOhB,QAASd,cAAawB,aAAc5B,eAClC,MAAO6B,GAAEC,KAAK9B,cAAe,SAASqB,SACpC,MAAOA,SAAQU,IAAMH,aAAaI,YAQtC,QAAS1B,cAAa2B,QAASL,aAAcxB,aAAc8B,iBACzD,GACIC,OADAC,UAAYF,gBAAgBN,aAAaQ,UAkB7C,QAdAD,MAAQ,SAASxC,WACf,GAAIO,SAAU2B,EAAEC,KAAKnC,UAAW,SAAS0C,GACvC,MAAOA,GAAEC,MAAQF,WASnB,OAPKlC,UACHiB,QAAQC,QAAQzB,UAAW,SAAS0C,IAC7BnC,SAAWmC,EAAEE,UAAYF,EAAEE,SAASC,OAAS,IAChDtC,QAAUiC,MAAME,EAAEE,aAIjBrC,UAGIE,aAAaqC,YAO5B,QAAS/B,eAAcuB,QAAS3B,cAC9B,MAAI2B,SAAQS,gBAGLpC,aAAaqC,UAgBtB,QAASpC,qBAAoBM,GAAIoB,SAC/B,MAAIA,SAAQS,aACHT,QAAQW,eAER/B,GAAGgC,OAAO,8BAQrB,QAASpC,8BAA6BI,GAAIoB,QAASC,gBAAiBN,cAClE,GAAIQ,WAAYF,gBAAgBN,aAAaQ,UAE7C,OAAIH,SAAQS,cACVT,QAAQW,eAAeE,uBAChBjB,EAAEC,KAAKG,QAAQW,eAAeH,WAAY,SAASM,eACxD,MAAOA,eAAcT,MAAQF,aAIxBvB,GAAGgC,OAAO,0CAOrB,QAASlC,cAAasB,QAASe,gBAAiBpB,aAAcqB,OAAQ3C,aAAcI,eAClF,GAAIF,QAMJ,QAJAA,QAAUqB,EAAEC,KAAKxB,aAAa4C,UAAW,SAASC,eAChD,MAAOA,eAAcC,KAAOxB,aAAayB,cAIzC/C,aAAagD,gBAAkB1B,aAAayB,UACrC7C,QAAQ+C,eAIfN,QAAOO,GAAG,wBAA0BxB,UAAW1B,aAAamD,SAAS1B,GAAIK,UAAWY,gBAAgB1C,aAAagC,QAgBrH,QAASoB,UAASC,WAAYC,KAAMX,QAClCU,WAAWE,IAAI,oBAAqB,SAASC,MAAOC,QAASC,SAAUC,UAAWC,WAAYC,OAC5FP,KAAKO,MAAMA,OACXlB,OAAOO,GAAG,UAEZG,WAAWE,IAAI,oBAAqB,SAASC,MAAOM,QAASC,SAAUC,WACrEV,KAAKO,MAAML,MAAOM,QAASC,SAAUC,aAvRzCnD,QAAQoD,OAAO,iBAAkB,aAAc,YAAa,KAAM,oBAAqB,cAAe,kBAAmB,YAAa,uBACnIC,OAAOnF,WACPoF,IAAIf,UAKPrE,UAAUqF,SAAW,iBAAkB,sBAsIvC1E,cAAc0E,SAAW,KAAM,WAiB/BtE,aAAasE,SAAW,eAAgB,iBAUxCpE,aAAaoE,SAAW,UAAW,eAAgB,eAAgB,mBA0BnEhE,cAAcgE,SAAW,UAAW,gBAoBpCnE,oBAAoBmE,SAAW,KAAM,WAYrCjE,6BAA6BiE,SAAW,KAAM,UAAW,kBAAmB,gBAiB5E/D,aAAa+D,SAAW,UAAW,kBAAmB,eAAgB,SAAU,eAAgB,iBA6BhGhB,SAASgB,SAAW,aAAc,OAAQ","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.MailerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.MailerUI', ['ngSanitize', 'ui.router', 'ck', 'angularFileUpload', 'SOGo.Common', 'SOGo.ContactsUI', 'ngAnimate', 'SOGo.PreferencesUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('mail', {\n url: '/Mail',\n views: {\n mailboxes: {\n templateUrl: 'UIxMailMainFrame', // UI/Templates/MailerUI/UIxMailMainFrame.wox\n controller: 'MailboxesController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateAccounts: stateAccounts\n }\n })\n .state('mail.account', {\n url: '/:accountId',\n abstract: true,\n views: {\n mailbox: {\n template: ''\n }\n },\n resolve: {\n stateAccount: stateAccount\n }\n })\n .state('mail.account.virtualMailbox', {\n url: '/virtual',\n views: {\n 'mailbox@mail': {\n templateUrl: 'UIxMailFolderTemplate', // UI/Templates/MailerUI/UIxMailFolderTemplate.wox\n controller: 'MailboxController',\n controllerAs: 'mailbox'\n }\n },\n resolve: {\n stateMailbox: stateVirtualMailbox\n }\n })\n .state('mail.account.virtualMailbox.message', {\n url: '/:mailboxId/:messageId',\n views: {\n message: {\n templateUrl: 'UIxMailViewTemplate', // UI/Templates/MailerUI/UIxMailViewTemplate.wox\n controller: 'MessageController',\n controllerAs: 'viewer'\n }\n },\n resolve: {\n stateMailbox: stateVirtualMailboxOfMessage,\n stateMessages: stateMessages,\n stateMessage: stateMessage\n }\n })\n .state('mail.account.mailbox', {\n url: '/:mailboxId',\n views: {\n 'mailbox@mail': {\n templateUrl: 'UIxMailFolderTemplate', // UI/Templates/MailerUI/UIxMailFolderTemplate.wox\n controller: 'MailboxController',\n controllerAs: 'mailbox'\n }\n },\n resolve: {\n stateMailbox: stateMailbox,\n stateMessages: stateMessages\n }\n })\n // .state('mail.account.mailbox.newMessage', {\n // url: '/new',\n // views: {\n // 'mailbox@mail': {\n // templateUrl: 'UIxMailEditor', // UI/Templates/MailerUI/UIxMailEditor.wox\n // controller: 'MessageEditorController',\n // controllerAs: 'editor'\n // }\n // },\n // resolve: {\n // stateMessage: stateNewMessage\n // }\n // })\n .state('mail.account.mailbox.message', {\n url: '/:messageId',\n views: {\n message: {\n templateUrl: 'UIxMailViewTemplate', // UI/Templates/MailerUI/UIxMailViewTemplate.wox\n controller: 'MessageController',\n controllerAs: 'viewer'\n }\n },\n resolve: {\n stateMessage: stateMessage\n }\n });\n // .state('mail.account.mailbox.message.edit', {\n // url: '/edit',\n // views: {\n // 'mailbox@mail': {\n // templateUrl: 'UIxMailEditor', // UI/Templates/MailerUI/UIxMailEditor.wox\n // controller: 'MessageEditorController',\n // controllerAs: 'editor'\n // }\n // },\n // resolve: {\n // stateContent: stateContent\n // }\n // })\n // .state('mail.account.mailbox.message.action', {\n // url: '/{actionName:(?:reply|replyall|forward)}',\n // views: {\n // 'mailbox@mail': {\n // templateUrl: 'UIxMailEditor', // UI/Templates/MailerUI/UIxMailEditor.wox\n // controller: 'MessageEditorController',\n // controllerAs: 'editor'\n // }\n // }\n // });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/Mail');\n\n // Set default configuration for tags input\n // tagsInputConfigProvider.setDefaults('tagsInput', {\n // addOnComma: false,\n // replaceSpacesWithDashes: false,\n // allowedTagsPattern: /([\\w\\!\\#$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`{\\|\\}\\~]+\\.)*[\\w\\!\\#$\\%\\&\\'\\*\\+\\-\\/\\=\\?\\^\\`{\\|\\}\\~]+@((((([a-z0-9]{1}[a-z0-9\\-]{0,62}[a-z0-9]{1})|[a-z])\\.)+[a-z]{2,})|(\\d{1,3}\\.){3}\\d{1,3}(\\:\\d{1,5})?)/i\n // });\n }\n\n /**\n * @ngInject\n */\n stateAccounts.$inject = ['$q', 'Account'];\n function stateAccounts($q, Account) {\n var accounts = Account.$findAll(mailAccounts),\n promises = [];\n // Fetch list of mailboxes for each account\n angular.forEach(accounts, function(account, i) {\n var mailboxes = account.$getMailboxes();\n promises.push(mailboxes.then(function(objects) {\n return account;\n }));\n });\n return $q.all(promises);\n }\n\n /**\n * @ngInject\n */\n stateAccount.$inject = ['$stateParams', 'stateAccounts'];\n function stateAccount($stateParams, stateAccounts) {\n return _.find(stateAccounts, function(account) {\n return account.id == $stateParams.accountId;\n });\n }\n\n /**\n * @ngInject\n */\n stateMailbox.$inject = ['Mailbox', '$stateParams', 'stateAccount', 'decodeUriFilter'];\n function stateMailbox(Mailbox, $stateParams, stateAccount, decodeUriFilter) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId),\n _find;\n\n // Recursive find function\n _find = function(mailboxes) {\n var mailbox = _.find(mailboxes, function(o) {\n return o.path == mailboxId;\n });\n if (!mailbox) {\n angular.forEach(mailboxes, function(o) {\n if (!mailbox && o.children && o.children.length > 0) {\n mailbox = _find(o.children);\n }\n });\n }\n return mailbox;\n };\n\n return _find(stateAccount.$mailboxes);\n }\n\n /**\n * @ngInject\n */\n stateMessages.$inject = ['Mailbox', 'stateMailbox'];\n function stateMessages(Mailbox, stateMailbox) {\n if (Mailbox.$virtualMode)\n return [];\n\n return stateMailbox.$filter();\n }\n\n /**\n * @ngInject\n */\n // stateNewMessage.$inject = ['stateAccount'];\n // function stateNewMessage(stateAccount) {\n // return stateAccount.$newMessage();\n // }\n\n /**\n * Return a VirtualMailbox instance\n * @ngInject\n */\n stateVirtualMailbox.$inject = ['$q', 'Mailbox'];\n function stateVirtualMailbox($q, Mailbox) {\n if (Mailbox.$virtualMode)\n return Mailbox.selectedFolder;\n else\n return $q.reject(\"No virtual mailbox defined\");\n }\n\n /**\n * Return a Mailbox instance from a VirtualMailbox instance\n * @ngInject\n */\n stateVirtualMailboxOfMessage.$inject = ['$q', 'Mailbox', 'decodeUriFilter', '$stateParams'];\n function stateVirtualMailboxOfMessage($q, Mailbox, decodeUriFilter, $stateParams) {\n var mailboxId = decodeUriFilter($stateParams.mailboxId);\n\n if (Mailbox.$virtualMode) {\n Mailbox.selectedFolder.resetSelectedMessage();\n return _.find(Mailbox.selectedFolder.$mailboxes, function(mailboxObject) {\n return mailboxObject.path == mailboxId;\n });\n }\n else\n return $q.reject(\"No virtual mailbox defined for message\");\n }\n\n /**\n * @ngInject\n */\n stateMessage.$inject = ['Mailbox', 'encodeUriFilter', '$stateParams', '$state', 'stateMailbox', 'stateMessages'];\n function stateMessage(Mailbox, encodeUriFilter, $stateParams, $state, stateMailbox, stateMessages) {\n var message;\n\n message = _.find(stateMailbox.$messages, function(messageObject) {\n return messageObject.uid == $stateParams.messageId;\n });\n\n if (message) {\n stateMailbox.selectedMessage = $stateParams.messageId;\n return message.$reload();\n }\n else {\n // Message not found\n $state.go('mail.account.mailbox', { accountId: stateMailbox.$account.id, mailboxId: encodeUriFilter(stateMailbox.path) });\n }\n }\n\n /**\n * @ngInject\n */\n // stateContent.$inject = ['stateMessage'];\n // function stateContent(stateMessage) {\n // return stateMessage.$editableContent();\n // }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope', '$log', '$state'];\n function runBlock($rootScope, $log, $state) {\n $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {\n $log.error(error);\n $state.go('mail');\n });\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n $log.error(event, current, previous, rejection);\n });\n }\n\n})();\n"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.services.js b/UI/WebServerResources/js/Mailer.services.js index 55b723770..2cc977eb6 100644 --- a/UI/WebServerResources/js/Mailer.services.js +++ b/UI/WebServerResources/js/Mailer.services.js @@ -1,3 +1,3 @@ -!function(){"use strict";function Account(futureAccountData){"function"!=typeof futureAccountData.then&&(angular.extend(this,futureAccountData),_.each(this.identities,function(identity){identity.fullName?identity.full=identity.fullName+" <"+identity.email+">":identity.full="<"+identity.email+">"}),Account.$log.debug("Account: "+JSON.stringify(futureAccountData,void 0,2)))}Account.$factory=["$q","$timeout","$log","sgSettings","Resource","Mailbox","Message",function($q,$timeout,$log,Settings,Resource,Mailbox,Message){return angular.extend(Account,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Mailbox:Mailbox,$Message:Message}),Account}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",Account.$factory),Account.$findAll=function(data){return data?Account.$unwrapCollection(data):Account.$$resource.fetch("","mailAccounts").then(function(o){return Account.$unwrapCollection(o)})},Account.$unwrapCollection=function(data){var collection=[];return angular.forEach(data,function(o,i){o.id=i,collection[i]=new Account(o)}),collection},Account.prototype.$getMailboxes=function(options){var _this=this;return!this.$mailboxes||options&&options.reload?Account.$Mailbox.$find(this).then(function(data){return _this.$mailboxes=data,_this.$flattenMailboxes({reload:!0}),_this.$mailboxes}):Account.$q.when(this.$mailboxes)},Account.prototype.$flattenMailboxes=function(options){var _this=this,allMailboxes=[],_visit=function(mailboxes){_.each(mailboxes,function(o){allMailboxes.push(o),o.children&&o.children.length>0&&_visit(o.children)})};return!this.$$flattenMailboxes||options&&options.reload?(_visit(this.$mailboxes),_this.$$flattenMailboxes=allMailboxes):allMailboxes=this.$$flattenMailboxes,allMailboxes},Account.prototype.$getMailboxByType=function(type){var mailbox,_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.type==type});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox};mailbox=_find(this.$mailboxes),console.debug(mailbox),console.debug(this.specialMailboxes)},Account.prototype.$getMailboxByPath=function(path){var mailbox=null,_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.path==path});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox};return mailbox=_find(this.$mailboxes)},Account.prototype.$newMailbox=function(path,name){var _this=this;return Account.$$resource.post(path.toString(),"createFolder",{name:name}).then(function(){_this.$getMailboxes({reload:!0})})},Account.prototype.$newMessage=function(){var _this=this;return Account.$$resource.fetch(this.id.toString(),"compose").then(function(data){Account.$log.debug("New message (compose): "+JSON.stringify(data,void 0,2));var message=new Account.$Message(data.accountId,_this.$getMailboxByPath(data.mailboxPath),data);return message}).then(function(message){return Account.$$resource.fetch(message.$absolutePath({asDraft:!0}),"edit").then(function(data){return Account.$log.debug("New message (edit): "+JSON.stringify(data,void 0,2)),angular.extend(message.editable,data),message})})},Account.prototype.$addDelegate=function(user){var _this=this,deferred=Account.$q.defer(),param={uid:user.uid};return!user.uid||_.indexOf(_.pluck(this.delegates,"uid"),user.uid)>-1?deferred.resolve():Account.$$resource.fetch(this.id.toString(),"addDelegate",param).then(function(){_this.delegates.push(user),deferred.resolve(_this.users)},function(data,status){deferred.reject(l("An error occured please try again."))}),deferred.promise},Account.prototype.$removeDelegate=function(uid){var _this=this,param={uid:uid};return Account.$$resource.fetch(this.id.toString(),"removeDelegate",param).then(function(){var i=_.indexOf(_.pluck(_this.delegates,"uid"),uid);i>=0&&_this.delegates.splice(i,1)})}}(),function(){"use strict";function Mailbox(account,futureMailboxData){if(this.$account=account,"function"!=typeof futureMailboxData.then){if(this.init(futureMailboxData),this.name&&!this.path){var newMailboxData=Mailbox.$$resource.create("createFolder",this.name);this.$unwrap(newMailboxData)}}else this.$unwrap(futureMailboxData)}Mailbox.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function($q,$timeout,$log,Settings,Resource,Message,Acl,Preferences,PRELOAD){return angular.extend(Mailbox,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Message:Message,$$Acl:Acl,$Preferences:Preferences,$query:{sort:"date",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,PRELOAD:PRELOAD}),Preferences.ready().then(function(){Preferences.settings.Mail.SortingState&&(Mailbox.$query.sort=Preferences.settings.Mail.SortingState[0],Mailbox.$query.asc=parseInt(Preferences.settings.Mail.SortingState[1]))}),Mailbox}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("Mailbox",Mailbox.$factory),Mailbox.$find=function(account){var futureMailboxData;return futureMailboxData=this.$$resource.fetch(account.id.toString(),"view"),Mailbox.$unwrapCollection(account,futureMailboxData)},Mailbox.$unwrapCollection=function(account,futureMailboxData){var collection=[],createMailboxes=function(level,mailbox){for(var i=0;i=0&&indexstartIndex&&max>startIndex;startIndex++)angular.isDefined(this.$messages[startIndex].subject)||this.$messages[startIndex].loading?endIndex++:(uids.push(this.$messages[startIndex].uid),this.$messages[startIndex].loading=!0);Mailbox.$log.debug("Loading UIDs "+uids.join(" ")),futureHeadersData=Mailbox.$$resource.post(this.id,"headers",{uids:uids}),this.$unwrapHeaders(futureHeadersData)}return loaded},Mailbox.prototype.isEditable=function(){return"folder"==this.type},Mailbox.prototype.$rename=function(){var findParent,parent,children,i,_this=this;return this.name==this.$shadowData.name?Mailbox.$q.when():(findParent=function(parent,children){var parentMailbox=null,mailbox=_.find(children,function(o){return o.path==_this.path});return mailbox?parentMailbox=parent:angular.forEach(children,function(o){!parentMailbox&&o.children&&o.children.length>0&&(parentMailbox=findParent(o,o.children))}),parentMailbox},parent=findParent(null,this.$account.$mailboxes),children=null===parent?this.$account.$mailboxes:parent.children,i=_.indexOf(_.pluck(children,"id"),this.id),this.$save().then(function(data){var sibling;angular.extend(_this,data),_this.id=_this.$id(),children.splice(i,1),sibling=_.find(children,function(o){return Mailbox.$log.debug(o.name+" ? "+_this.name),"folder"==o.type&&o.name.localeCompare(_this.name)>0}),i=sibling?_.indexOf(_.pluck(children,"id"),sibling.id):children.length,children.splice(i,0,_this)}))},Mailbox.prototype.$compact=function(){return Mailbox.$$resource.post(this.id,"expunge")},Mailbox.prototype.$setFolderAs=function(type){return Mailbox.$$resource.post(this.id,"setAs"+type+"Folder")},Mailbox.prototype.$emptyTrash=function(){var _this=this;return Mailbox.$$resource.post(this.id,"emptyTrash").then(function(){_this.$messages=[],_this.uidsMap={},_this.unseenCount=0,angular.isDefined(_this.children)&&_this.children.length&&_this.$account.$getMailboxes({reload:!0})})},Mailbox.prototype.$markAsRead=function(){return Mailbox.$$resource.post(this.id,"markRead")},Mailbox.prototype.$flagMessages=function(uids,flags,operation){var data={msgUIDs:uids,flags:flags,operation:operation};return Mailbox.$$resource.post(this.id,"addOrRemoveLabel",data)},Mailbox.prototype.$delete=function(){var promise,_this=this,deferred=Mailbox.$q.defer();return promise=Mailbox.$$resource.remove(this.id),promise.then(function(){_this.$account.$getMailboxes({reload:!0}),deferred.resolve(!0)},function(data,status){deferred.reject(data)}),deferred.promise},Mailbox.prototype.$deleteMessages=function(uids){return Mailbox.$$resource.post(this.id,"batchDelete",{uids:uids})},Mailbox.prototype.$copyMessages=function(uids,folder){return Mailbox.$$resource.post(this.id,"copyMessages",{uids:uids,folder:folder})},Mailbox.prototype.$moveMessages=function(uids,folder){return Mailbox.$$resource.post(this.id,"moveMessages",{uids:uids,folder:folder})},Mailbox.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"children"!=key&&"$"!=key[0]&&delete _this[key]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},Mailbox.prototype.$save=function(){var _this=this;return Mailbox.$$resource.save(this.id,this.$omit()).then(function(data){return _this.$shadowData=_this.$omit(),Mailbox.$log.debug(JSON.stringify(data,void 0,2)),data},function(data){Mailbox.$log.error(JSON.stringify(data,void 0,2)),_this.$reset()})},Mailbox.prototype.$newMailbox=function(path,name){return this.$account.$newMailbox(path,name)},Mailbox.prototype.$omit=function(){var mailbox={};return angular.forEach(this,function(value,key){"constructor"!=key&&"children"!=key&&"$"!=key[0]&&(mailbox[key]=value)}),mailbox},Mailbox.prototype.$unwrap=function(futureMailboxData){var _this=this,deferred=Mailbox.$q.defer();return this.$futureMailboxData=futureMailboxData,this.$futureMailboxData.then(function(data){Mailbox.$timeout(function(){var uids,headers;_this.init(data),_this.uids&&(Mailbox.$log.debug("unwrapping "+data.uids.length+" messages"),headers=_.invoke(_this.headers[0],"toLowerCase"),_this.headers.splice(0,1),_this.threaded&&(uids=_this.uids[0],_this.uids.splice(0,1)),_.reduce(_this.uids,function(msgs,msg,i){var data;return data=_this.threaded?_.object(uids,msg):{uid:msg.toString()},_this.uidsMap[data.uid]=i,msgs.push(new Mailbox.$Message(_this.$account.id,_this,data,!0)),msgs},_this.$messages),_.each(_this.headers,function(data){var msg=_.object(headers,data),i=_this.uidsMap[msg.uid.toString()];_.extend(_this.$messages[i],msg)})),Mailbox.$log.debug("mailbox "+_this.id+" ready"),_this.$isLoading=!1,deferred.resolve(_this.$messages)})},function(data){angular.extend(_this,data),_this.isError=!0,deferred.reject()}),deferred.promise},Mailbox.prototype.$unwrapHeaders=function(futureHeadersData){var _this=this;futureHeadersData.then(function(data){Mailbox.$timeout(function(){var headers,j;data.length>0&&(headers=_.invoke(data[0],"toLowerCase"),data.splice(0,1),_.each(data,function(messageHeaders){messageHeaders=_.object(headers,messageHeaders),j=_this.uidsMap[messageHeaders.uid.toString()],angular.isDefined(j)&&_.extend(_this.$messages[j],messageHeaders)}))})})}}(),function(){"use strict";function Message(accountId,mailbox,futureMessageData,lazy){this.accountId=accountId,this.$mailbox=mailbox,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.$showDetailedRecipients=!1,this.editable={to:[],cc:[],bcc:[]},this.selected=!1,"function"!=typeof futureMessageData.then?angular.isDefined(lazy)&&lazy?this.uid=futureMessageData.uid:(angular.extend(this,futureMessageData),this.$formatFullAddresses()):this.$unwrap(futureMessageData)}Message.$factory=["$q","$timeout","$log","$sce","sgSettings","Gravatar","Resource","Preferences",function($q,$timeout,$log,$sce,Settings,Gravatar,Resource,Preferences){return angular.extend(Message,{$q:$q,$timeout:$timeout,$log:$log,$sce:$sce,$gravatar:Gravatar,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser())}),Preferences.ready().then(function(){Preferences.defaults.SOGoMailLabelsColors&&(Message.$tags=Preferences.defaults.SOGoMailLabelsColors),Preferences.defaults.SOGoMailDisplayRemoteInlineImages&&"always"==Preferences.defaults.SOGoMailDisplayRemoteInlineImages&&(Message.$displayRemoteInlineImages=!0)}),Message}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Message",Message.$factory),Message.filterTags=function(query){var re=new RegExp(query,"i"),results=[];return _.forEach(_.keys(Message.$tags),function(tag){var pair=Message.$tags[tag];-1!=pair[0].search(re)&&results.push({name:tag,description:pair[0],color:pair[1]})}),results},Message.prototype.$absolutePath=function(options){if(angular.isUndefined(this.id)||options){var path;path=_.map(this.$mailbox.path.split("/"),function(component){return"folder"+component.asCSSIdentifier()}),path.splice(0,0,this.accountId),options&&options.asDraft&&this.draftId?path.push(this.draftId):path.push(this.uid),this.id=path.join("/")}return this.id},Message.prototype.$setUID=function(uid){var oldUID=this.uid||-1;oldUID!=uid&&(this.uid=uid,oldUID>-1&&this.$mailbox.uidsMap[oldUID]&&(this.$mailbox.uidsMap[uid]=this.$mailbox.uidsMap[oldUID],this.$mailbox.uidsMap[oldUID]=null))},Message.prototype.$formatFullAddresses=function(){var _this=this,identities=_.pluck(_this.$mailbox.$account.identities,"email");_.each(["from","to","cc","bcc","reply-to"],function(type){_.each(_this[type],function(data,i){data.name&&data.name!=data.email?(data.full=data.name+" <"+data.email+">",data.name.split(" ").length&&(data.shortname=data.name.split(" ")[0].replace("'",""))):(data.full="<"+data.email+">",data.shortname=data.email.split("@")[0]),data.image=Message.$gravatar(data.email,32),_.indexOf(identities,data.email)>=0&&(data.shortname=l("me"))})})},Message.prototype.$shortRecipients=function(){var _this=this,result=[];return _.each(["to","cc","bcc"],function(type){_.each(_this[type],function(data,i){result.push(data.shortname)})}),result.join(", ")},Message.prototype.$shortAddress=function(type){var address="";return this[type]&&this[type].length>0&&(address=this[type][0].name||this[type][0].email||""),address},Message.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=!0},Message.prototype.showDetailedRecipients=function(){this.$showDetailedRecipients=!0},Message.prototype.$content=function(){var _this=this,parts=[],_visit=function(part){part.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==part.type?_visit(_.find(part.content,function(alternatePart){return part.preferredPart==alternatePart.contentType})):angular.isArray(part.content)?_.each(part.content,function(mixedPart){_visit(mixedPart)}):(angular.isUndefined(part.safeContent)&&(part.safeContent=part.content,_this.$hasUnsafeContent|=part.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==part.type?(part.html=!0,_this.$loadUnsafeContent||Message.$displayRemoteInlineImages?(angular.isUndefined(part.unsafeContent)&&(part.unsafeContent=document.createElement("div"),part.unsafeContent.innerHTML=part.safeContent,angular.forEach(["src","data","classid","background","style"],function(suffix){var element,value,i,elements=part.unsafeContent.querySelectorAll("[unsafe-"+suffix+"]");for(i=0;i=0)for(i=0,j=0;j0&&_visit(o.children)})};vm.virtualMailbox=new VirtualMailbox(vm.accounts[0]),Mailbox.$virtualMode||(vm.searchPreviousMailbox=Mailbox.selectedFolder),Mailbox.selectedFolder=vm.virtualMailbox,Mailbox.$virtualMode=!0,angular.isDefined(vm.search.mailbox)?(root=vm.accounts[0].$getMailboxByPath(vm.search.mailbox),mailboxes.push(root),vm.search.subfolders&&root.children.length&&_visit(root.children)):mailboxes=vm.accounts[0].$flattenMailboxes(),vm.virtualMailbox.setMailboxes(mailboxes),vm.virtualMailbox.startSearch(vm.search.match,vm.search.params),$state.go("mail.account.virtualMailbox",{accountId:vm.accounts[0].id})}}function addSearchParam(v){vm.currentSearchParam=v,focus("advancedSearch")}function newSearchParam(v){if(v.length&&vm.currentSearchParam.length){var n=0;v.startsWith("!")&&(n=1,v=v.substring(1).trim()),vm.search.params.push({searchBy:vm.currentSearchParam,searchInput:v,negative:n}),vm.currentSearchParam=""}}function newFolder(parentFolder){Dialog.prompt(l("New folder"),l("Enter the new name of your folder :")).then(function(name){ -parentFolder.$newMailbox(parentFolder.id,name).then(function(){},function(data,status){Dialog.alert(l('An error occured while creating the mailbox "%{0}".',name),l(data.error))})})}function delegate(account){function MailboxDelegationController($scope,$mdDialog,User,account){function userFilter($query){return User.$filter($query,account.delegates)}function closeModal(){$mdDialog.hide()}function removeUser(user){account.$removeDelegate(user.uid)["catch"](function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function addUser(data){data&&account.$addDelegate(data).then(function(){vm.userToAdd="",vm.searchText=""},function(error){Dialog.alert(l("Warning"),error)})}var vm=this;vm.users=account.delegates,vm.account=account,vm.userToAdd="",vm.searchText="",vm.userFilter=userFilter,vm.closeModal=closeModal,vm.removeUser=removeUser,vm.addUser=addUser}$mdDialog.show({templateUrl:account.id+"/delegation",controller:MailboxDelegationController,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:User,account:account}}),MailboxDelegationController.$inject=["$scope","$mdDialog","User","account"]}function editFolder(folder){vm.editMode=folder.path,focus("mailboxName_"+folder.path)}function revertEditing(folder){folder.$reset(),vm.editMode=!1}function selectFolder(account,folder){vm.editMode!=folder.path&&(vm.editMode=!1,vm.showingAdvancedSearch=!1,vm.service.$virtualMode=!1,$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(folder.path)}))}function saveFolder(folder){folder.$rename().then(function(data){vm.editMode=!1},function(data,status){Dialog.alert(l("Warning"),data)})}function compactFolder(folder){folder.$compact().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function emptyTrashFolder(folder){folder.$emptyTrash().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function exportMails(folder){window.location.href=ApplicationBaseURL+"/"+folder.id+"/exportFolder"}function confirmDelete(folder){Dialog.confirm(l("Confirmation"),l("Do you really want to move this folder into the trash ?")).then(function(){folder.$delete().then(function(){$state.go("mail")},function(data,status){Dialog.alert(l('An error occured while deleting the mailbox "%{0}".',folder.name),l(data.error))})})}function markFolderRead(folder){folder.$markAsRead()}function share(folder){folder.$acl.$users().then(function(){$mdDialog.show({templateUrl:folder.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:folder.$acl.users,User:User,folder:folder}})})}function metadataForFolder(folder){return"inbox"==folder.type?{name:folder.name,icon:"inbox"}:"draft"==folder.type?{name:l("DraftsFolderName"),icon:"drafts"}:"sent"==folder.type?{name:l("SentFolderName"),icon:"send"}:"trash"==folder.type?{name:l("TrashFolderName"),icon:"delete"}:"additional"==folder.type?{name:folder.name,icon:"folder_shared"}:{name:folder.name,icon:"folder"}}function setFolderAs(folder,type){folder.$setFolderAs(type).then(function(){folder.$account.$getMailboxes({reload:!0})},function(error){Dialog.alert(l("Warning"),error)})}function refreshUnseenCount(){var unseenCountFolders=window.unseenCountFolders;_.forEach(vm.accounts,function(account){_.includes(unseenCountFolders,account.id+"/folderINBOX")||unseenCountFolders.push(account.id+"/folderINBOX"),_.forEach(account.$$flattenMailboxes,function(mailbox){angular.isDefined(mailbox.unseenCount)&&!_.includes(unseenCountFolders,mailbox.id)&&unseenCountFolders.push(mailbox.id)})}),Account.$$resource.post("","unseenCount",{mailboxes:unseenCountFolders}).then(function(data){_.forEach(vm.accounts,function(account){_.forEach(account.$$flattenMailboxes,function(mailbox){data[mailbox.id]&&(mailbox.unseenCount=data[mailbox.id])})})}),Preferences.ready().then(function(){var refreshViewCheck=Preferences.defaults.SOGoRefreshViewCheck;refreshViewCheck&&"manually"!=refreshViewCheck&&$timeout(vm.refreshUnseenCount,1e3*refreshViewCheck.timeInterval())})}var account,mailbox,vm=this;vm.service=Mailbox,vm.accounts=stateAccounts,vm.newFolder=newFolder,vm.delegate=delegate,vm.editFolder=editFolder,vm.revertEditing=revertEditing,vm.selectFolder=selectFolder,vm.saveFolder=saveFolder,vm.compactFolder=compactFolder,vm.emptyTrashFolder=emptyTrashFolder,vm.exportMails=exportMails,vm.confirmDelete=confirmDelete,vm.markFolderRead=markFolderRead,vm.share=share,vm.metadataForFolder=metadataForFolder,vm.setFolderAs=setFolderAs,vm.refreshUnseenCount=refreshUnseenCount,vm.showingAdvancedSearch=!1,vm.currentSearchParam="",vm.addSearchParam=addSearchParam,vm.newSearchParam=newSearchParam,vm.showAdvancedSearch=showAdvancedSearch,vm.hideAdvancedSearch=hideAdvancedSearch,vm.toggleAdvancedSearch=toggleAdvancedSearch,vm.search={options:{"":l("Select a criteria"),subject:l("Enter Subject"),from:l("Enter From"),to:l("Enter To"),cc:l("Enter Cc"),body:l("Enter Body")},mailbox:"INBOX",subfolders:1,match:"AND",params:[]},"mail"==$state.current.name&&vm.accounts.length>0&&vm.accounts[0].$mailboxes.length>0&&(account=vm.accounts[0],mailbox=account.$mailboxes[0],$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(mailbox.path)})),vm.refreshUnseenCount()}MailboxesController.$inject=["$state","$timeout","$mdDialog","sgFocus","encodeUriFilter","Dialog","sgSettings","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",MailboxesController)}(),function(){"use strict";function MessageController($window,$scope,$state,$mdDialog,stateAccounts,stateAccount,stateMailbox,stateMessage,encodeUriFilter,sgSettings,focus,Dialog,Account,Mailbox,Message){function doDelete(){stateMailbox.$deleteMessages([stateMessage.uid]).then(function(){var index=_.findIndex(stateMailbox.$messages,function(o){return o.uid==stateMessage.uid});-1!=index&&stateMailbox.$messages.splice(index,1),vm.message=null,$state.go("mail.account.mailbox",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path)})})}function showMailEditor($event,message,recipients){null===messageDialog&&(angular.isDefined(recipients)||(recipients=[]),messageDialog=$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:vm.accounts,stateMessage:message,stateRecipients:recipients}})["finally"](function(){messageDialog=null}))}function close(){$state.go("mail.account.mailbox",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path)}).then(function(){vm.message=null,delete stateMailbox.selectedMessage})}function reply($event){var message=vm.message.$reply();showMailEditor($event,message)}function replyAll($event){var message=vm.message.$replyAll();showMailEditor($event,message)}function forward($event){var message=vm.message.$forward();showMailEditor($event,message)}function edit($event){vm.message.$editableContent().then(function(){showMailEditor($event,vm.message)})}function openPopup(){var url=[sgSettings.baseURL(),"UIxMailPopupView#/Mail",vm.message.accountId,encodeUriFilter(encodeUriFilter(vm.message.$mailbox.path)),vm.message.uid].join("/"),wId=vm.message.$absolutePath();popupWindow=$window.open(url,wId,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}function closePopup(){$window.close()}function newMessage($event,recipient){var message=vm.account.$newMessage();showMailEditor($event,message,[recipient])}function saveMessage(){window.location.href=ApplicationBaseURL+"/"+vm.mailbox.id+"/saveMessages?uid="+vm.message.uid}function viewRawSource($event){Message.$$resource.post(vm.message.id,"viewsource").then(function(data){function MessageRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:[''," ","
",data,"    
","
",'
',' '+l("Close")+"","
","
"].join(""),controller:MessageRawSourceDialogController}),MessageRawSourceDialogController.$inject=["scope","$mdDialog"]})}var vm=this,messageDialog=null,popupWindow=null;vm.accounts=stateAccounts,vm.account=stateAccount,vm.mailbox=stateMailbox,vm.message=stateMessage,vm.service=Message,vm.tags={searchText:"",selected:""},vm.doDelete=doDelete,vm.close=close,vm.reply=reply,vm.replyAll=replyAll,vm.forward=forward,vm.edit=edit,vm.openPopup=openPopup,vm.closePopup=closePopup,vm.newMessage=newMessage,vm.saveMessage=saveMessage,vm.viewRawSource=viewRawSource,$scope.$watchCollection("viewer.message.flags",function(oldTags,newTags){_.each(_.difference(newTags,oldTags),function(tag){vm.message.removeTag(tag)})})}MessageController.$inject=["$window","$scope","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgSettings","sgFocus","Dialog","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",MessageController)}(),function(){"use strict";function MessageEditorController($stateParams,$mdDialog,FileUploader,stateAccounts,stateMessage,stateRecipients,$timeout,focus,Dialog,AddressBook,Preferences){function cancel(){vm.autosave&&$timeout.cancel(vm.autosave),$mdDialog.cancel()}function send(){vm.autosave&&$timeout.cancel(vm.autosave),vm.message.$send().then(function(data){$mdDialog.hide()},function(data){Dialog.alert(l(data.status),l(data.message))})}function contactFilter($query){return AddressBook.$filterAll($query)}function addRecipient(user){var recipient=[];return angular.isString(user)?user:(user.$$fullname&&recipient.push(user.$$fullname),user.$$email&&recipient.push("<"+user.$$email+">"),recipient.join(" "))}function autosaveDrafts(){vm.message.$save(),Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60))}var vm=this;vm.addRecipient=addRecipient,vm.autocomplete={to:{},cc:{},bcc:{}},vm.autosave=null,vm.autosaveDrafts=autosaveDrafts,vm.hideCc=!0,vm.hideBcc=!0,vm.cancel=cancel,vm.send=send,vm.contactFilter=contactFilter,vm.identities=_.pluck(_.flatten(_.pluck(stateAccounts,"identities")),"full"),vm.uploader=new FileUploader({url:stateMessage.$absolutePath({asDraft:!0})+"/save",autoUpload:!0,alias:"attachments",onProgressItem:function(item,progress){console.debug(item),console.debug(progress)},onSuccessItem:function(item,response,status,headers){stateMessage.$setUID(response.uid),stateMessage.$reload(),console.debug(item),console.debug("success = "+JSON.stringify(response,void 0,2))},onCancelItem:function(item,response,status,headers){console.debug(item),console.debug("cancel = "+JSON.stringify(response,void 0,2)),stateMessage.$deleteAttachment(item.file.name),this.removeFromQueue(item)},onErrorItem:function(item,response,status,headers){console.debug(item),console.debug("error = "+JSON.stringify(response,void 0,2))}}),"reply"==$stateParams.actionName?stateMessage.$reply().then(function(msgObject){vm.message=msgObject,vm.hideCc=!msgObject.editable.cc||0===msgObject.editable.cc.length,vm.hideBcc=!msgObject.editable.bcc||0===msgObject.editable.bcc.length}):"replyall"==$stateParams.actionName?stateMessage.$replyAll().then(function(msgObject){vm.message=msgObject,vm.hideCc=!msgObject.editable.cc||0===msgObject.editable.cc.length,vm.hideBcc=!msgObject.editable.bcc||0===msgObject.editable.bcc.length}):"forward"==$stateParams.actionName?stateMessage.$forward().then(function(msgObject){vm.message=msgObject}):angular.isDefined(stateMessage)&&(vm.message=stateMessage),angular.isDefined(stateRecipients)&&(vm.message.editable.to=_.union(vm.message.editable.to,_.pluck(stateRecipients,"full"))),Preferences.ready().then(function(){Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60)),vm.localeCode=Preferences.defaults.LocaleCode})}MessageEditorController.$inject=["$stateParams","$mdDialog","FileUploader","stateAccounts","stateMessage","stateRecipients","$timeout","sgFocus","Dialog","AddressBook","Preferences"],angular.module("SOGo.MailerUI").controller("MessageEditorController",MessageEditorController)}(),function(){"use strict";function sgImip(){function link(scope,iElement,attrs,ctrl){ctrl.pathToAttachment=attrs.sgImipPath}return{restrict:"A",link:link,controller:"sgImipController"}}function sgImipController($scope,User){var vm=this;$scope.delegateInvitation=!1,$scope.delegatedTo="",$scope.searchText="",$scope.userFilter=function($query){return User.$filter($query)},$scope.iCalendarAction=function(action){var data;"delegate"==action&&(data={receiveUpdates:!1,delegatedTo:$scope.delegatedTo.c_email}),$scope.viewer.message.$imipAction(vm.pathToAttachment,action,data)}}sgImipController.$inject=["$scope","User"],angular.module("SOGo.MailerUI").controller("sgImipController",sgImipController).directive("sgImip",sgImip)}(); +!function(){"use strict";function Account(futureAccountData){"function"!=typeof futureAccountData.then&&(angular.extend(this,futureAccountData),_.each(this.identities,function(identity){identity.fullName?identity.full=identity.fullName+" <"+identity.email+">":identity.full="<"+identity.email+">"}),Account.$log.debug("Account: "+JSON.stringify(futureAccountData,void 0,2)))}Account.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function($q,$timeout,$log,Settings,Resource,Preferences,Mailbox,Message){return angular.extend(Account,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Preferences:Preferences,$Mailbox:Mailbox,$Message:Message}),Account}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",Account.$factory),Account.$findAll=function(data){return data?Account.$unwrapCollection(data):Account.$$resource.fetch("","mailAccounts").then(function(o){return Account.$unwrapCollection(o)})},Account.$unwrapCollection=function(data){var collection=[];return angular.forEach(data,function(o,i){o.id=i,collection[i]=new Account(o)}),collection},Account.prototype.$getMailboxes=function(options){var _this=this;return!this.$mailboxes||options&&options.reload?Account.$Mailbox.$find(this).then(function(data){return _this.$mailboxes=data,Account.$Preferences.ready().then(function(){var expandedFolders,_visit=function(mailboxes){_.forEach(mailboxes,function(o){o.$expanded=expandedFolders.indexOf("/"+o.id)>=0,o.children&&o.children.length>0&&_visit(o.children)})};Account.$Preferences.settings.Mail.ExpandedFolders&&(expandedFolders=angular.isString(Account.$Preferences.settings.Mail.ExpandedFolders)?angular.fromJson(Account.$Preferences.settings.Mail.ExpandedFolders):Account.$Preferences.settings.Mail.ExpandedFolders,expandedFolders.length>0&&_visit(_this.$mailboxes)),_this.$flattenMailboxes({reload:!0})}),_this.$mailboxes}):Account.$q.when(this.$mailboxes)},Account.prototype.$flattenMailboxes=function(options){var _this=this,allMailboxes=[],expandedMailboxes=[],_visit=function(mailboxes){_.each(mailboxes,function(o){allMailboxes.push(o),(options&&options.all||o.$expanded)&&o.children&&o.children.length>0&&_visit(o.children)})};return!this.$$flattenMailboxes||options&&(options.reload||options.all)?(_visit(this.$mailboxes),_this.$$flattenMailboxes=allMailboxes,options&&options.saveState&&(_.reduce(allMailboxes,function(expandedFolders,mailbox){return mailbox.$expanded&&expandedFolders.push("/"+mailbox.id),expandedFolders},expandedMailboxes),Account.$$resource.post(null,"saveFoldersState",expandedMailboxes))):allMailboxes=this.$$flattenMailboxes,allMailboxes},Account.prototype.$getMailboxByType=function(type){var mailbox,_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.type==type});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox};mailbox=_find(this.$mailboxes),console.debug(mailbox),console.debug(this.specialMailboxes)},Account.prototype.$getMailboxByPath=function(path){var mailbox=null,_find=function(mailboxes){var mailbox=_.find(mailboxes,function(o){return o.path==path});return mailbox||angular.forEach(mailboxes,function(o){!mailbox&&o.children&&o.children.length>0&&(mailbox=_find(o.children))}),mailbox};return mailbox=_find(this.$mailboxes)},Account.prototype.$newMailbox=function(path,name){var _this=this;return Account.$$resource.post(path.toString(),"createFolder",{name:name}).then(function(){_this.$getMailboxes({reload:!0})})},Account.prototype.$newMessage=function(){var _this=this;return Account.$$resource.fetch(this.id.toString(),"compose").then(function(data){Account.$log.debug("New message (compose): "+JSON.stringify(data,void 0,2));var message=new Account.$Message(data.accountId,_this.$getMailboxByPath(data.mailboxPath),data);return message}).then(function(message){return Account.$$resource.fetch(message.$absolutePath({asDraft:!0}),"edit").then(function(data){return Account.$log.debug("New message (edit): "+JSON.stringify(data,void 0,2)),angular.extend(message.editable,data),message})})},Account.prototype.$addDelegate=function(user){var _this=this,deferred=Account.$q.defer(),param={uid:user.uid};return!user.uid||_.indexOf(_.pluck(this.delegates,"uid"),user.uid)>-1?deferred.resolve():Account.$$resource.fetch(this.id.toString(),"addDelegate",param).then(function(){_this.delegates.push(user),deferred.resolve(_this.users)},function(data,status){deferred.reject(l("An error occured please try again."))}),deferred.promise},Account.prototype.$removeDelegate=function(uid){var _this=this,param={uid:uid};return Account.$$resource.fetch(this.id.toString(),"removeDelegate",param).then(function(){var i=_.indexOf(_.pluck(_this.delegates,"uid"),uid);i>=0&&_this.delegates.splice(i,1)})}}(),function(){"use strict";function Mailbox(account,futureMailboxData){if(this.$account=account,"function"!=typeof futureMailboxData.then){if(this.init(futureMailboxData),this.name&&!this.path){var newMailboxData=Mailbox.$$resource.create("createFolder",this.name);this.$unwrap(newMailboxData)}}else this.$unwrap(futureMailboxData)}Mailbox.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function($q,$timeout,$log,Settings,Resource,Message,Acl,Preferences,PRELOAD){return angular.extend(Mailbox,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser()),$Message:Message,$$Acl:Acl,$Preferences:Preferences,$query:{sort:"date",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,PRELOAD:PRELOAD}),Preferences.ready().then(function(){Preferences.settings.Mail.SortingState&&(Mailbox.$query.sort=Preferences.settings.Mail.SortingState[0],Mailbox.$query.asc=parseInt(Preferences.settings.Mail.SortingState[1]))}),Mailbox}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("Mailbox",Mailbox.$factory),Mailbox.$find=function(account){var futureMailboxData;return futureMailboxData=this.$$resource.fetch(account.id.toString(),"view"),Mailbox.$unwrapCollection(account,futureMailboxData)},Mailbox.$unwrapCollection=function(account,futureMailboxData){var collection=[],createMailboxes=function(level,mailbox){for(var i=0;i=0&&indexstartIndex&&max>startIndex;startIndex++)angular.isDefined(this.$messages[startIndex].subject)||this.$messages[startIndex].loading?endIndex++:(uids.push(this.$messages[startIndex].uid),this.$messages[startIndex].loading=!0);Mailbox.$log.debug("Loading UIDs "+uids.join(" ")),futureHeadersData=Mailbox.$$resource.post(this.id,"headers",{uids:uids}),this.$unwrapHeaders(futureHeadersData)}return loaded},Mailbox.prototype.isEditable=function(){return"folder"==this.type},Mailbox.prototype.$rename=function(){var findParent,parent,children,i,_this=this;return this.name==this.$shadowData.name?Mailbox.$q.when():(findParent=function(parent,children){var parentMailbox=null,mailbox=_.find(children,function(o){return o.path==_this.path});return mailbox?parentMailbox=parent:angular.forEach(children,function(o){!parentMailbox&&o.children&&o.children.length>0&&(parentMailbox=findParent(o,o.children))}),parentMailbox},parent=findParent(null,this.$account.$mailboxes),children=null===parent?this.$account.$mailboxes:parent.children,i=_.indexOf(_.pluck(children,"id"),this.id),this.$save().then(function(data){var sibling;angular.extend(_this,data),_this.id=_this.$id(),children.splice(i,1),sibling=_.find(children,function(o){return Mailbox.$log.debug(o.name+" ? "+_this.name),"folder"==o.type&&o.name.localeCompare(_this.name)>0}),i=sibling?_.indexOf(_.pluck(children,"id"),sibling.id):children.length,children.splice(i,0,_this)}))},Mailbox.prototype.$compact=function(){return Mailbox.$$resource.post(this.id,"expunge")},Mailbox.prototype.$setFolderAs=function(type){return Mailbox.$$resource.post(this.id,"setAs"+type+"Folder")},Mailbox.prototype.$emptyTrash=function(){var _this=this;return Mailbox.$$resource.post(this.id,"emptyTrash").then(function(){_this.$messages=[],_this.uidsMap={},_this.unseenCount=0,angular.isDefined(_this.children)&&_this.children.length&&_this.$account.$getMailboxes({reload:!0})})},Mailbox.prototype.$markAsRead=function(){return Mailbox.$$resource.post(this.id,"markRead")},Mailbox.prototype.$flagMessages=function(uids,flags,operation){var data={msgUIDs:uids,flags:flags,operation:operation};return Mailbox.$$resource.post(this.id,"addOrRemoveLabel",data)},Mailbox.prototype.$delete=function(){var _this=this;return Mailbox.$$resource.remove(this.id).then(function(){return _this.$account.$getMailboxes({reload:!0}),!0})},Mailbox.prototype.$deleteMessages=function(uids){return Mailbox.$$resource.post(this.id,"batchDelete",{uids:uids})},Mailbox.prototype.$copyMessages=function(uids,folder){return Mailbox.$$resource.post(this.id,"copyMessages",{uids:uids,folder:folder})},Mailbox.prototype.$moveMessages=function(uids,folder){return Mailbox.$$resource.post(this.id,"moveMessages",{uids:uids,folder:folder})},Mailbox.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"children"!=key&&"$"!=key[0]&&delete _this[key]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},Mailbox.prototype.$save=function(){var _this=this;return Mailbox.$$resource.save(this.id,this.$omit()).then(function(data){return _this.$shadowData=_this.$omit(),Mailbox.$log.debug(JSON.stringify(data,void 0,2)),data},function(data){Mailbox.$log.error(JSON.stringify(data,void 0,2)),_this.$reset()})},Mailbox.prototype.$newMailbox=function(path,name){return this.$account.$newMailbox(path,name)},Mailbox.prototype.$omit=function(){var mailbox={};return angular.forEach(this,function(value,key){"constructor"!=key&&"children"!=key&&"$"!=key[0]&&(mailbox[key]=value)}),mailbox},Mailbox.prototype.$unwrap=function(futureMailboxData){var _this=this,deferred=Mailbox.$q.defer();return this.$futureMailboxData=futureMailboxData,this.$futureMailboxData.then(function(data){Mailbox.$timeout(function(){var uids,headers;_this.init(data),_this.uids&&(Mailbox.$log.debug("unwrapping "+data.uids.length+" messages"),headers=_.invoke(_this.headers[0],"toLowerCase"),_this.headers.splice(0,1),_this.threaded&&(uids=_this.uids[0],_this.uids.splice(0,1)),_.reduce(_this.uids,function(msgs,msg,i){var data;return data=_this.threaded?_.object(uids,msg):{uid:msg.toString()},_this.uidsMap[data.uid]=i,msgs.push(new Mailbox.$Message(_this.$account.id,_this,data,!0)),msgs},_this.$messages),_.each(_this.headers,function(data){var msg=_.object(headers,data),i=_this.uidsMap[msg.uid.toString()];_.extend(_this.$messages[i],msg)})),Mailbox.$log.debug("mailbox "+_this.id+" ready"),_this.$isLoading=!1,deferred.resolve(_this.$messages)})},function(data){angular.extend(_this,data),_this.isError=!0,deferred.reject()}),deferred.promise},Mailbox.prototype.$unwrapHeaders=function(futureHeadersData){var _this=this;futureHeadersData.then(function(data){Mailbox.$timeout(function(){var headers,j;data.length>0&&(headers=_.invoke(data[0],"toLowerCase"),data.splice(0,1),_.each(data,function(messageHeaders){messageHeaders=_.object(headers,messageHeaders),j=_this.uidsMap[messageHeaders.uid.toString()],angular.isDefined(j)&&_.extend(_this.$messages[j],messageHeaders)}))})})}}(),function(){"use strict";function Message(accountId,mailbox,futureMessageData,lazy){this.accountId=accountId,this.$mailbox=mailbox,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.$showDetailedRecipients=!1,this.editable={to:[],cc:[],bcc:[]},this.selected=!1,"function"!=typeof futureMessageData.then?angular.isDefined(lazy)&&lazy?this.uid=futureMessageData.uid:(angular.extend(this,futureMessageData),this.$formatFullAddresses()):this.$unwrap(futureMessageData)}Message.$factory=["$q","$timeout","$log","sgSettings","Gravatar","Resource","Preferences",function($q,$timeout,$log,Settings,Gravatar,Resource,Preferences){return angular.extend(Message,{$q:$q,$timeout:$timeout,$log:$log,$gravatar:Gravatar,$$resource:new Resource(Settings.activeUser("folderURL")+"Mail",Settings.activeUser())}),Preferences.ready().then(function(){Preferences.defaults.SOGoMailLabelsColors&&(Message.$tags=Preferences.defaults.SOGoMailLabelsColors),Preferences.defaults.SOGoMailDisplayRemoteInlineImages&&"always"==Preferences.defaults.SOGoMailDisplayRemoteInlineImages&&(Message.$displayRemoteInlineImages=!0)}),Message}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Message",Message.$factory),Message.filterTags=function(query){var re=new RegExp(query,"i"),results=[];return _.forEach(_.keys(Message.$tags),function(tag){var pair=Message.$tags[tag];-1!=pair[0].search(re)&&results.push({name:tag,description:pair[0],color:pair[1]})}),results},Message.prototype.$absolutePath=function(options){if(angular.isUndefined(this.id)||options){var path;path=_.map(this.$mailbox.path.split("/"),function(component){return"folder"+component.asCSSIdentifier()}),path.splice(0,0,this.accountId),options&&options.asDraft&&this.draftId?path.push(this.draftId):path.push(this.uid),this.id=path.join("/")}return this.id},Message.prototype.$setUID=function(uid){var oldUID=this.uid||-1;oldUID!=uid&&(this.uid=uid,oldUID>-1&&this.$mailbox.uidsMap[oldUID]&&(this.$mailbox.uidsMap[uid]=this.$mailbox.uidsMap[oldUID],this.$mailbox.uidsMap[oldUID]=null))},Message.prototype.$formatFullAddresses=function(){var _this=this,identities=_.pluck(_this.$mailbox.$account.identities,"email");_.each(["from","to","cc","bcc","reply-to"],function(type){_.each(_this[type],function(data,i){data.name&&data.name!=data.email?(data.full=data.name+" <"+data.email+">",data.name.split(" ").length&&(data.shortname=data.name.split(" ")[0].replace("'",""))):(data.full="<"+data.email+">",data.shortname=data.email.split("@")[0]),data.image=Message.$gravatar(data.email,32),_.indexOf(identities,data.email)>=0&&(data.shortname=l("me"))})})},Message.prototype.$shortRecipients=function(){var _this=this,result=[];return _.each(["to","cc","bcc"],function(type){_.each(_this[type],function(data,i){result.push(data.shortname)})}),result.join(", ")},Message.prototype.$shortAddress=function(type){var address="";return this[type]&&this[type].length>0&&(address=this[type][0].name||this[type][0].email||""),address},Message.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=!0},Message.prototype.showDetailedRecipients=function(){this.$showDetailedRecipients=!0},Message.prototype.$content=function(){var _this=this,parts=[],_visit=function(part){part.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==part.type?_visit(_.find(part.content,function(alternatePart){return part.preferredPart==alternatePart.contentType})):angular.isArray(part.content)?_.each(part.content,function(mixedPart){_visit(mixedPart)}):(angular.isUndefined(part.safeContent)&&(part.safeContent=part.content,_this.$hasUnsafeContent|=part.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==part.type?(part.html=!0,_this.$loadUnsafeContent||Message.$displayRemoteInlineImages?(angular.isUndefined(part.unsafeContent)&&(part.unsafeContent=document.createElement("div"),part.unsafeContent.innerHTML=part.safeContent,angular.forEach(["src","data","classid","background","style"],function(suffix){var element,value,i,elements=part.unsafeContent.querySelectorAll("[unsafe-"+suffix+"]");for(i=0;i=0)for(i=0,j=0;j0&&_visit(o.children)})};vm.virtualMailbox=new VirtualMailbox(vm.accounts[0]),Mailbox.$virtualMode||(vm.searchPreviousMailbox=Mailbox.selectedFolder),Mailbox.selectedFolder=vm.virtualMailbox,Mailbox.$virtualMode=!0,angular.isDefined(vm.search.mailbox)?(root=vm.accounts[0].$getMailboxByPath(vm.search.mailbox),mailboxes.push(root),vm.search.subfolders&&root.children.length&&_visit(root.children)):mailboxes=vm.accounts[0].$flattenMailboxes(),vm.virtualMailbox.setMailboxes(mailboxes),vm.virtualMailbox.startSearch(vm.search.match,vm.search.params),$state.go("mail.account.virtualMailbox",{accountId:vm.accounts[0].id})}}function addSearchParam(v){return vm.currentSearchParam=v,focus("advancedSearch"),!1}function newSearchParam(pattern){if(pattern.length&&vm.currentSearchParam.length){var n=0,searchParam=vm.currentSearchParam;return pattern.startsWith("!")&&(n=1,pattern=pattern.substring(1).trim()),vm.currentSearchParam="",{searchBy:searchParam,searchInput:pattern,negative:n}}}function newFolder(parentFolder){Dialog.prompt(l("New folder"),l("Enter the new name of your folder :")).then(function(name){parentFolder.$newMailbox(parentFolder.id,name).then(function(){},function(data,status){Dialog.alert(l('An error occured while creating the mailbox "%{0}".',name),l(data.error))})})}function delegate(account){function MailboxDelegationController($scope,$mdDialog,User,account){function userFilter($query){return User.$filter($query,account.delegates)}function closeModal(){$mdDialog.hide()}function removeUser(user){account.$removeDelegate(user.uid)["catch"](function(data,status){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function addUser(data){data&&account.$addDelegate(data).then(function(){vm.userToAdd="",vm.searchText=""},function(error){Dialog.alert(l("Warning"),error)})}var vm=this;vm.users=account.delegates,vm.account=account,vm.userToAdd="",vm.searchText="",vm.userFilter=userFilter,vm.closeModal=closeModal,vm.removeUser=removeUser,vm.addUser=addUser}$mdDialog.show({templateUrl:account.id+"/delegation",controller:MailboxDelegationController,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:User,account:account}}),MailboxDelegationController.$inject=["$scope","$mdDialog","User","account"]}function editFolder(folder){vm.editMode=folder.path,focus("mailboxName_"+folder.path)}function revertEditing(folder){folder.$reset(),vm.editMode=!1}function selectFolder(account,folder){vm.editMode!=folder.path&&(vm.editMode=!1,vm.showingAdvancedSearch=!1,vm.service.$virtualMode=!1,$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(folder.path)}))}function saveFolder(folder){folder.$rename().then(function(data){vm.editMode=!1},function(data,status){Dialog.alert(l("Warning"),data)})}function compactFolder(folder){folder.$compact().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function emptyTrashFolder(folder){folder.$emptyTrash().then(function(){},function(error){Dialog.alert(l("Warning"),error)})}function exportMails(folder){window.location.href=ApplicationBaseURL+"/"+folder.id+"/exportFolder"}function confirmDelete(folder){Dialog.confirm(l("Confirmation"),l("Do you really want to move this folder into the trash ?")).then(function(){folder.$delete().then(function(){$state.go("mail")},function(data,status){Dialog.alert(l('An error occured while deleting the mailbox "%{0}".',folder.name),l(data.error))})})}function markFolderRead(folder){folder.$markAsRead()}function share(folder){folder.$acl.$users().then(function(){$mdDialog.show({templateUrl:folder.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:folder.$acl.users,User:User,folder:folder}})})}function metadataForFolder(folder){return"inbox"==folder.type?{name:folder.name,icon:"inbox"}:"draft"==folder.type?{name:l("DraftsFolderName"),icon:"drafts"}:"sent"==folder.type?{name:l("SentFolderName"),icon:"send"}:"trash"==folder.type?{name:l("TrashFolderName"),icon:"delete"}:"additional"==folder.type?{name:folder.name,icon:"folder_shared"}:{name:folder.name,icon:"folder_open"}}function setFolderAs(folder,type){folder.$setFolderAs(type).then(function(){folder.$account.$getMailboxes({reload:!0})},function(error){Dialog.alert(l("Warning"),error)})}function refreshUnseenCount(){var unseenCountFolders=window.unseenCountFolders;_.forEach(vm.accounts,function(account){_.includes(unseenCountFolders,account.id+"/folderINBOX")||unseenCountFolders.push(account.id+"/folderINBOX"),_.forEach(account.$$flattenMailboxes,function(mailbox){angular.isDefined(mailbox.unseenCount)&&!_.includes(unseenCountFolders,mailbox.id)&&unseenCountFolders.push(mailbox.id)})}),Account.$$resource.post("","unseenCount",{mailboxes:unseenCountFolders}).then(function(data){_.forEach(vm.accounts,function(account){_.forEach(account.$$flattenMailboxes,function(mailbox){data[mailbox.id]&&(mailbox.unseenCount=data[mailbox.id])})})}),Preferences.ready().then(function(){var refreshViewCheck=Preferences.defaults.SOGoRefreshViewCheck;refreshViewCheck&&"manually"!=refreshViewCheck&&$timeout(vm.refreshUnseenCount,1e3*refreshViewCheck.timeInterval())})}var account,mailbox,vm=this;vm.service=Mailbox,vm.accounts=stateAccounts,vm.newFolder=newFolder,vm.delegate=delegate,vm.editFolder=editFolder,vm.revertEditing=revertEditing,vm.selectFolder=selectFolder,vm.saveFolder=saveFolder,vm.compactFolder=compactFolder,vm.emptyTrashFolder=emptyTrashFolder,vm.exportMails=exportMails,vm.confirmDelete=confirmDelete,vm.markFolderRead=markFolderRead,vm.share=share,vm.metadataForFolder=metadataForFolder,vm.setFolderAs=setFolderAs,vm.refreshUnseenCount=refreshUnseenCount,vm.showingAdvancedSearch=!1,vm.currentSearchParam="",vm.addSearchParam=addSearchParam,vm.newSearchParam=newSearchParam,vm.showAdvancedSearch=showAdvancedSearch,vm.hideAdvancedSearch=hideAdvancedSearch,vm.toggleAdvancedSearch=toggleAdvancedSearch,vm.search={options:{"":l("Select a criteria"),subject:l("Enter Subject"),from:l("Enter From"),to:l("Enter To"),cc:l("Enter Cc"),body:l("Enter Body")},mailbox:"INBOX",subfolders:1,match:"AND",params:[]},"mail"==$state.current.name&&vm.accounts.length>0&&vm.accounts[0].$mailboxes.length>0&&(account=vm.accounts[0],mailbox=account.$mailboxes[0],$state.go("mail.account.mailbox",{accountId:account.id,mailboxId:encodeUriFilter(mailbox.path)})),vm.refreshUnseenCount()}MailboxesController.$inject=["$state","$timeout","$mdDialog","sgFocus","encodeUriFilter","Dialog","sgSettings","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"],angular.module("SOGo.MailerUI").controller("MailboxesController",MailboxesController)}(),function(){"use strict";function MessageController($window,$scope,$state,$mdDialog,stateAccounts,stateAccount,stateMailbox,stateMessage,encodeUriFilter,sgSettings,focus,Dialog,Account,Mailbox,Message){function doDelete(){stateMailbox.$deleteMessages([stateMessage.uid]).then(function(){var index=_.findIndex(stateMailbox.$messages,function(o){return o.uid==stateMessage.uid});-1!=index&&stateMailbox.$messages.splice(index,1),vm.message=null,$state.go("mail.account.mailbox",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path)})})}function showMailEditor($event,message,recipients){null===messageDialog&&(angular.isDefined(recipients)||(recipients=[]),messageDialog=$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccounts:vm.accounts,stateMessage:message,stateRecipients:recipients}})["finally"](function(){messageDialog=null}))}function close(){$state.go("mail.account.mailbox",{accountId:stateAccount.id,mailboxId:encodeUriFilter(stateMailbox.path)}).then(function(){vm.message=null,delete stateMailbox.selectedMessage})}function reply($event){var message=vm.message.$reply();showMailEditor($event,message)}function replyAll($event){var message=vm.message.$replyAll();showMailEditor($event,message)}function forward($event){var message=vm.message.$forward();showMailEditor($event,message)}function edit($event){vm.message.$editableContent().then(function(){showMailEditor($event,vm.message)})}function openPopup(){var url=[sgSettings.baseURL(),"UIxMailPopupView#/Mail",vm.message.accountId,encodeUriFilter(encodeUriFilter(vm.message.$mailbox.path)),vm.message.uid].join("/"),wId=vm.message.$absolutePath();popupWindow=$window.open(url,wId,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}function closePopup(){$window.close()}function newMessage($event,recipient){var message=vm.account.$newMessage();showMailEditor($event,message,[recipient])}function saveMessage(){window.location.href=ApplicationBaseURL+"/"+vm.mailbox.id+"/saveMessages?uid="+vm.message.uid}function viewRawSource($event){Message.$$resource.post(vm.message.id,"viewsource").then(function(data){function MessageRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:[''," ","
",data,"    
","
",'
',' '+l("Close")+"","
","
"].join(""),controller:MessageRawSourceDialogController}),MessageRawSourceDialogController.$inject=["scope","$mdDialog"]})}var vm=this,messageDialog=null,popupWindow=null;vm.accounts=stateAccounts,vm.account=stateAccount,vm.mailbox=stateMailbox,vm.message=stateMessage,vm.service=Message,vm.tags={searchText:"",selected:""},vm.doDelete=doDelete,vm.close=close,vm.reply=reply,vm.replyAll=replyAll,vm.forward=forward,vm.edit=edit,vm.openPopup=openPopup,vm.closePopup=closePopup,vm.newMessage=newMessage,vm.saveMessage=saveMessage,vm.viewRawSource=viewRawSource,$scope.$watchCollection("viewer.message.flags",function(oldTags,newTags){_.each(_.difference(newTags,oldTags),function(tag){vm.message.removeTag(tag)})})}MessageController.$inject=["$window","$scope","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","stateMessage","encodeUriFilter","sgSettings","sgFocus","Dialog","Account","Mailbox","Message"],angular.module("SOGo.MailerUI").controller("MessageController",MessageController)}(),function(){"use strict";function MessageEditorController($stateParams,$mdDialog,FileUploader,stateAccounts,stateMessage,stateRecipients,$timeout,focus,Dialog,AddressBook,Preferences){function cancel(){vm.autosave&&$timeout.cancel(vm.autosave),$mdDialog.cancel()}function send(){vm.autosave&&$timeout.cancel(vm.autosave),vm.message.$send().then(function(data){$mdDialog.hide()},function(data){Dialog.alert(l(data.status),l(data.message))})}function contactFilter($query){return AddressBook.$filterAll($query)}function addRecipient(user){var recipient=[];return angular.isString(user)?user:(user.$$fullname&&recipient.push(user.$$fullname),user.$$email&&recipient.push("<"+user.$$email+">"),recipient.join(" "))}function autosaveDrafts(){vm.message.$save(),Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60))}var vm=this;vm.addRecipient=addRecipient,vm.autocomplete={to:{},cc:{},bcc:{}},vm.autosave=null,vm.autosaveDrafts=autosaveDrafts,vm.hideCc=!0,vm.hideBcc=!0,vm.cancel=cancel,vm.send=send,vm.contactFilter=contactFilter,vm.identities=_.pluck(_.flatten(_.pluck(stateAccounts,"identities")),"full"),vm.uploader=new FileUploader({url:stateMessage.$absolutePath({asDraft:!0})+"/save",autoUpload:!0,alias:"attachments",onProgressItem:function(item,progress){console.debug(item),console.debug(progress)},onSuccessItem:function(item,response,status,headers){stateMessage.$setUID(response.uid),stateMessage.$reload(),console.debug(item),console.debug("success = "+JSON.stringify(response,void 0,2))},onCancelItem:function(item,response,status,headers){console.debug(item),console.debug("cancel = "+JSON.stringify(response,void 0,2)),stateMessage.$deleteAttachment(item.file.name),this.removeFromQueue(item)},onErrorItem:function(item,response,status,headers){console.debug(item),console.debug("error = "+JSON.stringify(response,void 0,2))}}),"reply"==$stateParams.actionName?stateMessage.$reply().then(function(msgObject){vm.message=msgObject,vm.hideCc=!msgObject.editable.cc||0===msgObject.editable.cc.length,vm.hideBcc=!msgObject.editable.bcc||0===msgObject.editable.bcc.length}):"replyall"==$stateParams.actionName?stateMessage.$replyAll().then(function(msgObject){vm.message=msgObject,vm.hideCc=!msgObject.editable.cc||0===msgObject.editable.cc.length,vm.hideBcc=!msgObject.editable.bcc||0===msgObject.editable.bcc.length}):"forward"==$stateParams.actionName?stateMessage.$forward().then(function(msgObject){vm.message=msgObject}):angular.isDefined(stateMessage)&&(vm.message=stateMessage),angular.isDefined(stateRecipients)&&(vm.message.editable.to=_.union(vm.message.editable.to,_.pluck(stateRecipients,"full"))),Preferences.ready().then(function(){Preferences.defaults.SOGoMailAutoSave&&(vm.autosave=$timeout(vm.autosaveDrafts,1e3*Preferences.defaults.SOGoMailAutoSave*60)),vm.localeCode=Preferences.defaults.LocaleCode})}MessageEditorController.$inject=["$stateParams","$mdDialog","FileUploader","stateAccounts","stateMessage","stateRecipients","$timeout","sgFocus","Dialog","AddressBook","Preferences"],angular.module("SOGo.MailerUI").controller("MessageEditorController",MessageEditorController)}(),function(){"use strict";function sgImip(){function link(scope,iElement,attrs,ctrl){ctrl.pathToAttachment=attrs.sgImipPath}return{restrict:"A",link:link,controller:"sgImipController"}}function sgImipController($scope,User){var vm=this;$scope.delegateInvitation=!1,$scope.delegatedTo="",$scope.searchText="",$scope.userFilter=function($query){return User.$filter($query)},$scope.iCalendarAction=function(action){var data;"delegate"==action&&(data={receiveUpdates:!1,delegatedTo:$scope.delegatedTo.c_email}),$scope.viewer.message.$imipAction(vm.pathToAttachment,action,data)}}sgImipController.$inject=["$scope","User"],angular.module("SOGo.MailerUI").controller("sgImipController",sgImipController).directive("sgImip",sgImip)}(); //# sourceMappingURL=Mailer.services.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.services.js.map b/UI/WebServerResources/js/Mailer.services.js.map index fb560ddaa..8c6e4f800 100644 --- a/UI/WebServerResources/js/Mailer.services.js.map +++ b/UI/WebServerResources/js/Mailer.services.js.map @@ -1 +1 @@ -{"version":3,"file":"Mailer.services.js","sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgIMIP.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","each","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Mailbox","Message","$$resource","activeUser","$Mailbox","$Message","module","e","factory","$findAll","data","$unwrapCollection","fetch","o","collection","forEach","i","id","prototype","$getMailboxes","options","_this","$mailboxes","reload","$find","$flattenMailboxes","when","allMailboxes","_visit","mailboxes","push","children","length","$$flattenMailboxes","$getMailboxByType","type","mailbox","_find","find","console","specialMailboxes","$getMailboxByPath","path","$newMailbox","name","post","toString","$newMessage","message","accountId","mailboxPath","$absolutePath","asDraft","editable","$addDelegate","user","deferred","defer","param","uid","indexOf","pluck","delegates","resolve","users","status","reject","l","promise","$removeDelegate","splice","account","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","Preferences","PRELOAD","$$Acl","$Preferences","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","ready","settings","Mail","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","index","map","split","component","asCSSIdentifier","join","$isLoading","$messages","uidsMap","$id","$acl","$isEditable","isEditable","isUndefined","$shadowData","$omit","getLength","getItemAtIndex","$loadMessage","$selectedCount","count","filter","selected","$filter","sortingAttributes","filters","isDefined","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","timeInterval","messageId","endIndex","uids","futureHeadersData","startIndex","max","loaded","subject","Math","min","loading","$unwrapHeaders","$rename","findParent","parent","parentMailbox","$save","sibling","localeCompare","$compact","$setFolderAs","$emptyTrash","$markAsRead","$flagMessages","flags","operation","msgUIDs","$delete","remove","$deleteMessages","$copyMessages","folder","$moveMessages","$reset","value","key","save","error","$futureMailboxData","headers","invoke","threaded","reduce","msgs","msg","object","isError","j","messageHeaders","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","$showDetailedRecipients","to","cc","bcc","$formatFullAddresses","$sce","Gravatar","$gravatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","filterTags","query","re","RegExp","results","keys","tag","pair","search","description","color","draftId","$setUID","oldUID","shortname","replace","image","$shortRecipients","result","$shortAddress","address","loadUnsafeContent","showDetailedRecipients","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","element","elements","querySelectorAll","attr","removeAttr","trustAs","participants","participant","compile","$editableContent","text","addTag","$addOrRemoveTag","removeTag","$imipAction","action","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","filename","attachmentAttrs","attachment","toggleFlag","isflagged","$reply","$newDraft","$replyAll","$forward","origin","response","$send","startsWith","isanswered","isforwarded","$futureMessageData","isread","VirtualMailbox","setMailboxes","startSearch","params","stopSearch","len","k","MailboxController","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","focus","Dialog","selectMessage","go","mailboxId","toggleMessageSelection","$event","preventDefault","stopPropagation","unselectMessages","vm","confirmDeleteSelectedMessages","confirm","selectedMessages","selectedUIDs","difference","alert","copySelectedMessages","saveSelectedMessages","window","location","href","ApplicationBaseURL","selectAll","markSelectedMessagesAsFlagged","d","markSelectedMessagesAsUnread","field","sortedBy","cancelSearch","mode","newMessage","messageDialog","show","body","targetEvent","clickOutsideToClose","escapeToClose","templateUrl","controller","controllerAs","locals","accounts","stateMessage","stateRecipients","service","$inject","MailboxesController","User","showAdvancedSearch","showingAdvancedSearch","hideAdvancedSearch","searchPreviousMailbox","toggleAdvancedSearch","virtualMailbox","root","folders","subfolders","addSearchParam","v","currentSearchParam","newSearchParam","n","substring","trim","negative","newFolder","parentFolder","prompt","delegate","MailboxDelegationController","$scope","userFilter","closeModal","hide","removeUser","addUser","userToAdd","searchText","editFolder","editMode","revertEditing","selectFolder","saveFolder","compactFolder","emptyTrashFolder","exportMails","confirmDelete","markFolderRead","share","$users","usersWithACL","metadataForFolder","icon","setFolderAs","refreshUnseenCount","unseenCountFolders","includes","from","current","MessageController","$window","sgSettings","doDelete","findIndex","showMailEditor","recipients","close","selectedMessage","reply","replyAll","forward","edit","openPopup","url","baseURL","wId","popupWindow","open","closePopup","recipient","saveMessage","viewRawSource","MessageRawSourceDialogController","scope","template","tags","$watchCollection","oldTags","newTags","MessageEditorController","$stateParams","FileUploader","AddressBook","autosave","send","contactFilter","$filterAll","addRecipient","isString","$$fullname","$$email","autosaveDrafts","SOGoMailAutoSave","autocomplete","hideCc","hideBcc","flatten","uploader","autoUpload","alias","onProgressItem","item","progress","onSuccessItem","onCancelItem","file","removeFromQueue","onErrorItem","actionName","msgObject","union","localeCode","LocaleCode","sgImip","link","iElement","attrs","ctrl","pathToAttachment","sgImipPath","restrict","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","directive"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Account\n * @constructor\n * @param {object} futureAccountData\n */\n function Account(futureAccountData) {\n // Data is immediately available\n if (typeof futureAccountData.then !== 'function') {\n angular.extend(this, futureAccountData);\n _.each(this.identities, function(identity) {\n if (identity.fullName)\n identity.full = identity.fullName + ' <' + identity.email + '>';\n else\n identity.full = '<' + identity.email + '>';\n });\n Account.$log.debug('Account: ' + JSON.stringify(futureAccountData, undefined, 2));\n }\n else {\n // The promise will be unwrapped first\n //this.$unwrap(futureAccountData);\n }\n }\n\n /**\n * @memberof Account\n * @desc The factory we'll use to register with Angular\n * @returns the Account constructor\n */\n Account.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Mailbox', 'Message', function($q, $timeout, $log, Settings, Resource, Mailbox, Message) {\n angular.extend(Account, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser()),\n $Mailbox: Mailbox,\n $Message: Message\n });\n\n return Account; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of Account in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .factory('Account', Account.$factory);\n\n /**\n * @memberof Account\n * @desc Set the list of accounts and instanciate a new Account object for each item.\n * @param {array} [data] - the metadata of the accounts\n * @returns the list of accounts\n */\n Account.$findAll = function(data) {\n if (!data) {\n return Account.$$resource.fetch('', 'mailAccounts').then(function(o) {\n return Account.$unwrapCollection(o);\n });\n }\n return Account.$unwrapCollection(data);\n };\n\n /**\n * @memberof Account\n * @desc Unwrap to a collection of Account instances.\n * @param {object} data - the accounts information\n * @returns a collection of Account objects\n */\n Account.$unwrapCollection = function(data) {\n var collection = [];\n\n angular.forEach(data, function(o, i) {\n o.id = i;\n collection[i] = new Account(o);\n });\n return collection;\n };\n\n /**\n * @function $getMailboxes\n * @memberof Account.prototype\n * @desc Fetch the list of mailboxes for the current account.\n * @param {object} [options] - force a reload by setting 'reload' to true\n * @returns a promise of the HTTP operation\n */\n Account.prototype.$getMailboxes = function(options) {\n var _this = this;\n\n if (this.$mailboxes && !(options && options.reload)) {\n return Account.$q.when(this.$mailboxes);\n }\n else {\n return Account.$Mailbox.$find(this).then(function(data) {\n _this.$mailboxes = data;\n _this.$flattenMailboxes({reload: true});\n return _this.$mailboxes;\n });\n }\n };\n\n /**\n * @function $flattenMailboxes\n * @memberof Account.prototype\n * @desc Get a flatten array of the mailboxes.\n * @param {object} [options] - force a reload\n * @returns an array of Mailbox instances\n */\n Account.prototype.$flattenMailboxes = function(options) {\n var _this = this,\n allMailboxes = [],\n _visit = function(mailboxes) {\n _.each(mailboxes, function(o) {\n allMailboxes.push(o);\n if (o.children && o.children.length > 0) {\n _visit(o.children);\n }\n });\n };\n\n if (this.$$flattenMailboxes && !(options && options.reload)) {\n allMailboxes = this.$$flattenMailboxes;\n }\n else {\n _visit(this.$mailboxes);\n _this.$$flattenMailboxes = allMailboxes;\n }\n\n return allMailboxes;\n };\n\n Account.prototype.$getMailboxByType = function(type) {\n var mailbox,\n // Recursive find function\n _find = function(mailboxes) {\n var mailbox = _.find(mailboxes, function(o) {\n return o.type == type;\n });\n if (!mailbox) {\n angular.forEach(mailboxes, function(o) {\n if (!mailbox && o.children && o.children.length > 0) {\n mailbox = _find(o.children);\n }\n });\n }\n return mailbox;\n };\n mailbox = _find(this.$mailboxes);\n\n console.debug(mailbox);\n console.debug(this.specialMailboxes);\n };\n\n /**\n * @function $getMailboxByPath\n * @memberof Account.prototype\n * @desc Recursively find a mailbox using its path\n * @returns a promise of the HTTP operation\n */\n Account.prototype.$getMailboxByPath = function(path) {\n var mailbox = null,\n // Recursive find function\n _find = function(mailboxes) {\n var mailbox = _.find(mailboxes, function(o) {\n return o.path == path;\n });\n if (!mailbox) {\n angular.forEach(mailboxes, function(o) {\n if (!mailbox && o.children && o.children.length > 0) {\n mailbox = _find(o.children);\n }\n });\n }\n return mailbox;\n };\n mailbox = _find(this.$mailboxes);\n\n return mailbox;\n };\n\n /**\n * @function $newMailbox\n * @memberof Account.prototype\n * @desc Create a new mailbox on the server and refresh the list of mailboxes.\n * @returns a promise of the HTTP operations\n */\n Account.prototype.$newMailbox = function(path, name) {\n var _this = this;\n\n return Account.$$resource.post(path.toString(), 'createFolder', {name: name}).then(function() {\n _this.$getMailboxes({reload: true});\n });\n };\n\n /**\n * @function $newMessage\n * @memberof Account.prototype\n * @desc Prepare a new Message object associated to the appropriate mailbox.\n * @returns a promise of the HTTP operations\n */\n Account.prototype.$newMessage = function() {\n var _this = this;\n\n // Query account for draft folder and draft UID\n return Account.$$resource.fetch(this.id.toString(), 'compose').then(function(data) {\n Account.$log.debug('New message (compose): ' + JSON.stringify(data, undefined, 2));\n var message = new Account.$Message(data.accountId, _this.$getMailboxByPath(data.mailboxPath), data);\n return message;\n }).then(function(message) {\n // Fetch draft initial data\n return Account.$$resource.fetch(message.$absolutePath({asDraft: true}), 'edit').then(function(data) {\n Account.$log.debug('New message (edit): ' + JSON.stringify(data, undefined, 2));\n angular.extend(message.editable, data);\n return message;\n });\n });\n };\n\n /**\n * @function $addDelegate\n * @memberof Account.prototype\n * @param {Object} user - a User object with minimal set of attributes (uid, isGroup, cn, c_email)\n * @desc Remove a user from the account's delegates\n * @see {@link User.$filter}\n */\n Account.prototype.$addDelegate = function(user) {\n var _this = this,\n deferred = Account.$q.defer(),\n param = {uid: user.uid};\n if (!user.uid || _.indexOf(_.pluck(this.delegates, 'uid'), user.uid) > -1) {\n // No UID specified or user already in delegates\n deferred.resolve();\n }\n else {\n Account.$$resource.fetch(this.id.toString(), 'addDelegate', param).then(function() {\n _this.delegates.push(user);\n deferred.resolve(_this.users);\n }, function(data, status) {\n deferred.reject(l('An error occured please try again.'));\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $removeDelegate\n * @memberof Account.prototype\n * @param {Object} user - a User object with minimal set of attributes (uid, isGroup, cn, c_email)\n * @desc Remove a user from the account's delegates\n * @return a promise of the server call to remove the user from the account's delegates\n */\n Account.prototype.$removeDelegate = function(uid) {\n var _this = this,\n param = {uid: uid};\n return Account.$$resource.fetch(this.id.toString(), 'removeDelegate', param).then(function() {\n var i = _.indexOf(_.pluck(_this.delegates, 'uid'), uid);\n if (i >= 0) {\n _this.delegates.splice(i, 1);\n }\n });\n };\n \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Mailbox\n * @constructor\n * @param {object} futureMailboxData - either an object literal or a promise\n */\n function Mailbox(account, futureMailboxData) {\n this.$account = account;\n // Data is immediately available\n if (typeof futureMailboxData.then !== 'function') {\n this.init(futureMailboxData);\n if (this.name && !this.path) {\n // Create a new mailbox on the server\n var newMailboxData = Mailbox.$$resource.create('createFolder', this.name);\n this.$unwrap(newMailboxData);\n }\n }\n else {\n // The promise will be unwrapped first\n // NOTE: this condition never happen for the moment\n this.$unwrap(futureMailboxData);\n }\n }\n\n /**\n * @memberof Mailbox\n * @desc The factory we'll use to register with Angular\n * @returns the Mailbox constructor\n */\n Mailbox.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Message', 'Acl', 'Preferences', 'sgMailbox_PRELOAD', function($q, $timeout, $log, Settings, Resource, Message, Acl, Preferences, PRELOAD) {\n angular.extend(Mailbox, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser()),\n $Message: Message,\n $$Acl: Acl,\n $Preferences: Preferences,\n $query: { sort: 'date', asc: 0 },\n selectedFolder: null,\n $refreshTimeout: null,\n $virtualMode: false,\n PRELOAD: PRELOAD\n });\n // Initialize sort parameters from user's settings\n Preferences.ready().then(function() {\n if (Preferences.settings.Mail.SortingState) {\n Mailbox.$query.sort = Preferences.settings.Mail.SortingState[0];\n Mailbox.$query.asc = parseInt(Preferences.settings.Mail.SortingState[1]);\n }\n });\n\n return Mailbox; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of Mailbox in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .constant('sgMailbox_PRELOAD', {\n LOOKAHEAD: 50,\n SIZE: 100\n })\n .factory('Mailbox', Mailbox.$factory);\n\n /**\n * @memberof Mailbox\n * @desc Fetch list of mailboxes of a specific account\n * @param {string} accountId - the account\n * @return a promise of the HTTP operation\n * @see {@link Account.$getMailboxes}\n */\n Mailbox.$find = function(account) {\n var path, futureMailboxData;\n\n futureMailboxData = this.$$resource.fetch(account.id.toString(), 'view');\n\n return Mailbox.$unwrapCollection(account, futureMailboxData); // a collection of mailboxes\n };\n\n /**\n * @memberof Mailbox\n * @desc Unwrap to a collection of Mailbox instances.\n * @param {string} account - the account\n * @param {promise} futureMailboxData - a promise of the mailboxes metadata\n * @returns a promise of a collection of Mailbox objects\n */\n Mailbox.$unwrapCollection = function(account, futureMailboxData) {\n var collection = [],\n // Local recursive function\n createMailboxes = function(level, mailbox) {\n for (var i = 0; i < mailbox.children.length; i++) {\n mailbox.children[i].level = level;\n mailbox.children[i] = new Mailbox(account, mailbox.children[i]);\n createMailboxes(level+1, mailbox.children[i]);\n }\n };\n //collection.$futureMailboxData = futureMailboxData;\n\n return futureMailboxData.then(function(data) {\n return Mailbox.$timeout(function() {\n // Each entry is spun up as a Mailbox instance\n angular.forEach(data.mailboxes, function(data, index) {\n data.level = 0;\n var mailbox = new Mailbox(account, data);\n createMailboxes(1, mailbox); // recursively create all sub-mailboxes\n collection.push(mailbox);\n });\n return collection;\n });\n });\n };\n\n /**\n * @memberof Mailbox\n * @desc Build the path of the mailbox (or account only).\n * @param {string} accountId - the account ID\n * @param {string} [mailboxPath] - the mailbox path\n * @returns a string representing the path relative to the mail module\n */\n Mailbox.$absolutePath = function(accountId, mailboxPath) {\n var path = [];\n\n if (mailboxPath) {\n path = _.map(mailboxPath.split('/'), function(component) {\n return 'folder' + component.asCSSIdentifier();\n });\n }\n\n path.splice(0, 0, accountId); // insert account ID\n\n return path.join('/');\n };\n\n /**\n * @function init\n * @memberof Mailbox.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of mailbox\n */\n Mailbox.prototype.init = function(data) {\n var _this = this;\n this.$isLoading = true;\n this.$messages = [];\n this.uidsMap = {};\n angular.extend(this, data);\n if (this.path) {\n this.id = this.$id();\n this.$acl = new Mailbox.$$Acl('Mail/' + this.id);\n }\n if (this.type) {\n this.$isEditable = this.isEditable();\n }\n if (angular.isUndefined(this.$shadowData)) {\n // Make a copy of the data for an eventual reset\n this.$shadowData = this.$omit();\n }\n };\n\n /**\n * @function getLength\n * @memberof Mailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the number of items in the mailbox\n */\n Mailbox.prototype.getLength = function() {\n return this.$messages.length;\n };\n\n /**\n * @function getItemAtIndex\n * @memberof Mailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the message as the specified index\n */\n Mailbox.prototype.getItemAtIndex = function(index) {\n var message;\n\n if (index >= 0 && index < this.$messages.length) {\n message = this.$messages[index];\n\n if (this.$loadMessage(message.uid))\n return message;\n }\n\n return null;\n };\n\n /**\n * @function $id\n * @memberof Mailbox.prototype\n * @desc Build the unique ID to identified the mailbox.\n * @returns a string representing the path relative to the mail module\n */\n Mailbox.prototype.$id = function() {\n return Mailbox.$absolutePath(this.$account.id, this.path);\n };\n\n /**\n * @function $selectedCount\n * @memberof Mailbox.prototype\n * @desc Return the number of messages selected by the user.\n * @returns the number of selected messages\n */\n Mailbox.prototype.$selectedCount = function() {\n var count;\n\n count = 0;\n if (this.$messages) {\n count = (_.filter(this.$messages, function(message) { return message.selected; })).length;\n }\n return count;\n };\n\n /**\n * @function $filter\n * @memberof Mailbox.prototype\n * @desc Fetch the messages metadata of the mailbox\n * @param {object} [sort] - sort preferences. Defaults to descendent by date.\n * @param {string} sort.match - either AND or OR\n * @param {string} sort.sort - either arrival, subject, from, to, date, or size\n * @param {boolean} sort.asc - sort is ascendant if true\n * @param {object[]} [filters] - list of filters for the query\n * @param {string} filters.searchBy - either subject, from, to, cc, or body\n * @param {string} filters.searchInput - the search string to match\n * @param {boolean} filters.negative - negate the condition\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$filter = function(sortingAttributes, filters) {\n var _this = this, options = {};\n\n if (!angular.isDefined(this.unseenCount))\n this.unseenCount = 0;\n\n this.$isLoading = true;\n\n return Mailbox.$Preferences.ready().then(function() {\n\n if (Mailbox.$refreshTimeout)\n Mailbox.$timeout.cancel(Mailbox.$refreshTimeout);\n\n if (sortingAttributes)\n // Sorting preferences are common to all mailboxes\n angular.extend(Mailbox.$query, sortingAttributes);\n\n angular.extend(options, { sortingAttributes: Mailbox.$query });\n if (angular.isDefined(filters)) {\n options.filters = _.reject(filters, function(filter) {\n return angular.isUndefined(filter.searchInput) || filter.searchInput.length === 0;\n });\n _.each(options.filters, function(filter) {\n var secondFilter,\n match = filter.searchBy.match(/(\\w+)_or_(\\w+)/);\n if (match) {\n options.sortingAttributes.match = 'OR';\n filter.searchBy = match[1];\n secondFilter = angular.copy(filter);\n secondFilter.searchBy = match[2];\n options.filters.push(secondFilter);\n }\n });\n }\n\n // Restart the refresh timer, if needed\n if (!Mailbox.$virtualMode) {\n var refreshViewCheck = Mailbox.$Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually') {\n var f = angular.bind(_this, Mailbox.prototype.$filter);\n Mailbox.$refreshTimeout = Mailbox.$timeout(f, refreshViewCheck.timeInterval()*1000);\n }\n }\n\n var futureMailboxData = Mailbox.$$resource.post(_this.id, 'view', options);\n return _this.$unwrap(futureMailboxData);\n });\n };\n\n /**\n * @function $loadMessage\n * @memberof Mailbox.prototype\n * @desc Check if the message is loaded and in any case, fetch more messages headers from the server.\n * @returns true if the message metadata are already fetched\n */\n Mailbox.prototype.$loadMessage = function(messageId) {\n var startIndex = this.uidsMap[messageId],\n endIndex,\n max = this.$messages.length,\n loaded = false,\n uids,\n futureHeadersData;\n if (angular.isDefined(this.uidsMap[messageId]) && startIndex < this.$messages.length) {\n // Index is valid\n if (angular.isDefined(this.$messages[startIndex].subject)) {// || this.$messages[startIndex].loading) {\n // Message headers are loaded or data is coming\n loaded = true;\n }\n\n // Preload more headers if possible\n endIndex = Math.min(startIndex + Mailbox.PRELOAD.LOOKAHEAD, max - 1);\n if (!angular.isDefined(this.$messages[endIndex].subject) &&\n !angular.isDefined(this.$messages[endIndex].loading)) {\n endIndex = Math.min(startIndex + Mailbox.PRELOAD.SIZE, max);\n for (uids = []; startIndex < endIndex && startIndex < max; startIndex++) {\n if (angular.isDefined(this.$messages[startIndex].subject) || this.$messages[startIndex].loading) {\n // Message at this index is already loaded; increase the end index\n endIndex++;\n }\n else {\n // Message at this index will be loaded\n uids.push(this.$messages[startIndex].uid);\n this.$messages[startIndex].loading = true;\n }\n }\n\n Mailbox.$log.debug('Loading UIDs ' + uids.join(' '));\n futureHeadersData = Mailbox.$$resource.post(this.id, 'headers', {uids: uids});\n this.$unwrapHeaders(futureHeadersData);\n }\n }\n return loaded;\n };\n\n /**\n * @function isEditable\n * @memberof Mailbox.prototype\n * @desc Checks if the mailbox is editable based on its type.\n * @returns true if the mailbox is not a special folder.\n */\n Mailbox.prototype.isEditable = function() {\n return this.type == 'folder';\n };\n\n /**\n * @function $rename\n * @memberof AddressBook.prototype\n * @desc Rename the addressbook and keep the list sorted\n * @param {string} name - the new name\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$rename = function() {\n var _this = this,\n findParent,\n parent,\n children,\n i;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n return Mailbox.$q.when();\n }\n\n // Local recursive function\n findParent = function(parent, children) {\n var parentMailbox = null,\n mailbox = _.find(children, function(o) {\n return o.path == _this.path;\n });\n if (mailbox) {\n parentMailbox = parent;\n }\n else {\n angular.forEach(children, function(o) {\n if (!parentMailbox && o.children && o.children.length > 0) {\n parentMailbox = findParent(o, o.children);\n }\n });\n }\n return parentMailbox;\n };\n\n // Find mailbox parent\n parent = findParent(null, this.$account.$mailboxes);\n if (parent === null)\n children = this.$account.$mailboxes;\n else\n children = parent.children;\n\n // Find index of mailbox among siblings\n i = _.indexOf(_.pluck(children, 'id'), this.id);\n\n return this.$save().then(function(data) {\n var sibling;\n angular.extend(_this, data); // update the path attribute\n _this.id = _this.$id();\n\n // Move mailbox among its siblings according to its new name\n children.splice(i, 1);\n sibling = _.find(children, function(o) {\n Mailbox.$log.debug(o.name + ' ? ' + _this.name);\n return (o.type == 'folder' && o.name.localeCompare(_this.name) > 0);\n });\n if (sibling) {\n i = _.indexOf(_.pluck(children, 'id'), sibling.id);\n }\n else {\n i = children.length;\n }\n children.splice(i, 0, _this);\n });\n };\n\n /**\n * @function $compact\n * @memberof Mailbox.prototype\n * @desc Compact the mailbox\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$compact = function() {\n return Mailbox.$$resource.post(this.id, 'expunge');\n };\n\n /**\n * @function $setFolderAs\n * @memberof Mailbox.prototype\n * @desc Set a folder as Drafts/Sent/Trash\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$setFolderAs = function(type) {\n return Mailbox.$$resource.post(this.id, 'setAs' + type + 'Folder');\n };\n\n /**\n * @function $emptyTrash\n * @memberof Mailbox.prototype\n * @desc Empty the Trash folder.\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$emptyTrash = function() {\n var _this = this;\n\n return Mailbox.$$resource.post(this.id, 'emptyTrash').then(function() {\n // Remove all messages from the mailbox\n _this.$messages = [];\n _this.uidsMap = {};\n _this.unseenCount = 0;\n\n // If we had any submailboxes, lets do a refresh of the mailboxes list\n if (angular.isDefined(_this.children) && _this.children.length)\n _this.$account.$getMailboxes({reload: true});\n });\n };\n\n /**\n * @function $markAsRead\n * @memberof Mailbox.prototype\n * @desc Mark all messages from folder as read\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$markAsRead = function() {\n return Mailbox.$$resource.post(this.id, 'markRead');\n };\n\n /**\n * @function $flagMessages\n * @memberof Mailbox.prototype\n * @desc Add or remove a flag on a message set\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$flagMessages = function(uids, flags, operation) {\n var data = {msgUIDs: uids,\n flags: flags,\n operation: operation};\n\n return Mailbox.$$resource.post(this.id, 'addOrRemoveLabel', data);\n };\n\n /**\n * @function $delete\n * @memberof Mailbox.prototype\n * @desc Delete the mailbox from the server\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$delete = function() {\n var _this = this,\n deferred = Mailbox.$q.defer(),\n promise;\n\n promise = Mailbox.$$resource.remove(this.id);\n\n promise.then(function() {\n _this.$account.$getMailboxes({reload: true});\n deferred.resolve(true);\n }, function(data, status) {\n deferred.reject(data);\n });\n return deferred.promise;\n };\n\n /**\n * @function $deleteMessages\n * @memberof Mailbox.prototype\n * @desc Delete multiple messages from mailbox.\n * @return a promise of the HTTP operation\n */\n Mailbox.prototype.$deleteMessages = function(uids) {\n return Mailbox.$$resource.post(this.id, 'batchDelete', {uids: uids});\n };\n\n /**\n * @function $copyMessages\n * @memberof Mailbox.prototype\n * @desc Copy multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n Mailbox.prototype.$copyMessages = function(uids, folder) {\n return Mailbox.$$resource.post(this.id, 'copyMessages', {uids: uids, folder: folder});\n };\n\n /**\n * @function $moveMessages\n * @memberof Mailbox.prototype\n * @desc Move multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n Mailbox.prototype.$moveMessages = function(uids, folder) {\n return Mailbox.$$resource.post(this.id, 'moveMessages', {uids: uids, folder: folder});\n };\n \n /**\n * @function $reset\n * @memberof Mailbox.prototype\n * @desc Reset the original state the mailbox's data.\n */\n Mailbox.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key != 'children' && key[0] != '$') {\n delete _this[key];\n }\n });\n angular.extend(this, this.$shadowData);\n this.$shadowData = this.$omit();\n };\n\n /**\n * @function $save\n * @memberof Mailbox.prototype\n * @desc Save the mailbox to the server. This currently can only affect the name of the mailbox.\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$save = function() {\n var _this = this;\n\n return Mailbox.$$resource.save(this.id, this.$omit()).then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit();\n Mailbox.$log.debug(JSON.stringify(data, undefined, 2));\n return data;\n }, function(data) {\n Mailbox.$log.error(JSON.stringify(data, undefined, 2));\n // Restore previous version\n _this.$reset();\n });\n };\n\n /**\n * @function $newMailbox\n * @memberof Mailbox.prototype\n * @desc Create a new mailbox on the server and refresh the list of mailboxes.\n * @returns a promise of the HTTP operations\n */\n Mailbox.prototype.$newMailbox = function(path, name) {\n return this.$account.$newMailbox(path, name);\n };\n\n /**\n * @function $omit\n * @memberof Mailbox.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Mailbox instance\n */\n Mailbox.prototype.$omit = function() {\n var mailbox = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' &&\n key != 'children' &&\n key[0] != '$') {\n mailbox[key] = value;\n }\n });\n return mailbox;\n };\n\n /**\n * @function $unwrap\n * @memberof Mailbox.prototype\n * @desc Unwrap a promise and instanciate new Message objects using received data.\n * @param {promise} futureMailboxData - a promise of the Mailbox's metadata\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$unwrap = function(futureMailboxData) {\n var _this = this,\n deferred = Mailbox.$q.defer();\n\n this.$futureMailboxData = futureMailboxData;\n this.$futureMailboxData.then(function(data) {\n Mailbox.$timeout(function() {\n var uids, headers;\n\n _this.init(data);\n\n if (_this.uids) {\n Mailbox.$log.debug('unwrapping ' + data.uids.length + ' messages');\n\n // First entry of 'headers' are keys\n headers = _.invoke(_this.headers[0], 'toLowerCase');\n _this.headers.splice(0, 1);\n\n // First entry of 'uids' are keys when threaded view is enabled\n if (_this.threaded) {\n uids = _this.uids[0];\n _this.uids.splice(0, 1);\n }\n\n // Instanciate Message objects\n _.reduce(_this.uids, function(msgs, msg, i) {\n var data;\n if (_this.threaded)\n data = _.object(uids, msg);\n else\n data = {uid: msg.toString()};\n\n // Build map of UID <=> index\n _this.uidsMap[data.uid] = i;\n\n msgs.push(new Mailbox.$Message(_this.$account.id, _this, data, true));\n\n return msgs;\n }, _this.$messages);\n\n // Extend Message objects with received headers\n _.each(_this.headers, function(data) {\n var msg = _.object(headers, data),\n i = _this.uidsMap[msg.uid.toString()];\n _.extend(_this.$messages[i], msg);\n });\n }\n Mailbox.$log.debug('mailbox ' + _this.id + ' ready');\n _this.$isLoading = false;\n deferred.resolve(_this.$messages);\n });\n }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n deferred.reject();\n });\n\n return deferred.promise;\n };\n\n /**\n * @function $unwrapHeaders\n * @memberof Mailbox.prototype\n * @desc Unwrap a promise and extend matching Message objects using received data.\n * @param {promise} futureHeadersData - a promise of some messages metadata\n */\n Mailbox.prototype.$unwrapHeaders = function(futureHeadersData) {\n var _this = this;\n\n futureHeadersData.then(function(data) {\n Mailbox.$timeout(function() {\n var headers, j;\n if (data.length > 0) {\n // First entry of 'headers' are keys\n headers = _.invoke(data[0], 'toLowerCase');\n data.splice(0, 1);\n _.each(data, function(messageHeaders) {\n messageHeaders = _.object(headers, messageHeaders);\n j = _this.uidsMap[messageHeaders.uid.toString()];\n if (angular.isDefined(j)) {\n _.extend(_this.$messages[j], messageHeaders);\n }\n });\n }\n });\n });\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Message\n * @constructor\n * @param {string} accountId - the account ID\n * @param {string} mailboxPath - an array of the mailbox path components\n * @param {object} futureAddressBookData - either an object literal or a promise\n * @param {bool} lazy - do \"lazy loading\" so we are very quick at initializing message instances\n */\n function Message(accountId, mailbox, futureMessageData, lazy) {\n this.accountId = accountId;\n this.$mailbox = mailbox;\n this.$hasUnsafeContent = false;\n this.$loadUnsafeContent = false;\n this.$showDetailedRecipients = false;\n this.editable = {to: [], cc: [], bcc: []};\n this.selected = false;\n\n // Data is immediately available\n if (typeof futureMessageData.then !== 'function') {\n //console.debug(JSON.stringify(futureMessageData, undefined, 2));\n if (angular.isDefined(lazy) && lazy) {\n this.uid = futureMessageData.uid;\n }\n else {\n angular.extend(this, futureMessageData);\n this.$formatFullAddresses();\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureMessageData);\n }\n }\n\n /**\n * @memberof Message\n * @desc The factory we'll use to register with Angular\n * @returns the Message constructor\n */\n Message.$factory = ['$q', '$timeout', '$log', '$sce', 'sgSettings', 'Gravatar', 'Resource', 'Preferences', function($q, $timeout, $log, $sce, Settings, Gravatar, Resource, Preferences) {\n angular.extend(Message, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $sce: $sce,\n $gravatar: Gravatar,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser())\n });\n // Initialize tags form user's defaults\n Preferences.ready().then(function() {\n if (Preferences.defaults.SOGoMailLabelsColors) {\n Message.$tags = Preferences.defaults.SOGoMailLabelsColors;\n }\n if (Preferences.defaults.SOGoMailDisplayRemoteInlineImages &&\n Preferences.defaults.SOGoMailDisplayRemoteInlineImages == 'always') {\n Message.$displayRemoteInlineImages = true;\n }\n });\n\n return Message; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of Message in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .factory('Message', Message.$factory);\n\n /**\n * @function filterTags\n * @memberof Message.prototype\n * @desc Search for tags (ie., mail labels) matching some criterias\n * @param {string} search - the search string to match\n * @returns a collection of strings\n */\n Message.filterTags = function(query) {\n var re = new RegExp(query, 'i'),\n results = [];\n\n _.forEach(_.keys(Message.$tags), function(tag) {\n var pair = Message.$tags[tag];\n if (pair[0].search(re) != -1) {\n results.push({ name: tag, description: pair[0], color: pair[1] });\n }\n });\n return results;\n };\n\n /**\n * @function $absolutePath\n * @memberof Message.prototype\n * @desc Build the path of the message\n * @returns a string representing the path relative to the mail module\n */\n Message.prototype.$absolutePath = function(options) {\n if (angular.isUndefined(this.id) || options) {\n var path;\n path = _.map(this.$mailbox.path.split('/'), function(component) {\n return 'folder' + component.asCSSIdentifier();\n });\n path.splice(0, 0, this.accountId); // insert account ID\n if (options && options.asDraft && this.draftId) {\n path.push(this.draftId); // add draft ID\n }\n else {\n path.push(this.uid); // add message UID\n }\n\n this.id = path.join('/');\n }\n\n return this.id;\n };\n\n /**\n * @function $setUID\n * @memberof Message.prototype\n * @desc Change the UID of the message. This happens when saving a draft.\n * @param {number} uid - the new message UID\n */\n Message.prototype.$setUID = function(uid) {\n var oldUID = this.uid || -1;\n\n if (oldUID != uid) {\n this.uid = uid;\n if (oldUID > -1 && this.$mailbox.uidsMap[oldUID]) {\n this.$mailbox.uidsMap[uid] = this.$mailbox.uidsMap[oldUID];\n this.$mailbox.uidsMap[oldUID] = null;\n }\n }\n };\n\n /**\n * @function $formatFullAddresses\n * @memberof Message.prototype\n * @desc Format all sender and recipients addresses with a complete description (name ).\n * This function also generates a gravatar for each email address, and a short name\n */\n Message.prototype.$formatFullAddresses = function() {\n var _this = this;\n var identities = _.pluck(_this.$mailbox.$account.identities, 'email');\n\n // Build long representation of email addresses\n _.each(['from', 'to', 'cc', 'bcc', 'reply-to'], function(type) {\n _.each(_this[type], function(data, i) {\n if (data.name && data.name != data.email) {\n data.full = data.name + ' <' + data.email + '>';\n\n // If we have \"Alice Foo\" as name, we grab \"Alice\"\n if (data.name.split(' ').length)\n data.shortname = data.name.split(' ')[0].replace('\\'','');\n }\n else {\n data.full = '<' + data.email + '>';\n data.shortname = data.email.split('@')[0];\n }\n\n // Generate the gravatar\n data.image = Message.$gravatar(data.email, 32);\n\n // If the current user is the recepient, overwrite\n // the short name with 'me'\n if (_.indexOf(identities, data.email) >= 0)\n data.shortname = l('me');\n });\n });\n };\n\n /**\n * @function $shortRecipients\n * @memberof Message.prototype\n * @desc Format all recipients into a very compact string\n * @returns a compacted string of all recipients\n */\n Message.prototype.$shortRecipients = function() {\n var _this = this;\n var result = [];\n\n // Build long representation of email addresses\n _.each(['to', 'cc', 'bcc'], function(type) {\n _.each(_this[type], function(data, i) {\n result.push(data.shortname);\n });\n });\n\n return result.join(', ');\n };\n\n /**\n * @function $shortAddress\n * @memberof Message.prototype\n * @desc Format the first address of a specific type with a short description.\n * @returns a string of the name or the email of the envelope address type\n */\n Message.prototype.$shortAddress = function(type) {\n var address = '';\n if (this[type] && this[type].length > 0) {\n address = this[type][0].name || this[type][0].email || '';\n }\n\n return address;\n };\n\n /**\n * @function loadUnsafeContent\n * @memberof Message.prototype\n * @desc Mark the message to load unsafe resources when calling $content().\n */\n Message.prototype.loadUnsafeContent = function() {\n this.$loadUnsafeContent = true;\n };\n\n /**\n * @function showDetailedRecipients\n * @memberof Message.prototype\n * @desc Mark the message to show all to/cc recipients.\n */\n Message.prototype.showDetailedRecipients = function() {\n this.$showDetailedRecipients = true;\n };\n\n /**\n * @function $content\n * @memberof Message.prototype\n * @desc Get the message body as accepted by SCE (Angular Strict Contextual Escaping).\n * @returns the HTML representation of the body\n */\n Message.prototype.$content = function() {\n var _this = this,\n parts = [],\n _visit = function(part) {\n part.msgclass = 'msg-attachment-other';\n if (part.type == 'UIxMailPartAlternativeViewer') {\n _visit(_.find(part.content, function(alternatePart) {\n return part.preferredPart == alternatePart.contentType;\n }));\n }\n // Can be used for UIxMailPartMixedViewer and UIxMailPartMessageViewer\n else if (angular.isArray(part.content)) {\n _.each(part.content, function(mixedPart) {\n _visit(mixedPart);\n });\n }\n else {\n if (angular.isUndefined(part.safeContent)) {\n // Keep a copy of the original content\n part.safeContent = part.content;\n _this.$hasUnsafeContent |= (part.safeContent.indexOf(' unsafe-') > -1);\n }\n if (part.type == 'UIxMailPartHTMLViewer') {\n part.html = true;\n if (_this.$loadUnsafeContent || Message.$displayRemoteInlineImages) {\n if (angular.isUndefined(part.unsafeContent)) {\n part.unsafeContent = document.createElement('div');\n part.unsafeContent.innerHTML = part.safeContent;\n angular.forEach(['src', 'data', 'classid', 'background', 'style'], function(suffix) {\n var elements = part.unsafeContent.querySelectorAll('[unsafe-' + suffix + ']'),\n element,\n value,\n i;\n for (i = 0; i < elements.length; i++) {\n element = angular.element(elements[i]);\n value = element.attr('unsafe-' + suffix);\n element.attr(suffix, value);\n element.removeAttr('unsafe-' + suffix);\n }\n });\n _this.$hasUnsafeContent = false;\n }\n part.content = Message.$sce.trustAs('html', part.unsafeContent.innerHTML);\n }\n else {\n part.content = Message.$sce.trustAs('html', part.safeContent);\n }\n parts.push(part);\n }\n else if (part.type == 'UIxMailPartICalViewer' ||\n part.type == 'UIxMailPartImageViewer' ||\n part.type == 'UIxMailPartLinkViewer') {\n\n // UIxMailPartICalViewer injects 'participants'\n if (part.participants) {\n _.each(part.participants, function(participant) {\n participant.image = Message.$gravatar(participant.email, 32);\n });\n }\n\n if (part.type == 'UIxMailPartImageViewer')\n part.msgclass = 'msg-attachment-image';\n\n // Trusted content that can be compiled (Angularly-speaking)\n part.compile = true;\n parts.push(part);\n }\n else {\n part.html = true;\n part.content = Message.$sce.trustAs('html', part.safeContent);\n parts.push(part);\n }\n }\n };\n _visit(this.parts);\n\n return parts;\n };\n\n /**\n * @function $editableContent\n * @memberof Message.prototype\n * @desc First, fetch the draft ID that corresponds to the temporary draft object on the SOGo server.\n * Secondly, fetch the editable message body along with other metadata such as the recipients.\n * @returns the HTML representation of the body\n */\n Message.prototype.$editableContent = function() {\n var _this = this;\n\n return Message.$$resource.fetch(this.$absolutePath(), 'edit').then(function(data) {\n angular.extend(_this, data);\n return Message.$$resource.fetch(_this.$absolutePath({asDraft: true}), 'edit').then(function(data) {\n Message.$log.debug('editable = ' + JSON.stringify(data, undefined, 2));\n angular.extend(_this.editable, data);\n return data.text;\n });\n });\n };\n\n /**\n * @function addTag\n * @memberof Message.prototype\n * @desc Add a mail tag on the current message.\n * @param {string} tag - the tag name\n * @returns a promise of the HTTP operation\n */\n Message.prototype.addTag = function(tag) {\n return this.$addOrRemoveTag('add', tag);\n };\n\n /**\n * @function removeTag\n * @memberof Message.prototype\n * @desc Remove a mail tag from the current message.\n * @param {string} tag - the tag name\n * @returns a promise of the HTTP operation\n */\n Message.prototype.removeTag = function(tag) {\n return this.$addOrRemoveTag('remove', tag);\n };\n\n /**\n * @function $addOrRemoveTag\n * @memberof Message.prototype\n * @desc Add or remove a mail tag on the current message.\n * @param {string} operation - the operation name to perform\n * @param {string} tag - the tag name\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$addOrRemoveTag = function(operation, tag) {\n var data = {\n operation: operation,\n msgUIDs: [this.uid],\n flags: tag\n };\n\n if (tag)\n return Message.$$resource.post(this.$mailbox.$id(), 'addOrRemoveLabel', data);\n };\n\n /**\n * @function $imipAction\n * @memberof Message.prototype\n * @desc Perform IMIP actions on the current message.\n * @param {string} path - the path of the IMIP calendar part \n * @param {string} action - the the IMIP action to perform\n * @param {object} data - the delegation info \n */\n Message.prototype.$imipAction = function(path, action, data) {\n var _this = this;\n Message.$$resource.post([this.$absolutePath(), path].join('/'), action, data).then(function(data) {\n Message.$timeout(function() {\n _this.$reload();\n }, function() {\n // TODO: show toast\n });\n });\n };\n\n /**\n * @function $sendMDN\n * @memberof Message.prototype\n * @desc Send MDN response for current email message\n */\n Message.prototype.$sendMDN = function() {\n this.shouldAskReceipt = 0;\n return Message.$$resource.post(this.$absolutePath(), 'sendMDN');\n };\n\n /**\n * @function $deleteAttachment\n * @memberof Message.prototype\n * @desc Delete an attachment from a message being composed\n * @param {string} filename - the filename of the attachment to delete\n */\n Message.prototype.$deleteAttachment = function(filename) {\n var action = 'deleteAttachment?filename=' + filename;\n var _this = this;\n Message.$$resource.post(this.$absolutePath({asDraft: true}), action).then(function(data) {\n Message.$timeout(function() {\n _this.editable.attachmentAttrs = _.filter(_this.editable.attachmentAttrs, function(attachment) {\n return attachment.filename != filename;\n });\n }, function() {\n // TODO: show toast\n });\n });\n };\n\n /**\n * @function $markAsFlaggedOrUnflagged\n * @memberof Message.prototype\n * @desc Add or remove a the \\\\Flagged flag on the current message.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.toggleFlag = function() {\n var _this = this,\n action = 'markMessageFlagged';\n\n if (this.isflagged)\n action = 'markMessageUnflagged';\n\n return Message.$$resource.post(this.$absolutePath(), action).then(function(data) {\n Message.$timeout(function() {\n _this.isflagged = !_this.isflagged;\n });\n });\n };\n\n /**\n * @function $reload\n * @memberof Message.prototype\n * @desc Fetch the viewable message body along with other metadata such as the list of attachments.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$reload = function(options) {\n var futureMessageData;\n\n futureMessageData = Message.$$resource.fetch(this.$absolutePath(options), 'view');\n\n return this.$unwrap(futureMessageData);\n };\n\n /**\n * @function $reply\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a reply to the sender.\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$reply = function() {\n return this.$newDraft('reply');\n };\n\n /**\n * @function $replyAll\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a reply to the sender and all recipients.\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$replyAll = function() {\n return this.$newDraft('replyall');\n };\n\n /**\n * @function $forward\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a forward.\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$forward = function() {\n return this.$newDraft('forward');\n };\n\n /**\n * @function $newDraft\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a reply or a forward of the current message and associated\n * to the draft mailbox.\n * @see {@link Account.$newMessage}\n * @see {@link Message.$editableContent}\n * @see {@link Message.$reply}\n * @see {@link Message.$replyAll}\n * @see {@link Message.$forwad}\n * @param {string} action - the HTTP action to perform on the message\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$newDraft = function(action) {\n var _this = this;\n\n // Query server for draft folder and draft UID\n return Message.$$resource.fetch(this.$absolutePath(), action).then(function(data) {\n var mailbox, message;\n Message.$log.debug('New ' + action + ': ' + JSON.stringify(data, undefined, 2));\n mailbox = _this.$mailbox.$account.$getMailboxByPath(data.mailboxPath);\n message = new Message(data.accountId, mailbox, data);\n // Fetch draft initial data\n return Message.$$resource.fetch(message.$absolutePath({asDraft: true}), 'edit').then(function(data) {\n Message.$log.debug('New ' + action + ': ' + JSON.stringify(data, undefined, 2) + ' original UID: ' + _this.uid);\n angular.extend(message.editable, data);\n\n // We keep a reference to our original message in order to update the flags\n message.origin = {message: _this, action: action};\n return message;\n });\n });\n };\n\n /**\n * @function $save\n * @memberof Message.prototype\n * @desc Save the message to the server.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$save = function() {\n var _this = this,\n data = this.editable;\n\n Message.$log.debug('save = ' + JSON.stringify(data, undefined, 2));\n\n return Message.$$resource.save(this.$absolutePath({asDraft: true}), data).then(function(response) {\n Message.$log.debug('save = ' + JSON.stringify(response, undefined, 2));\n _this.$setUID(response.uid);\n _this.$reload({asDraft: false}); // fetch a new viewable version of the message\n });\n };\n\n /**\n * @function $send\n * @memberof Message.prototype\n * @desc Send the message.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$send = function() {\n var _this = this,\n data = angular.copy(this.editable),\n deferred = Message.$q.defer();\n\n Message.$log.debug('send = ' + JSON.stringify(data, undefined, 2));\n\n Message.$$resource.post(this.$absolutePath({asDraft: true}), 'send', data).then(function(data) {\n if (data.status == 'success') {\n deferred.resolve(data);\n if (angular.isDefined(_this.origin)) {\n if (_this.origin.action.startsWith('reply'))\n _this.origin.message.isanswered = true;\n else if (_this.origin.action == 'forward')\n _this.origin.message.isforwarded = true;\n }\n }\n else {\n deferred.reject(data);\n }\n });\n\n return deferred.promise;\n };\n\n /**\n * @function $unwrap\n * @memberof Message.prototype\n * @desc Unwrap a promise. \n * @param {promise} futureMessageData - a promise of some of the Message's data\n */\n Message.prototype.$unwrap = function(futureMessageData) {\n var _this = this;\n\n // Resolve and expose the promise\n this.$futureMessageData = futureMessageData.then(function(data) {\n // Calling $timeout will force Angular to refresh the view\n if (_this.isread === 0) {\n Message.$$resource.fetch(_this.$absolutePath(), 'markMessageRead').then(function() {\n Message.$timeout(function() {\n _this.isread = true;\n _this.$mailbox.unseenCount--;\n });\n });\n }\n return Message.$timeout(function() {\n angular.extend(_this, data);\n _this.$formatFullAddresses();\n _this.$loadUnsafeContent = false;\n return _this;\n });\n });\n\n return this.$futureMessageData;\n };\n\n /**\n * @function $omit\n * @memberof Message.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Message instance\n */\n Message.prototype.$omit = function() {\n var message = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n message[key] = value;\n }\n });\n\n // Format addresses as arrays\n _.each(['from', 'to', 'cc', 'bcc', 'reply-to'], function(type) {\n if (message[type])\n message[type] = _.invoke(message[type].split(','), 'trim');\n });\n\n //Message.$log.debug(JSON.stringify(message, undefined, 2));\n return message;\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name VirtualMailbox\n * @constructor\n * @param {object} account - the mail account associated with the virtual search\n */\n function VirtualMailbox(account) {\n this.$account = account;\n }\n\n /**\n * @memberof VirtualMailbox\n * @desc The factory we'll use to register with Angular\n * @returns the VirtualMailbox constructor\n */\n VirtualMailbox.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Message', 'Mailbox', 'sgMailbox_PRELOAD', function($q, $timeout, $log, Settings, Mailbox, Message, PRELOAD) {\n angular.extend(VirtualMailbox, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $Message: Message,\n selectedFolder: null,\n PRELOAD: PRELOAD\n });\n\n return VirtualMailbox; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of VirtualMailbox in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .constant('sgMailbox_PRELOAD', {\n LOOKAHEAD: 50,\n SIZE: 100\n })\n .factory('VirtualMailbox', VirtualMailbox.$factory);\n\n /**\n * @memberof VirtualMailbox\n * @desc Build the path of the virtual mailbox (or account only).\n * @param {string} accountId - the account ID\n * @returns a string representing the path relative to the mail module\n */\n VirtualMailbox.$absolutePath = function(accountId) {\n return [accountId, \"virtual\"].join('/');\n };\n\n /**\n * @function init\n * @memberof Mailbox.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of mailbox\n */\n VirtualMailbox.prototype.init = function(data) {\n this.$isLoading = false;\n this.$mailboxes = [];\n this.uidsMap = {};\n angular.extend(this, data);\n this.id = this.$id();\n };\n\n VirtualMailbox.prototype.setMailboxes = function(data) {\n this.$mailboxes = data;\n\n _.each(this.$mailboxes, function(mailbox) {\n mailbox.$messages = [];\n mailbox.uidsMap = {};\n });\n };\n\n VirtualMailbox.prototype.startSearch = function(match, params) {\n var _this = this,\n search = VirtualMailbox.$q.when();\n\n this.$isLoading = true;\n\n _.each(this.$mailboxes, function(mailbox) {\n search = search.then(function() {\n if (_this.$isLoading) {\n VirtualMailbox.$log.debug(\"searching mailbox \" + mailbox.path);\n return mailbox.$filter( {sort: \"date\", asc: false, match: match}, params);\n }\n });\n });\n\n search.finally(function() { _this.$isLoading = false; });\n };\n\n VirtualMailbox.prototype.stopSearch = function() {\n VirtualMailbox.$log.debug(\"stopping search...\");\n this.$isLoading = false;\n };\n\n /**\n * @function getLength\n * @memberof Mailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the number of items in the mailbox\n */\n VirtualMailbox.prototype.getLength = function() {\n var len = 0;\n\n if (!angular.isDefined(this.$mailboxes))\n return len;\n\n _.each(this.$mailboxes, function(mailbox) {\n len += mailbox.$messages.length;\n });\n\n return len;\n };\n\n /**\n * @function getItemAtIndex\n * @memberof Mailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the message as the specified index\n */\n VirtualMailbox.prototype.getItemAtIndex = function(index) {\n var i, j, k, mailbox, message;\n\n if (angular.isDefined(this.$mailboxes) && index >= 0) {\n i = 0;\n for (j = 0; j < this.$mailboxes.length; j++) {\n mailbox = this.$mailboxes[j];\n for (k = 0; k < mailbox.$messages.length; i++, k++) {\n message = mailbox.$messages[k];\n if (i == index) {\n if (mailbox.$loadMessage(message.uid))\n return message;\n }\n }\n }\n }\n\n return null;\n };\n\n /**\n * @function $id\n * @memberof VirtualMailbox.prototype\n * @desc Build the unique ID to identified the mailbox.\n * @returns a string representing the path relative to the mail module\n */\n VirtualMailbox.prototype.$id = function() {\n return VirtualMailbox.$absolutePath(this.$account.id);\n };\n\n /**\n * @function $selectedCount\n * @memberof VirtualMailbox.prototype\n * @desc Return the number of messages selected by the user.\n * @returns the number of selected messages\n */\n VirtualMailbox.prototype.$selectedCount = function() {\n // TODO\n return 0;\n };\n\n /**\n * @function $flagMessages\n * @memberof VirtualMailbox.prototype\n * @desc Add or remove a flag on a message set\n * @returns a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$flagMessages = function(uids, flags, operation) {\n // TODO\n // var data = {msgUIDs: uids,\n // flags: flags,\n // operation: operation};\n\n // return VirtualMailbox.$$resource.post(this.id, 'addOrRemoveLabel', data);\n };\n\n /**\n * @function $deleteMessages\n * @memberof VirtualMailbox.prototype\n * @desc Delete multiple messages from mailbox.\n * @return a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$deleteMessages = function(uids) {\n // TODO\n //return VirtualMailbox.$$resource.post(this.id, 'batchDelete', {uids: uids});\n };\n\n /**\n * @function $copyMessages\n * @memberof VirtualMailbox.prototype\n * @desc Copy multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$copyMessages = function(uids, folder) {\n // TODO\n //return VirtualMailbox.$$resource.post(this.id, 'copyMessages', {uids: uids, folder: folder});\n };\n\n /**\n * @function $moveMessages\n * @memberof VirtualMailbox.prototype\n * @desc Move multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$moveMessages = function(uids, folder) {\n // TODO\n //return VirtualMailbox.$$resource.post(this.id, 'moveMessages', {uids: uids, folder: folder});\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MailboxController.$inject = ['$state', '$timeout', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox'];\n function MailboxController($state, $timeout, $mdDialog, stateAccounts, stateAccount, stateMailbox, encodeUriFilter, focus, Dialog, Account, Mailbox) {\n var vm = this, messageDialog = null;\n\n Mailbox.selectedFolder = stateMailbox;\n\n vm.service = Mailbox;\n vm.accounts = stateAccounts;\n vm.account = stateAccount;\n vm.selectedFolder = stateMailbox;\n vm.selectMessage = selectMessage;\n vm.toggleMessageSelection = toggleMessageSelection;\n vm.unselectMessages = unselectMessages;\n vm.confirmDeleteSelectedMessages = confirmDeleteSelectedMessages;\n vm.copySelectedMessages = copySelectedMessages;\n // vm.moveSelectedMessages = moveSelectedMessages;\n vm.saveSelectedMessages = saveSelectedMessages;\n vm.markSelectedMessagesAsFlagged = markSelectedMessagesAsFlagged;\n vm.markSelectedMessagesAsUnread = markSelectedMessagesAsUnread;\n vm.selectAll = selectAll;\n vm.sort = sort;\n vm.sortedBy = sortedBy;\n vm.cancelSearch = cancelSearch;\n vm.newMessage = newMessage;\n vm.mode = { search: false };\n\n function selectMessage(message) {\n if (Mailbox.$virtualMode)\n $state.go('mail.account.virtualMailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(message.$mailbox.path), messageId: message.uid});\n else\n $state.go('mail.account.mailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(message.$mailbox.path), messageId: message.uid});\n }\n\n function toggleMessageSelection($event, message) {\n message.selected = !message.selected;\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n function unselectMessages() {\n _.each(vm.selectedFolder.$messages, function(message) { message.selected = false; });\n }\n\n function confirmDeleteSelectedMessages() {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the selected messages?'))\n .then(function() {\n // User confirmed the deletion\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n vm.selectedFolder.$deleteMessages(selectedUIDs).then(function() {\n // Decrement the unseenCount accordingly\n var unseenCount = _.filter(selectedMessages, function(message) { return !message.isread; });\n vm.selectedFolder.$messages = _.difference(vm.selectedFolder.$messages, selectedMessages);\n vm.selectedFolder.unseenCount =- unseenCount;\n }, function(error) {\n Dialog.alert(l('Error'), error);\n });\n });\n }\n\n function copySelectedMessages(folder) {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n vm.selectedFolder.$copyMessages(selectedUIDs, '/' + folder).then(function() {\n // TODO: refresh target mailbox?\n }, function(error) {\n Dialog.alert(l('Error'), error);\n });\n }\n\n // function moveSelectedMessages(folder) {\n // var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected });\n // var selectedUIDs = _.pluck(selectedMessages, 'uid');\n // vm.selectedFolder.$moveMessages(selectedUIDs, '/' + folder).then(function() {\n // // TODO: refresh target mailbox?\n // vm.selectedFolder.$messages = _.difference(vm.selectedFolder.$messages, selectedMessages);\n // });\n // }\n\n function saveSelectedMessages() {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n window.location.href = ApplicationBaseURL + '/' + vm.selectedFolder.id + '/saveMessages?uid=' + selectedUIDs.join(\",\");\n }\n\n function selectAll() {\n _.each(vm.selectedFolder.$messages, function(message) {\n message.selected = true;\n });\n }\n\n function markSelectedMessagesAsFlagged() {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n\n vm.selectedFolder.$flagMessages(selectedUIDs, '\\\\Flagged', 'add').then(function(d) {\n // Success\n _.forEach(selectedMessages, function(message) {\n message.isflagged = true;\n });\n });\n }\n\n function markSelectedMessagesAsUnread() {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n\n vm.selectedFolder.$flagMessages(selectedUIDs, 'seen', 'remove').then(function(d) {\n // Success\n _.forEach(selectedMessages, function(message) {\n message.isread = false;\n vm.selectedFolder.unseenCount++;\n });\n });\n }\n\n function sort(field) {\n vm.selectedFolder.$filter({ sort: field });\n }\n\n function sortedBy(field) {\n return Mailbox.$query.sort == field;\n }\n\n function cancelSearch() {\n vm.mode.search = false;\n vm.selectedFolder.$filter();\n }\n\n function newMessage($event) {\n var message;\n\n if (messageDialog === null) {\n message = vm.account.$newMessage();\n messageDialog = $mdDialog\n .show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: 'UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: vm.accounts,\n stateMessage: message,\n stateRecipients: []\n }\n })\n .finally(function() {\n messageDialog = null;\n });\n }\n }\n }\n\n angular\n .module('SOGo.MailerUI')\n .controller('MailboxController', MailboxController);\n})();\n\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MailboxesController.$inject = ['$state', '$timeout', '$mdDialog', 'sgFocus', 'encodeUriFilter', 'Dialog', 'sgSettings', 'Account', 'Mailbox', 'VirtualMailbox', 'User', 'Preferences', 'stateAccounts'];\n function MailboxesController($state, $timeout, $mdDialog, focus, encodeUriFilter, Dialog, Settings, Account, Mailbox, VirtualMailbox, User, Preferences, stateAccounts) {\n var vm = this,\n account,\n mailbox;\n\n vm.service = Mailbox;\n vm.accounts = stateAccounts;\n vm.newFolder = newFolder;\n vm.delegate = delegate;\n vm.editFolder = editFolder;\n vm.revertEditing = revertEditing;\n vm.selectFolder = selectFolder;\n vm.saveFolder = saveFolder;\n vm.compactFolder = compactFolder;\n vm.emptyTrashFolder = emptyTrashFolder;\n vm.exportMails = exportMails;\n vm.confirmDelete = confirmDelete;\n vm.markFolderRead = markFolderRead;\n vm.share = share;\n vm.metadataForFolder = metadataForFolder;\n vm.setFolderAs = setFolderAs;\n vm.refreshUnseenCount = refreshUnseenCount;\n\n // Advanced search options\n vm.showingAdvancedSearch = false;\n vm.currentSearchParam = '';\n vm.addSearchParam = addSearchParam;\n vm.newSearchParam = newSearchParam;\n vm.showAdvancedSearch = showAdvancedSearch;\n vm.hideAdvancedSearch = hideAdvancedSearch;\n vm.toggleAdvancedSearch = toggleAdvancedSearch;\n vm.search = {\n options: {'': l('Select a criteria'),\n subject: l('Enter Subject'),\n from: l('Enter From'),\n to: l('Enter To'),\n cc: l('Enter Cc'),\n body: l('Enter Body')\n },\n mailbox: 'INBOX',\n subfolders: 1,\n match: 'AND',\n params: []\n };\n\n function showAdvancedSearch(path) {\n vm.showingAdvancedSearch = true;\n vm.search.mailbox = path;\n }\n\n function hideAdvancedSearch() {\n vm.showingAdvancedSearch = false;\n vm.service.$virtualMode = false;\n\n account = vm.accounts[0];\n mailbox = vm.searchPreviousMailbox;\n $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(mailbox.path) });\n }\n\n function toggleAdvancedSearch() {\n if (Mailbox.selectedFolder.$isLoading) {\n vm.virtualMailbox.stopSearch();\n }\n else {\n var root, mailboxes = [],\n _visit = function(folders) {\n _.each(folders, function(o) {\n mailboxes.push(o);\n if (o.children && o.children.length > 0) {\n _visit(o.children);\n }\n });\n };\n\n vm.virtualMailbox = new VirtualMailbox(vm.accounts[0]);\n\n // Don't set the previous selected mailbox if we're in virtual mode\n // That allows users to do multiple advanced search but return\n // correctly to the previously selected mailbox once done.\n if (!Mailbox.$virtualMode)\n vm.searchPreviousMailbox = Mailbox.selectedFolder;\n\n Mailbox.selectedFolder = vm.virtualMailbox;\n Mailbox.$virtualMode = true;\n\n if (angular.isDefined(vm.search.mailbox)) {\n root = vm.accounts[0].$getMailboxByPath(vm.search.mailbox);\n mailboxes.push(root);\n if (vm.search.subfolders && root.children.length)\n _visit(root.children);\n }\n else {\n mailboxes = vm.accounts[0].$flattenMailboxes();\n }\n\n vm.virtualMailbox.setMailboxes(mailboxes);\n vm.virtualMailbox.startSearch(vm.search.match, vm.search.params);\n $state.go('mail.account.virtualMailbox', { accountId: vm.accounts[0].id });\n }\n }\n\n function addSearchParam(v) {\n vm.currentSearchParam = v;\n focus('advancedSearch');\n }\n\n function newSearchParam(v) {\n if (v.length && vm.currentSearchParam.length) {\n var n = 0;\n if (v.startsWith(\"!\")) {\n n = 1;\n v = v.substring(1).trim();\n }\n vm.search.params.push({searchBy:vm.currentSearchParam, searchInput: v, negative: n});\n vm.currentSearchParam = '';\n }\n }\n\n if ($state.current.name == 'mail' && vm.accounts.length > 0 && vm.accounts[0].$mailboxes.length > 0) {\n // Redirect to first mailbox of first account if no mailbox is selected\n account = vm.accounts[0];\n mailbox = account.$mailboxes[0];\n $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(mailbox.path) });\n }\n\n function newFolder(parentFolder) {\n Dialog.prompt(l('New folder'),\n l('Enter the new name of your folder :'))\n .then(function(name) {\n parentFolder.$newMailbox(parentFolder.id, name)\n .then(function() {\n // success\n }, function(data, status) {\n Dialog.alert(l('An error occured while creating the mailbox \"%{0}\".', name),\n l(data.error));\n });\n });\n }\n\n function delegate(account) {\n $mdDialog.show({\n templateUrl: account.id + '/delegation', // UI/Templates/MailerUI/UIxMailUserDelegation.wox\n controller: MailboxDelegationController,\n controllerAs: 'delegate',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n User: User,\n account: account\n }\n });\n\n /**\n * @ngInject\n */\n MailboxDelegationController.$inject = ['$scope', '$mdDialog', 'User', 'account'];\n function MailboxDelegationController($scope, $mdDialog, User, account) {\n var vm = this;\n\n vm.users = account.delegates;\n vm.account = account;\n vm.userToAdd = '';\n vm.searchText = '';\n vm.userFilter = userFilter;\n vm.closeModal = closeModal;\n vm.removeUser = removeUser;\n vm.addUser = addUser;\n\n function userFilter($query) {\n return User.$filter($query, account.delegates);\n }\n\n function closeModal() {\n $mdDialog.hide();\n }\n\n function removeUser(user) {\n account.$removeDelegate(user.uid).catch(function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function addUser(data) {\n if (data) {\n account.$addDelegate(data).then(function() {\n vm.userToAdd = '';\n vm.searchText = '';\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n }\n }\n } // delegate\n\n function editFolder(folder) {\n vm.editMode = folder.path;\n focus('mailboxName_' + folder.path);\n }\n\n function revertEditing(folder) {\n folder.$reset();\n vm.editMode = false;\n }\n\n function selectFolder(account, folder) {\n if (vm.editMode == folder.path)\n return;\n vm.editMode = false;\n vm.showingAdvancedSearch = false;\n vm.service.$virtualMode = false;\n $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(folder.path) });\n }\n\n function saveFolder(folder) {\n folder.$rename()\n .then(function(data) {\n vm.editMode = false;\n }, function(data, status) {\n Dialog.alert(l('Warning'), data);\n });\n }\n\n function compactFolder(folder) {\n folder.$compact().then(function() {\n // Success\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n\n function emptyTrashFolder(folder) {\n folder.$emptyTrash().then(function() {\n // Success\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n\n function exportMails(folder) {\n window.location.href = ApplicationBaseURL + '/' + folder.id + '/exportFolder';\n }\n\n function confirmDelete(folder) {\n Dialog.confirm(l('Confirmation'), l('Do you really want to move this folder into the trash ?'))\n .then(function() {\n folder.$delete()\n .then(function() {\n $state.go('mail');\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the mailbox \"%{0}\".', folder.name),\n l(data.error));\n });\n });\n }\n\n function markFolderRead(folder) {\n folder.$markAsRead();\n }\n\n function share(folder) {\n // Fetch list of ACL users\n folder.$acl.$users().then(function() {\n // Show ACL editor\n $mdDialog.show({\n templateUrl: folder.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox\n controller: 'AclController', // from the ng module SOGo.Common\n controllerAs: 'acl',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n usersWithACL: folder.$acl.users,\n User: User,\n folder: folder\n }\n });\n });\n } // share\n\n function metadataForFolder(folder) {\n if (folder.type == 'inbox')\n return {name: folder.name, icon:'inbox'};\n else if (folder.type == 'draft')\n return {name: l('DraftsFolderName'), icon: 'drafts'};\n else if (folder.type == 'sent')\n return {name: l('SentFolderName'), icon: 'send'};\n else if (folder.type == 'trash')\n return {name: l('TrashFolderName'), icon: 'delete'};\n else if (folder.type == 'additional')\n return {name: folder.name, icon: 'folder_shared'};\n\n //if ($rootScope.currentFolder == folder)\n // return 'folder_open';\n\n return {name: folder.name, icon: 'folder'};\n }\n\n function setFolderAs(folder, type) {\n folder.$setFolderAs(type).then(function() {\n folder.$account.$getMailboxes({reload: true});\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n\n function refreshUnseenCount() {\n var unseenCountFolders = window.unseenCountFolders;\n\n _.forEach(vm.accounts, function(account) {\n\n // Always include the INBOX\n if (!_.includes(unseenCountFolders, account.id + '/folderINBOX'))\n unseenCountFolders.push(account.id + '/folderINBOX');\n\n _.forEach(account.$$flattenMailboxes, function(mailbox) {\n if (angular.isDefined(mailbox.unseenCount) &&\n !_.includes(unseenCountFolders, mailbox.id))\n unseenCountFolders.push(mailbox.id);\n });\n });\n\n Account.$$resource.post('', 'unseenCount', {mailboxes: unseenCountFolders}).then(function(data) {\n _.forEach(vm.accounts, function(account) {\n _.forEach(account.$$flattenMailboxes, function(mailbox) {\n if (data[mailbox.id])\n mailbox.unseenCount = data[mailbox.id];\n });\n });\n });\n\n Preferences.ready().then(function() {\n var refreshViewCheck = Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually')\n $timeout(vm.refreshUnseenCount, refreshViewCheck.timeInterval()*1000);\n });\n }\n\n vm.refreshUnseenCount();\n }\n\n angular\n .module('SOGo.MailerUI') \n .controller('MailboxesController', MailboxesController); \n})();\n\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MessageController.$inject = ['$window', '$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgSettings', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];\n function MessageController($window, $scope, $state, $mdDialog, stateAccounts, stateAccount, stateMailbox, stateMessage, encodeUriFilter, sgSettings, focus, Dialog, Account, Mailbox, Message) {\n var vm = this, messageDialog = null, popupWindow = null;\n\n vm.accounts = stateAccounts;\n vm.account = stateAccount;\n vm.mailbox = stateMailbox;\n vm.message = stateMessage;\n vm.service = Message;\n vm.tags = { searchText: '', selected: '' };\n vm.doDelete = doDelete;\n vm.close = close;\n vm.reply = reply;\n vm.replyAll = replyAll;\n vm.forward = forward;\n vm.edit = edit;\n vm.openPopup = openPopup;\n vm.closePopup = closePopup;\n vm.newMessage = newMessage;\n vm.saveMessage = saveMessage;\n vm.viewRawSource = viewRawSource;\n\n // Watch the message model \"flags\" attribute to remove on-the-fly a tag from the IMAP message\n // when removed from the message viewer.\n // TODO: this approach should be reviewed once md-chips supports ng-change.\n $scope.$watchCollection('viewer.message.flags', function(oldTags, newTags) {\n _.each(_.difference(newTags, oldTags), function(tag) {\n vm.message.removeTag(tag);\n });\n });\n\n function doDelete() {\n stateMailbox.$deleteMessages([stateMessage.uid]).then(function() {\n // Remove message from list of messages\n var index = _.findIndex(stateMailbox.$messages, function(o) {\n return o.uid == stateMessage.uid;\n });\n if (index != -1)\n stateMailbox.$messages.splice(index, 1);\n // Remove message object from scope\n vm.message = null;\n $state.go('mail.account.mailbox', { accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path) });\n });\n }\n\n function showMailEditor($event, message, recipients) {\n if (messageDialog === null) {\n if (!angular.isDefined(recipients))\n recipients = [];\n\n messageDialog = $mdDialog\n .show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: 'UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: vm.accounts,\n stateMessage: message,\n stateRecipients: recipients\n }\n })\n .finally(function() {\n messageDialog = null;\n });\n }\n }\n\n function close() {\n $state.go('mail.account.mailbox', { accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path) }).then(function() {\n vm.message = null;\n delete stateMailbox.selectedMessage;\n });\n }\n\n function reply($event) {\n var message = vm.message.$reply();\n showMailEditor($event, message);\n }\n\n function replyAll($event) {\n var message = vm.message.$replyAll();\n showMailEditor($event, message);\n }\n\n function forward($event) {\n var message = vm.message.$forward();\n showMailEditor($event, message);\n }\n\n function edit($event) {\n vm.message.$editableContent().then(function() {\n showMailEditor($event, vm.message);\n });\n }\n\n function openPopup() {\n var url = [sgSettings.baseURL(),\n 'UIxMailPopupView#/Mail',\n vm.message.accountId,\n // The double-encoding is necessary\n encodeUriFilter(encodeUriFilter(vm.message.$mailbox.path)),\n vm.message.uid]\n .join('/'),\n wId = vm.message.$absolutePath();\n popupWindow = $window.open(url, wId,\n [\"width=680\",\n \"height=520\",\n \"resizable=1\",\n \"scrollbars=1\",\n \"toolbar=0\",\n \"location=0\",\n \"directories=0\",\n \"status=0\",\n \"menubar=0\",\n \"copyhistory=0\"]\n .join(','));\n }\n\n function closePopup() {\n $window.close();\n }\n\n function newMessage($event, recipient) {\n var message = vm.account.$newMessage();\n showMailEditor($event, message, [recipient]);\n }\n\n function saveMessage() {\n window.location.href = ApplicationBaseURL + '/' + vm.mailbox.id + '/saveMessages?uid=' + vm.message.uid;\n }\n\n function viewRawSource($event) {\n Message.$$resource.post(vm.message.id, \"viewsource\").then(function(data) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n            data,\n            '    
',\n '
',\n '
',\n ' ' + l('Close') + '',\n '
',\n '
'\n ].join(''),\n controller: MessageRawSourceDialogController\n });\n\n /**\n * @ngInject\n */\n MessageRawSourceDialogController.$inject = ['scope', '$mdDialog'];\n function MessageRawSourceDialogController(scope, $mdDialog) {\n scope.close = function() {\n $mdDialog.hide();\n };\n }\n });\n }\n }\n \n angular\n .module('SOGo.MailerUI') \n .controller('MessageController', MessageController); \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MessageEditorController.$inject = ['$stateParams', '$mdDialog', 'FileUploader', 'stateAccounts', 'stateMessage', 'stateRecipients', '$timeout', 'sgFocus', 'Dialog', 'AddressBook', 'Preferences'];\n function MessageEditorController($stateParams, $mdDialog, FileUploader, stateAccounts, stateMessage, stateRecipients, $timeout, focus, Dialog, AddressBook, Preferences) {\n var vm = this;\n\n vm.addRecipient = addRecipient;\n vm.autocomplete = {to: {}, cc: {}, bcc: {}};\n vm.autosave = null;\n vm.autosaveDrafts = autosaveDrafts;\n vm.hideCc = true;\n vm.hideBcc = true;\n vm.cancel = cancel;\n vm.send = send;\n vm.contactFilter = contactFilter;\n vm.identities = _.pluck(_.flatten(_.pluck(stateAccounts, 'identities')), 'full');\n vm.uploader = new FileUploader({\n url: stateMessage.$absolutePath({asDraft: true}) + '/save',\n autoUpload: true,\n alias: 'attachments',\n onProgressItem: function(item, progress) {\n console.debug(item); console.debug(progress);\n },\n onSuccessItem: function(item, response, status, headers) {\n stateMessage.$setUID(response.uid);\n stateMessage.$reload();\n console.debug(item); console.debug('success = ' + JSON.stringify(response, undefined, 2));\n },\n onCancelItem: function(item, response, status, headers) {\n console.debug(item); console.debug('cancel = ' + JSON.stringify(response, undefined, 2));\n\n // We remove the attachment\n stateMessage.$deleteAttachment(item.file.name);\n this.removeFromQueue(item);\n },\n onErrorItem: function(item, response, status, headers) {\n console.debug(item); console.debug('error = ' + JSON.stringify(response, undefined, 2));\n }\n });\n\n if ($stateParams.actionName == 'reply') {\n stateMessage.$reply().then(function(msgObject) {\n vm.message = msgObject;\n vm.hideCc = (!msgObject.editable.cc || msgObject.editable.cc.length === 0);\n vm.hideBcc = (!msgObject.editable.bcc || msgObject.editable.bcc.length === 0);\n });\n }\n else if ($stateParams.actionName == 'replyall') {\n stateMessage.$replyAll().then(function(msgObject) {\n vm.message = msgObject;\n vm.hideCc = (!msgObject.editable.cc || msgObject.editable.cc.length === 0);\n vm.hideBcc = (!msgObject.editable.bcc || msgObject.editable.bcc.length === 0);\n });\n }\n else if ($stateParams.actionName == 'forward') {\n stateMessage.$forward().then(function(msgObject) {\n vm.message = msgObject;\n });\n }\n else if (angular.isDefined(stateMessage)) {\n vm.message = stateMessage;\n }\n\n if (angular.isDefined(stateRecipients)) {\n vm.message.editable.to = _.union(vm.message.editable.to, _.pluck(stateRecipients, 'full'));\n }\n\n function cancel() {\n // TODO: delete draft?\n if (vm.autosave)\n $timeout.cancel(vm.autosave);\n\n $mdDialog.cancel();\n }\n\n function send() {\n if (vm.autosave)\n $timeout.cancel(vm.autosave);\n\n vm.message.$send().then(function(data) {\n $mdDialog.hide();\n }, function(data) {\n Dialog.alert(l(data.status), l(data.message));\n });\n }\n\n function contactFilter($query) {\n return AddressBook.$filterAll($query);\n }\n\n function addRecipient(user) {\n var recipient = [];\n\n if (angular.isString(user))\n return user;\n if (user.$$fullname)\n recipient.push(user.$$fullname);\n if (user.$$email)\n recipient.push('<' + user.$$email + '>');\n\n return recipient.join(' ');\n }\n\n // Drafts autosaving\n function autosaveDrafts() {\n vm.message.$save();\n if (Preferences.defaults.SOGoMailAutoSave)\n vm.autosave = $timeout(vm.autosaveDrafts, Preferences.defaults.SOGoMailAutoSave*1000*60);\n }\n\n // Select list based on user's settings\n Preferences.ready().then(function() {\n if (Preferences.defaults.SOGoMailAutoSave)\n vm.autosave = $timeout(vm.autosaveDrafts, Preferences.defaults.SOGoMailAutoSave*1000*60);\n vm.localeCode = Preferences.defaults.LocaleCode;\n });\n }\n\n angular\n .module('SOGo.MailerUI') \n .controller('MessageEditorController', MessageEditorController); \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /**\n * sgIMIP - A directive to handle IMIP actions on emails\n * @memberof SOGo.MailerUI\n * @example:\n\n */\n function sgImip() {\n return {\n restrict: 'A',\n link: link,\n controller: 'sgImipController'\n };\n\n function link(scope, iElement, attrs, ctrl) {\n ctrl.pathToAttachment = attrs.sgImipPath;\n }\n }\n\n /**\n * @ngInject\n */\n sgImipController.$inject = ['$scope', 'User'];\n function sgImipController($scope, User) {\n var vm = this;\n\n $scope.delegateInvitation = false;\n $scope.delegatedTo = '';\n $scope.searchText = '';\n\n $scope.userFilter = function($query) {\n return User.$filter($query);\n };\n\n $scope.iCalendarAction = function(action) {\n var data;\n\n if (action == 'delegate') {\n data = {\n receiveUpdates: false,\n delegatedTo: $scope.delegatedTo.c_email\n };\n }\n\n $scope.viewer.message.$imipAction(vm.pathToAttachment, action, data);\n };\n }\n\n angular\n .module('SOGo.MailerUI')\n .controller('sgImipController', sgImipController)\n .directive('sgImip', sgImip);\n})();\n\n"]} \ No newline at end of file +{"version":3,"file":"Mailer.services.js","sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgIMIP.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","each","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Mailbox","$Message","module","e","factory","$findAll","data","$unwrapCollection","fetch","o","collection","forEach","i","id","prototype","$getMailboxes","options","_this","$mailboxes","reload","$find","ready","expandedFolders","_visit","mailboxes","$expanded","indexOf","children","length","settings","Mail","ExpandedFolders","isString","fromJson","$flattenMailboxes","when","allMailboxes","expandedMailboxes","push","all","$$flattenMailboxes","saveState","reduce","mailbox","post","$getMailboxByType","type","_find","find","console","specialMailboxes","$getMailboxByPath","path","$newMailbox","name","toString","$newMessage","message","accountId","mailboxPath","$absolutePath","asDraft","editable","$addDelegate","user","deferred","defer","param","uid","pluck","delegates","resolve","users","status","reject","l","promise","$removeDelegate","splice","account","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","PRELOAD","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","index","map","split","component","asCSSIdentifier","join","$isLoading","$messages","uidsMap","$id","$acl","$isEditable","isEditable","isUndefined","$shadowData","$omit","getLength","getItemAtIndex","$loadMessage","$selectedCount","count","filter","selected","isSelectedMessage","messageId","selectedMessage","$filter","sortingAttributes","filters","isDefined","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","defaults","SOGoRefreshViewCheck","f","bind","timeInterval","endIndex","uids","futureHeadersData","startIndex","max","loaded","subject","Math","min","loading","$unwrapHeaders","$rename","findParent","parent","parentMailbox","$save","sibling","localeCompare","$compact","$setFolderAs","$emptyTrash","$markAsRead","$flagMessages","flags","operation","msgUIDs","$delete","remove","$deleteMessages","$copyMessages","folder","$moveMessages","$reset","value","key","save","error","$futureMailboxData","headers","invoke","threaded","msgs","msg","object","isError","j","messageHeaders","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","$showDetailedRecipients","to","cc","bcc","$formatFullAddresses","Gravatar","$gravatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","filterTags","query","re","RegExp","results","keys","tag","pair","search","description","color","draftId","$setUID","oldUID","shortname","replace","image","$shortRecipients","result","$shortAddress","address","loadUnsafeContent","showDetailedRecipients","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","element","elements","querySelectorAll","attr","removeAttr","participants","participant","compile","$editableContent","text","addTag","$addOrRemoveTag","removeTag","$imipAction","action","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","filename","attachmentAttrs","attachment","toggleFlag","isflagged","$reply","$newDraft","$replyAll","$forward","origin","response","$send","startsWith","isanswered","isforwarded","$futureMessageData","isread","VirtualMailbox","setMailboxes","startSearch","params","stopSearch","resetSelectedMessage","len","k","MailboxController","$state","$mdDialog","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","focus","Dialog","selectMessage","go","mailboxId","toggleMessageSelection","$event","preventDefault","stopPropagation","unselectMessages","vm","confirmDeleteSelectedMessages","confirm","selectedMessages","selectedUIDs","difference","alert","copySelectedMessages","saveSelectedMessages","window","location","href","ApplicationBaseURL","selectAll","markSelectedMessagesAsFlagged","d","markSelectedMessagesAsUnread","field","sortedBy","cancelSearch","mode","newMessage","messageDialog","show","body","targetEvent","clickOutsideToClose","escapeToClose","templateUrl","controller","controllerAs","locals","accounts","stateMessage","stateRecipients","service","$inject","MailboxesController","User","showAdvancedSearch","showingAdvancedSearch","hideAdvancedSearch","searchPreviousMailbox","toggleAdvancedSearch","virtualMailbox","root","folders","subfolders","addSearchParam","v","currentSearchParam","newSearchParam","pattern","n","searchParam","substring","trim","negative","newFolder","parentFolder","prompt","delegate","MailboxDelegationController","$scope","userFilter","closeModal","hide","removeUser","addUser","userToAdd","searchText","editFolder","editMode","revertEditing","selectFolder","saveFolder","compactFolder","emptyTrashFolder","exportMails","confirmDelete","markFolderRead","share","$users","usersWithACL","metadataForFolder","icon","setFolderAs","refreshUnseenCount","unseenCountFolders","includes","from","current","MessageController","$window","sgSettings","doDelete","findIndex","showMailEditor","recipients","close","reply","replyAll","forward","edit","openPopup","url","baseURL","wId","popupWindow","open","closePopup","recipient","saveMessage","viewRawSource","MessageRawSourceDialogController","scope","template","tags","$watchCollection","oldTags","newTags","MessageEditorController","$stateParams","FileUploader","AddressBook","autosave","send","contactFilter","$filterAll","addRecipient","$$fullname","$$email","autosaveDrafts","SOGoMailAutoSave","autocomplete","hideCc","hideBcc","flatten","uploader","autoUpload","alias","onProgressItem","item","progress","onSuccessItem","onCancelItem","file","removeFromQueue","onErrorItem","actionName","msgObject","union","localeCode","LocaleCode","sgImip","link","iElement","attrs","ctrl","pathToAttachment","sgImipPath","restrict","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","directive"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Account\n * @constructor\n * @param {object} futureAccountData\n */\n function Account(futureAccountData) {\n // Data is immediately available\n if (typeof futureAccountData.then !== 'function') {\n angular.extend(this, futureAccountData);\n _.each(this.identities, function(identity) {\n if (identity.fullName)\n identity.full = identity.fullName + ' <' + identity.email + '>';\n else\n identity.full = '<' + identity.email + '>';\n });\n Account.$log.debug('Account: ' + JSON.stringify(futureAccountData, undefined, 2));\n }\n else {\n // The promise will be unwrapped first\n //this.$unwrap(futureAccountData);\n }\n }\n\n /**\n * @memberof Account\n * @desc The factory we'll use to register with Angular\n * @returns the Account constructor\n */\n Account.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Preferences', 'Mailbox', 'Message', function($q, $timeout, $log, Settings, Resource, Preferences, Mailbox, Message) {\n angular.extend(Account, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser()),\n $Preferences: Preferences,\n $Mailbox: Mailbox,\n $Message: Message\n });\n\n return Account; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of Account in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .factory('Account', Account.$factory);\n\n /**\n * @memberof Account\n * @desc Set the list of accounts and instanciate a new Account object for each item.\n * @param {array} [data] - the metadata of the accounts\n * @returns the list of accounts\n */\n Account.$findAll = function(data) {\n if (!data) {\n return Account.$$resource.fetch('', 'mailAccounts').then(function(o) {\n return Account.$unwrapCollection(o);\n });\n }\n return Account.$unwrapCollection(data);\n };\n\n /**\n * @memberof Account\n * @desc Unwrap to a collection of Account instances.\n * @param {object} data - the accounts information\n * @returns a collection of Account objects\n */\n Account.$unwrapCollection = function(data) {\n var collection = [];\n\n angular.forEach(data, function(o, i) {\n o.id = i;\n collection[i] = new Account(o);\n });\n return collection;\n };\n\n /**\n * @function $getMailboxes\n * @memberof Account.prototype\n * @desc Fetch the list of mailboxes for the current account.\n * @param {object} [options] - force a reload by setting 'reload' to true\n * @returns a promise of the HTTP operation\n */\n Account.prototype.$getMailboxes = function(options) {\n var _this = this;\n\n if (this.$mailboxes && !(options && options.reload)) {\n return Account.$q.when(this.$mailboxes);\n }\n else {\n return Account.$Mailbox.$find(this).then(function(data) {\n _this.$mailboxes = data;\n\n // Set expanded folders from user's settings\n Account.$Preferences.ready().then(function() {\n var expandedFolders,\n _visit = function(mailboxes) {\n _.forEach(mailboxes, function(o) {\n o.$expanded = (expandedFolders.indexOf('/' + o.id) >= 0);\n if (o.children && o.children.length > 0) {\n _visit(o.children);\n }\n });\n };\n if (Account.$Preferences.settings.Mail.ExpandedFolders) {\n if (angular.isString(Account.$Preferences.settings.Mail.ExpandedFolders))\n // Backward compatibility support\n expandedFolders = angular.fromJson(Account.$Preferences.settings.Mail.ExpandedFolders);\n else\n expandedFolders = Account.$Preferences.settings.Mail.ExpandedFolders;\n if (expandedFolders.length > 0) {\n _visit(_this.$mailboxes);\n }\n }\n _this.$flattenMailboxes({reload: true});\n });\n\n return _this.$mailboxes;\n });\n }\n };\n\n /**\n * @function $flattenMailboxes\n * @memberof Account.prototype\n * @desc Get a flatten array of the mailboxes.\n * @param {object} [options] - force a reload\n * @returns an array of Mailbox instances\n */\n Account.prototype.$flattenMailboxes = function(options) {\n var _this = this,\n allMailboxes = [],\n expandedMailboxes = [],\n _visit = function(mailboxes) {\n _.each(mailboxes, function(o) {\n allMailboxes.push(o);\n if ((options && options.all || o.$expanded) && o.children && o.children.length > 0) {\n _visit(o.children);\n }\n });\n };\n\n if (this.$$flattenMailboxes && !(options && (options.reload || options.all))) {\n allMailboxes = this.$$flattenMailboxes;\n }\n else {\n _visit(this.$mailboxes);\n _this.$$flattenMailboxes = allMailboxes;\n if (options && options.saveState) {\n _.reduce(allMailboxes, function(expandedFolders, mailbox) {\n if (mailbox.$expanded) {\n expandedFolders.push('/' + mailbox.id);\n }\n return expandedFolders;\n }, expandedMailboxes);\n Account.$$resource.post(null, 'saveFoldersState', expandedMailboxes);\n }\n }\n\n return allMailboxes;\n };\n\n Account.prototype.$getMailboxByType = function(type) {\n var mailbox,\n // Recursive find function\n _find = function(mailboxes) {\n var mailbox = _.find(mailboxes, function(o) {\n return o.type == type;\n });\n if (!mailbox) {\n angular.forEach(mailboxes, function(o) {\n if (!mailbox && o.children && o.children.length > 0) {\n mailbox = _find(o.children);\n }\n });\n }\n return mailbox;\n };\n mailbox = _find(this.$mailboxes);\n\n console.debug(mailbox);\n console.debug(this.specialMailboxes);\n };\n\n /**\n * @function $getMailboxByPath\n * @memberof Account.prototype\n * @desc Recursively find a mailbox using its path\n * @returns a promise of the HTTP operation\n */\n Account.prototype.$getMailboxByPath = function(path) {\n var mailbox = null,\n // Recursive find function\n _find = function(mailboxes) {\n var mailbox = _.find(mailboxes, function(o) {\n return o.path == path;\n });\n if (!mailbox) {\n angular.forEach(mailboxes, function(o) {\n if (!mailbox && o.children && o.children.length > 0) {\n mailbox = _find(o.children);\n }\n });\n }\n return mailbox;\n };\n mailbox = _find(this.$mailboxes);\n\n return mailbox;\n };\n\n /**\n * @function $newMailbox\n * @memberof Account.prototype\n * @desc Create a new mailbox on the server and refresh the list of mailboxes.\n * @returns a promise of the HTTP operations\n */\n Account.prototype.$newMailbox = function(path, name) {\n var _this = this;\n\n return Account.$$resource.post(path.toString(), 'createFolder', {name: name}).then(function() {\n _this.$getMailboxes({reload: true});\n });\n };\n\n /**\n * @function $newMessage\n * @memberof Account.prototype\n * @desc Prepare a new Message object associated to the appropriate mailbox.\n * @returns a promise of the HTTP operations\n */\n Account.prototype.$newMessage = function() {\n var _this = this;\n\n // Query account for draft folder and draft UID\n return Account.$$resource.fetch(this.id.toString(), 'compose').then(function(data) {\n Account.$log.debug('New message (compose): ' + JSON.stringify(data, undefined, 2));\n var message = new Account.$Message(data.accountId, _this.$getMailboxByPath(data.mailboxPath), data);\n return message;\n }).then(function(message) {\n // Fetch draft initial data\n return Account.$$resource.fetch(message.$absolutePath({asDraft: true}), 'edit').then(function(data) {\n Account.$log.debug('New message (edit): ' + JSON.stringify(data, undefined, 2));\n angular.extend(message.editable, data);\n return message;\n });\n });\n };\n\n /**\n * @function $addDelegate\n * @memberof Account.prototype\n * @param {Object} user - a User object with minimal set of attributes (uid, isGroup, cn, c_email)\n * @desc Remove a user from the account's delegates\n * @see {@link User.$filter}\n */\n Account.prototype.$addDelegate = function(user) {\n var _this = this,\n deferred = Account.$q.defer(),\n param = {uid: user.uid};\n if (!user.uid || _.indexOf(_.pluck(this.delegates, 'uid'), user.uid) > -1) {\n // No UID specified or user already in delegates\n deferred.resolve();\n }\n else {\n Account.$$resource.fetch(this.id.toString(), 'addDelegate', param).then(function() {\n _this.delegates.push(user);\n deferred.resolve(_this.users);\n }, function(data, status) {\n deferred.reject(l('An error occured please try again.'));\n });\n }\n return deferred.promise;\n };\n\n /**\n * @function $removeDelegate\n * @memberof Account.prototype\n * @param {Object} user - a User object with minimal set of attributes (uid, isGroup, cn, c_email)\n * @desc Remove a user from the account's delegates\n * @return a promise of the server call to remove the user from the account's delegates\n */\n Account.prototype.$removeDelegate = function(uid) {\n var _this = this,\n param = {uid: uid};\n return Account.$$resource.fetch(this.id.toString(), 'removeDelegate', param).then(function() {\n var i = _.indexOf(_.pluck(_this.delegates, 'uid'), uid);\n if (i >= 0) {\n _this.delegates.splice(i, 1);\n }\n });\n };\n \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Mailbox\n * @constructor\n * @param {object} futureMailboxData - either an object literal or a promise\n */\n function Mailbox(account, futureMailboxData) {\n this.$account = account;\n // Data is immediately available\n if (typeof futureMailboxData.then !== 'function') {\n this.init(futureMailboxData);\n if (this.name && !this.path) {\n // Create a new mailbox on the server\n var newMailboxData = Mailbox.$$resource.create('createFolder', this.name);\n this.$unwrap(newMailboxData);\n }\n }\n else {\n // The promise will be unwrapped first\n // NOTE: this condition never happen for the moment\n this.$unwrap(futureMailboxData);\n }\n }\n\n /**\n * @memberof Mailbox\n * @desc The factory we'll use to register with Angular\n * @returns the Mailbox constructor\n */\n Mailbox.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Message', 'Acl', 'Preferences', 'sgMailbox_PRELOAD', function($q, $timeout, $log, Settings, Resource, Message, Acl, Preferences, PRELOAD) {\n angular.extend(Mailbox, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser()),\n $Message: Message,\n $$Acl: Acl,\n $Preferences: Preferences,\n $query: { sort: 'date', asc: 0 },\n selectedFolder: null,\n $refreshTimeout: null,\n $virtualMode: false,\n PRELOAD: PRELOAD\n });\n // Initialize sort parameters from user's settings\n Preferences.ready().then(function() {\n if (Preferences.settings.Mail.SortingState) {\n Mailbox.$query.sort = Preferences.settings.Mail.SortingState[0];\n Mailbox.$query.asc = parseInt(Preferences.settings.Mail.SortingState[1]);\n }\n });\n\n return Mailbox; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of Mailbox in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .constant('sgMailbox_PRELOAD', {\n LOOKAHEAD: 50,\n SIZE: 100\n })\n .factory('Mailbox', Mailbox.$factory);\n\n /**\n * @memberof Mailbox\n * @desc Fetch list of mailboxes of a specific account\n * @param {string} accountId - the account\n * @return a promise of the HTTP operation\n * @see {@link Account.$getMailboxes}\n */\n Mailbox.$find = function(account) {\n var path, futureMailboxData;\n\n futureMailboxData = this.$$resource.fetch(account.id.toString(), 'view');\n\n return Mailbox.$unwrapCollection(account, futureMailboxData); // a collection of mailboxes\n };\n\n /**\n * @memberof Mailbox\n * @desc Unwrap to a collection of Mailbox instances.\n * @param {string} account - the account\n * @param {promise} futureMailboxData - a promise of the mailboxes metadata\n * @returns a promise of a collection of Mailbox objects\n */\n Mailbox.$unwrapCollection = function(account, futureMailboxData) {\n var collection = [],\n // Local recursive function\n createMailboxes = function(level, mailbox) {\n for (var i = 0; i < mailbox.children.length; i++) {\n mailbox.children[i].level = level;\n mailbox.children[i] = new Mailbox(account, mailbox.children[i]);\n createMailboxes(level+1, mailbox.children[i]);\n }\n };\n //collection.$futureMailboxData = futureMailboxData;\n\n return futureMailboxData.then(function(data) {\n return Mailbox.$timeout(function() {\n // Each entry is spun up as a Mailbox instance\n angular.forEach(data.mailboxes, function(data, index) {\n data.level = 0;\n var mailbox = new Mailbox(account, data);\n createMailboxes(1, mailbox); // recursively create all sub-mailboxes\n collection.push(mailbox);\n });\n return collection;\n });\n });\n };\n\n /**\n * @memberof Mailbox\n * @desc Build the path of the mailbox (or account only).\n * @param {string} accountId - the account ID\n * @param {string} [mailboxPath] - the mailbox path\n * @returns a string representing the path relative to the mail module\n */\n Mailbox.$absolutePath = function(accountId, mailboxPath) {\n var path = [];\n\n if (mailboxPath) {\n path = _.map(mailboxPath.split('/'), function(component) {\n return 'folder' + component.asCSSIdentifier();\n });\n }\n\n path.splice(0, 0, accountId); // insert account ID\n\n return path.join('/');\n };\n\n /**\n * @function init\n * @memberof Mailbox.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of mailbox\n */\n Mailbox.prototype.init = function(data) {\n var _this = this;\n this.$isLoading = true;\n this.$messages = [];\n this.uidsMap = {};\n angular.extend(this, data);\n if (this.path) {\n this.id = this.$id();\n this.$acl = new Mailbox.$$Acl('Mail/' + this.id);\n }\n if (this.type) {\n this.$isEditable = this.isEditable();\n }\n if (angular.isUndefined(this.$shadowData)) {\n // Make a copy of the data for an eventual reset\n this.$shadowData = this.$omit();\n }\n };\n\n /**\n * @function getLength\n * @memberof Mailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the number of items in the mailbox\n */\n Mailbox.prototype.getLength = function() {\n return this.$messages.length;\n };\n\n /**\n * @function getItemAtIndex\n * @memberof Mailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the message as the specified index\n */\n Mailbox.prototype.getItemAtIndex = function(index) {\n var message;\n\n if (index >= 0 && index < this.$messages.length) {\n message = this.$messages[index];\n\n if (this.$loadMessage(message.uid))\n return message;\n }\n\n return null;\n };\n\n /**\n * @function $id\n * @memberof Mailbox.prototype\n * @desc Build the unique ID to identified the mailbox.\n * @returns a string representing the path relative to the mail module\n */\n Mailbox.prototype.$id = function() {\n return Mailbox.$absolutePath(this.$account.id, this.path);\n };\n\n /**\n * @function $selectedCount\n * @memberof Mailbox.prototype\n * @desc Return the number of messages selected by the user.\n * @returns the number of selected messages\n */\n Mailbox.prototype.$selectedCount = function() {\n var count;\n\n count = 0;\n if (this.$messages) {\n count = (_.filter(this.$messages, function(message) { return message.selected; })).length;\n }\n return count;\n };\n\n /**\n * @function isSelectedMessage\n * @memberof Mailbox.prototype\n * @desc Check if the specified message is selected.\n * @param {string} messageId\n * @returns true if the specified message is selected\n */\n Mailbox.prototype.isSelectedMessage = function(messageId) {\n return this.selectedMessage == messageId;\n };\n\n /**\n * @function $filter\n * @memberof Mailbox.prototype\n * @desc Fetch the messages metadata of the mailbox\n * @param {object} [sort] - sort preferences. Defaults to descendent by date.\n * @param {string} sort.match - either AND or OR\n * @param {string} sort.sort - either arrival, subject, from, to, date, or size\n * @param {boolean} sort.asc - sort is ascendant if true\n * @param {object[]} [filters] - list of filters for the query\n * @param {string} filters.searchBy - either subject, from, to, cc, or body\n * @param {string} filters.searchInput - the search string to match\n * @param {boolean} filters.negative - negate the condition\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$filter = function(sortingAttributes, filters) {\n var _this = this, options = {};\n\n if (!angular.isDefined(this.unseenCount))\n this.unseenCount = 0;\n\n this.$isLoading = true;\n\n return Mailbox.$Preferences.ready().then(function() {\n\n if (Mailbox.$refreshTimeout)\n Mailbox.$timeout.cancel(Mailbox.$refreshTimeout);\n\n if (sortingAttributes)\n // Sorting preferences are common to all mailboxes\n angular.extend(Mailbox.$query, sortingAttributes);\n\n angular.extend(options, { sortingAttributes: Mailbox.$query });\n if (angular.isDefined(filters)) {\n options.filters = _.reject(filters, function(filter) {\n return angular.isUndefined(filter.searchInput) || filter.searchInput.length === 0;\n });\n _.each(options.filters, function(filter) {\n var secondFilter,\n match = filter.searchBy.match(/(\\w+)_or_(\\w+)/);\n if (match) {\n options.sortingAttributes.match = 'OR';\n filter.searchBy = match[1];\n secondFilter = angular.copy(filter);\n secondFilter.searchBy = match[2];\n options.filters.push(secondFilter);\n }\n });\n }\n\n // Restart the refresh timer, if needed\n if (!Mailbox.$virtualMode) {\n var refreshViewCheck = Mailbox.$Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually') {\n var f = angular.bind(_this, Mailbox.prototype.$filter);\n Mailbox.$refreshTimeout = Mailbox.$timeout(f, refreshViewCheck.timeInterval()*1000);\n }\n }\n\n var futureMailboxData = Mailbox.$$resource.post(_this.id, 'view', options);\n return _this.$unwrap(futureMailboxData);\n });\n };\n\n /**\n * @function $loadMessage\n * @memberof Mailbox.prototype\n * @desc Check if the message is loaded and in any case, fetch more messages headers from the server.\n * @returns true if the message metadata are already fetched\n */\n Mailbox.prototype.$loadMessage = function(messageId) {\n var startIndex = this.uidsMap[messageId],\n endIndex,\n max = this.$messages.length,\n loaded = false,\n uids,\n futureHeadersData;\n if (angular.isDefined(this.uidsMap[messageId]) && startIndex < this.$messages.length) {\n // Index is valid\n if (angular.isDefined(this.$messages[startIndex].subject)) {// || this.$messages[startIndex].loading) {\n // Message headers are loaded or data is coming\n loaded = true;\n }\n\n // Preload more headers if possible\n endIndex = Math.min(startIndex + Mailbox.PRELOAD.LOOKAHEAD, max - 1);\n if (!angular.isDefined(this.$messages[endIndex].subject) &&\n !angular.isDefined(this.$messages[endIndex].loading)) {\n endIndex = Math.min(startIndex + Mailbox.PRELOAD.SIZE, max);\n for (uids = []; startIndex < endIndex && startIndex < max; startIndex++) {\n if (angular.isDefined(this.$messages[startIndex].subject) || this.$messages[startIndex].loading) {\n // Message at this index is already loaded; increase the end index\n endIndex++;\n }\n else {\n // Message at this index will be loaded\n uids.push(this.$messages[startIndex].uid);\n this.$messages[startIndex].loading = true;\n }\n }\n\n Mailbox.$log.debug('Loading UIDs ' + uids.join(' '));\n futureHeadersData = Mailbox.$$resource.post(this.id, 'headers', {uids: uids});\n this.$unwrapHeaders(futureHeadersData);\n }\n }\n return loaded;\n };\n\n /**\n * @function isEditable\n * @memberof Mailbox.prototype\n * @desc Checks if the mailbox is editable based on its type.\n * @returns true if the mailbox is not a special folder.\n */\n Mailbox.prototype.isEditable = function() {\n return this.type == 'folder';\n };\n\n /**\n * @function $rename\n * @memberof AddressBook.prototype\n * @desc Rename the addressbook and keep the list sorted\n * @param {string} name - the new name\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$rename = function() {\n var _this = this,\n findParent,\n parent,\n children,\n i;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n return Mailbox.$q.when();\n }\n\n // Local recursive function\n findParent = function(parent, children) {\n var parentMailbox = null,\n mailbox = _.find(children, function(o) {\n return o.path == _this.path;\n });\n if (mailbox) {\n parentMailbox = parent;\n }\n else {\n angular.forEach(children, function(o) {\n if (!parentMailbox && o.children && o.children.length > 0) {\n parentMailbox = findParent(o, o.children);\n }\n });\n }\n return parentMailbox;\n };\n\n // Find mailbox parent\n parent = findParent(null, this.$account.$mailboxes);\n if (parent === null)\n children = this.$account.$mailboxes;\n else\n children = parent.children;\n\n // Find index of mailbox among siblings\n i = _.indexOf(_.pluck(children, 'id'), this.id);\n\n return this.$save().then(function(data) {\n var sibling;\n angular.extend(_this, data); // update the path attribute\n _this.id = _this.$id();\n\n // Move mailbox among its siblings according to its new name\n children.splice(i, 1);\n sibling = _.find(children, function(o) {\n Mailbox.$log.debug(o.name + ' ? ' + _this.name);\n return (o.type == 'folder' && o.name.localeCompare(_this.name) > 0);\n });\n if (sibling) {\n i = _.indexOf(_.pluck(children, 'id'), sibling.id);\n }\n else {\n i = children.length;\n }\n children.splice(i, 0, _this);\n });\n };\n\n /**\n * @function $compact\n * @memberof Mailbox.prototype\n * @desc Compact the mailbox\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$compact = function() {\n return Mailbox.$$resource.post(this.id, 'expunge');\n };\n\n /**\n * @function $setFolderAs\n * @memberof Mailbox.prototype\n * @desc Set a folder as Drafts/Sent/Trash\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$setFolderAs = function(type) {\n return Mailbox.$$resource.post(this.id, 'setAs' + type + 'Folder');\n };\n\n /**\n * @function $emptyTrash\n * @memberof Mailbox.prototype\n * @desc Empty the Trash folder.\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$emptyTrash = function() {\n var _this = this;\n\n return Mailbox.$$resource.post(this.id, 'emptyTrash').then(function() {\n // Remove all messages from the mailbox\n _this.$messages = [];\n _this.uidsMap = {};\n _this.unseenCount = 0;\n\n // If we had any submailboxes, lets do a refresh of the mailboxes list\n if (angular.isDefined(_this.children) && _this.children.length)\n _this.$account.$getMailboxes({reload: true});\n });\n };\n\n /**\n * @function $markAsRead\n * @memberof Mailbox.prototype\n * @desc Mark all messages from folder as read\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$markAsRead = function() {\n return Mailbox.$$resource.post(this.id, 'markRead');\n };\n\n /**\n * @function $flagMessages\n * @memberof Mailbox.prototype\n * @desc Add or remove a flag on a message set\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$flagMessages = function(uids, flags, operation) {\n var data = {msgUIDs: uids,\n flags: flags,\n operation: operation};\n\n return Mailbox.$$resource.post(this.id, 'addOrRemoveLabel', data);\n };\n\n /**\n * @function $delete\n * @memberof Mailbox.prototype\n * @desc Delete the mailbox from the server\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$delete = function() {\n var _this = this;\n\n return Mailbox.$$resource.remove(this.id)\n .then(function() {\n _this.$account.$getMailboxes({reload: true});\n return true;\n });\n };\n\n /**\n * @function $deleteMessages\n * @memberof Mailbox.prototype\n * @desc Delete multiple messages from mailbox.\n * @return a promise of the HTTP operation\n */\n Mailbox.prototype.$deleteMessages = function(uids) {\n return Mailbox.$$resource.post(this.id, 'batchDelete', {uids: uids});\n };\n\n /**\n * @function $copyMessages\n * @memberof Mailbox.prototype\n * @desc Copy multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n Mailbox.prototype.$copyMessages = function(uids, folder) {\n return Mailbox.$$resource.post(this.id, 'copyMessages', {uids: uids, folder: folder});\n };\n\n /**\n * @function $moveMessages\n * @memberof Mailbox.prototype\n * @desc Move multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n Mailbox.prototype.$moveMessages = function(uids, folder) {\n return Mailbox.$$resource.post(this.id, 'moveMessages', {uids: uids, folder: folder});\n };\n \n /**\n * @function $reset\n * @memberof Mailbox.prototype\n * @desc Reset the original state the mailbox's data.\n */\n Mailbox.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key != 'children' && key[0] != '$') {\n delete _this[key];\n }\n });\n angular.extend(this, this.$shadowData);\n this.$shadowData = this.$omit();\n };\n\n /**\n * @function $save\n * @memberof Mailbox.prototype\n * @desc Save the mailbox to the server. This currently can only affect the name of the mailbox.\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$save = function() {\n var _this = this;\n\n return Mailbox.$$resource.save(this.id, this.$omit()).then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit();\n Mailbox.$log.debug(JSON.stringify(data, undefined, 2));\n return data;\n }, function(data) {\n Mailbox.$log.error(JSON.stringify(data, undefined, 2));\n // Restore previous version\n _this.$reset();\n });\n };\n\n /**\n * @function $newMailbox\n * @memberof Mailbox.prototype\n * @desc Create a new mailbox on the server and refresh the list of mailboxes.\n * @returns a promise of the HTTP operations\n */\n Mailbox.prototype.$newMailbox = function(path, name) {\n return this.$account.$newMailbox(path, name);\n };\n\n /**\n * @function $omit\n * @memberof Mailbox.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Mailbox instance\n */\n Mailbox.prototype.$omit = function() {\n var mailbox = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' &&\n key != 'children' &&\n key[0] != '$') {\n mailbox[key] = value;\n }\n });\n return mailbox;\n };\n\n /**\n * @function $unwrap\n * @memberof Mailbox.prototype\n * @desc Unwrap a promise and instanciate new Message objects using received data.\n * @param {promise} futureMailboxData - a promise of the Mailbox's metadata\n * @returns a promise of the HTTP operation\n */\n Mailbox.prototype.$unwrap = function(futureMailboxData) {\n var _this = this,\n deferred = Mailbox.$q.defer();\n\n this.$futureMailboxData = futureMailboxData;\n this.$futureMailboxData.then(function(data) {\n Mailbox.$timeout(function() {\n var uids, headers;\n\n _this.init(data);\n\n if (_this.uids) {\n Mailbox.$log.debug('unwrapping ' + data.uids.length + ' messages');\n\n // First entry of 'headers' are keys\n headers = _.invoke(_this.headers[0], 'toLowerCase');\n _this.headers.splice(0, 1);\n\n // First entry of 'uids' are keys when threaded view is enabled\n if (_this.threaded) {\n uids = _this.uids[0];\n _this.uids.splice(0, 1);\n }\n\n // Instanciate Message objects\n _.reduce(_this.uids, function(msgs, msg, i) {\n var data;\n if (_this.threaded)\n data = _.object(uids, msg);\n else\n data = {uid: msg.toString()};\n\n // Build map of UID <=> index\n _this.uidsMap[data.uid] = i;\n\n msgs.push(new Mailbox.$Message(_this.$account.id, _this, data, true));\n\n return msgs;\n }, _this.$messages);\n\n // Extend Message objects with received headers\n _.each(_this.headers, function(data) {\n var msg = _.object(headers, data),\n i = _this.uidsMap[msg.uid.toString()];\n _.extend(_this.$messages[i], msg);\n });\n }\n Mailbox.$log.debug('mailbox ' + _this.id + ' ready');\n _this.$isLoading = false;\n deferred.resolve(_this.$messages);\n });\n }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n deferred.reject();\n });\n\n return deferred.promise;\n };\n\n /**\n * @function $unwrapHeaders\n * @memberof Mailbox.prototype\n * @desc Unwrap a promise and extend matching Message objects using received data.\n * @param {promise} futureHeadersData - a promise of some messages metadata\n */\n Mailbox.prototype.$unwrapHeaders = function(futureHeadersData) {\n var _this = this;\n\n futureHeadersData.then(function(data) {\n Mailbox.$timeout(function() {\n var headers, j;\n if (data.length > 0) {\n // First entry of 'headers' are keys\n headers = _.invoke(data[0], 'toLowerCase');\n data.splice(0, 1);\n _.each(data, function(messageHeaders) {\n messageHeaders = _.object(headers, messageHeaders);\n j = _this.uidsMap[messageHeaders.uid.toString()];\n if (angular.isDefined(j)) {\n _.extend(_this.$messages[j], messageHeaders);\n }\n });\n }\n });\n });\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Message\n * @constructor\n * @param {string} accountId - the account ID\n * @param {string} mailboxPath - an array of the mailbox path components\n * @param {object} futureAddressBookData - either an object literal or a promise\n * @param {bool} lazy - do \"lazy loading\" so we are very quick at initializing message instances\n */\n function Message(accountId, mailbox, futureMessageData, lazy) {\n this.accountId = accountId;\n this.$mailbox = mailbox;\n this.$hasUnsafeContent = false;\n this.$loadUnsafeContent = false;\n this.$showDetailedRecipients = false;\n this.editable = {to: [], cc: [], bcc: []};\n this.selected = false;\n\n // Data is immediately available\n if (typeof futureMessageData.then !== 'function') {\n //console.debug(JSON.stringify(futureMessageData, undefined, 2));\n if (angular.isDefined(lazy) && lazy) {\n this.uid = futureMessageData.uid;\n }\n else {\n angular.extend(this, futureMessageData);\n this.$formatFullAddresses();\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureMessageData);\n }\n }\n\n /**\n * @memberof Message\n * @desc The factory we'll use to register with Angular\n * @returns the Message constructor\n */\n Message.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Gravatar', 'Resource', 'Preferences', function($q, $timeout, $log, Settings, Gravatar, Resource, Preferences) {\n angular.extend(Message, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $gravatar: Gravatar,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Mail', Settings.activeUser())\n });\n // Initialize tags form user's defaults\n Preferences.ready().then(function() {\n if (Preferences.defaults.SOGoMailLabelsColors) {\n Message.$tags = Preferences.defaults.SOGoMailLabelsColors;\n }\n if (Preferences.defaults.SOGoMailDisplayRemoteInlineImages &&\n Preferences.defaults.SOGoMailDisplayRemoteInlineImages == 'always') {\n Message.$displayRemoteInlineImages = true;\n }\n });\n\n return Message; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of Message in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .factory('Message', Message.$factory);\n\n /**\n * @function filterTags\n * @memberof Message.prototype\n * @desc Search for tags (ie., mail labels) matching some criterias\n * @param {string} search - the search string to match\n * @returns a collection of strings\n */\n Message.filterTags = function(query) {\n var re = new RegExp(query, 'i'),\n results = [];\n\n _.forEach(_.keys(Message.$tags), function(tag) {\n var pair = Message.$tags[tag];\n if (pair[0].search(re) != -1) {\n results.push({ name: tag, description: pair[0], color: pair[1] });\n }\n });\n return results;\n };\n\n /**\n * @function $absolutePath\n * @memberof Message.prototype\n * @desc Build the path of the message\n * @returns a string representing the path relative to the mail module\n */\n Message.prototype.$absolutePath = function(options) {\n if (angular.isUndefined(this.id) || options) {\n var path;\n path = _.map(this.$mailbox.path.split('/'), function(component) {\n return 'folder' + component.asCSSIdentifier();\n });\n path.splice(0, 0, this.accountId); // insert account ID\n if (options && options.asDraft && this.draftId) {\n path.push(this.draftId); // add draft ID\n }\n else {\n path.push(this.uid); // add message UID\n }\n\n this.id = path.join('/');\n }\n\n return this.id;\n };\n\n /**\n * @function $setUID\n * @memberof Message.prototype\n * @desc Change the UID of the message. This happens when saving a draft.\n * @param {number} uid - the new message UID\n */\n Message.prototype.$setUID = function(uid) {\n var oldUID = this.uid || -1;\n\n if (oldUID != uid) {\n this.uid = uid;\n if (oldUID > -1 && this.$mailbox.uidsMap[oldUID]) {\n this.$mailbox.uidsMap[uid] = this.$mailbox.uidsMap[oldUID];\n this.$mailbox.uidsMap[oldUID] = null;\n }\n }\n };\n\n /**\n * @function $formatFullAddresses\n * @memberof Message.prototype\n * @desc Format all sender and recipients addresses with a complete description (name ).\n * This function also generates a gravatar for each email address, and a short name\n */\n Message.prototype.$formatFullAddresses = function() {\n var _this = this;\n var identities = _.pluck(_this.$mailbox.$account.identities, 'email');\n\n // Build long representation of email addresses\n _.each(['from', 'to', 'cc', 'bcc', 'reply-to'], function(type) {\n _.each(_this[type], function(data, i) {\n if (data.name && data.name != data.email) {\n data.full = data.name + ' <' + data.email + '>';\n\n // If we have \"Alice Foo\" as name, we grab \"Alice\"\n if (data.name.split(' ').length)\n data.shortname = data.name.split(' ')[0].replace('\\'','');\n }\n else {\n data.full = '<' + data.email + '>';\n data.shortname = data.email.split('@')[0];\n }\n\n // Generate the gravatar\n data.image = Message.$gravatar(data.email, 32);\n\n // If the current user is the recepient, overwrite\n // the short name with 'me'\n if (_.indexOf(identities, data.email) >= 0)\n data.shortname = l('me');\n });\n });\n };\n\n /**\n * @function $shortRecipients\n * @memberof Message.prototype\n * @desc Format all recipients into a very compact string\n * @returns a compacted string of all recipients\n */\n Message.prototype.$shortRecipients = function() {\n var _this = this;\n var result = [];\n\n // Build long representation of email addresses\n _.each(['to', 'cc', 'bcc'], function(type) {\n _.each(_this[type], function(data, i) {\n result.push(data.shortname);\n });\n });\n\n return result.join(', ');\n };\n\n /**\n * @function $shortAddress\n * @memberof Message.prototype\n * @desc Format the first address of a specific type with a short description.\n * @returns a string of the name or the email of the envelope address type\n */\n Message.prototype.$shortAddress = function(type) {\n var address = '';\n if (this[type] && this[type].length > 0) {\n address = this[type][0].name || this[type][0].email || '';\n }\n\n return address;\n };\n\n /**\n * @function loadUnsafeContent\n * @memberof Message.prototype\n * @desc Mark the message to load unsafe resources when calling $content().\n */\n Message.prototype.loadUnsafeContent = function() {\n this.$loadUnsafeContent = true;\n };\n\n /**\n * @function showDetailedRecipients\n * @memberof Message.prototype\n * @desc Mark the message to show all to/cc recipients.\n */\n Message.prototype.showDetailedRecipients = function() {\n this.$showDetailedRecipients = true;\n };\n\n /**\n * @function $content\n * @memberof Message.prototype\n * @desc Get the message body as accepted by SCE (Angular Strict Contextual Escaping).\n * @returns the HTML representation of the body\n */\n Message.prototype.$content = function() {\n var _this = this,\n parts = [],\n _visit = function(part) {\n part.msgclass = 'msg-attachment-other';\n if (part.type == 'UIxMailPartAlternativeViewer') {\n _visit(_.find(part.content, function(alternatePart) {\n return part.preferredPart == alternatePart.contentType;\n }));\n }\n // Can be used for UIxMailPartMixedViewer and UIxMailPartMessageViewer\n else if (angular.isArray(part.content)) {\n _.each(part.content, function(mixedPart) {\n _visit(mixedPart);\n });\n }\n else {\n if (angular.isUndefined(part.safeContent)) {\n // Keep a copy of the original content\n part.safeContent = part.content;\n _this.$hasUnsafeContent |= (part.safeContent.indexOf(' unsafe-') > -1);\n }\n if (part.type == 'UIxMailPartHTMLViewer') {\n part.html = true;\n if (_this.$loadUnsafeContent || Message.$displayRemoteInlineImages) {\n if (angular.isUndefined(part.unsafeContent)) {\n part.unsafeContent = document.createElement('div');\n part.unsafeContent.innerHTML = part.safeContent;\n angular.forEach(['src', 'data', 'classid', 'background', 'style'], function(suffix) {\n var elements = part.unsafeContent.querySelectorAll('[unsafe-' + suffix + ']'),\n element,\n value,\n i;\n for (i = 0; i < elements.length; i++) {\n element = angular.element(elements[i]);\n value = element.attr('unsafe-' + suffix);\n element.attr(suffix, value);\n element.removeAttr('unsafe-' + suffix);\n }\n });\n _this.$hasUnsafeContent = false;\n }\n part.content = part.unsafeContent.innerHTML;\n }\n else {\n part.content = part.safeContent;\n }\n parts.push(part);\n }\n else if (part.type == 'UIxMailPartICalViewer' ||\n part.type == 'UIxMailPartImageViewer' ||\n part.type == 'UIxMailPartLinkViewer') {\n\n // UIxMailPartICalViewer injects 'participants'\n if (part.participants) {\n _.each(part.participants, function(participant) {\n participant.image = Message.$gravatar(participant.email, 32);\n });\n }\n\n if (part.type == 'UIxMailPartImageViewer')\n part.msgclass = 'msg-attachment-image';\n\n // Trusted content that can be compiled (Angularly-speaking)\n part.compile = true;\n parts.push(part);\n }\n else {\n part.html = true;\n part.content = part.safeContent;\n parts.push(part);\n }\n }\n };\n _visit(this.parts);\n\n return parts;\n };\n\n /**\n * @function $editableContent\n * @memberof Message.prototype\n * @desc First, fetch the draft ID that corresponds to the temporary draft object on the SOGo server.\n * Secondly, fetch the editable message body along with other metadata such as the recipients.\n * @returns the HTML representation of the body\n */\n Message.prototype.$editableContent = function() {\n var _this = this;\n\n return Message.$$resource.fetch(this.$absolutePath(), 'edit').then(function(data) {\n angular.extend(_this, data);\n return Message.$$resource.fetch(_this.$absolutePath({asDraft: true}), 'edit').then(function(data) {\n Message.$log.debug('editable = ' + JSON.stringify(data, undefined, 2));\n angular.extend(_this.editable, data);\n return data.text;\n });\n });\n };\n\n /**\n * @function addTag\n * @memberof Message.prototype\n * @desc Add a mail tag on the current message.\n * @param {string} tag - the tag name\n * @returns a promise of the HTTP operation\n */\n Message.prototype.addTag = function(tag) {\n return this.$addOrRemoveTag('add', tag);\n };\n\n /**\n * @function removeTag\n * @memberof Message.prototype\n * @desc Remove a mail tag from the current message.\n * @param {string} tag - the tag name\n * @returns a promise of the HTTP operation\n */\n Message.prototype.removeTag = function(tag) {\n return this.$addOrRemoveTag('remove', tag);\n };\n\n /**\n * @function $addOrRemoveTag\n * @memberof Message.prototype\n * @desc Add or remove a mail tag on the current message.\n * @param {string} operation - the operation name to perform\n * @param {string} tag - the tag name\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$addOrRemoveTag = function(operation, tag) {\n var data = {\n operation: operation,\n msgUIDs: [this.uid],\n flags: tag\n };\n\n if (tag)\n return Message.$$resource.post(this.$mailbox.$id(), 'addOrRemoveLabel', data);\n };\n\n /**\n * @function $imipAction\n * @memberof Message.prototype\n * @desc Perform IMIP actions on the current message.\n * @param {string} path - the path of the IMIP calendar part \n * @param {string} action - the the IMIP action to perform\n * @param {object} data - the delegation info \n */\n Message.prototype.$imipAction = function(path, action, data) {\n var _this = this;\n Message.$$resource.post([this.$absolutePath(), path].join('/'), action, data).then(function(data) {\n Message.$timeout(function() {\n _this.$reload();\n }, function() {\n // TODO: show toast\n });\n });\n };\n\n /**\n * @function $sendMDN\n * @memberof Message.prototype\n * @desc Send MDN response for current email message\n */\n Message.prototype.$sendMDN = function() {\n this.shouldAskReceipt = 0;\n return Message.$$resource.post(this.$absolutePath(), 'sendMDN');\n };\n\n /**\n * @function $deleteAttachment\n * @memberof Message.prototype\n * @desc Delete an attachment from a message being composed\n * @param {string} filename - the filename of the attachment to delete\n */\n Message.prototype.$deleteAttachment = function(filename) {\n var action = 'deleteAttachment?filename=' + filename;\n var _this = this;\n Message.$$resource.post(this.$absolutePath({asDraft: true}), action).then(function(data) {\n Message.$timeout(function() {\n _this.editable.attachmentAttrs = _.filter(_this.editable.attachmentAttrs, function(attachment) {\n return attachment.filename != filename;\n });\n }, function() {\n // TODO: show toast\n });\n });\n };\n\n /**\n * @function $markAsFlaggedOrUnflagged\n * @memberof Message.prototype\n * @desc Add or remove a the \\\\Flagged flag on the current message.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.toggleFlag = function() {\n var _this = this,\n action = 'markMessageFlagged';\n\n if (this.isflagged)\n action = 'markMessageUnflagged';\n\n return Message.$$resource.post(this.$absolutePath(), action).then(function(data) {\n Message.$timeout(function() {\n _this.isflagged = !_this.isflagged;\n });\n });\n };\n\n /**\n * @function $reload\n * @memberof Message.prototype\n * @desc Fetch the viewable message body along with other metadata such as the list of attachments.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$reload = function(options) {\n var futureMessageData;\n\n futureMessageData = Message.$$resource.fetch(this.$absolutePath(options), 'view');\n\n return this.$unwrap(futureMessageData);\n };\n\n /**\n * @function $reply\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a reply to the sender.\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$reply = function() {\n return this.$newDraft('reply');\n };\n\n /**\n * @function $replyAll\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a reply to the sender and all recipients.\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$replyAll = function() {\n return this.$newDraft('replyall');\n };\n\n /**\n * @function $forward\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a forward.\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$forward = function() {\n return this.$newDraft('forward');\n };\n\n /**\n * @function $newDraft\n * @memberof Message.prototype\n * @desc Prepare a new Message object as a reply or a forward of the current message and associated\n * to the draft mailbox.\n * @see {@link Account.$newMessage}\n * @see {@link Message.$editableContent}\n * @see {@link Message.$reply}\n * @see {@link Message.$replyAll}\n * @see {@link Message.$forwad}\n * @param {string} action - the HTTP action to perform on the message\n * @returns a promise of the HTTP operations\n */\n Message.prototype.$newDraft = function(action) {\n var _this = this;\n\n // Query server for draft folder and draft UID\n return Message.$$resource.fetch(this.$absolutePath(), action).then(function(data) {\n var mailbox, message;\n Message.$log.debug('New ' + action + ': ' + JSON.stringify(data, undefined, 2));\n mailbox = _this.$mailbox.$account.$getMailboxByPath(data.mailboxPath);\n message = new Message(data.accountId, mailbox, data);\n // Fetch draft initial data\n return Message.$$resource.fetch(message.$absolutePath({asDraft: true}), 'edit').then(function(data) {\n Message.$log.debug('New ' + action + ': ' + JSON.stringify(data, undefined, 2) + ' original UID: ' + _this.uid);\n angular.extend(message.editable, data);\n\n // We keep a reference to our original message in order to update the flags\n message.origin = {message: _this, action: action};\n return message;\n });\n });\n };\n\n /**\n * @function $save\n * @memberof Message.prototype\n * @desc Save the message to the server.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$save = function() {\n var _this = this,\n data = this.editable;\n\n Message.$log.debug('save = ' + JSON.stringify(data, undefined, 2));\n\n return Message.$$resource.save(this.$absolutePath({asDraft: true}), data).then(function(response) {\n Message.$log.debug('save = ' + JSON.stringify(response, undefined, 2));\n _this.$setUID(response.uid);\n _this.$reload({asDraft: false}); // fetch a new viewable version of the message\n });\n };\n\n /**\n * @function $send\n * @memberof Message.prototype\n * @desc Send the message.\n * @returns a promise of the HTTP operation\n */\n Message.prototype.$send = function() {\n var _this = this,\n data = angular.copy(this.editable),\n deferred = Message.$q.defer();\n\n Message.$log.debug('send = ' + JSON.stringify(data, undefined, 2));\n\n Message.$$resource.post(this.$absolutePath({asDraft: true}), 'send', data).then(function(data) {\n if (data.status == 'success') {\n deferred.resolve(data);\n if (angular.isDefined(_this.origin)) {\n if (_this.origin.action.startsWith('reply'))\n _this.origin.message.isanswered = true;\n else if (_this.origin.action == 'forward')\n _this.origin.message.isforwarded = true;\n }\n }\n else {\n deferred.reject(data);\n }\n });\n\n return deferred.promise;\n };\n\n /**\n * @function $unwrap\n * @memberof Message.prototype\n * @desc Unwrap a promise. \n * @param {promise} futureMessageData - a promise of some of the Message's data\n */\n Message.prototype.$unwrap = function(futureMessageData) {\n var _this = this;\n\n // Resolve and expose the promise\n this.$futureMessageData = futureMessageData.then(function(data) {\n // Calling $timeout will force Angular to refresh the view\n if (_this.isread === 0) {\n Message.$$resource.fetch(_this.$absolutePath(), 'markMessageRead').then(function() {\n Message.$timeout(function() {\n _this.isread = true;\n _this.$mailbox.unseenCount--;\n });\n });\n }\n return Message.$timeout(function() {\n angular.extend(_this, data);\n _this.$formatFullAddresses();\n _this.$loadUnsafeContent = false;\n return _this;\n });\n });\n\n return this.$futureMessageData;\n };\n\n /**\n * @function $omit\n * @memberof Message.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Message instance\n */\n Message.prototype.$omit = function() {\n var message = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n message[key] = value;\n }\n });\n\n // Format addresses as arrays\n _.each(['from', 'to', 'cc', 'bcc', 'reply-to'], function(type) {\n if (message[type])\n message[type] = _.invoke(message[type].split(','), 'trim');\n });\n\n //Message.$log.debug(JSON.stringify(message, undefined, 2));\n return message;\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name VirtualMailbox\n * @constructor\n * @param {object} account - the mail account associated with the virtual search\n */\n function VirtualMailbox(account) {\n this.$account = account;\n }\n\n /**\n * @memberof VirtualMailbox\n * @desc The factory we'll use to register with Angular\n * @returns the VirtualMailbox constructor\n */\n VirtualMailbox.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Message', 'Mailbox', 'sgMailbox_PRELOAD', function($q, $timeout, $log, Settings, Mailbox, Message, PRELOAD) {\n angular.extend(VirtualMailbox, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $Message: Message,\n selectedFolder: null,\n PRELOAD: PRELOAD\n });\n\n return VirtualMailbox; // return constructor\n }];\n\n /**\n * @module SOGo.MailerUI\n * @desc Factory registration of VirtualMailbox in Angular module.\n */\n try {\n angular.module('SOGo.MailerUI');\n }\n catch(e) {\n angular.module('SOGo.MailerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.MailerUI')\n .constant('sgMailbox_PRELOAD', {\n LOOKAHEAD: 50,\n SIZE: 100\n })\n .factory('VirtualMailbox', VirtualMailbox.$factory);\n\n /**\n * @memberof VirtualMailbox\n * @desc Build the path of the virtual mailbox (or account only).\n * @param {string} accountId - the account ID\n * @returns a string representing the path relative to the mail module\n */\n VirtualMailbox.$absolutePath = function(accountId) {\n return [accountId, \"virtual\"].join('/');\n };\n\n /**\n * @function init\n * @memberof VirtualMailbox.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of mailbox\n */\n VirtualMailbox.prototype.init = function(data) {\n this.$isLoading = false;\n this.$mailboxes = [];\n this.uidsMap = {};\n angular.extend(this, data);\n this.id = this.$id();\n };\n\n VirtualMailbox.prototype.setMailboxes = function(data) {\n this.$mailboxes = data;\n\n _.each(this.$mailboxes, function(mailbox) {\n mailbox.$messages = [];\n mailbox.uidsMap = {};\n });\n };\n\n VirtualMailbox.prototype.startSearch = function(match, params) {\n var _this = this,\n search = VirtualMailbox.$q.when();\n\n this.$isLoading = true;\n\n _.each(this.$mailboxes, function(mailbox) {\n search = search.then(function() {\n if (_this.$isLoading) {\n VirtualMailbox.$log.debug(\"searching mailbox \" + mailbox.path);\n return mailbox.$filter( {sort: \"date\", asc: false, match: match}, params);\n }\n });\n });\n\n search.finally(function() { _this.$isLoading = false; });\n };\n\n VirtualMailbox.prototype.stopSearch = function() {\n VirtualMailbox.$log.debug(\"stopping search...\");\n this.$isLoading = false;\n };\n\n /**\n * @function resetSelectedMessage\n * @memberof VirtualMailbox.prototype\n * @desc Delete 'selectedMessage' attribute of all submailboxes.\n */\n VirtualMailbox.prototype.resetSelectedMessage = function() {\n _.each(this.$mailboxes, function(mailbox) {\n delete mailbox.selectedMessage;\n });\n };\n\n /**\n * @function isSelectedMessage\n * @memberof VirtualMailbox.prototype\n * @desc Check if the message of the specified mailbox is selected.\n * @param {string} messageId\n * @param {string} mailboxPath\n * @returns true if the specified message is selected\n */\n VirtualMailbox.prototype.isSelectedMessage = function(messageId, mailboxPath) {\n return angular.isDefined(_.find(this.$mailboxes, function(mailbox) {\n return mailbox.path == mailboxPath && mailbox.selectedMessage == messageId;\n }));\n };\n\n /**\n * @function getLength\n * @memberof VirtualMailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the number of items in the mailbox\n */\n VirtualMailbox.prototype.getLength = function() {\n var len = 0;\n\n if (!angular.isDefined(this.$mailboxes))\n return len;\n\n _.each(this.$mailboxes, function(mailbox) {\n len += mailbox.$messages.length;\n });\n\n return len;\n };\n\n /**\n * @function getItemAtIndex\n * @memberof VirtualMailbox.prototype\n * @desc Used by md-virtual-repeat / md-on-demand\n * @returns the message as the specified index\n */\n VirtualMailbox.prototype.getItemAtIndex = function(index) {\n var i, j, k, mailbox, message;\n\n if (angular.isDefined(this.$mailboxes) && index >= 0) {\n i = 0;\n for (j = 0; j < this.$mailboxes.length; j++) {\n mailbox = this.$mailboxes[j];\n for (k = 0; k < mailbox.$messages.length; i++, k++) {\n message = mailbox.$messages[k];\n if (i == index) {\n if (mailbox.$loadMessage(message.uid))\n return message;\n }\n }\n }\n }\n\n return null;\n };\n\n /**\n * @function $id\n * @memberof VirtualMailbox.prototype\n * @desc Build the unique ID to identified the mailbox.\n * @returns a string representing the path relative to the mail module\n */\n VirtualMailbox.prototype.$id = function() {\n return VirtualMailbox.$absolutePath(this.$account.id);\n };\n\n /**\n * @function $selectedCount\n * @memberof VirtualMailbox.prototype\n * @desc Return the number of messages selected by the user.\n * @returns the number of selected messages\n */\n VirtualMailbox.prototype.$selectedCount = function() {\n // TODO\n return 0;\n };\n\n /**\n * @function $flagMessages\n * @memberof VirtualMailbox.prototype\n * @desc Add or remove a flag on a message set\n * @returns a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$flagMessages = function(uids, flags, operation) {\n // TODO\n // var data = {msgUIDs: uids,\n // flags: flags,\n // operation: operation};\n\n // return VirtualMailbox.$$resource.post(this.id, 'addOrRemoveLabel', data);\n };\n\n /**\n * @function $deleteMessages\n * @memberof VirtualMailbox.prototype\n * @desc Delete multiple messages from mailbox.\n * @return a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$deleteMessages = function(uids) {\n // TODO\n //return VirtualMailbox.$$resource.post(this.id, 'batchDelete', {uids: uids});\n };\n\n /**\n * @function $copyMessages\n * @memberof VirtualMailbox.prototype\n * @desc Copy multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$copyMessages = function(uids, folder) {\n // TODO\n //return VirtualMailbox.$$resource.post(this.id, 'copyMessages', {uids: uids, folder: folder});\n };\n\n /**\n * @function $moveMessages\n * @memberof VirtualMailbox.prototype\n * @desc Move multiple messages from the current mailbox to a target one\n * @return a promise of the HTTP operation\n */\n VirtualMailbox.prototype.$moveMessages = function(uids, folder) {\n // TODO\n //return VirtualMailbox.$$resource.post(this.id, 'moveMessages', {uids: uids, folder: folder});\n };\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MailboxController.$inject = ['$state', '$timeout', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'encodeUriFilter', 'sgFocus', 'Dialog', 'Account', 'Mailbox'];\n function MailboxController($state, $timeout, $mdDialog, stateAccounts, stateAccount, stateMailbox, encodeUriFilter, focus, Dialog, Account, Mailbox) {\n var vm = this, messageDialog = null;\n\n Mailbox.selectedFolder = stateMailbox;\n\n vm.service = Mailbox;\n vm.accounts = stateAccounts;\n vm.account = stateAccount;\n vm.selectedFolder = stateMailbox;\n vm.selectMessage = selectMessage;\n vm.toggleMessageSelection = toggleMessageSelection;\n vm.unselectMessages = unselectMessages;\n vm.confirmDeleteSelectedMessages = confirmDeleteSelectedMessages;\n vm.copySelectedMessages = copySelectedMessages;\n // vm.moveSelectedMessages = moveSelectedMessages;\n vm.saveSelectedMessages = saveSelectedMessages;\n vm.markSelectedMessagesAsFlagged = markSelectedMessagesAsFlagged;\n vm.markSelectedMessagesAsUnread = markSelectedMessagesAsUnread;\n vm.selectAll = selectAll;\n vm.sort = sort;\n vm.sortedBy = sortedBy;\n vm.cancelSearch = cancelSearch;\n vm.newMessage = newMessage;\n vm.mode = { search: false };\n\n function selectMessage(message) {\n if (Mailbox.$virtualMode)\n $state.go('mail.account.virtualMailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(message.$mailbox.path), messageId: message.uid});\n else\n $state.go('mail.account.mailbox.message', {accountId: stateAccount.id, mailboxId: encodeUriFilter(message.$mailbox.path), messageId: message.uid});\n }\n\n function toggleMessageSelection($event, message) {\n message.selected = !message.selected;\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n function unselectMessages() {\n _.each(vm.selectedFolder.$messages, function(message) { message.selected = false; });\n }\n\n function confirmDeleteSelectedMessages() {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the selected messages?'))\n .then(function() {\n // User confirmed the deletion\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n vm.selectedFolder.$deleteMessages(selectedUIDs).then(function() {\n // Decrement the unseenCount accordingly\n var unseenCount = _.filter(selectedMessages, function(message) { return !message.isread; });\n vm.selectedFolder.$messages = _.difference(vm.selectedFolder.$messages, selectedMessages);\n vm.selectedFolder.unseenCount =- unseenCount;\n }, function(error) {\n Dialog.alert(l('Error'), error);\n });\n });\n }\n\n function copySelectedMessages(folder) {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n vm.selectedFolder.$copyMessages(selectedUIDs, '/' + folder).then(function() {\n // TODO: refresh target mailbox?\n }, function(error) {\n Dialog.alert(l('Error'), error);\n });\n }\n\n // function moveSelectedMessages(folder) {\n // var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected });\n // var selectedUIDs = _.pluck(selectedMessages, 'uid');\n // vm.selectedFolder.$moveMessages(selectedUIDs, '/' + folder).then(function() {\n // // TODO: refresh target mailbox?\n // vm.selectedFolder.$messages = _.difference(vm.selectedFolder.$messages, selectedMessages);\n // });\n // }\n\n function saveSelectedMessages() {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n window.location.href = ApplicationBaseURL + '/' + vm.selectedFolder.id + '/saveMessages?uid=' + selectedUIDs.join(\",\");\n }\n\n function selectAll() {\n _.each(vm.selectedFolder.$messages, function(message) {\n message.selected = true;\n });\n }\n\n function markSelectedMessagesAsFlagged() {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n\n vm.selectedFolder.$flagMessages(selectedUIDs, '\\\\Flagged', 'add').then(function(d) {\n // Success\n _.forEach(selectedMessages, function(message) {\n message.isflagged = true;\n });\n });\n }\n\n function markSelectedMessagesAsUnread() {\n var selectedMessages = _.filter(vm.selectedFolder.$messages, function(message) { return message.selected; });\n var selectedUIDs = _.pluck(selectedMessages, 'uid');\n\n vm.selectedFolder.$flagMessages(selectedUIDs, 'seen', 'remove').then(function(d) {\n // Success\n _.forEach(selectedMessages, function(message) {\n message.isread = false;\n vm.selectedFolder.unseenCount++;\n });\n });\n }\n\n function sort(field) {\n vm.selectedFolder.$filter({ sort: field });\n }\n\n function sortedBy(field) {\n return Mailbox.$query.sort == field;\n }\n\n function cancelSearch() {\n vm.mode.search = false;\n vm.selectedFolder.$filter();\n }\n\n function newMessage($event) {\n var message;\n\n if (messageDialog === null) {\n message = vm.account.$newMessage();\n messageDialog = $mdDialog\n .show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: 'UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: vm.accounts,\n stateMessage: message,\n stateRecipients: []\n }\n })\n .finally(function() {\n messageDialog = null;\n });\n }\n }\n }\n\n angular\n .module('SOGo.MailerUI')\n .controller('MailboxController', MailboxController);\n})();\n\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MailboxesController.$inject = ['$state', '$timeout', '$mdDialog', 'sgFocus', 'encodeUriFilter', 'Dialog', 'sgSettings', 'Account', 'Mailbox', 'VirtualMailbox', 'User', 'Preferences', 'stateAccounts'];\n function MailboxesController($state, $timeout, $mdDialog, focus, encodeUriFilter, Dialog, Settings, Account, Mailbox, VirtualMailbox, User, Preferences, stateAccounts) {\n var vm = this,\n account,\n mailbox;\n\n vm.service = Mailbox;\n vm.accounts = stateAccounts;\n vm.newFolder = newFolder;\n vm.delegate = delegate;\n vm.editFolder = editFolder;\n vm.revertEditing = revertEditing;\n vm.selectFolder = selectFolder;\n vm.saveFolder = saveFolder;\n vm.compactFolder = compactFolder;\n vm.emptyTrashFolder = emptyTrashFolder;\n vm.exportMails = exportMails;\n vm.confirmDelete = confirmDelete;\n vm.markFolderRead = markFolderRead;\n vm.share = share;\n vm.metadataForFolder = metadataForFolder;\n vm.setFolderAs = setFolderAs;\n vm.refreshUnseenCount = refreshUnseenCount;\n\n // Advanced search options\n vm.showingAdvancedSearch = false;\n vm.currentSearchParam = '';\n vm.addSearchParam = addSearchParam;\n vm.newSearchParam = newSearchParam;\n vm.showAdvancedSearch = showAdvancedSearch;\n vm.hideAdvancedSearch = hideAdvancedSearch;\n vm.toggleAdvancedSearch = toggleAdvancedSearch;\n vm.search = {\n options: {'': l('Select a criteria'),\n subject: l('Enter Subject'),\n from: l('Enter From'),\n to: l('Enter To'),\n cc: l('Enter Cc'),\n body: l('Enter Body')\n },\n mailbox: 'INBOX',\n subfolders: 1,\n match: 'AND',\n params: []\n };\n\n if ($state.current.name == 'mail' && vm.accounts.length > 0 && vm.accounts[0].$mailboxes.length > 0) {\n // Redirect to first mailbox of first account if no mailbox is selected\n account = vm.accounts[0];\n mailbox = account.$mailboxes[0];\n $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(mailbox.path) });\n }\n\n function showAdvancedSearch(path) {\n vm.showingAdvancedSearch = true;\n vm.search.mailbox = path;\n }\n\n function hideAdvancedSearch() {\n vm.showingAdvancedSearch = false;\n vm.service.$virtualMode = false;\n\n account = vm.accounts[0];\n mailbox = vm.searchPreviousMailbox;\n $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(mailbox.path) });\n }\n\n function toggleAdvancedSearch() {\n if (Mailbox.selectedFolder.$isLoading) {\n // Stop search\n vm.virtualMailbox.stopSearch();\n }\n else {\n // Start search\n var root, mailboxes = [],\n _visit = function(folders) {\n _.each(folders, function(o) {\n mailboxes.push(o);\n if (o.children && o.children.length > 0) {\n _visit(o.children);\n }\n });\n };\n\n vm.virtualMailbox = new VirtualMailbox(vm.accounts[0]);\n\n // Don't set the previous selected mailbox if we're in virtual mode\n // That allows users to do multiple advanced search but return\n // correctly to the previously selected mailbox once done.\n if (!Mailbox.$virtualMode)\n vm.searchPreviousMailbox = Mailbox.selectedFolder;\n\n Mailbox.selectedFolder = vm.virtualMailbox;\n Mailbox.$virtualMode = true;\n\n if (angular.isDefined(vm.search.mailbox)) {\n root = vm.accounts[0].$getMailboxByPath(vm.search.mailbox);\n mailboxes.push(root);\n if (vm.search.subfolders && root.children.length)\n _visit(root.children);\n }\n else {\n mailboxes = vm.accounts[0].$flattenMailboxes();\n }\n\n vm.virtualMailbox.setMailboxes(mailboxes);\n vm.virtualMailbox.startSearch(vm.search.match, vm.search.params);\n $state.go('mail.account.virtualMailbox', { accountId: vm.accounts[0].id });\n }\n }\n\n function addSearchParam(v) {\n vm.currentSearchParam = v;\n focus('advancedSearch');\n return false;\n }\n\n function newSearchParam(pattern) {\n if (pattern.length && vm.currentSearchParam.length) {\n var n = 0, searchParam = vm.currentSearchParam;\n if (pattern.startsWith(\"!\")) {\n n = 1;\n pattern = pattern.substring(1).trim();\n }\n vm.currentSearchParam = '';\n return { searchBy: searchParam, searchInput: pattern, negative: n };\n }\n }\n\n function newFolder(parentFolder) {\n Dialog.prompt(l('New folder'),\n l('Enter the new name of your folder :'))\n .then(function(name) {\n parentFolder.$newMailbox(parentFolder.id, name)\n .then(function() {\n // success\n }, function(data, status) {\n Dialog.alert(l('An error occured while creating the mailbox \"%{0}\".', name),\n l(data.error));\n });\n });\n }\n\n function delegate(account) {\n $mdDialog.show({\n templateUrl: account.id + '/delegation', // UI/Templates/MailerUI/UIxMailUserDelegation.wox\n controller: MailboxDelegationController,\n controllerAs: 'delegate',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n User: User,\n account: account\n }\n });\n\n /**\n * @ngInject\n */\n MailboxDelegationController.$inject = ['$scope', '$mdDialog', 'User', 'account'];\n function MailboxDelegationController($scope, $mdDialog, User, account) {\n var vm = this;\n\n vm.users = account.delegates;\n vm.account = account;\n vm.userToAdd = '';\n vm.searchText = '';\n vm.userFilter = userFilter;\n vm.closeModal = closeModal;\n vm.removeUser = removeUser;\n vm.addUser = addUser;\n\n function userFilter($query) {\n return User.$filter($query, account.delegates);\n }\n\n function closeModal() {\n $mdDialog.hide();\n }\n\n function removeUser(user) {\n account.$removeDelegate(user.uid).catch(function(data, status) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function addUser(data) {\n if (data) {\n account.$addDelegate(data).then(function() {\n vm.userToAdd = '';\n vm.searchText = '';\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n }\n }\n } // delegate\n\n function editFolder(folder) {\n vm.editMode = folder.path;\n focus('mailboxName_' + folder.path);\n }\n\n function revertEditing(folder) {\n folder.$reset();\n vm.editMode = false;\n }\n\n function selectFolder(account, folder) {\n if (vm.editMode == folder.path)\n return;\n vm.editMode = false;\n vm.showingAdvancedSearch = false;\n vm.service.$virtualMode = false;\n $state.go('mail.account.mailbox', { accountId: account.id, mailboxId: encodeUriFilter(folder.path) });\n }\n\n function saveFolder(folder) {\n folder.$rename()\n .then(function(data) {\n vm.editMode = false;\n }, function(data, status) {\n Dialog.alert(l('Warning'), data);\n });\n }\n\n function compactFolder(folder) {\n folder.$compact().then(function() {\n // Success\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n\n function emptyTrashFolder(folder) {\n folder.$emptyTrash().then(function() {\n // Success\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n\n function exportMails(folder) {\n window.location.href = ApplicationBaseURL + '/' + folder.id + '/exportFolder';\n }\n\n function confirmDelete(folder) {\n Dialog.confirm(l('Confirmation'), l('Do you really want to move this folder into the trash ?'))\n .then(function() {\n folder.$delete()\n .then(function() {\n $state.go('mail');\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the mailbox \"%{0}\".', folder.name),\n l(data.error));\n });\n });\n }\n\n function markFolderRead(folder) {\n folder.$markAsRead();\n }\n\n function share(folder) {\n // Fetch list of ACL users\n folder.$acl.$users().then(function() {\n // Show ACL editor\n $mdDialog.show({\n templateUrl: folder.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox\n controller: 'AclController', // from the ng module SOGo.Common\n controllerAs: 'acl',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n usersWithACL: folder.$acl.users,\n User: User,\n folder: folder\n }\n });\n });\n } // share\n\n function metadataForFolder(folder) {\n if (folder.type == 'inbox')\n return {name: folder.name, icon:'inbox'};\n else if (folder.type == 'draft')\n return {name: l('DraftsFolderName'), icon: 'drafts'};\n else if (folder.type == 'sent')\n return {name: l('SentFolderName'), icon: 'send'};\n else if (folder.type == 'trash')\n return {name: l('TrashFolderName'), icon: 'delete'};\n else if (folder.type == 'additional')\n return {name: folder.name, icon: 'folder_shared'};\n\n return {name: folder.name, icon: 'folder_open'};\n }\n\n function setFolderAs(folder, type) {\n folder.$setFolderAs(type).then(function() {\n folder.$account.$getMailboxes({reload: true});\n }, function(error) {\n Dialog.alert(l('Warning'), error);\n });\n }\n\n function refreshUnseenCount() {\n var unseenCountFolders = window.unseenCountFolders;\n\n _.forEach(vm.accounts, function(account) {\n\n // Always include the INBOX\n if (!_.includes(unseenCountFolders, account.id + '/folderINBOX'))\n unseenCountFolders.push(account.id + '/folderINBOX');\n\n _.forEach(account.$$flattenMailboxes, function(mailbox) {\n if (angular.isDefined(mailbox.unseenCount) &&\n !_.includes(unseenCountFolders, mailbox.id))\n unseenCountFolders.push(mailbox.id);\n });\n });\n\n Account.$$resource.post('', 'unseenCount', {mailboxes: unseenCountFolders}).then(function(data) {\n _.forEach(vm.accounts, function(account) {\n _.forEach(account.$$flattenMailboxes, function(mailbox) {\n if (data[mailbox.id])\n mailbox.unseenCount = data[mailbox.id];\n });\n });\n });\n\n Preferences.ready().then(function() {\n var refreshViewCheck = Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually')\n $timeout(vm.refreshUnseenCount, refreshViewCheck.timeInterval()*1000);\n });\n }\n\n vm.refreshUnseenCount();\n }\n\n angular\n .module('SOGo.MailerUI') \n .controller('MailboxesController', MailboxesController); \n})();\n\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MessageController.$inject = ['$window', '$scope', '$state', '$mdDialog', 'stateAccounts', 'stateAccount', 'stateMailbox', 'stateMessage', 'encodeUriFilter', 'sgSettings', 'sgFocus', 'Dialog', 'Account', 'Mailbox', 'Message'];\n function MessageController($window, $scope, $state, $mdDialog, stateAccounts, stateAccount, stateMailbox, stateMessage, encodeUriFilter, sgSettings, focus, Dialog, Account, Mailbox, Message) {\n var vm = this, messageDialog = null, popupWindow = null;\n\n vm.accounts = stateAccounts;\n vm.account = stateAccount;\n vm.mailbox = stateMailbox;\n vm.message = stateMessage;\n vm.service = Message;\n vm.tags = { searchText: '', selected: '' };\n vm.doDelete = doDelete;\n vm.close = close;\n vm.reply = reply;\n vm.replyAll = replyAll;\n vm.forward = forward;\n vm.edit = edit;\n vm.openPopup = openPopup;\n vm.closePopup = closePopup;\n vm.newMessage = newMessage;\n vm.saveMessage = saveMessage;\n vm.viewRawSource = viewRawSource;\n\n // Watch the message model \"flags\" attribute to remove on-the-fly a tag from the IMAP message\n // when removed from the message viewer.\n // TODO: this approach should be reviewed once md-chips supports ng-change.\n $scope.$watchCollection('viewer.message.flags', function(oldTags, newTags) {\n _.each(_.difference(newTags, oldTags), function(tag) {\n vm.message.removeTag(tag);\n });\n });\n\n function doDelete() {\n stateMailbox.$deleteMessages([stateMessage.uid]).then(function() {\n // Remove message from list of messages\n var index = _.findIndex(stateMailbox.$messages, function(o) {\n return o.uid == stateMessage.uid;\n });\n if (index != -1)\n stateMailbox.$messages.splice(index, 1);\n // Remove message object from scope\n vm.message = null;\n $state.go('mail.account.mailbox', { accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path) });\n });\n }\n\n function showMailEditor($event, message, recipients) {\n if (messageDialog === null) {\n if (!angular.isDefined(recipients))\n recipients = [];\n\n messageDialog = $mdDialog\n .show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: false,\n escapeToClose: false,\n templateUrl: 'UIxMailEditor',\n controller: 'MessageEditorController',\n controllerAs: 'editor',\n locals: {\n stateAccounts: vm.accounts,\n stateMessage: message,\n stateRecipients: recipients\n }\n })\n .finally(function() {\n messageDialog = null;\n });\n }\n }\n\n function close() {\n $state.go('mail.account.mailbox', { accountId: stateAccount.id, mailboxId: encodeUriFilter(stateMailbox.path) }).then(function() {\n vm.message = null;\n delete stateMailbox.selectedMessage;\n });\n }\n\n function reply($event) {\n var message = vm.message.$reply();\n showMailEditor($event, message);\n }\n\n function replyAll($event) {\n var message = vm.message.$replyAll();\n showMailEditor($event, message);\n }\n\n function forward($event) {\n var message = vm.message.$forward();\n showMailEditor($event, message);\n }\n\n function edit($event) {\n vm.message.$editableContent().then(function() {\n showMailEditor($event, vm.message);\n });\n }\n\n function openPopup() {\n var url = [sgSettings.baseURL(),\n 'UIxMailPopupView#/Mail',\n vm.message.accountId,\n // The double-encoding is necessary\n encodeUriFilter(encodeUriFilter(vm.message.$mailbox.path)),\n vm.message.uid]\n .join('/'),\n wId = vm.message.$absolutePath();\n popupWindow = $window.open(url, wId,\n [\"width=680\",\n \"height=520\",\n \"resizable=1\",\n \"scrollbars=1\",\n \"toolbar=0\",\n \"location=0\",\n \"directories=0\",\n \"status=0\",\n \"menubar=0\",\n \"copyhistory=0\"]\n .join(','));\n }\n\n function closePopup() {\n $window.close();\n }\n\n function newMessage($event, recipient) {\n var message = vm.account.$newMessage();\n showMailEditor($event, message, [recipient]);\n }\n\n function saveMessage() {\n window.location.href = ApplicationBaseURL + '/' + vm.mailbox.id + '/saveMessages?uid=' + vm.message.uid;\n }\n\n function viewRawSource($event) {\n Message.$$resource.post(vm.message.id, \"viewsource\").then(function(data) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n            data,\n            '    
',\n '
',\n '
',\n ' ' + l('Close') + '',\n '
',\n '
'\n ].join(''),\n controller: MessageRawSourceDialogController\n });\n\n /**\n * @ngInject\n */\n MessageRawSourceDialogController.$inject = ['scope', '$mdDialog'];\n function MessageRawSourceDialogController(scope, $mdDialog) {\n scope.close = function() {\n $mdDialog.hide();\n };\n }\n });\n }\n }\n \n angular\n .module('SOGo.MailerUI') \n .controller('MessageController', MessageController); \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n MessageEditorController.$inject = ['$stateParams', '$mdDialog', 'FileUploader', 'stateAccounts', 'stateMessage', 'stateRecipients', '$timeout', 'sgFocus', 'Dialog', 'AddressBook', 'Preferences'];\n function MessageEditorController($stateParams, $mdDialog, FileUploader, stateAccounts, stateMessage, stateRecipients, $timeout, focus, Dialog, AddressBook, Preferences) {\n var vm = this;\n\n vm.addRecipient = addRecipient;\n vm.autocomplete = {to: {}, cc: {}, bcc: {}};\n vm.autosave = null;\n vm.autosaveDrafts = autosaveDrafts;\n vm.hideCc = true;\n vm.hideBcc = true;\n vm.cancel = cancel;\n vm.send = send;\n vm.contactFilter = contactFilter;\n vm.identities = _.pluck(_.flatten(_.pluck(stateAccounts, 'identities')), 'full');\n vm.uploader = new FileUploader({\n url: stateMessage.$absolutePath({asDraft: true}) + '/save',\n autoUpload: true,\n alias: 'attachments',\n onProgressItem: function(item, progress) {\n console.debug(item); console.debug(progress);\n },\n onSuccessItem: function(item, response, status, headers) {\n stateMessage.$setUID(response.uid);\n stateMessage.$reload();\n console.debug(item); console.debug('success = ' + JSON.stringify(response, undefined, 2));\n },\n onCancelItem: function(item, response, status, headers) {\n console.debug(item); console.debug('cancel = ' + JSON.stringify(response, undefined, 2));\n\n // We remove the attachment\n stateMessage.$deleteAttachment(item.file.name);\n this.removeFromQueue(item);\n },\n onErrorItem: function(item, response, status, headers) {\n console.debug(item); console.debug('error = ' + JSON.stringify(response, undefined, 2));\n }\n });\n\n if ($stateParams.actionName == 'reply') {\n stateMessage.$reply().then(function(msgObject) {\n vm.message = msgObject;\n vm.hideCc = (!msgObject.editable.cc || msgObject.editable.cc.length === 0);\n vm.hideBcc = (!msgObject.editable.bcc || msgObject.editable.bcc.length === 0);\n });\n }\n else if ($stateParams.actionName == 'replyall') {\n stateMessage.$replyAll().then(function(msgObject) {\n vm.message = msgObject;\n vm.hideCc = (!msgObject.editable.cc || msgObject.editable.cc.length === 0);\n vm.hideBcc = (!msgObject.editable.bcc || msgObject.editable.bcc.length === 0);\n });\n }\n else if ($stateParams.actionName == 'forward') {\n stateMessage.$forward().then(function(msgObject) {\n vm.message = msgObject;\n });\n }\n else if (angular.isDefined(stateMessage)) {\n vm.message = stateMessage;\n }\n\n if (angular.isDefined(stateRecipients)) {\n vm.message.editable.to = _.union(vm.message.editable.to, _.pluck(stateRecipients, 'full'));\n }\n\n function cancel() {\n // TODO: delete draft?\n if (vm.autosave)\n $timeout.cancel(vm.autosave);\n\n $mdDialog.cancel();\n }\n\n function send() {\n if (vm.autosave)\n $timeout.cancel(vm.autosave);\n\n vm.message.$send().then(function(data) {\n $mdDialog.hide();\n }, function(data) {\n Dialog.alert(l(data.status), l(data.message));\n });\n }\n\n function contactFilter($query) {\n return AddressBook.$filterAll($query);\n }\n\n function addRecipient(user) {\n var recipient = [];\n\n if (angular.isString(user))\n return user;\n if (user.$$fullname)\n recipient.push(user.$$fullname);\n if (user.$$email)\n recipient.push('<' + user.$$email + '>');\n\n return recipient.join(' ');\n }\n\n // Drafts autosaving\n function autosaveDrafts() {\n vm.message.$save();\n if (Preferences.defaults.SOGoMailAutoSave)\n vm.autosave = $timeout(vm.autosaveDrafts, Preferences.defaults.SOGoMailAutoSave*1000*60);\n }\n\n // Select list based on user's settings\n Preferences.ready().then(function() {\n if (Preferences.defaults.SOGoMailAutoSave)\n vm.autosave = $timeout(vm.autosaveDrafts, Preferences.defaults.SOGoMailAutoSave*1000*60);\n vm.localeCode = Preferences.defaults.LocaleCode;\n });\n }\n\n angular\n .module('SOGo.MailerUI') \n .controller('MessageEditorController', MessageEditorController); \n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n /* jshint validthis: true */\n 'use strict';\n\n /**\n * sgIMIP - A directive to handle IMIP actions on emails\n * @memberof SOGo.MailerUI\n * @example:\n\n */\n function sgImip() {\n return {\n restrict: 'A',\n link: link,\n controller: 'sgImipController'\n };\n\n function link(scope, iElement, attrs, ctrl) {\n ctrl.pathToAttachment = attrs.sgImipPath;\n }\n }\n\n /**\n * @ngInject\n */\n sgImipController.$inject = ['$scope', 'User'];\n function sgImipController($scope, User) {\n var vm = this;\n\n $scope.delegateInvitation = false;\n $scope.delegatedTo = '';\n $scope.searchText = '';\n\n $scope.userFilter = function($query) {\n return User.$filter($query);\n };\n\n $scope.iCalendarAction = function(action) {\n var data;\n\n if (action == 'delegate') {\n data = {\n receiveUpdates: false,\n delegatedTo: $scope.delegatedTo.c_email\n };\n }\n\n $scope.viewer.message.$imipAction(vm.pathToAttachment, action, data);\n };\n }\n\n angular\n .module('SOGo.MailerUI')\n .controller('sgImipController', sgImipController)\n .directive('sgImip', sgImip);\n})();\n\n"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Preferences.js b/UI/WebServerResources/js/Preferences.js index 4232c9efc..7ebeb1c45 100644 --- a/UI/WebServerResources/js/Preferences.js +++ b/UI/WebServerResources/js/Preferences.js @@ -1,2 +1,2 @@ -!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("preferences",{"abstract":!0,views:{preferences:{templateUrl:"preferences.html",controller:"PreferencesController",controllerAs:"app"}},resolve:{statePreferences:statePreferences}}).state("preferences.general",{url:"/general",views:{module:{templateUrl:"generalPreferences.html"}}}).state("preferences.calendars",{url:"/calendars",views:{module:{templateUrl:"calendarsPreferences.html"}}}).state("preferences.addressbooks",{url:"/addressbooks",views:{module:{templateUrl:"addressbooksPreferences.html"}}}).state("preferences.mailer",{url:"/mailer",views:{module:{templateUrl:"mailerPreferences.html"}}}),$urlRouterProvider.otherwise("/general")}function statePreferences(Preferences){return Preferences}function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.error(event,current,previous,rejection)})}angular.module("SOGo.PreferencesUI",["ngSanitize","ui.router","ck","SOGo.Common","SOGo.MailerUI","SOGo.ContactsUI","SOGo.Authentication"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],statePreferences.$inject=["Preferences"],runBlock.$inject=["$rootScope"]}(),function(){"use strict";function AccountDialogController($mdDialog,defaults,account,accountId,mailCustomFromEnabled){function customFromIsReadonly(){return accountId>0?!1:!mailCustomFromEnabled}function cancel(){$mdDialog.cancel()}function save(){$mdDialog.hide()}var vm=this;vm.defaults=defaults,vm.account=account,vm.accountId=accountId,vm.customFromIsReadonly=customFromIsReadonly,vm.cancel=cancel,vm.save=save}AccountDialogController.$inject=["$mdDialog","defaults","account","accountId","mailCustomFromEnabled"],angular.module("SOGo.PreferencesUI").controller("AccountDialogController",AccountDialogController)}(),function(){"use strict";function FiltersDialogController($scope,$mdDialog,filter,mailboxes,labels,sieveCapabilities){$scope.filter=filter,$scope.mailboxes=mailboxes,$scope.labels=labels,$scope.fieldLabels={subject:l("Subject"),from:l("From"),to:l("To"),cc:l("Cc"),to_or_cc:l("To or Cc"),size:l("Size (Kb)"),header:l("Header")},sieveCapabilities.indexOf("body")>-1&&($scope.fieldLabels.body=l("Body")),$scope.methodLabels={discard:l("Discard the message"),keep:l("Keep the message"),redirect:l("Forward the message to:"),vacation:l("Send a vacation message"),stop:l("Stop processing filter rules")},sieveCapabilities.indexOf("reject")>-1&&($scope.methodLabels.reject=l("Send a reject message:")),sieveCapabilities.indexOf("fileinto")>-1&&($scope.methodLabels.fileinto=l("File the message in:")),(sieveCapabilities.indexOf("imapflags")>-1||sieveCapabilities.indexOf("imap4flags")>-1)&&($scope.methodLabels.addflag=l("Flag the message with:")),$scope.numberOperatorLabels={under:l("is under"),over:l("is over")},$scope.textOperatorLabels={is:l("is"),is_not:l("is not"),contains:l("contains"),contains_not:l("does not contain"),matches:l("matches"),matches_not:l("does not match")},sieveCapabilities.indexOf("regex")>-1&&($scope.textOperatorLabels.regex=l("matches regex"),$scope.textOperatorLabels.regex_not=l("does not match regex")),$scope.flagLabels={seen:l("Seen"),deleted:l("Deleted"),answered:l("Answered"),flagged:l("Flagged"),junk:l("Junk"),not_junk:l("Not Junk")},$scope.cancel=function(){$mdDialog.cancel()},$scope.save=function(){$mdDialog.hide()},$scope.addMailFilterRule=function(event){$scope.filter.rules||($scope.filter.rules=[]),$scope.filter.rules.push({})},$scope.removeMailFilterRule=function(index){$scope.filter.rules.splice(index,1)},$scope.addMailFilterAction=function(event){$scope.filter.actions||($scope.filter.actions=[]),$scope.filter.actions.push({})},$scope.removeMailFilterAction=function(index){$scope.filter.actions.splice(index,1)}}FiltersDialogController.$inject=["$scope","$mdDialog","filter","mailboxes","labels","sieveCapabilities"],angular.module("SOGo.PreferencesUI").controller("FiltersDialogController",FiltersDialogController)}(),function(){"use strict";function PreferencesController($state,$mdDialog,$mdToast,Dialog,User,Mailbox,statePreferences,Authentication){function go(module){$state.go("preferences."+module)}function addCalendarCategory(){vm.preferences.defaults.SOGoCalendarCategoriesColors["New category"]="#aaa",vm.preferences.defaults.SOGoCalendarCategories.push("New category")}function removeCalendarCategory(index){var key=vm.preferences.defaults.SOGoCalendarCategories[index];vm.preferences.defaults.SOGoCalendarCategories.splice(index,1),delete vm.preferences.defaults.SOGoCalendarCategoriesColors[key]}function addContactCategory(){vm.preferences.defaults.SOGoContactsCategories.push("")}function removeContactCategory(index){vm.preferences.defaults.SOGoContactsCategories.splice(index,1)}function addMailAccount(ev){var account;vm.preferences.defaults.AuxiliaryMailAccounts.push({}),account=_.last(vm.preferences.defaults.AuxiliaryMailAccounts),account.name=l("New account"),account.identities=[{fullName:"",email:""}],account.receipts={receiptAction:"ignore",receiptNonRecipientAction:"ignore",receiptOutsideDomainAction:"ignore",receiptAnyAction:"ignore"},$mdDialog.show({controller:"AccountDialogController",controllerAs:"$AccountDialogController",templateUrl:"editAccount?account=new",targetEvent:ev,locals:{defaults:vm.preferences.defaults,account:account,accountId:vm.preferences.defaults.AuxiliaryMailAccounts.length-1,mailCustomFromEnabled:window.mailCustomFromEnabled}})}function editMailAccount(event,index){var account=vm.preferences.defaults.AuxiliaryMailAccounts[index];$mdDialog.show({controller:"AccountDialogController",controllerAs:"$AccountDialogController",templateUrl:"editAccount?account="+index,targetEvent:event,locals:{defaults:vm.preferences.defaults,account:account,accountId:index,mailCustomFromEnabled:window.mailCustomFromEnabled}}).then(function(){vm.preferences.defaults.AuxiliaryMailAccounts[index]=account})}function removeMailAccount(index){vm.preferences.defaults.AuxiliaryMailAccounts.splice(index,1)}function addMailLabel(){vm.preferences.defaults.SOGoMailLabelsColors.new_label=["New label","#aaa"]}function removeMailLabel(key){delete vm.preferences.defaults.SOGoMailLabelsColors[key]}function addMailFilter(ev){vm.preferences.defaults.SOGoSieveFilters||(vm.preferences.defaults.SOGoSieveFilters=[]),vm.preferences.defaults.SOGoSieveFilters.push({});var filter=_.last(vm.preferences.defaults.SOGoSieveFilters);$mdDialog.show({controller:"FiltersDialogController",templateUrl:"editFilter?filter=new",targetEvent:ev,locals:{filter:filter,mailboxes:vm.mailboxes,labels:vm.preferences.defaults.SOGoMailLabelsColors,sieveCapabilities:window.sieveCapabilities}})}function editMailFilter(index){var filter=angular.copy(vm.preferences.defaults.SOGoSieveFilters[index]);$mdDialog.show({controller:"FiltersDialogController",templateUrl:"editFilter?filter="+index,targetEvent:null,locals:{filter:filter,mailboxes:vm.mailboxes,labels:vm.preferences.defaults.SOGoMailLabelsColors,sieveCapabilities:window.sieveCapabilities}}).then(function(){vm.preferences.defaults.SOGoSieveFilters[index]=filter})}function removeMailFilter(index){vm.preferences.defaults.SOGoSieveFilters.splice(index,1)}function addDefaultEmailAddresses(){var v=[];angular.isDefined(vm.preferences.defaults.Vacation.autoReplyEmailAddresses)&&(v=vm.preferences.defaults.Vacation.autoReplyEmailAddresses.split(",")),vm.preferences.defaults.Vacation.autoReplyEmailAddresses=_.union(window.defaultEmailAddresses.split(","),v).join(",")}function save(){var sendForm=!0;if(window.forwardConstraints>0&&angular.isDefined(vm.preferences.defaults.Forward)&&vm.preferences.defaults.Forward.enabled&&angular.isDefined(vm.preferences.defaults.Forward.forwardAddress)){var addresses=vm.preferences.defaults.Forward.forwardAddress.split(","),defaultAddresses=window.defaultEmailAddresses.split(/, */),domains=[];_.forEach(defaultAddresses,function(adr){var domain=adr.split("@")[1];domain&&domains.push(domain.toLowerCase())});for(var i=0;i=0&&2==window.forwardConstraints&&(Dialog.alert(l("Error"),l("You are not allowed to forward your messages to an internal email address.")),sendForm=!1)}}sendForm&&vm.preferences.$save().then(function(data){$mdToast.show($mdToast.simple().content(l("Preferences saved")).position("top right").hideDelay(3e3))})}function canChangePassword(){return vm.passwords.newPassword&&vm.passwords.newPassword.length>0&&vm.passwords.newPasswordConfirmation&&vm.passwords.newPasswordConfirmation.length&&vm.passwords.newPassword==vm.passwords.newPasswordConfirmation?!0:!1}function changePassword(){Authentication.changePassword(vm.passwords.newPassword).then(function(){var alert=$mdDialog.alert({title:l("Password"),content:l("The password was changed successfully."),ok:"OK"});$mdDialog.show(alert)["finally"](function(){alert=void 0})},function(msg){var alert=$mdDialog.alert({title:l("Password"),content:msg,ok:"OK"});$mdDialog.show(alert)["finally"](function(){alert=void 0})})}function timeZonesListFilter(filter){return _.filter(vm.timeZonesList,function(value){return value.toUpperCase().indexOf(filter.toUpperCase())>=0})}var vm=this;vm.preferences=statePreferences,vm.passwords={newPassword:null,newPasswordConfirmation:null},vm.go=go,vm.addCalendarCategory=addCalendarCategory,vm.removeCalendarCategory=removeCalendarCategory,vm.addContactCategory=addContactCategory,vm.removeContactCategory=removeContactCategory,vm.addMailAccount=addMailAccount,vm.editMailAccount=editMailAccount,vm.removeMailAccount=removeMailAccount,vm.addMailLabel=addMailLabel,vm.removeMailLabel=removeMailLabel,vm.addMailFilter=addMailFilter,vm.editMailFilter=editMailFilter,vm.removeMailFilter=removeMailFilter,vm.addDefaultEmailAddresses=addDefaultEmailAddresses,vm.userFilter=User.$filter,vm.save=save,vm.canChangePassword=canChangePassword,vm.changePassword=changePassword,vm.timeZonesList=window.timeZonesList,vm.timeZonesListFilter=timeZonesListFilter,vm.timeZonesSearchText="",vm.mailboxes=Mailbox.$find({id:0})}PreferencesController.$inject=["$state","$mdDialog","$mdToast","Dialog","User","Mailbox","statePreferences","Authentication"],angular.module("SOGo.PreferencesUI").controller("PreferencesController",PreferencesController)}(); +!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("preferences",{"abstract":!0,views:{preferences:{templateUrl:"preferences.html",controller:"PreferencesController",controllerAs:"app"}},resolve:{statePreferences:statePreferences}}).state("preferences.general",{url:"/general",views:{module:{templateUrl:"generalPreferences.html"}}}).state("preferences.calendars",{url:"/calendars",views:{module:{templateUrl:"calendarsPreferences.html"}}}).state("preferences.addressbooks",{url:"/addressbooks",views:{module:{templateUrl:"addressbooksPreferences.html"}}}).state("preferences.mailer",{url:"/mailer",views:{module:{templateUrl:"mailerPreferences.html"}}}),$urlRouterProvider.otherwise("/general")}function statePreferences(Preferences){return Preferences}function runBlock($rootScope){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.error(event,current,previous,rejection)})}angular.module("SOGo.PreferencesUI",["ngSanitize","ui.router","ck","SOGo.Common","SOGo.MailerUI","SOGo.ContactsUI","SOGo.Authentication"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],statePreferences.$inject=["Preferences"],runBlock.$inject=["$rootScope"]}(),function(){"use strict";function AccountDialogController($mdDialog,defaults,account,accountId,mailCustomFromEnabled){function customFromIsReadonly(){return accountId>0?!1:!mailCustomFromEnabled}function cancel(){$mdDialog.cancel()}function save(){$mdDialog.hide()}var vm=this;vm.defaults=defaults,vm.account=account,vm.accountId=accountId,vm.customFromIsReadonly=customFromIsReadonly,vm.cancel=cancel,vm.save=save}AccountDialogController.$inject=["$mdDialog","defaults","account","accountId","mailCustomFromEnabled"],angular.module("SOGo.PreferencesUI").controller("AccountDialogController",AccountDialogController)}(),function(){"use strict";function FiltersDialogController($scope,$window,$mdDialog,filter,mailboxes,labels){function cancel(){$mdDialog.cancel()}function save(form){$mdDialog.hide()}function addMailFilterRule(event){vm.filter.rules||(vm.filter.rules=[]),vm.filter.rules.push({field:"subject",operator:"contains"})}function removeMailFilterRule(index){vm.filter.rules.splice(index,1)}function addMailFilterAction(event){vm.filter.actions||(vm.filter.actions=[]),vm.filter.actions.push({method:"discard"})}function removeMailFilterAction(index){vm.filter.actions.splice(index,1)}var vm=this,sieveCapabilities=$window.sieveCapabilities;vm.filter=filter,vm.mailboxes=mailboxes,vm.labels=labels,vm.cancel=cancel,vm.save=save,vm.addMailFilterRule=addMailFilterRule,vm.removeMailFilterRule=removeMailFilterRule,vm.addMailFilterAction=addMailFilterAction,vm.removeMailFilterAction=removeMailFilterAction,vm.fieldLabels={subject:l("Subject"),from:l("From"),to:l("To"),cc:l("Cc"),to_or_cc:l("To or Cc"),size:l("Size (Kb)"),header:l("Header")},sieveCapabilities.indexOf("body")>-1&&(vm.fieldLabels.body=l("Body")),vm.methodLabels={discard:l("Discard the message"),keep:l("Keep the message"),redirect:l("Forward the message to:"),vacation:l("Send a vacation message"),stop:l("Stop processing filter rules")},sieveCapabilities.indexOf("reject")>-1&&(vm.methodLabels.reject=l("Send a reject message:")),sieveCapabilities.indexOf("fileinto")>-1&&(vm.methodLabels.fileinto=l("File the message in:")),(sieveCapabilities.indexOf("imapflags")>-1||sieveCapabilities.indexOf("imap4flags")>-1)&&(vm.methodLabels.addflag=l("Flag the message with:")),vm.numberOperatorLabels={under:l("is under"),over:l("is over")},vm.textOperatorLabels={is:l("is"),is_not:l("is not"),contains:l("contains"),contains_not:l("does not contain"),matches:l("matches"),matches_not:l("does not match")},sieveCapabilities.indexOf("regex")>-1&&(vm.textOperatorLabels.regex=l("matches regex"),vm.textOperatorLabels.regex_not=l("does not match regex")),vm.flagLabels={seen:l("Seen"),deleted:l("Deleted"),answered:l("Answered"),flagged:l("Flagged"),junk:l("Junk"),not_junk:l("Not Junk")}}FiltersDialogController.$inject=["$scope","$window","$mdDialog","filter","mailboxes","labels"],angular.module("SOGo.PreferencesUI").controller("FiltersDialogController",FiltersDialogController)}(),function(){"use strict";function PreferencesController($state,$mdDialog,$mdToast,Dialog,User,Account,statePreferences,Authentication){function go(module){$state.go("preferences."+module)}function addCalendarCategory(){vm.preferences.defaults.SOGoCalendarCategoriesColors["New category"]="#aaa",vm.preferences.defaults.SOGoCalendarCategories.push("New category")}function removeCalendarCategory(index){var key=vm.preferences.defaults.SOGoCalendarCategories[index];vm.preferences.defaults.SOGoCalendarCategories.splice(index,1),delete vm.preferences.defaults.SOGoCalendarCategoriesColors[key]}function addContactCategory(){vm.preferences.defaults.SOGoContactsCategories.push("")}function removeContactCategory(index){vm.preferences.defaults.SOGoContactsCategories.splice(index,1)}function addMailAccount(ev){var account;vm.preferences.defaults.AuxiliaryMailAccounts.push({}),account=_.last(vm.preferences.defaults.AuxiliaryMailAccounts),account.name=l("New account"),account.identities=[{fullName:"",email:""}],account.receipts={receiptAction:"ignore",receiptNonRecipientAction:"ignore",receiptOutsideDomainAction:"ignore",receiptAnyAction:"ignore"},$mdDialog.show({controller:"AccountDialogController",controllerAs:"$AccountDialogController",templateUrl:"editAccount?account=new",targetEvent:ev,locals:{defaults:vm.preferences.defaults,account:account,accountId:vm.preferences.defaults.AuxiliaryMailAccounts.length-1,mailCustomFromEnabled:window.mailCustomFromEnabled}})}function editMailAccount(event,index){var account=vm.preferences.defaults.AuxiliaryMailAccounts[index];$mdDialog.show({controller:"AccountDialogController",controllerAs:"$AccountDialogController",templateUrl:"editAccount?account="+index,targetEvent:event,locals:{defaults:vm.preferences.defaults,account:account,accountId:index,mailCustomFromEnabled:window.mailCustomFromEnabled}}).then(function(){vm.preferences.defaults.AuxiliaryMailAccounts[index]=account})}function removeMailAccount(index){vm.preferences.defaults.AuxiliaryMailAccounts.splice(index,1)}function addMailLabel(){vm.preferences.defaults.SOGoMailLabelsColors.new_label=["New label","#aaa"]}function removeMailLabel(key){delete vm.preferences.defaults.SOGoMailLabelsColors[key]}function addMailFilter(ev){var filter={match:"all"};$mdDialog.show({templateUrl:"editFilter?filter=new",controller:"FiltersDialogController",controllerAs:"filterEditor",targetEvent:ev,locals:{filter:filter,mailboxes:mailboxes,labels:vm.preferences.defaults.SOGoMailLabelsColors}}).then(function(){vm.preferences.defaults.SOGoSieveFilters||(vm.preferences.defaults.SOGoSieveFilters=[]),vm.preferences.defaults.SOGoSieveFilters.push(filter)})}function editMailFilter(ev,index){var filter=angular.copy(vm.preferences.defaults.SOGoSieveFilters[index]);$mdDialog.show({templateUrl:"editFilter?filter="+index,controller:"FiltersDialogController",controllerAs:"filterEditor",targetEvent:null,locals:{filter:filter,mailboxes:mailboxes,labels:vm.preferences.defaults.SOGoMailLabelsColors}}).then(function(){vm.preferences.defaults.SOGoSieveFilters[index]=filter})}function removeMailFilter(index){vm.preferences.defaults.SOGoSieveFilters.splice(index,1)}function addDefaultEmailAddresses(){var v=[];angular.isDefined(vm.preferences.defaults.Vacation.autoReplyEmailAddresses)&&(v=vm.preferences.defaults.Vacation.autoReplyEmailAddresses.split(",")),vm.preferences.defaults.Vacation.autoReplyEmailAddresses=_.union(window.defaultEmailAddresses.split(","),v).join(",")}function save(){var sendForm=!0;if(window.forwardConstraints>0&&angular.isDefined(vm.preferences.defaults.Forward)&&vm.preferences.defaults.Forward.enabled&&angular.isDefined(vm.preferences.defaults.Forward.forwardAddress)){var addresses=vm.preferences.defaults.Forward.forwardAddress.split(","),defaultAddresses=window.defaultEmailAddresses.split(/, */),domains=[];_.forEach(defaultAddresses,function(adr){var domain=adr.split("@")[1];domain&&domains.push(domain.toLowerCase())});for(var i=0;i=0&&2==window.forwardConstraints&&(Dialog.alert(l("Error"),l("You are not allowed to forward your messages to an internal email address.")),sendForm=!1)}}sendForm&&vm.preferences.$save().then(function(data){$mdToast.show($mdToast.simple().content(l("Preferences saved")).position("top right").hideDelay(3e3))})}function canChangePassword(){return vm.passwords.newPassword&&vm.passwords.newPassword.length>0&&vm.passwords.newPasswordConfirmation&&vm.passwords.newPasswordConfirmation.length&&vm.passwords.newPassword==vm.passwords.newPasswordConfirmation?!0:!1}function changePassword(){Authentication.changePassword(vm.passwords.newPassword).then(function(){var alert=$mdDialog.alert({title:l("Password"),content:l("The password was changed successfully."),ok:"OK"});$mdDialog.show(alert)["finally"](function(){alert=void 0})},function(msg){var alert=$mdDialog.alert({title:l("Password"),content:msg,ok:"OK"});$mdDialog.show(alert)["finally"](function(){alert=void 0})})}function timeZonesListFilter(filter){return _.filter(vm.timeZonesList,function(value){return value.toUpperCase().indexOf(filter.toUpperCase())>=0})}var account,vm=this,mailboxes=[];vm.preferences=statePreferences,vm.passwords={newPassword:null,newPasswordConfirmation:null},vm.go=go,vm.addCalendarCategory=addCalendarCategory,vm.removeCalendarCategory=removeCalendarCategory,vm.addContactCategory=addContactCategory,vm.removeContactCategory=removeContactCategory,vm.addMailAccount=addMailAccount,vm.editMailAccount=editMailAccount,vm.removeMailAccount=removeMailAccount,vm.addMailLabel=addMailLabel,vm.removeMailLabel=removeMailLabel,vm.addMailFilter=addMailFilter,vm.editMailFilter=editMailFilter,vm.removeMailFilter=removeMailFilter,vm.addDefaultEmailAddresses=addDefaultEmailAddresses,vm.userFilter=User.$filter,vm.save=save,vm.canChangePassword=canChangePassword,vm.changePassword=changePassword,vm.timeZonesList=window.timeZonesList,vm.timeZonesListFilter=timeZonesListFilter,vm.timeZonesSearchText="",account=new Account({id:0}),account.$getMailboxes().then(function(){for(var allMailboxes=account.$flattenMailboxes({all:!0}),index=-1,length=allMailboxes.length;++index 0)\n return false;\n\n return !mailCustomFromEnabled;\n }\n\n function cancel() {\n $mdDialog.cancel();\n }\n\n function save() {\n $mdDialog.hide();\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('AccountDialogController', AccountDialogController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n FiltersDialogController.$inject = ['$scope', '$mdDialog', 'filter', 'mailboxes', 'labels', 'sieveCapabilities'];\n function FiltersDialogController($scope, $mdDialog, filter, mailboxes, labels, sieveCapabilities) {\n $scope.filter = filter;\n $scope.mailboxes = mailboxes;\n $scope.labels = labels;\n\n $scope.fieldLabels = {\n \"subject\": l(\"Subject\"),\n \"from\": l(\"From\"),\n \"to\": l(\"To\"),\n \"cc\": l(\"Cc\"),\n \"to_or_cc\": l(\"To or Cc\"),\n \"size\": l(\"Size (Kb)\"),\n \"header\": l(\"Header\")\n };\n\n if (sieveCapabilities.indexOf(\"body\") > -1)\n $scope.fieldLabels.body = l(\"Body\");\n\n $scope.methodLabels = {\n \"discard\": l(\"Discard the message\"),\n \"keep\": l(\"Keep the message\"),\n \"redirect\": l(\"Forward the message to:\"),\n \"vacation\": l(\"Send a vacation message\"),\n \"stop\": l(\"Stop processing filter rules\")\n };\n\n if (sieveCapabilities.indexOf(\"reject\") > -1)\n $scope.methodLabels.reject = l(\"Send a reject message:\");\n\n if (sieveCapabilities.indexOf(\"fileinto\") > -1)\n $scope.methodLabels.fileinto = l(\"File the message in:\");\n\n if (sieveCapabilities.indexOf(\"imapflags\") > -1 || sieveCapabilities.indexOf(\"imap4flags\") > -1)\n $scope.methodLabels.addflag = l(\"Flag the message with:\");\n\n $scope.numberOperatorLabels = {\n \"under\": l(\"is under\"),\n \"over\": l(\"is over\")\n };\n\n $scope.textOperatorLabels = {\n \"is\": l(\"is\"),\n \"is_not\": l(\"is not\"),\n \"contains\": l(\"contains\"),\n \"contains_not\": l(\"does not contain\"),\n \"matches\": l(\"matches\"),\n \"matches_not\": l(\"does not match\")\n };\n\n if (sieveCapabilities.indexOf(\"regex\") > -1) {\n $scope.textOperatorLabels.regex = l(\"matches regex\");\n $scope.textOperatorLabels.regex_not = l(\"does not match regex\");\n }\n\n $scope.flagLabels = {\n \"seen\": l(\"Seen\"),\n \"deleted\": l(\"Deleted\"),\n \"answered\": l(\"Answered\"),\n \"flagged\": l(\"Flagged\"),\n \"junk\": l(\"Junk\"),\n \"not_junk\": l(\"Not Junk\")\n };\n \n $scope.cancel = function() {\n $mdDialog.cancel();\n };\n \n $scope.save = function() {\n $mdDialog.hide();\n };\n \n $scope.addMailFilterRule = function(event) {\n if (!$scope.filter.rules)\n $scope.filter.rules = [];\n\n $scope.filter.rules.push({});\n };\n \n $scope.removeMailFilterRule = function(index) {\n $scope.filter.rules.splice(index, 1);\n };\n \n $scope.addMailFilterAction = function(event) {\n if (!$scope.filter.actions)\n $scope.filter.actions = [];\n\n $scope.filter.actions.push({});\n };\n \n $scope.removeMailFilterAction = function(index) {\n $scope.filter.actions.splice(index, 1);\n };\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('FiltersDialogController', FiltersDialogController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n \n /**\n * @ngInject\n */\n PreferencesController.$inject = ['$state', '$mdDialog', '$mdToast', 'Dialog', 'User', 'Mailbox', 'statePreferences', 'Authentication'];\n function PreferencesController($state, $mdDialog, $mdToast, Dialog, User, Mailbox, statePreferences, Authentication) {\n var vm = this;\n\n vm.preferences = statePreferences;\n vm.passwords = { newPassword: null, newPasswordConfirmation: null };\n\n vm.go = go;\n vm.addCalendarCategory = addCalendarCategory;\n vm.removeCalendarCategory = removeCalendarCategory;\n vm.addContactCategory = addContactCategory;\n vm.removeContactCategory = removeContactCategory;\n vm.addMailAccount = addMailAccount;\n vm.editMailAccount = editMailAccount;\n vm.removeMailAccount = removeMailAccount;\n vm.addMailLabel = addMailLabel;\n vm.removeMailLabel = removeMailLabel;\n vm.addMailFilter = addMailFilter;\n vm.editMailFilter = editMailFilter;\n vm.removeMailFilter = removeMailFilter;\n vm.addDefaultEmailAddresses = addDefaultEmailAddresses;\n vm.userFilter = User.$filter;\n vm.save = save;\n vm.canChangePassword = canChangePassword;\n vm.changePassword = changePassword;\n vm.timeZonesList = window.timeZonesList;\n vm.timeZonesListFilter = timeZonesListFilter;\n vm.timeZonesSearchText = '';\n vm.mailboxes = Mailbox.$find({ id: 0 });\n\n function go(module) {\n $state.go('preferences.' + module);\n }\n\n function addCalendarCategory() {\n vm.preferences.defaults.SOGoCalendarCategoriesColors[\"New category\"] = \"#aaa\";\n vm.preferences.defaults.SOGoCalendarCategories.push(\"New category\");\n }\n\n function removeCalendarCategory(index) {\n var key = vm.preferences.defaults.SOGoCalendarCategories[index];\n vm.preferences.defaults.SOGoCalendarCategories.splice(index, 1);\n delete vm.preferences.defaults.SOGoCalendarCategoriesColors[key];\n }\n\n function addContactCategory() {\n vm.preferences.defaults.SOGoContactsCategories.push(\"\");\n }\n\n function removeContactCategory(index) {\n vm.preferences.defaults.SOGoContactsCategories.splice(index, 1);\n }\n\n function addMailAccount(ev) {\n var account;\n\n vm.preferences.defaults.AuxiliaryMailAccounts.push({});\n\n account = _.last(vm.preferences.defaults.AuxiliaryMailAccounts);\n account.name = l(\"New account\");\n account.identities = [\n {\n fullName: \"\",\n email: \"\"\n }\n ];\n account.receipts = {\n receiptAction: \"ignore\",\n receiptNonRecipientAction: \"ignore\",\n receiptOutsideDomainAction: \"ignore\",\n receiptAnyAction: \"ignore\"\n };\n\n $mdDialog.show({\n controller: 'AccountDialogController',\n controllerAs: '$AccountDialogController',\n templateUrl: 'editAccount?account=new',\n targetEvent: ev,\n locals: {\n defaults: vm.preferences.defaults,\n account: account,\n accountId: (vm.preferences.defaults.AuxiliaryMailAccounts.length-1),\n mailCustomFromEnabled: window.mailCustomFromEnabled\n }\n });\n }\n\n function editMailAccount(event, index) {\n var account = vm.preferences.defaults.AuxiliaryMailAccounts[index];\n $mdDialog.show({\n controller: 'AccountDialogController',\n controllerAs: '$AccountDialogController',\n templateUrl: 'editAccount?account=' + index,\n targetEvent: event,\n locals: {\n defaults: vm.preferences.defaults,\n account: account,\n accountId: index,\n mailCustomFromEnabled: window.mailCustomFromEnabled\n }\n }).then(function() {\n vm.preferences.defaults.AuxiliaryMailAccounts[index] = account;\n });\n }\n\n function removeMailAccount(index) {\n vm.preferences.defaults.AuxiliaryMailAccounts.splice(index, 1);\n }\n \n function addMailLabel() {\n vm.preferences.defaults.SOGoMailLabelsColors.new_label = [\"New label\", \"#aaa\"];\n }\n\n function removeMailLabel(key) {\n delete vm.preferences.defaults.SOGoMailLabelsColors[key];\n }\n\n function addMailFilter(ev) {\n if (!vm.preferences.defaults.SOGoSieveFilters)\n vm.preferences.defaults.SOGoSieveFilters = [];\n\n vm.preferences.defaults.SOGoSieveFilters.push({});\n var filter = _.last(vm.preferences.defaults.SOGoSieveFilters);\n $mdDialog.show({\n controller: 'FiltersDialogController',\n templateUrl: 'editFilter?filter=new',\n targetEvent: ev,\n locals: {\n filter: filter,\n mailboxes: vm.mailboxes,\n labels: vm.preferences.defaults.SOGoMailLabelsColors,\n sieveCapabilities: window.sieveCapabilities\n }\n });\n }\n \n function editMailFilter(index) {\n var filter = angular.copy(vm.preferences.defaults.SOGoSieveFilters[index]);\n \n $mdDialog.show({\n controller: 'FiltersDialogController',\n templateUrl: 'editFilter?filter=' + index,\n targetEvent: null,\n locals: {\n filter: filter,\n mailboxes: vm.mailboxes,\n labels: vm.preferences.defaults.SOGoMailLabelsColors,\n sieveCapabilities: window.sieveCapabilities\n }\n }).then(function() {\n vm.preferences.defaults.SOGoSieveFilters[index] = filter;\n });\n }\n\n function removeMailFilter(index) {\n vm.preferences.defaults.SOGoSieveFilters.splice(index, 1);\n }\n\n function addDefaultEmailAddresses() {\n var v = [];\n\n if (angular.isDefined(vm.preferences.defaults.Vacation.autoReplyEmailAddresses)) {\n v = vm.preferences.defaults.Vacation.autoReplyEmailAddresses.split(',');\n }\n\n vm.preferences.defaults.Vacation.autoReplyEmailAddresses = (_.union(window.defaultEmailAddresses.split(','), v)).join(',');\n }\n \n function save() {\n var sendForm = true;\n\n // We do some sanity checks\n if (window.forwardConstraints > 0 &&\n angular.isDefined(vm.preferences.defaults.Forward) &&\n vm.preferences.defaults.Forward.enabled &&\n angular.isDefined(vm.preferences.defaults.Forward.forwardAddress)) {\n\n var addresses = vm.preferences.defaults.Forward.forwardAddress.split(\",\");\n\n // We first extract the list of 'known domains' to SOGo\n var defaultAddresses = window.defaultEmailAddresses.split(/, */);\n var domains = [];\n\n _.forEach(defaultAddresses, function(adr) {\n var domain = adr.split(\"@\")[1];\n if (domain) {\n domains.push(domain.toLowerCase());\n }\n });\n\n // We check if we're allowed or not to forward based on the domain defaults\n for (var i = 0; i < addresses.length && sendForm; i++) {\n var domain = addresses[i].split(\"@\")[1].toLowerCase();\n if (domains.indexOf(domain) < 0 && window.forwardConstraints == 1) {\n Dialog.alert(l('Error'), l(\"You are not allowed to forward your messages to an external email address.\"));\n sendForm = false;\n }\n else if (domains.indexOf(domain) >= 0 && window.forwardConstraints == 2) {\n Dialog.alert(l('Error'), l(\"You are not allowed to forward your messages to an internal email address.\"));\n sendForm = false;\n }\n }\n }\n\n if (sendForm)\n vm.preferences.$save().then(function(data) {\n $mdToast.show(\n $mdToast.simple()\n .content(l('Preferences saved'))\n .position('top right')\n .hideDelay(3000)\n );\n });\n }\n\n function canChangePassword() {\n if (vm.passwords.newPassword && vm.passwords.newPassword.length > 0 &&\n vm.passwords.newPasswordConfirmation && vm.passwords.newPasswordConfirmation.length &&\n vm.passwords.newPassword == vm.passwords.newPasswordConfirmation)\n return true;\n\n return false;\n }\n \n function changePassword() {\n Authentication.changePassword(vm.passwords.newPassword).then(function() {\n var alert = $mdDialog.alert({\n title: l('Password'),\n content: l('The password was changed successfully.'),\n ok: 'OK'\n });\n $mdDialog.show( alert )\n .finally(function() {\n alert = undefined;\n });\n }, function(msg) {\n var alert = $mdDialog.alert({\n title: l('Password'),\n content: msg,\n ok: 'OK'\n });\n $mdDialog.show( alert )\n .finally(function() {\n alert = undefined;\n });\n });\n }\n\n function timeZonesListFilter(filter) {\n return _.filter(vm.timeZonesList, function(value) {\n return value.toUpperCase().indexOf(filter.toUpperCase()) >= 0;\n });\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('PreferencesController', PreferencesController);\n\n})();\n"]} \ No newline at end of file +{"version":3,"file":"Preferences.js","sources":["Preferences/Preferences.app.js","Preferences/AccountDialogController.js","Preferences/FiltersDialogController.js","Preferences/PreferencesController.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","abstract","views","preferences","templateUrl","controller","controllerAs","resolve","statePreferences","url","module","otherwise","Preferences","runBlock","$rootScope","$on","event","current","previous","rejection","console","error","angular","config","run","$inject","AccountDialogController","$mdDialog","defaults","account","accountId","mailCustomFromEnabled","customFromIsReadonly","cancel","save","hide","vm","this","FiltersDialogController","$scope","$window","filter","mailboxes","labels","form","addMailFilterRule","rules","push","field","operator","removeMailFilterRule","index","splice","addMailFilterAction","actions","method","removeMailFilterAction","sieveCapabilities","fieldLabels","subject","l","from","to","cc","to_or_cc","size","header","indexOf","body","methodLabels","discard","keep","redirect","vacation","stop","reject","fileinto","addflag","numberOperatorLabels","under","over","textOperatorLabels","is","is_not","contains","contains_not","matches","matches_not","regex","regex_not","flagLabels","seen","deleted","answered","flagged","junk","not_junk","PreferencesController","$state","$mdToast","Dialog","User","Account","Authentication","go","addCalendarCategory","SOGoCalendarCategoriesColors","SOGoCalendarCategories","removeCalendarCategory","key","addContactCategory","SOGoContactsCategories","removeContactCategory","addMailAccount","ev","AuxiliaryMailAccounts","_","last","name","identities","fullName","email","receipts","receiptAction","receiptNonRecipientAction","receiptOutsideDomainAction","receiptAnyAction","show","targetEvent","locals","length","window","editMailAccount","then","removeMailAccount","addMailLabel","SOGoMailLabelsColors","new_label","removeMailLabel","addMailFilter","match","SOGoSieveFilters","editMailFilter","copy","removeMailFilter","addDefaultEmailAddresses","v","isDefined","Vacation","autoReplyEmailAddresses","split","union","defaultEmailAddresses","join","sendForm","forwardConstraints","Forward","enabled","forwardAddress","addresses","defaultAddresses","domains","forEach","adr","domain","toLowerCase","i","alert","$save","data","simple","content","position","hideDelay","canChangePassword","passwords","newPassword","newPasswordConfirmation","changePassword","title","ok","undefined","msg","timeZonesListFilter","timeZonesList","value","toUpperCase","userFilter","$filter","timeZonesSearchText","id","$getMailboxes","allMailboxes","$flattenMailboxes","all"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.PreferencesUI', ['ngSanitize', 'ui.router', 'ck', 'SOGo.Common', 'SOGo.MailerUI', 'SOGo.ContactsUI', 'SOGo.Authentication'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('preferences', {\n abstract: true,\n views: {\n preferences: {\n templateUrl: 'preferences.html',\n controller: 'PreferencesController',\n controllerAs: 'app'\n }\n },\n resolve: {\n statePreferences: statePreferences\n }\n })\n .state('preferences.general', {\n url: '/general',\n views: {\n module: {\n templateUrl: 'generalPreferences.html'\n }\n }\n })\n .state('preferences.calendars', {\n url: '/calendars',\n views: {\n module: {\n templateUrl: 'calendarsPreferences.html'\n }\n }\n })\n .state('preferences.addressbooks', {\n url: '/addressbooks',\n views: {\n module: {\n templateUrl: 'addressbooksPreferences.html'\n }\n }\n })\n .state('preferences.mailer', {\n url: '/mailer',\n views: {\n module: {\n templateUrl: 'mailerPreferences.html'\n }\n }\n });\n\n // if none of the above states are matched, use this as the fallback\n $urlRouterProvider.otherwise('/general');\n }\n\n /**\n * @ngInject\n */\n statePreferences.$inject = ['Preferences'];\n function statePreferences(Preferences) {\n return Preferences;\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope'];\n function runBlock($rootScope) {\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n console.error(event, current, previous, rejection);\n });\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n AccountDialogController.$inject = ['$mdDialog', 'defaults', 'account', 'accountId', 'mailCustomFromEnabled'];\n function AccountDialogController($mdDialog, defaults, account, accountId, mailCustomFromEnabled) {\n var vm = this;\n\n vm.defaults = defaults;\n vm.account = account;\n vm.accountId = accountId;\n vm.customFromIsReadonly = customFromIsReadonly;\n vm.cancel = cancel;\n vm.save = save;\n\n function customFromIsReadonly() {\n if (accountId > 0)\n return false;\n\n return !mailCustomFromEnabled;\n }\n\n function cancel() {\n $mdDialog.cancel();\n }\n\n function save() {\n $mdDialog.hide();\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('AccountDialogController', AccountDialogController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n FiltersDialogController.$inject = ['$scope', '$window', '$mdDialog', 'filter', 'mailboxes', 'labels'];\n function FiltersDialogController($scope, $window, $mdDialog, filter, mailboxes, labels) {\n var vm = this, sieveCapabilities = $window.sieveCapabilities;\n\n vm.filter = filter;\n vm.mailboxes = mailboxes;\n vm.labels = labels;\n vm.cancel = cancel;\n vm.save = save;\n vm.addMailFilterRule = addMailFilterRule;\n vm.removeMailFilterRule = removeMailFilterRule;\n vm.addMailFilterAction = addMailFilterAction;\n vm.removeMailFilterAction = removeMailFilterAction;\n\n vm.fieldLabels = {\n \"subject\": l(\"Subject\"),\n \"from\": l(\"From\"),\n \"to\": l(\"To\"),\n \"cc\": l(\"Cc\"),\n \"to_or_cc\": l(\"To or Cc\"),\n \"size\": l(\"Size (Kb)\"),\n \"header\": l(\"Header\")\n };\n\n if (sieveCapabilities.indexOf(\"body\") > -1)\n vm.fieldLabels.body = l(\"Body\");\n\n vm.methodLabels = {\n \"discard\": l(\"Discard the message\"),\n \"keep\": l(\"Keep the message\"),\n \"redirect\": l(\"Forward the message to:\"),\n \"vacation\": l(\"Send a vacation message\"),\n \"stop\": l(\"Stop processing filter rules\")\n };\n\n if (sieveCapabilities.indexOf(\"reject\") > -1)\n vm.methodLabels.reject = l(\"Send a reject message:\");\n\n if (sieveCapabilities.indexOf(\"fileinto\") > -1)\n vm.methodLabels.fileinto = l(\"File the message in:\");\n\n if (sieveCapabilities.indexOf(\"imapflags\") > -1 || sieveCapabilities.indexOf(\"imap4flags\") > -1)\n vm.methodLabels.addflag = l(\"Flag the message with:\");\n\n vm.numberOperatorLabels = {\n \"under\": l(\"is under\"),\n \"over\": l(\"is over\")\n };\n\n vm.textOperatorLabels = {\n \"is\": l(\"is\"),\n \"is_not\": l(\"is not\"),\n \"contains\": l(\"contains\"),\n \"contains_not\": l(\"does not contain\"),\n \"matches\": l(\"matches\"),\n \"matches_not\": l(\"does not match\")\n };\n\n if (sieveCapabilities.indexOf(\"regex\") > -1) {\n vm.textOperatorLabels.regex = l(\"matches regex\");\n vm.textOperatorLabels.regex_not = l(\"does not match regex\");\n }\n\n vm.flagLabels = {\n \"seen\": l(\"Seen\"),\n \"deleted\": l(\"Deleted\"),\n \"answered\": l(\"Answered\"),\n \"flagged\": l(\"Flagged\"),\n \"junk\": l(\"Junk\"),\n \"not_junk\": l(\"Not Junk\")\n };\n \n function cancel() {\n $mdDialog.cancel();\n }\n \n function save(form) {\n $mdDialog.hide();\n }\n \n function addMailFilterRule(event) {\n if (!vm.filter.rules)\n vm.filter.rules = [];\n\n vm.filter.rules.push({ field: 'subject', operator: 'contains' });\n }\n \n function removeMailFilterRule(index) {\n vm.filter.rules.splice(index, 1);\n }\n \n function addMailFilterAction(event) {\n if (!vm.filter.actions)\n vm.filter.actions = [];\n\n vm.filter.actions.push({ method: 'discard' });\n }\n \n function removeMailFilterAction(index) {\n vm.filter.actions.splice(index, 1);\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('FiltersDialogController', FiltersDialogController);\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGoPreferences */\n\n(function() {\n 'use strict';\n \n /**\n * @ngInject\n */\n PreferencesController.$inject = ['$state', '$mdDialog', '$mdToast', 'Dialog', 'User', 'Account', 'statePreferences', 'Authentication'];\n function PreferencesController($state, $mdDialog, $mdToast, Dialog, User, Account, statePreferences, Authentication) {\n var vm = this, account, mailboxes = [];\n\n vm.preferences = statePreferences;\n vm.passwords = { newPassword: null, newPasswordConfirmation: null };\n\n vm.go = go;\n vm.addCalendarCategory = addCalendarCategory;\n vm.removeCalendarCategory = removeCalendarCategory;\n vm.addContactCategory = addContactCategory;\n vm.removeContactCategory = removeContactCategory;\n vm.addMailAccount = addMailAccount;\n vm.editMailAccount = editMailAccount;\n vm.removeMailAccount = removeMailAccount;\n vm.addMailLabel = addMailLabel;\n vm.removeMailLabel = removeMailLabel;\n vm.addMailFilter = addMailFilter;\n vm.editMailFilter = editMailFilter;\n vm.removeMailFilter = removeMailFilter;\n vm.addDefaultEmailAddresses = addDefaultEmailAddresses;\n vm.userFilter = User.$filter;\n vm.save = save;\n vm.canChangePassword = canChangePassword;\n vm.changePassword = changePassword;\n vm.timeZonesList = window.timeZonesList;\n vm.timeZonesListFilter = timeZonesListFilter;\n vm.timeZonesSearchText = '';\n\n // Fetch a flatten version of the mailboxes list of the main account (0)\n // This list will be forwarded to the Sieve filter controller\n account = new Account({ id: 0 });\n account.$getMailboxes().then(function() {\n var allMailboxes = account.$flattenMailboxes({all: true}),\n index = -1,\n length = allMailboxes.length;\n while (++index < length) {\n mailboxes.push(allMailboxes[index]);\n }\n });\n\n function go(module) {\n $state.go('preferences.' + module);\n }\n\n function addCalendarCategory() {\n vm.preferences.defaults.SOGoCalendarCategoriesColors[\"New category\"] = \"#aaa\";\n vm.preferences.defaults.SOGoCalendarCategories.push(\"New category\");\n }\n\n function removeCalendarCategory(index) {\n var key = vm.preferences.defaults.SOGoCalendarCategories[index];\n vm.preferences.defaults.SOGoCalendarCategories.splice(index, 1);\n delete vm.preferences.defaults.SOGoCalendarCategoriesColors[key];\n }\n\n function addContactCategory() {\n vm.preferences.defaults.SOGoContactsCategories.push(\"\");\n }\n\n function removeContactCategory(index) {\n vm.preferences.defaults.SOGoContactsCategories.splice(index, 1);\n }\n\n function addMailAccount(ev) {\n var account;\n\n vm.preferences.defaults.AuxiliaryMailAccounts.push({});\n\n account = _.last(vm.preferences.defaults.AuxiliaryMailAccounts);\n account.name = l(\"New account\");\n account.identities = [\n {\n fullName: \"\",\n email: \"\"\n }\n ];\n account.receipts = {\n receiptAction: \"ignore\",\n receiptNonRecipientAction: \"ignore\",\n receiptOutsideDomainAction: \"ignore\",\n receiptAnyAction: \"ignore\"\n };\n\n $mdDialog.show({\n controller: 'AccountDialogController',\n controllerAs: '$AccountDialogController',\n templateUrl: 'editAccount?account=new',\n targetEvent: ev,\n locals: {\n defaults: vm.preferences.defaults,\n account: account,\n accountId: (vm.preferences.defaults.AuxiliaryMailAccounts.length-1),\n mailCustomFromEnabled: window.mailCustomFromEnabled\n }\n });\n }\n\n function editMailAccount(event, index) {\n var account = vm.preferences.defaults.AuxiliaryMailAccounts[index];\n $mdDialog.show({\n controller: 'AccountDialogController',\n controllerAs: '$AccountDialogController',\n templateUrl: 'editAccount?account=' + index,\n targetEvent: event,\n locals: {\n defaults: vm.preferences.defaults,\n account: account,\n accountId: index,\n mailCustomFromEnabled: window.mailCustomFromEnabled\n }\n }).then(function() {\n vm.preferences.defaults.AuxiliaryMailAccounts[index] = account;\n });\n }\n\n function removeMailAccount(index) {\n vm.preferences.defaults.AuxiliaryMailAccounts.splice(index, 1);\n }\n \n function addMailLabel() {\n vm.preferences.defaults.SOGoMailLabelsColors.new_label = [\"New label\", \"#aaa\"];\n }\n\n function removeMailLabel(key) {\n delete vm.preferences.defaults.SOGoMailLabelsColors[key];\n }\n\n function addMailFilter(ev) {\n var filter = { match: 'all' };\n\n $mdDialog.show({\n templateUrl: 'editFilter?filter=new',\n controller: 'FiltersDialogController',\n controllerAs: 'filterEditor',\n targetEvent: ev,\n locals: {\n filter: filter,\n mailboxes: mailboxes,\n labels: vm.preferences.defaults.SOGoMailLabelsColors\n }\n }).then(function() {\n if (!vm.preferences.defaults.SOGoSieveFilters)\n vm.preferences.defaults.SOGoSieveFilters = [];\n vm.preferences.defaults.SOGoSieveFilters.push(filter);\n });\n }\n \n function editMailFilter(ev, index) {\n var filter = angular.copy(vm.preferences.defaults.SOGoSieveFilters[index]);\n \n $mdDialog.show({\n templateUrl: 'editFilter?filter=' + index,\n controller: 'FiltersDialogController',\n controllerAs: 'filterEditor',\n targetEvent: null,\n locals: {\n filter: filter,\n mailboxes: mailboxes,\n labels: vm.preferences.defaults.SOGoMailLabelsColors\n }\n }).then(function() {\n vm.preferences.defaults.SOGoSieveFilters[index] = filter;\n });\n }\n\n function removeMailFilter(index) {\n vm.preferences.defaults.SOGoSieveFilters.splice(index, 1);\n }\n\n function addDefaultEmailAddresses() {\n var v = [];\n\n if (angular.isDefined(vm.preferences.defaults.Vacation.autoReplyEmailAddresses)) {\n v = vm.preferences.defaults.Vacation.autoReplyEmailAddresses.split(',');\n }\n\n vm.preferences.defaults.Vacation.autoReplyEmailAddresses = (_.union(window.defaultEmailAddresses.split(','), v)).join(',');\n }\n \n function save() {\n var sendForm = true;\n\n // We do some sanity checks\n if (window.forwardConstraints > 0 &&\n angular.isDefined(vm.preferences.defaults.Forward) &&\n vm.preferences.defaults.Forward.enabled &&\n angular.isDefined(vm.preferences.defaults.Forward.forwardAddress)) {\n\n var addresses = vm.preferences.defaults.Forward.forwardAddress.split(\",\");\n\n // We first extract the list of 'known domains' to SOGo\n var defaultAddresses = window.defaultEmailAddresses.split(/, */);\n var domains = [];\n\n _.forEach(defaultAddresses, function(adr) {\n var domain = adr.split(\"@\")[1];\n if (domain) {\n domains.push(domain.toLowerCase());\n }\n });\n\n // We check if we're allowed or not to forward based on the domain defaults\n for (var i = 0; i < addresses.length && sendForm; i++) {\n var domain = addresses[i].split(\"@\")[1].toLowerCase();\n if (domains.indexOf(domain) < 0 && window.forwardConstraints == 1) {\n Dialog.alert(l('Error'), l(\"You are not allowed to forward your messages to an external email address.\"));\n sendForm = false;\n }\n else if (domains.indexOf(domain) >= 0 && window.forwardConstraints == 2) {\n Dialog.alert(l('Error'), l(\"You are not allowed to forward your messages to an internal email address.\"));\n sendForm = false;\n }\n }\n }\n\n if (sendForm)\n vm.preferences.$save().then(function(data) {\n $mdToast.show(\n $mdToast.simple()\n .content(l('Preferences saved'))\n .position('top right')\n .hideDelay(3000)\n );\n });\n }\n\n function canChangePassword() {\n if (vm.passwords.newPassword && vm.passwords.newPassword.length > 0 &&\n vm.passwords.newPasswordConfirmation && vm.passwords.newPasswordConfirmation.length &&\n vm.passwords.newPassword == vm.passwords.newPasswordConfirmation)\n return true;\n\n return false;\n }\n \n function changePassword() {\n Authentication.changePassword(vm.passwords.newPassword).then(function() {\n var alert = $mdDialog.alert({\n title: l('Password'),\n content: l('The password was changed successfully.'),\n ok: 'OK'\n });\n $mdDialog.show( alert )\n .finally(function() {\n alert = undefined;\n });\n }, function(msg) {\n var alert = $mdDialog.alert({\n title: l('Password'),\n content: msg,\n ok: 'OK'\n });\n $mdDialog.show( alert )\n .finally(function() {\n alert = undefined;\n });\n });\n }\n\n function timeZonesListFilter(filter) {\n return _.filter(vm.timeZonesList, function(value) {\n return value.toUpperCase().indexOf(filter.toUpperCase()) >= 0;\n });\n }\n }\n\n angular\n .module('SOGo.PreferencesUI')\n .controller('PreferencesController', PreferencesController);\n\n})();\n"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Scheduler.js b/UI/WebServerResources/js/Scheduler.js index 4f4bd1bfa..2a7dc634d 100644 --- a/UI/WebServerResources/js/Scheduler.js +++ b/UI/WebServerResources/js/Scheduler.js @@ -1,2 +1,2 @@ -!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("calendars",{url:"/calendar",views:{calendars:{templateUrl:"UIxCalMainFrame",controller:"CalendarsController",controllerAs:"app"}},resolve:{stateCalendars:stateCalendars}}).state("calendars.view",{url:"/{view:(?:day|week|month)}/:day",sticky:!0,deepStateRedirect:!0,views:{calendarView:{templateUrl:function($stateParams){return $stateParams.view+"view?day="+$stateParams.day},controller:"CalendarController",controllerAs:"calendar"}},resolve:{stateEventsBlocks:stateEventsBlocks}}),$urlRouterProvider.when("/calendar/day",function(){var now=new Date;return"/calendar/day/"+now.getDayString()}),$urlRouterProvider.when("/calendar/week",function(){var now=new Date;return"/calendar/week/"+now.getDayString()}),$urlRouterProvider.when("/calendar/month",function(){var now=new Date;return"/calendar/month/"+now.getDayString()}),$urlRouterProvider.otherwise("/calendar")}function stateCalendars(Calendar){return Calendar.$calendars||Calendar.$findAll(window.calendarsData)}function stateEventsBlocks($stateParams,Component){return Component.$eventsBlocksForView($stateParams.view,$stateParams.day.asDate())}function runBlock($rootScope,$location,Preferences){$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){console.error(event,current,previous,rejection)}),0===$location.url().length&&Preferences.ready().then(function(){var view=/(.+)view/.exec(Preferences.settings.Calendar.View);view&&$location.replace().url("/calendar/"+view[1])})}angular.module("SOGo.SchedulerUI",["ngSanitize","ui.router","SOGo.Common","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.MailerUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateCalendars.$inject=["Calendar"],stateEventsBlocks.$inject=["$stateParams","Component"],runBlock.$inject=["$rootScope","$location","Preferences"]}(),function(){"use strict";function CalendarController($scope,$state,$stateParams,$timeout,$interval,$log,focus,Calendar,Component,stateEventsBlocks){function changeView($event){var date=angular.element($event.currentTarget).attr("date");$state.go("calendars.view",{view:$stateParams.view,day:date})}var vm=this;vm.blocks=stateEventsBlocks.blocks,vm.allDayBlocks=stateEventsBlocks.allDayBlocks,vm.changeView=changeView,$scope.$on("calendars:list",function(){Component.$eventsBlocksForView($stateParams.view,$stateParams.day.asDate()).then(function(data){vm.blocks=data.blocks,vm.allDayBlocks=data.allDayBlocks})})}CalendarController.$inject=["$scope","$state","$stateParams","$timeout","$interval","$log","sgFocus","Calendar","Component","stateEventsBlocks"],angular.module("SOGo.SchedulerUI").controller("CalendarController",CalendarController)}(),function(){"use strict";function CalendarListController($scope,$timeout,$state,$mdDialog,Dialog,Preferences,Calendar,Component){function selectComponentType(type,options){(options&&options.reload||vm.componentType!=type)&&(angular.isUndefined(Component["$"+type])&&Component.$filter(type),vm.unselectComponents(),vm.componentType=type,Component.saveSelectedList(type))}function unselectComponents(){_.each(Component["$"+vm.componentType],function(component){component.selected=!1})}function selectAll(){_.each(Component["$"+vm.componentType],function(component){component.selected=!0})}function toggleComponentSelection($event,component){component.selected=!component.selected,$event.preventDefault(),$event.stopPropagation()}function confirmDeleteSelectedComponents(){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the selected components?")).then(function(){var components=_.filter(Component["$"+vm.componentType],function(component){return component.selected});Calendar.$deleteComponents(components)},function(data,status){})}function openEvent($event,event){event.viewable&&openComponent($event,event,"appointment")}function openTask($event,task){task.viewable&&openComponent($event,task,"task")}function openComponent($event,component,type){var templateUrl="UIx"+type.capitalize()+"ViewTemplate";$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:templateUrl,controller:"ComponentController",controllerAs:"editor",locals:{stateComponent:component}})}function newComponent($event){var component,type="appointment";"tasks"==vm.componentType&&(type="task"),component=new Component({pid:"personal",type:type});var templateUrl="UIx"+type.capitalize()+"EditorTemplate";$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:templateUrl,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:component}})}function filter(filterpopup){Component.$filter(vm.componentType,{filterpopup:filterpopup})}function filteredBy(filterpopup){return Component["$query"+vm.componentType.capitalize()].filterpopup==filterpopup}function sort(field){Component.$filter(vm.componentType,{sort:field})}function sortedBy(field){return Component["$query"+vm.componentType.capitalize()].sort==field}function cancelSearch(){vm.mode.search=!1,Component.$filter(vm.componentType,{value:""})}var vm=this;vm.component=Component,vm.componentType="events",vm.selectedList=0,vm.selectComponentType=selectComponentType,vm.unselectComponents=unselectComponents,vm.selectAll=selectAll,vm.toggleComponentSelection=toggleComponentSelection,vm.confirmDeleteSelectedComponents=confirmDeleteSelectedComponents,vm.openEvent=openEvent,vm.openTask=openTask,vm.newComponent=newComponent,vm.filter=filter,vm.filteredBy=filteredBy,vm.sort=sort,vm.sortedBy=sortedBy,vm.cancelSearch=cancelSearch,vm.mode={search:!1},Preferences.ready().then(function(){var type="events";"tasksListView"==Preferences.settings.Calendar.SelectedList&&(vm.selectedList=1,type="tasks"),selectComponentType(type,{reload:!0})}),$scope.$on("calendars:list",function(){Component.$filter(vm.componentType,{reload:!0})})}CalendarListController.$inject=["$scope","$timeout","$state","$mdDialog","Dialog","Preferences","Calendar","Component"],angular.module("SOGo.SchedulerUI").controller("CalendarListController",CalendarListController)}(),function(){"use strict";function CalendarsController($scope,$window,$mdDialog,$log,focus,Dialog,Settings,Calendar,User,stateCalendars){function newCalendar(ev){Dialog.prompt(l("New calendar"),l("Name of the Calendar")).then(function(name){var calendar=new Calendar({name:name,isEditable:!0,isRemote:!1,owner:UserLogin});Calendar.$add(calendar)})}function addWebCalendar(){Dialog.prompt(l("Subscribe to a web calendar..."),l("URL of the Calendar"),{inputType:"url"}).then(function(url){Calendar.$addWebCalendar(url)})}function confirmDelete(folder){folder.isSubscription?folder.$delete().then(function(){$scope.$broadcast("calendars:list")},function(data,status){Dialog.alert(l('An error occured while deleting the calendar "%{0}".',folder.name),l(data.error))}):Dialog.confirm(l("Warning"),l("Are you sure you want to delete the calendar %{0}?",folder.name)).then(function(){folder.$delete().then(function(){$scope.$broadcast("calendars:list")},function(data,status){Dialog.alert(l('An error occured while deleting the calendar "%{0}".',folder.name),l(data.error))})})}function showLinks(calendar){function LinksDialogController($mdDialog,calendar){function close(){$mdDialog.hide()}var vm=this;vm.calendar=calendar,vm.close=close}$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:calendar.id+"/links",controller:LinksDialogController,controllerAs:"links",locals:{calendar:calendar}}),LinksDialogController.$inject=["$mdDialog","calendar"]}function showProperties(calendar){function PropertiesDialogController($mdDialog,calendar){function saveProperties(){vm.calendar.$save(),calendar.init(vm.calendar.$omit()),$mdDialog.hide()}function close(){$mdDialog.hide()}var vm=this;vm.calendar=new Calendar(calendar.$omit()),vm.saveProperties=saveProperties,vm.close=close}$mdDialog.show({templateUrl:calendar.id+"/properties",controller:PropertiesDialogController,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{calendar:calendar}}),PropertiesDialogController.$inject=["$mdDialog","calendar"]}function editFolder(folder){vm.calendarName=folder.name,vm.editMode=folder.id,focus("calendarName_"+folder.id)}function revertEditing(folder){folder.$reset(),vm.editMode=!1}function renameFolder(folder){folder.$rename().then(function(data){vm.editMode=!1},function(data,status){Dialog.alert(l("Warning"),data)})}function share(calendar){calendar.$acl.$users().then(function(){$mdDialog.show({templateUrl:calendar.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:calendar.$acl.users,User:User,folder:calendar}})})}function subscribeToFolder(calendarData){$log.debug("subscribeToFolder "+calendarData.owner+calendarData.name),Calendar.$subscribe(calendarData.owner,calendarData.name)["catch"](function(data){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function today(){var fragments=$window.location.hash.split("/"),state=fragments[1],view=fragments[2],now=new Date,path=["#",state,view,now.getDayString()];$window.location=path.join("/")}var vm=this;vm.activeUser=Settings.activeUser,vm.service=Calendar,vm.newCalendar=newCalendar,vm.addWebCalendar=addWebCalendar,vm.confirmDelete=confirmDelete,vm.editFolder=editFolder,vm.revertEditing=revertEditing,vm.renameFolder=renameFolder,vm.share=share,vm.showLinks=showLinks,vm.showProperties=showProperties,vm.subscribeToFolder=subscribeToFolder,vm.today=today,$scope.$watch(function(){return _.union(_.map(Calendar.$calendars,function(o){return _.pick(o,["id","active","color"])}),_.map(Calendar.$subscriptions,function(o){return _.pick(o,["id","active","color"])}),_.map(Calendar.$webcalendars,function(o){return _.pick(o,["id","active","color"])}))},function(newList,oldList){var ids=_.pluck(_.filter(newList,function(o,i){return!_.isEqual(o,oldList[i])}),"id");ids.length>0&&($log.debug(ids.join(", ")+" changed"),_.each(ids,function(id){var calendar=Calendar.$get(id);calendar.$setActivation().then(function(){$scope.$broadcast("calendars:list")})}))},!0)}CalendarsController.$inject=["$scope","$window","$mdDialog","$log","sgFocus","Dialog","sgSettings","Calendar","User","stateCalendars"],angular.module("SOGo.SchedulerUI").controller("CalendarsController",CalendarsController)}(),function(){"use strict";function ComponentController($rootScope,$mdDialog,Calendar,AddressBook,Alarm,stateComponent){function close(){$mdDialog.hide()}function cardFilter($query){return AddressBook.$filterAll($query),AddressBook.$cards}function edit(){var type="vevent"==vm.component.component?"Appointment":"Task";$mdDialog.hide().then(function(){var templateUrl="UIx"+type+"EditorTemplate";$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:templateUrl,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:vm.component}})})}function editAllOccurrences(){component=Calendar.$get(vm.component.pid).$getComponent(vm.component.id),component.$futureComponentData.then(function(){vm.component=component,edit()})}function reply(component){var c=component||vm.component;c.$reply().then(function(){$rootScope.$broadcast("calendars:list"),$mdDialog.hide(),Alarm.getAlarms()})}function replyAllOccurrences(){component=Calendar.$get(vm.component.pid).$getComponent(vm.component.id),component.$futureComponentData.then(function(){component.reply=vm.component.reply,component.delegatedTo=vm.component.delegatedTo,component.$hasAlarm=vm.component.$hasAlarm,component.alarm=vm.component.alarm,reply(component)})}var component,vm=this;vm.component=stateComponent,vm.close=close,vm.cardFilter=cardFilter,vm.edit=edit,vm.editAllOccurrences=editAllOccurrences,vm.reply=reply,vm.replyAllOccurrences=replyAllOccurrences,angular.isUndefined(vm.component.$futureComponentData)&&(component=Calendar.$get(vm.component.c_folder).$getComponent(vm.component.c_name,vm.component.c_recurrence_id),component.$futureComponentData.then(function(){vm.component=component,vm.organizer=[vm.component.organizer]}))}function ComponentEditorController($rootScope,$scope,$log,$timeout,$mdDialog,User,Calendar,Component,AddressBook,Card,Alarm,stateComponent){function addAttachUrl(){var i=vm.component.addAttachUrl("");focus("attachUrl_"+i)}function toggleRecurrenceEditor(){vm.showRecurrenceEditor=!vm.showRecurrenceEditor,vm.component.$hasCustomRepeat=vm.showRecurrenceEditor}function toggleAttendeesEditor(){vm.showAttendeesEditor=!vm.showAttendeesEditor}function cardFilter($query){return AddressBook.$filterAll($query),AddressBook.$cards}function addAttendee(card){angular.isString(card)?card.isValidEmail()&&(vm.component.addAttendee(new Card({emails:[{value:card}]})),vm.searchText=""):vm.component.addAttendee(card)}function save(form){form.$valid&&vm.component.$save().then(function(data){$rootScope.$broadcast("calendars:list"),$mdDialog.hide(),Alarm.getAlarms()},function(data,status){$log.debug("failed")})}function cancel(){vm.component.$reset(),vm.component.isNew&&(vm.component=null),$mdDialog.hide()}function getDays(){var days=[];return vm.component.start&&vm.component.end&&(days=vm.component.start.daysUpTo(vm.component.end)),_.map(days,function(date){return{stringWithSeparator:date.stringWithSeparator(),getDayString:date.getDayString()}})}function getHours(){for(var hours=[],i=0;23>=i;i++)hours.push(i.toString());return hours}var vm=this;vm.calendars=Calendar.$calendars,vm.component=stateComponent,vm.categories={},vm.showRecurrenceEditor=vm.component.$hasCustomRepeat,vm.toggleRecurrenceEditor=toggleRecurrenceEditor,vm.showAttendeesEditor=angular.isDefined(vm.component.attendees),vm.toggleAttendeesEditor=toggleAttendeesEditor,vm.cardFilter=cardFilter,vm.addAttendee=addAttendee,vm.addAttachUrl=addAttachUrl,vm.cancel=cancel,vm.save=save,vm.attendeesEditor={startDate:vm.component.startDate,endDate:vm.component.endDate,days:getDays(),hours:getHours()},$scope.$watch("editor.component.startDate",function(newStartDate,oldStartDate){newStartDate&&$timeout(function(){vm.component.start=new Date(newStartDate.substring(0,10)+" "+newStartDate.substring(11,16)),vm.component.freebusy=vm.component.updateFreeBusyCoverage(),vm.attendeesEditor.days=getDays()})}),$scope.$watch("editor.component.endDate",function(newEndDate,oldEndDate){newEndDate&&$timeout(function(){vm.component.end=new Date(newEndDate.substring(0,10)+" "+newEndDate.substring(11,16)),vm.component.freebusy=vm.component.updateFreeBusyCoverage(),vm.attendeesEditor.days=getDays()})})}ComponentController.$inject=["$rootScope","$mdDialog","Calendar","AddressBook","Alarm","stateComponent"],ComponentEditorController.$inject=["$rootScope","$scope","$log","$timeout","$mdDialog","User","Calendar","Component","AddressBook","Card","Alarm","stateComponent"],angular.module("SOGo.SchedulerUI").controller("ComponentController",ComponentController).controller("ComponentEditorController",ComponentEditorController)}(),function(){"use strict";function sgCalendarDayBlock(){function link(scope,iElement,attrs){var pc=100/scope.block.siblings,left=scope.block.position*pc,right=100-(scope.block.position+1)*pc;100>pc&&(left>0&&(left-=2),right>0&&(right-=2)),0===left&&(left=2),0===right&&(right=2),iElement.css("left",left+"%"),iElement.css("right",right+"%"),iElement.addClass("starts"+scope.block.start),iElement.addClass("lasts"+scope.block.length),iElement.addClass("bg-folder"+scope.block.component.c_folder)}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:['
','
','
',"
",'
{{ block.component.c_title }}',' ',' ',' ',' ',"
","
",'
','
',"
"].join(""),link:link}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayBlock",sgCalendarDayBlock)}(),function(){"use strict";function sgCalendarDayTable(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:[''].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayTable",sgCalendarDayTable)}(),function(){"use strict";function sgCalendarMonthDay(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthDay",sgCalendarMonthDay)}(),function(){"use strict";function sgCalendarMonthEvent(){function link(scope,iElement,attrs){iElement.addClass("bg-folder"+scope.block.component.c_folder)}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:['
',' {{ block.starthour }} - '," {{ block.component.c_title }}",' ',' ',' ',' '," ",'
','
',"
"].join(""),link:link}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthEvent",sgCalendarMonthEvent)}(); +!function(){"use strict";function configure($stateProvider,$urlRouterProvider){$stateProvider.state("calendars",{url:"/calendar",views:{calendars:{templateUrl:"UIxCalMainFrame",controller:"CalendarsController",controllerAs:"app"}},resolve:{stateCalendars:stateCalendars}}).state("calendars.view",{url:"/{view:(?:day|week|month|multicolumnday)}/:day",sticky:!0,deepStateRedirect:!0,views:{calendarView:{templateUrl:function($stateParams){return $stateParams.view+"view?day="+$stateParams.day},controller:"CalendarController",controllerAs:"calendar"}},resolve:{stateEventsBlocks:stateEventsBlocks}}),$urlRouterProvider.when("/calendar/day",function(){var now=new Date;return"/calendar/day/"+now.getDayString()}),$urlRouterProvider.when("/calendar/multicolumnday",function(){var now=new Date;return"/calendar/multicolumnday/"+now.getDayString()}),$urlRouterProvider.when("/calendar/week",function(){var now=new Date;return"/calendar/week/"+now.getDayString()}),$urlRouterProvider.when("/calendar/month",function(){var now=new Date;return"/calendar/month/"+now.getDayString()}),$urlRouterProvider.otherwise("/calendar")}function stateCalendars(Calendar){return Calendar.$calendars||Calendar.$findAll(window.calendarsData)}function stateEventsBlocks($stateParams,Component,Calendar){return Component.$eventsBlocksForView($stateParams.view,$stateParams.day.asDate()).then(function(views){return _.forEach(views,function(view){view.id&&(view.calendar=new Calendar({id:view.id,name:view.calendarName}))}),views})}function runBlock($rootScope,$log,$location,$state,Preferences){$rootScope.$on("$stateChangeError",function(event,toState,toParams,fromState,fromParams,error){$log.error(error),$state.go("calendar")}),$rootScope.$on("$routeChangeError",function(event,current,previous,rejection){$log.error(event,current,previous,rejection)}),0===$location.url().length&&Preferences.ready().then(function(){var view=/(.+)view/.exec(Preferences.settings.Calendar.View);view&&$location.replace().url("/calendar/"+view[1])})}angular.module("SOGo.SchedulerUI",["ngSanitize","ui.router","SOGo.Common","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.MailerUI"]).config(configure).run(runBlock),configure.$inject=["$stateProvider","$urlRouterProvider"],stateCalendars.$inject=["Calendar"],stateEventsBlocks.$inject=["$stateParams","Component","Calendar"],runBlock.$inject=["$rootScope","$log","$location","$state","Preferences"]}(),function(){"use strict";function CalendarController($scope,$state,$stateParams,$timeout,$interval,$log,focus,Calendar,Component,stateEventsBlocks){function changeView($event){var date=angular.element($event.currentTarget).attr("date");$state.go("calendars.view",{view:$stateParams.view,day:date})}var vm=this;vm.views=stateEventsBlocks,vm.changeView=changeView,$scope.$on("calendars:list",function(){Component.$eventsBlocksForView($stateParams.view,$stateParams.day.asDate()).then(function(data){vm.views=data,_.forEach(vm.views,function(view){view.id&&(view.calendar=new Calendar({id:view.id,name:view.calendarName}))})})})}CalendarController.$inject=["$scope","$state","$stateParams","$timeout","$interval","$log","sgFocus","Calendar","Component","stateEventsBlocks"],angular.module("SOGo.SchedulerUI").controller("CalendarController",CalendarController)}(),function(){"use strict";function CalendarListController($scope,$timeout,$state,$mdDialog,Dialog,Preferences,Calendar,Component){function selectComponentType(type,options){(options&&options.reload||vm.componentType!=type)&&(angular.isUndefined(Component["$"+type])&&Component.$filter(type),vm.unselectComponents(),vm.componentType=type,Component.saveSelectedList(type))}function unselectComponents(){_.each(Component["$"+vm.componentType],function(component){component.selected=!1})}function selectAll(){_.each(Component["$"+vm.componentType],function(component){component.selected=!0})}function toggleComponentSelection($event,component){component.selected=!component.selected,$event.preventDefault(),$event.stopPropagation()}function confirmDeleteSelectedComponents(){Dialog.confirm(l("Warning"),l("Are you sure you want to delete the selected components?")).then(function(){var components=_.filter(Component["$"+vm.componentType],function(component){return component.selected});Calendar.$deleteComponents(components)},function(data,status){})}function openEvent($event,event){event.viewable&&openComponent($event,event,"appointment")}function openTask($event,task){task.viewable&&openComponent($event,task,"task")}function openComponent($event,component,type){var templateUrl="UIx"+type.capitalize()+"ViewTemplate";$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:templateUrl,controller:"ComponentController",controllerAs:"editor",locals:{stateComponent:component}})}function newComponent($event){var component,type="appointment";"tasks"==vm.componentType&&(type="task"),component=new Component({pid:"personal",type:type});var templateUrl="UIx"+type.capitalize()+"EditorTemplate";$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:templateUrl,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:component}})}function filter(filterpopup){Component.$filter(vm.componentType,{filterpopup:filterpopup})}function filteredBy(filterpopup){return Component["$query"+vm.componentType.capitalize()].filterpopup==filterpopup}function sort(field){Component.$filter(vm.componentType,{sort:field})}function sortedBy(field){return Component["$query"+vm.componentType.capitalize()].sort==field}function cancelSearch(){vm.mode.search=!1,Component.$filter(vm.componentType,{value:""})}var vm=this;vm.component=Component,vm.componentType="events",vm.selectedList=0,vm.selectComponentType=selectComponentType,vm.unselectComponents=unselectComponents,vm.selectAll=selectAll,vm.toggleComponentSelection=toggleComponentSelection,vm.confirmDeleteSelectedComponents=confirmDeleteSelectedComponents,vm.openEvent=openEvent,vm.openTask=openTask,vm.newComponent=newComponent,vm.filter=filter,vm.filteredBy=filteredBy,vm.sort=sort,vm.sortedBy=sortedBy,vm.cancelSearch=cancelSearch,vm.mode={search:!1},Preferences.ready().then(function(){var type="events";"tasksListView"==Preferences.settings.Calendar.SelectedList&&(vm.selectedList=1,type="tasks"),selectComponentType(type,{reload:!0})}),$scope.$on("calendars:list",function(){Component.$filter(vm.componentType,{reload:!0})})}CalendarListController.$inject=["$scope","$timeout","$state","$mdDialog","Dialog","Preferences","Calendar","Component"],angular.module("SOGo.SchedulerUI").controller("CalendarListController",CalendarListController)}(),function(){"use strict";function CalendarsController($scope,$window,$mdDialog,$log,focus,Dialog,Settings,Calendar,User,stateCalendars){function newCalendar(ev){Dialog.prompt(l("New calendar"),l("Name of the Calendar")).then(function(name){var calendar=new Calendar({name:name,isEditable:!0,isRemote:!1,owner:UserLogin});Calendar.$add(calendar)})}function addWebCalendar(){Dialog.prompt(l("Subscribe to a web calendar..."),l("URL of the Calendar"),{inputType:"url"}).then(function(url){Calendar.$addWebCalendar(url)})}function confirmDelete(folder){folder.isSubscription?folder.$delete().then(function(){$scope.$broadcast("calendars:list")},function(data,status){Dialog.alert(l('An error occured while deleting the calendar "%{0}".',folder.name),l(data.error))}):Dialog.confirm(l("Warning"),l("Are you sure you want to delete the calendar %{0}?",folder.name)).then(function(){folder.$delete().then(function(){$scope.$broadcast("calendars:list")},function(data,status){Dialog.alert(l('An error occured while deleting the calendar "%{0}".',folder.name),l(data.error))})})}function showLinks(calendar){function LinksDialogController($mdDialog,calendar){function close(){$mdDialog.hide()}var vm=this;vm.calendar=calendar,vm.close=close}$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:calendar.id+"/links",controller:LinksDialogController,controllerAs:"links",locals:{calendar:calendar}}),LinksDialogController.$inject=["$mdDialog","calendar"]}function showProperties(calendar){function PropertiesDialogController($mdDialog,calendar){function saveProperties(){vm.calendar.$save(),calendar.init(vm.calendar.$omit()),$mdDialog.hide()}function close(){$mdDialog.hide()}var vm=this;vm.calendar=new Calendar(calendar.$omit()),vm.saveProperties=saveProperties,vm.close=close}$mdDialog.show({templateUrl:calendar.id+"/properties",controller:PropertiesDialogController,controllerAs:"properties",clickOutsideToClose:!0,escapeToClose:!0,locals:{calendar:calendar}}),PropertiesDialogController.$inject=["$mdDialog","calendar"]}function editFolder(folder){vm.calendarName=folder.name,vm.editMode=folder.id,focus("calendarName_"+folder.id)}function revertEditing(folder){folder.$reset(),vm.editMode=!1}function renameFolder(folder){folder.$rename().then(function(data){vm.editMode=!1},function(data,status){Dialog.alert(l("Warning"),data)})}function share(calendar){calendar.$acl.$users().then(function(){$mdDialog.show({templateUrl:calendar.id+"/UIxAclEditor",controller:"AclController",controllerAs:"acl",clickOutsideToClose:!0,escapeToClose:!0,locals:{usersWithACL:calendar.$acl.users,User:User,folder:calendar}})})}function subscribeToFolder(calendarData){$log.debug("subscribeToFolder "+calendarData.owner+calendarData.name),Calendar.$subscribe(calendarData.owner,calendarData.name)["catch"](function(data){Dialog.alert(l("Warning"),l("An error occured please try again."))})}function today(){var fragments=$window.location.hash.split("/"),state=fragments[1],view=fragments[2],now=new Date,path=["#",state,view,now.getDayString()];$window.location=path.join("/")}var vm=this;vm.activeUser=Settings.activeUser,vm.service=Calendar,vm.newCalendar=newCalendar,vm.addWebCalendar=addWebCalendar,vm.confirmDelete=confirmDelete,vm.editFolder=editFolder,vm.revertEditing=revertEditing,vm.renameFolder=renameFolder,vm.share=share,vm.showLinks=showLinks,vm.showProperties=showProperties,vm.subscribeToFolder=subscribeToFolder,vm.today=today,$scope.$watch(function(){return _.union(_.map(Calendar.$calendars,function(o){return _.pick(o,["id","active","color"])}),_.map(Calendar.$subscriptions,function(o){return _.pick(o,["id","active","color"])}),_.map(Calendar.$webcalendars,function(o){return _.pick(o,["id","active","color"])}))},function(newList,oldList){var ids=_.pluck(_.filter(newList,function(o,i){return!_.isEqual(o,oldList[i])}),"id");ids.length>0&&($log.debug(ids.join(", ")+" changed"),_.each(ids,function(id){var calendar=Calendar.$get(id);calendar.$setActivation().then(function(){$scope.$broadcast("calendars:list")})}))},!0)}CalendarsController.$inject=["$scope","$window","$mdDialog","$log","sgFocus","Dialog","sgSettings","Calendar","User","stateCalendars"],angular.module("SOGo.SchedulerUI").controller("CalendarsController",CalendarsController)}(),function(){"use strict";function ComponentController($rootScope,$mdDialog,Calendar,AddressBook,Alarm,stateComponent){function close(){$mdDialog.hide()}function cardFilter($query){return AddressBook.$filterAll($query),AddressBook.$cards}function edit(){var type="vevent"==vm.component.component?"Appointment":"Task";$mdDialog.hide().then(function(){var templateUrl="UIx"+type+"EditorTemplate";$mdDialog.show({parent:angular.element(document.body),clickOutsideToClose:!0,escapeToClose:!0,templateUrl:templateUrl,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:vm.component}})})}function editAllOccurrences(){component=Calendar.$get(vm.component.pid).$getComponent(vm.component.id),component.$futureComponentData.then(function(){vm.component=component,edit()})}function reply(component){var c=component||vm.component;c.$reply().then(function(){$rootScope.$broadcast("calendars:list"),$mdDialog.hide(),Alarm.getAlarms()})}function replyAllOccurrences(){component=Calendar.$get(vm.component.pid).$getComponent(vm.component.id),component.$futureComponentData.then(function(){component.reply=vm.component.reply,component.delegatedTo=vm.component.delegatedTo,component.$hasAlarm=vm.component.$hasAlarm,component.alarm=vm.component.alarm,reply(component)})}function deleteOccurrence(){vm.component.remove(!0).then(function(){$rootScope.$broadcast("calendars:list"),$mdDialog.hide()})}function deleteAllOccurrences(){vm.component.remove().then(function(){$rootScope.$broadcast("calendars:list"),$mdDialog.hide()})}function viewRawSource($event){Calendar.$$resource.post(vm.component.pid+"/"+vm.component.id,"raw").then(function(data){function ComponentRawSourceDialogController(scope,$mdDialog){scope.close=function(){$mdDialog.hide()}}$mdDialog.show({parent:angular.element(document.body),targetEvent:$event,clickOutsideToClose:!0,escapeToClose:!0,template:[''," ","
",data,"    
","
",'
',' '+l("Close")+"","
","
"].join(""),controller:ComponentRawSourceDialogController}),ComponentRawSourceDialogController.$inject=["scope","$mdDialog"]})}var component,vm=this;vm.component=stateComponent,vm.close=close,vm.cardFilter=cardFilter,vm.edit=edit,vm.editAllOccurrences=editAllOccurrences,vm.reply=reply,vm.replyAllOccurrences=replyAllOccurrences,vm.deleteOccurrence=deleteOccurrence,vm.deleteAllOccurrences=deleteAllOccurrences,vm.viewRawSource=viewRawSource,angular.isUndefined(vm.component.$futureComponentData)&&(component=Calendar.$get(vm.component.c_folder).$getComponent(vm.component.c_name,vm.component.c_recurrence_id),component.$futureComponentData.then(function(){vm.component=component,vm.organizer=[vm.component.organizer]}))}function ComponentEditorController($rootScope,$scope,$log,$timeout,$mdDialog,User,Calendar,Component,AddressBook,Card,Alarm,stateComponent){function addAttachUrl(){var i=vm.component.addAttachUrl("");focus("attachUrl_"+i)}function toggleRecurrenceEditor(){vm.showRecurrenceEditor=!vm.showRecurrenceEditor,vm.component.$hasCustomRepeat=vm.showRecurrenceEditor}function toggleAttendeesEditor(){vm.showAttendeesEditor=!vm.showAttendeesEditor}function cardFilter($query){return AddressBook.$filterAll($query),AddressBook.$cards}function addAttendee(card){angular.isString(card)?card.isValidEmail()&&(vm.component.addAttendee(new Card({emails:[{value:card}]})),vm.searchText=""):vm.component.addAttendee(card)}function save(form){form.$valid&&vm.component.$save().then(function(data){$rootScope.$broadcast("calendars:list"),$mdDialog.hide(),Alarm.getAlarms()},function(data,status){$log.debug("failed")})}function cancel(){vm.component.$reset(),vm.component.isNew&&(vm.component=null),$mdDialog.hide()}function getDays(){var days=[];return vm.component.start&&vm.component.end&&(days=vm.component.start.daysUpTo(vm.component.end)),_.map(days,function(date){return{stringWithSeparator:date.stringWithSeparator(),getDayString:date.getDayString()}})}function getHours(){for(var hours=[],i=0;23>=i;i++)hours.push(i.toString());return hours}var vm=this;vm.calendars=Calendar.$calendars,vm.component=stateComponent,vm.categories={},vm.showRecurrenceEditor=vm.component.$hasCustomRepeat,vm.toggleRecurrenceEditor=toggleRecurrenceEditor,vm.showAttendeesEditor=angular.isDefined(vm.component.attendees),vm.toggleAttendeesEditor=toggleAttendeesEditor,vm.cardFilter=cardFilter,vm.addAttendee=addAttendee,vm.addAttachUrl=addAttachUrl,vm.cancel=cancel,vm.save=save,vm.attendeesEditor={startDate:vm.component.startDate,endDate:vm.component.endDate,days:getDays(),hours:getHours()},$scope.$watch("editor.component.start",function(newStartDate,oldStartDate){"appointment"==vm.component.type&&(vm.component.end=new Date(vm.component.start),vm.component.end.addMinutes(vm.component.delta),vm.component.freebusy=vm.component.updateFreeBusyCoverage(),vm.attendeesEditor.days=getDays())}),$scope.$watch("editor.component.end",function(newEndDate,oldEndDate){newEndDate<=vm.component.start?vm.component.end=oldEndDate:(vm.component.delta=Math.floor(Math.abs(vm.component.end-vm.component.start)/1e3/60),vm.component.freebusy=vm.component.updateFreeBusyCoverage(),vm.attendeesEditor.days=getDays())})}ComponentController.$inject=["$rootScope","$mdDialog","Calendar","AddressBook","Alarm","stateComponent"],ComponentEditorController.$inject=["$rootScope","$scope","$log","$timeout","$mdDialog","User","Calendar","Component","AddressBook","Card","Alarm","stateComponent"],angular.module("SOGo.SchedulerUI").controller("ComponentController",ComponentController).controller("ComponentEditorController",ComponentEditorController)}(),function(){"use strict";function sgCalendarDayBlock(){function link(scope,iElement,attrs){var pc=100/scope.block.siblings,left=scope.block.position*pc,right=100-(scope.block.position+1)*pc;100>pc&&(left>0&&(left-=2),right>0&&(right-=2)),0===left&&(left=2),0===right&&(right=2),iElement.css("left",left+"%"),iElement.css("right",right+"%"),iElement.addClass("starts"+scope.block.start),iElement.addClass("lasts"+scope.block.length),iElement.addClass("bg-folder"+scope.block.component.c_folder)}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:['
','
','
',"
",'
{{ block.component.c_title }}',' ',' ',' ',' ',"
","
",'
','
',"
"].join(""),link:link}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayBlock",sgCalendarDayBlock)}(),function(){"use strict";function sgCalendarDayTable(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:[''].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarDayTable",sgCalendarDayTable)}(),function(){"use strict";function sgCalendarMonthDay(){return{restrict:"E",scope:{blocks:"=sgBlocks",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthDay",sgCalendarMonthDay)}(),function(){"use strict";function sgCalendarMonthEvent(){function link(scope,iElement,attrs){iElement.addClass("bg-folder"+scope.block.component.c_folder)}return{restrict:"E",scope:{block:"=sgBlock",clickBlock:"&sgClick"},replace:!0,template:['
',' {{ block.starthour }} - '," {{ block.component.c_title }}",' ',' ',' ',' '," ",'
','
',"
"].join(""),link:link}}angular.module("SOGo.SchedulerUI").directive("sgCalendarMonthEvent",sgCalendarMonthEvent)}(),function(){"use strict";function sgCalendarTable(){return{restrict:"E",scope:{calendars:"=sgCalendars",calendar:"@sgCalendar",blocksType:"@sgBlocksType",day:"@sgDay",clickBlock:"&sgClick"},template:["'].join("")}}angular.module("SOGo.SchedulerUI").directive("sgCalendarTable",sgCalendarTable)}(),function(){"use strict";function sgDraggableBlock($mdGesture){return{restrict:"A",link:function(scope,element,attrs,controller){function onDragStart(ev){console.debug("start "+ev.srcElement.getBoundingClientRect().top),console.debug(ev.clientY)}angular.element(element).attr("draggable","true"),element.on("dragstart",onDragStart)}}}sgDraggableBlock.$inject=["$mdGesture"],angular.module("SOGo.SchedulerUI").directive("sgDraggableBlock",sgDraggableBlock)}(); //# sourceMappingURL=Scheduler.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Scheduler.js.map b/UI/WebServerResources/js/Scheduler.js.map index edc7237cf..b0754820c 100644 --- a/UI/WebServerResources/js/Scheduler.js.map +++ b/UI/WebServerResources/js/Scheduler.js.map @@ -1 +1 @@ -{"version":3,"file":"Scheduler.js","sources":["Scheduler/Scheduler.app.js","Scheduler/CalendarController.js","Scheduler/CalendarListController.js","Scheduler/CalendarsController.js","Scheduler/ComponentController.js","Scheduler/sgCalendarDayBlock.directive.js","Scheduler/sgCalendarDayTable.directive.js","Scheduler/sgCalendarMonthDay.directive.js","Scheduler/sgCalendarMonthEvent.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","calendars","templateUrl","controller","controllerAs","resolve","stateCalendars","sticky","deepStateRedirect","calendarView","$stateParams","view","day","stateEventsBlocks","when","now","Date","getDayString","otherwise","Calendar","$calendars","$findAll","window","calendarsData","Component","$eventsBlocksForView","asDate","runBlock","$rootScope","$location","Preferences","$on","event","current","previous","rejection","console","error","length","ready","then","exec","settings","View","replace","angular","module","config","run","$inject","CalendarController","$scope","$state","$timeout","$interval","$log","focus","changeView","$event","date","element","currentTarget","attr","go","vm","this","blocks","allDayBlocks","data","CalendarListController","$mdDialog","Dialog","selectComponentType","type","options","reload","componentType","isUndefined","$filter","unselectComponents","saveSelectedList","_","each","component","selected","selectAll","toggleComponentSelection","preventDefault","stopPropagation","confirmDeleteSelectedComponents","confirm","l","components","filter","$deleteComponents","status","openEvent","viewable","openComponent","openTask","task","capitalize","show","parent","document","body","targetEvent","clickOutsideToClose","escapeToClose","locals","stateComponent","newComponent","pid","filterpopup","filteredBy","sort","field","sortedBy","cancelSearch","mode","search","value","selectedList","SelectedList","CalendarsController","$window","Settings","User","newCalendar","ev","prompt","name","calendar","isEditable","isRemote","owner","UserLogin","$add","addWebCalendar","inputType","$addWebCalendar","confirmDelete","folder","isSubscription","$delete","$broadcast","alert","showLinks","LinksDialogController","close","hide","id","showProperties","PropertiesDialogController","saveProperties","$save","init","$omit","editFolder","calendarName","editMode","revertEditing","$reset","renameFolder","$rename","share","$acl","$users","usersWithACL","users","subscribeToFolder","calendarData","debug","$subscribe","today","fragments","location","hash","split","path","join","activeUser","service","$watch","union","map","o","pick","$subscriptions","$webcalendars","newList","oldList","ids","pluck","i","isEqual","$get","$setActivation","ComponentController","AddressBook","Alarm","cardFilter","$query","$filterAll","$cards","edit","editAllOccurrences","$getComponent","$futureComponentData","reply","c","$reply","getAlarms","replyAllOccurrences","delegatedTo","$hasAlarm","alarm","c_folder","c_name","c_recurrence_id","organizer","ComponentEditorController","Card","addAttachUrl","toggleRecurrenceEditor","showRecurrenceEditor","$hasCustomRepeat","toggleAttendeesEditor","showAttendeesEditor","addAttendee","card","isString","isValidEmail","emails","searchText","save","form","$valid","cancel","isNew","getDays","days","start","end","daysUpTo","stringWithSeparator","getHours","hours","push","toString","categories","isDefined","attendees","attendeesEditor","startDate","endDate","newStartDate","oldStartDate","substring","freebusy","updateFreeBusyCoverage","newEndDate","oldEndDate","sgCalendarDayBlock","link","scope","iElement","attrs","pc","block","siblings","left","position","right","css","addClass","restrict","clickBlock","template","directive","sgCalendarDayTable","sgCalendarMonthDay","sgCalendarMonthEvent"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.SchedulerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.SchedulerUI', ['ngSanitize', 'ui.router', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.ContactsUI', 'SOGo.MailerUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('calendars', {\n url: '/calendar',\n views: {\n calendars: {\n templateUrl: 'UIxCalMainFrame', // UI/Templates/SchedulerUI/UIxCalMainFrame.wox\n controller: 'CalendarsController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateCalendars: stateCalendars\n }\n })\n .state('calendars.view', {\n url: '/{view:(?:day|week|month)}/:day',\n sticky: true,\n deepStateRedirect: true,\n views: {\n calendarView: {\n templateUrl: function($stateParams) {\n // UI/Templates/SchedulerUI/UIxCalDayView.wox or\n // UI/Templates/SchedulerUI/UIxCalWeekView.wox or\n // UI/Templates/SchedulerUI/UIxCalMonthView.wox\n return $stateParams.view + 'view?day=' + $stateParams.day;\n },\n controller: 'CalendarController',\n controllerAs: 'calendar'\n }\n },\n resolve: {\n stateEventsBlocks: stateEventsBlocks\n }\n });\n\n $urlRouterProvider.when('/calendar/day', function() {\n // If no date is specified, show today\n var now = new Date();\n return '/calendar/day/' + now.getDayString();\n });\n $urlRouterProvider.when('/calendar/week', function() {\n // If no date is specified, show today's week\n var now = new Date();\n return '/calendar/week/' + now.getDayString();\n });\n $urlRouterProvider.when('/calendar/month', function() {\n // If no date is specified, show today's month\n var now = new Date();\n return '/calendar/month/' + now.getDayString();\n });\n\n // If none of the above states are matched, use this as the fallback.\n // runBlock will also act as a fallback by looking at user's settings\n $urlRouterProvider.otherwise('/calendar');\n }\n\n /**\n * @ngInject\n */\n stateCalendars.$inject = ['Calendar'];\n function stateCalendars(Calendar) {\n return Calendar.$calendars || Calendar.$findAll(window.calendarsData);\n }\n\n /**\n * @ngInject\n */\n stateEventsBlocks.$inject = ['$stateParams', 'Component'];\n function stateEventsBlocks($stateParams, Component) {\n return Component.$eventsBlocksForView($stateParams.view, $stateParams.day.asDate());\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope', '$location', 'Preferences'];\n function runBlock($rootScope, $location, Preferences) {\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n console.error(event, current, previous, rejection);\n });\n if ($location.url().length === 0) {\n // Restore user's last view\n Preferences.ready().then(function() {\n var view = /(.+)view/.exec(Preferences.settings.Calendar.View);\n if (view) {\n $location.replace().url('/calendar/' + view[1]);\n }\n });\n }\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n CalendarController.$inject = ['$scope', '$state', '$stateParams', '$timeout', '$interval', '$log', 'sgFocus', 'Calendar', 'Component', 'stateEventsBlocks'];\n function CalendarController($scope, $state, $stateParams, $timeout, $interval, $log, focus, Calendar, Component, stateEventsBlocks) {\n var vm = this;\n\n vm.blocks = stateEventsBlocks.blocks;\n vm.allDayBlocks = stateEventsBlocks.allDayBlocks;\n vm.changeView = changeView;\n\n // Refresh current view when the list of calendars is modified\n $scope.$on('calendars:list', function() {\n Component.$eventsBlocksForView($stateParams.view, $stateParams.day.asDate()).then(function(data) {\n vm.blocks = data.blocks;\n vm.allDayBlocks = data.allDayBlocks;\n });\n });\n\n // Change calendar's view\n function changeView($event) {\n var date = angular.element($event.currentTarget).attr('date');\n $state.go('calendars.view', { view: $stateParams.view, day: date });\n }\n }\n \n angular\n .module('SOGo.SchedulerUI') \n .controller('CalendarController', CalendarController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n CalendarListController.$inject = ['$scope', '$timeout', '$state', '$mdDialog', 'Dialog', 'Preferences', 'Calendar', 'Component'];\n function CalendarListController($scope, $timeout, $state, $mdDialog, Dialog, Preferences, Calendar, Component) {\n var vm = this;\n\n vm.component = Component;\n vm.componentType = 'events';\n vm.selectedList = 0;\n vm.selectComponentType = selectComponentType;\n vm.unselectComponents = unselectComponents;\n vm.selectAll = selectAll;\n vm.toggleComponentSelection = toggleComponentSelection;\n vm.confirmDeleteSelectedComponents = confirmDeleteSelectedComponents;\n vm.openEvent = openEvent;\n vm.openTask = openTask;\n vm.newComponent = newComponent;\n vm.filter = filter;\n vm.filteredBy = filteredBy;\n vm.sort = sort;\n vm.sortedBy = sortedBy;\n vm.cancelSearch = cancelSearch;\n vm.mode = { search: false };\n\n // Select list based on user's settings\n Preferences.ready().then(function() {\n var type = 'events';\n if (Preferences.settings.Calendar.SelectedList == 'tasksListView') {\n vm.selectedList = 1;\n type = 'tasks';\n }\n selectComponentType(type, { reload: true });\n });\n\n // Refresh current list when the list of calendars is modified\n $scope.$on('calendars:list', function() {\n Component.$filter(vm.componentType, { reload: true });\n });\n\n // Switch between components tabs\n function selectComponentType(type, options) {\n if (options && options.reload || vm.componentType != type) {\n // TODO: save user settings (Calendar.SelectedList)\n if (angular.isUndefined(Component['$' + type]))\n Component.$filter(type);\n vm.unselectComponents();\n vm.componentType = type;\n Component.saveSelectedList(type);\n }\n }\n\n function unselectComponents() {\n _.each(Component['$' + vm.componentType], function(component) { component.selected = false; });\n }\n\n function selectAll() {\n _.each(Component['$' + vm.componentType], function(component) {\n component.selected = true;\n });\n }\n\n function toggleComponentSelection($event, component) {\n component.selected = !component.selected;\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n function confirmDeleteSelectedComponents() {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the selected components?'))\n .then(function() {\n // User confirmed the deletion\n var components = _.filter(Component['$' + vm.componentType], function(component) { return component.selected; });\n Calendar.$deleteComponents(components);\n }, function(data, status) {\n // Delete failed\n });\n }\n\n function openEvent($event, event) {\n if (event.viewable)\n openComponent($event, event, 'appointment');\n }\n\n function openTask($event, task) {\n if (task.viewable)\n openComponent($event, task, 'task');\n }\n\n function openComponent($event, component, type) {\n // UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox or\n // UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox\n var templateUrl = 'UIx' + type.capitalize() + 'ViewTemplate';\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: templateUrl,\n controller: 'ComponentController',\n controllerAs: 'editor',\n locals: {\n stateComponent: component\n }\n });\n }\n\n function newComponent($event) {\n var type = 'appointment', component;\n\n if (vm.componentType == 'tasks')\n type = 'task';\n component = new Component({ pid: 'personal', type: type });\n\n // UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox or\n // UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox\n var templateUrl = 'UIx' + type.capitalize() + 'EditorTemplate';\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: templateUrl,\n controller: 'ComponentEditorController',\n controllerAs: 'editor',\n locals: {\n stateComponent: component\n }\n });\n }\n\n function filter(filterpopup) {\n Component.$filter(vm.componentType, { filterpopup: filterpopup });\n }\n\n function filteredBy(filterpopup) {\n return Component['$query' + vm.componentType.capitalize()].filterpopup == filterpopup;\n }\n\n function sort(field) {\n Component.$filter(vm.componentType, { sort: field });\n }\n\n function sortedBy(field) {\n return Component['$query' + vm.componentType.capitalize()].sort == field;\n }\n\n function cancelSearch() {\n vm.mode.search = false;\n Component.$filter(vm.componentType, { value: '' });\n }\n }\n \n angular\n .module('SOGo.SchedulerUI')\n .controller('CalendarListController', CalendarListController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n CalendarsController.$inject = ['$scope', '$window', '$mdDialog', '$log', 'sgFocus', 'Dialog', 'sgSettings', 'Calendar', 'User', 'stateCalendars'];\n function CalendarsController($scope, $window, $mdDialog, $log, focus, Dialog, Settings, Calendar, User, stateCalendars) {\n var vm = this;\n\n vm.activeUser = Settings.activeUser;\n vm.service = Calendar;\n vm.newCalendar = newCalendar;\n vm.addWebCalendar = addWebCalendar;\n vm.confirmDelete = confirmDelete;\n vm.editFolder = editFolder;\n vm.revertEditing = revertEditing;\n vm.renameFolder = renameFolder;\n vm.share = share;\n vm.showLinks = showLinks;\n vm.showProperties = showProperties;\n vm.subscribeToFolder = subscribeToFolder;\n vm.today = today;\n\n // Dispatch the event named 'calendars:list' when a calendar is activated or deactivated or\n // when the color of a calendar is changed\n $scope.$watch(\n function() {\n return _.union(\n _.map(Calendar.$calendars, function(o) { return _.pick(o, ['id', 'active', 'color']); }),\n _.map(Calendar.$subscriptions, function(o) { return _.pick(o, ['id', 'active', 'color']); }),\n _.map(Calendar.$webcalendars, function(o) { return _.pick(o, ['id', 'active', 'color']); })\n );\n },\n function(newList, oldList) {\n // Identify which calendar has changed\n var ids = _.pluck(_.filter(newList, function(o, i) { return !_.isEqual(o, oldList[i]); }), 'id');\n if (ids.length > 0) {\n $log.debug(ids.join(', ') + ' changed');\n _.each(ids, function(id) {\n var calendar = Calendar.$get(id);\n calendar.$setActivation().then(function() {\n $scope.$broadcast('calendars:list');\n });\n });\n }\n },\n true // compare for object equality\n );\n\n function newCalendar(ev) {\n Dialog.prompt(l('New calendar'), l('Name of the Calendar'))\n .then(function(name) {\n var calendar = new Calendar(\n {\n name: name,\n isEditable: true,\n isRemote: false,\n owner: UserLogin\n }\n );\n Calendar.$add(calendar);\n });\n }\n\n function addWebCalendar() {\n Dialog.prompt(l('Subscribe to a web calendar...'), l('URL of the Calendar'), {inputType: 'url'})\n .then(function(url) {\n Calendar.$addWebCalendar(url);\n });\n }\n\n function confirmDelete(folder) {\n if (folder.isSubscription) {\n // Unsubscribe without confirmation\n folder.$delete()\n .then(function() {\n $scope.$broadcast('calendars:list');\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the calendar \"%{0}\".', folder.name),\n l(data.error));\n });\n }\n else {\n Dialog.confirm(l('Warning'), l('Are you sure you want to delete the calendar %{0}?', folder.name))\n .then(function() {\n folder.$delete()\n .then(function() {\n $scope.$broadcast('calendars:list');\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the calendar \"%{0}\".', folder.name),\n l(data.error));\n });\n });\n }\n }\n\n function showLinks(calendar) {\n $mdDialog.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: calendar.id + '/links',\n controller: LinksDialogController,\n controllerAs: 'links',\n locals: {\n calendar: calendar\n }\n });\n \n /**\n * @ngInject\n */\n LinksDialogController.$inject = ['$mdDialog', 'calendar'];\n function LinksDialogController($mdDialog, calendar) {\n var vm = this;\n vm.calendar = calendar;\n vm.close = close;\n\n function close() {\n $mdDialog.hide();\n }\n }\n }\n\n function showProperties(calendar) {\n $mdDialog.show({\n templateUrl: calendar.id + '/properties',\n controller: PropertiesDialogController,\n controllerAs: 'properties',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n calendar: calendar\n }\n });\n \n /**\n * @ngInject\n */\n PropertiesDialogController.$inject = ['$mdDialog', 'calendar'];\n function PropertiesDialogController($mdDialog, calendar) {\n var vm = this;\n\n vm.calendar = new Calendar(calendar.$omit());\n vm.saveProperties = saveProperties;\n vm.close = close;\n\n function saveProperties() {\n vm.calendar.$save();\n // Refresh list instance\n calendar.init(vm.calendar.$omit());\n $mdDialog.hide();\n }\n\n function close() {\n $mdDialog.hide();\n }\n }\n }\n\n function editFolder(folder) {\n vm.calendarName = folder.name;\n vm.editMode = folder.id;\n focus('calendarName_' + folder.id);\n }\n\n function revertEditing(folder) {\n folder.$reset();\n vm.editMode = false;\n }\n\n function renameFolder(folder) {\n folder.$rename()\n .then(function(data) {\n vm.editMode = false;\n }, function(data, status) {\n Dialog.alert(l('Warning'), data);\n });\n }\n\n function share(calendar) {\n calendar.$acl.$users().then(function() {\n $mdDialog.show({\n templateUrl: calendar.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox\n controller: 'AclController', // from the ng module SOGo.Common\n controllerAs: 'acl',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n usersWithACL: calendar.$acl.users,\n User: User,\n folder: calendar\n }\n });\n });\n }\n\n // Callback of sgSubscribe directive\n function subscribeToFolder(calendarData) {\n $log.debug('subscribeToFolder ' + calendarData.owner + calendarData.name);\n Calendar.$subscribe(calendarData.owner, calendarData.name).catch(function(data) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function today() {\n var fragments = $window.location.hash.split('/'),\n state = fragments[1],\n view = fragments[2],\n now = new Date(),\n path = ['#', state, view, now.getDayString()];\n $window.location = path.join('/');\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .controller('CalendarsController', CalendarsController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n ComponentController.$inject = ['$rootScope', '$mdDialog', 'Calendar', 'AddressBook', 'Alarm', 'stateComponent'];\n function ComponentController($rootScope, $mdDialog, Calendar, AddressBook, Alarm, stateComponent) {\n var vm = this, component;\n\n vm.component = stateComponent;\n vm.close = close;\n vm.cardFilter = cardFilter;\n vm.edit = edit;\n vm.editAllOccurrences = editAllOccurrences;\n vm.reply = reply;\n vm.replyAllOccurrences = replyAllOccurrences;\n\n // Load all attributes of component\n if (angular.isUndefined(vm.component.$futureComponentData)) {\n component = Calendar.$get(vm.component.c_folder).$getComponent(vm.component.c_name, vm.component.c_recurrence_id);\n component.$futureComponentData.then(function() {\n vm.component = component;\n vm.organizer = [vm.component.organizer];\n });\n }\n\n function close() {\n $mdDialog.hide();\n }\n\n // Autocomplete cards for attendees\n function cardFilter($query) {\n AddressBook.$filterAll($query);\n return AddressBook.$cards;\n }\n\n function edit() {\n var type = (vm.component.component == 'vevent')? 'Appointment':'Task';\n $mdDialog.hide().then(function() {\n // UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox or\n // UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox\n var templateUrl = 'UIx' + type + 'EditorTemplate';\n $mdDialog.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: templateUrl,\n controller: 'ComponentEditorController',\n controllerAs: 'editor',\n locals: {\n stateComponent: vm.component\n }\n });\n });\n }\n\n function editAllOccurrences() {\n component = Calendar.$get(vm.component.pid).$getComponent(vm.component.id);\n component.$futureComponentData.then(function() {\n vm.component = component;\n edit();\n });\n }\n\n function reply(component) {\n var c = component || vm.component;\n\n c.$reply().then(function() {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n Alarm.getAlarms();\n });\n }\n\n function replyAllOccurrences() {\n // Retrieve master event\n component = Calendar.$get(vm.component.pid).$getComponent(vm.component.id);\n component.$futureComponentData.then(function() {\n // Propagate the participant status and alarm to the master event\n component.reply = vm.component.reply;\n component.delegatedTo = vm.component.delegatedTo;\n component.$hasAlarm = vm.component.$hasAlarm;\n component.alarm = vm.component.alarm;\n // Send reply to the server\n reply(component);\n });\n }\n }\n\n /**\n * @ngInject\n */\n ComponentEditorController.$inject = ['$rootScope', '$scope', '$log', '$timeout', '$mdDialog', 'User', 'Calendar', 'Component', 'AddressBook', 'Card', 'Alarm', 'stateComponent'];\n function ComponentEditorController($rootScope, $scope, $log, $timeout, $mdDialog, User, Calendar, Component, AddressBook, Card, Alarm, stateComponent) {\n var vm = this, component;\n\n vm.calendars = Calendar.$calendars;\n vm.component = stateComponent;\n vm.categories = {};\n vm.showRecurrenceEditor = vm.component.$hasCustomRepeat;\n vm.toggleRecurrenceEditor = toggleRecurrenceEditor;\n vm.showAttendeesEditor = angular.isDefined(vm.component.attendees);\n vm.toggleAttendeesEditor = toggleAttendeesEditor;\n vm.cardFilter = cardFilter;\n vm.addAttendee = addAttendee;\n vm.addAttachUrl = addAttachUrl;\n vm.cancel = cancel;\n vm.save = save;\n vm.attendeesEditor = {\n startDate: vm.component.startDate,\n endDate: vm.component.endDate,\n days: getDays(),\n hours: getHours()\n };\n\n $scope.$watch('editor.component.startDate', function(newStartDate, oldStartDate) {\n if (newStartDate) {\n $timeout(function() {\n vm.component.start = new Date(newStartDate.substring(0,10) + ' ' + newStartDate.substring(11,16));\n vm.component.freebusy = vm.component.updateFreeBusyCoverage();\n vm.attendeesEditor.days = getDays();\n });\n }\n });\n\n $scope.$watch('editor.component.endDate', function(newEndDate, oldEndDate) {\n if (newEndDate) {\n $timeout(function() {\n vm.component.end = new Date(newEndDate.substring(0,10) + ' ' + newEndDate.substring(11,16));\n vm.component.freebusy = vm.component.updateFreeBusyCoverage();\n vm.attendeesEditor.days = getDays();\n });\n }\n });\n\n function addAttachUrl() {\n var i = vm.component.addAttachUrl('');\n focus('attachUrl_' + i);\n }\n\n function toggleRecurrenceEditor() {\n vm.showRecurrenceEditor = !vm.showRecurrenceEditor;\n vm.component.$hasCustomRepeat = vm.showRecurrenceEditor;\n }\n\n function toggleAttendeesEditor() {\n vm.showAttendeesEditor = !vm.showAttendeesEditor;\n }\n\n // Autocomplete cards for attendees\n function cardFilter($query) {\n AddressBook.$filterAll($query);\n return AddressBook.$cards;\n }\n\n function addAttendee(card) {\n if (angular.isString(card)) {\n // User pressed \"Enter\" in search field, adding a non-matching card\n if (card.isValidEmail()) {\n vm.component.addAttendee(new Card({ emails: [{ value: card }] }));\n vm.searchText = '';\n }\n }\n else {\n vm.component.addAttendee(card);\n }\n }\n\n function save(form) {\n if (form.$valid) {\n vm.component.$save()\n .then(function(data) {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n Alarm.getAlarms();\n }, function(data, status) {\n $log.debug('failed');\n });\n }\n }\n\n function cancel() {\n vm.component.$reset();\n if (vm.component.isNew) {\n // Cancelling the creation of a component\n vm.component = null;\n }\n $mdDialog.hide();\n }\n\n function getDays() {\n var days = [];\n\n if (vm.component.start && vm.component.end)\n days = vm.component.start.daysUpTo(vm.component.end);\n\n return _.map(days, function(date) {\n return { stringWithSeparator: date.stringWithSeparator(),\n getDayString: date.getDayString() };\n });\n }\n\n function getHours() {\n var hours = [];\n for (var i = 0; i <= 23; i++) {\n //hours.push(Component.timeFormat.formatTime(i, 0));\n hours.push(i.toString());\n }\n return hours;\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .controller('ComponentController', ComponentController)\n .controller('ComponentEditorController', ComponentEditorController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayBlock - An event block to be displayed in a week\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlock - the event block definition\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: clickEvent (the event that triggered the mouse click),\n * and clickComponent (a Component object)\n *\n * @example:\n\n \n */\n function sgCalendarDayBlock() {\n return {\n restrict: 'E',\n scope: {\n block: '=sgBlock',\n clickBlock: '&sgClick'\n },\n replace: true,\n template: [\n '
',\n '
',\n '
',\n '
',\n '
{{ block.component.c_title }}',\n ' ',\n // Component has an alarm\n ' ',\n // Component is confidential\n ' ',\n // Component is private\n ' ',\n '
',\n '
',\n '
',\n '
',\n '
'\n ].join(''),\n link: link\n };\n\n function link(scope, iElement, attrs) {\n // Compute overlapping (2%)\n var pc = 100 / scope.block.siblings,\n left = scope.block.position * pc,\n right = 100 - (scope.block.position + 1) * pc;\n\n if (pc < 100) {\n if (left > 0)\n left -= 2;\n if (right > 0)\n right -= 2;\n }\n\n // Add some padding (2%)\n if (left === 0)\n left = 2;\n if (right === 0)\n right = 2;\n\n // Set position\n iElement.css('left', left + '%');\n iElement.css('right', right + '%');\n iElement.addClass('starts' + scope.block.start);\n iElement.addClass('lasts' + scope.block.length);\n iElement.addClass('bg-folder' + scope.block.component.c_folder);\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarDayBlock', sgCalendarDayBlock);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayTable - Build list of blocks for a specific day\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: event (the event that triggered the mouse click),\n * and component (a Component object)\n *\n * @example:\n\n \n */\n function sgCalendarDayTable() {\n return {\n restrict: 'E',\n scope: {\n blocks: '=sgBlocks',\n day: '@sgDay',\n clickBlock: '&sgClick'\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarDayTable', sgCalendarDayTable);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarMonthDay - Build list of blocks for a specific day in a month\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @ngInject\n * @example:\n\n \n */\n function sgCalendarMonthDay() {\n return {\n restrict: 'E',\n scope: {\n blocks: '=sgBlocks',\n day: '@sgDay',\n clickBlock: '&sgClick'\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarMonthDay', sgCalendarMonthDay);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarMonthEvent - An event block to be displayed in a month\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlock - the event block definition\n * @ngInject\n * @example:\n\n \n */\n function sgCalendarMonthEvent() {\n return {\n restrict: 'E',\n scope: {\n block: '=sgBlock',\n clickBlock: '&sgClick'\n },\n replace: true,\n template: [\n '
',\n ' {{ block.starthour }} - ',\n ' {{ block.component.c_title }}',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n '
',\n '
',\n '
'\n ].join(''),\n link: link\n };\n\n function link(scope, iElement, attrs) {\n iElement.addClass('bg-folder' + scope.block.component.c_folder);\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarMonthEvent', sgCalendarMonthEvent);\n})();\n"]} \ No newline at end of file +{"version":3,"file":"Scheduler.js","sources":["Scheduler/Scheduler.app.js","Scheduler/CalendarController.js","Scheduler/CalendarListController.js","Scheduler/CalendarsController.js","Scheduler/ComponentController.js","Scheduler/sgCalendarDayBlock.directive.js","Scheduler/sgCalendarDayTable.directive.js","Scheduler/sgCalendarMonthDay.directive.js","Scheduler/sgCalendarMonthEvent.directive.js","Scheduler/sgCalendarTable.directive.js","Scheduler/sgDraggableBlock.directive.js"],"names":["configure","$stateProvider","$urlRouterProvider","state","url","views","calendars","templateUrl","controller","controllerAs","resolve","stateCalendars","sticky","deepStateRedirect","calendarView","$stateParams","view","day","stateEventsBlocks","when","now","Date","getDayString","otherwise","Calendar","$calendars","$findAll","window","calendarsData","Component","$eventsBlocksForView","asDate","then","_","forEach","id","calendar","name","calendarName","runBlock","$rootScope","$log","$location","$state","Preferences","$on","event","toState","toParams","fromState","fromParams","error","go","current","previous","rejection","length","ready","exec","settings","View","replace","angular","module","config","run","$inject","CalendarController","$scope","$timeout","$interval","focus","changeView","$event","date","element","currentTarget","attr","vm","this","data","CalendarListController","$mdDialog","Dialog","selectComponentType","type","options","reload","componentType","isUndefined","$filter","unselectComponents","saveSelectedList","each","component","selected","selectAll","toggleComponentSelection","preventDefault","stopPropagation","confirmDeleteSelectedComponents","confirm","l","components","filter","$deleteComponents","status","openEvent","viewable","openComponent","openTask","task","capitalize","show","parent","document","body","targetEvent","clickOutsideToClose","escapeToClose","locals","stateComponent","newComponent","pid","filterpopup","filteredBy","sort","field","sortedBy","cancelSearch","mode","search","value","selectedList","SelectedList","CalendarsController","$window","Settings","User","newCalendar","ev","prompt","isEditable","isRemote","owner","UserLogin","$add","addWebCalendar","inputType","$addWebCalendar","confirmDelete","folder","isSubscription","$delete","$broadcast","alert","showLinks","LinksDialogController","close","hide","showProperties","PropertiesDialogController","saveProperties","$save","init","$omit","editFolder","editMode","revertEditing","$reset","renameFolder","$rename","share","$acl","$users","usersWithACL","users","subscribeToFolder","calendarData","debug","$subscribe","today","fragments","location","hash","split","path","join","activeUser","service","$watch","union","map","o","pick","$subscriptions","$webcalendars","newList","oldList","ids","pluck","i","isEqual","$get","$setActivation","ComponentController","AddressBook","Alarm","cardFilter","$query","$filterAll","$cards","edit","editAllOccurrences","$getComponent","$futureComponentData","reply","c","$reply","getAlarms","replyAllOccurrences","delegatedTo","$hasAlarm","alarm","deleteOccurrence","remove","deleteAllOccurrences","viewRawSource","$$resource","post","ComponentRawSourceDialogController","scope","template","c_folder","c_name","c_recurrence_id","organizer","ComponentEditorController","Card","addAttachUrl","toggleRecurrenceEditor","showRecurrenceEditor","$hasCustomRepeat","toggleAttendeesEditor","showAttendeesEditor","addAttendee","card","isString","isValidEmail","emails","searchText","save","form","$valid","cancel","isNew","getDays","days","start","end","daysUpTo","stringWithSeparator","getHours","hours","push","toString","categories","isDefined","attendees","attendeesEditor","startDate","endDate","newStartDate","oldStartDate","addMinutes","delta","freebusy","updateFreeBusyCoverage","newEndDate","oldEndDate","Math","floor","abs","sgCalendarDayBlock","link","iElement","attrs","pc","block","siblings","left","position","right","css","addClass","restrict","clickBlock","directive","sgCalendarDayTable","blocks","sgCalendarMonthDay","sgCalendarMonthEvent","sgCalendarTable","blocksType","sgDraggableBlock","$mdGesture","onDragStart","console","srcElement","getBoundingClientRect","top","clientY","on"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* JavaScript for SOGo.SchedulerUI module */\n\n(function() {\n 'use strict';\n\n angular.module('SOGo.SchedulerUI', ['ngSanitize', 'ui.router', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.ContactsUI', 'SOGo.MailerUI'])\n .config(configure)\n .run(runBlock);\n\n /**\n * @ngInject\n */\n configure.$inject = ['$stateProvider', '$urlRouterProvider'];\n function configure($stateProvider, $urlRouterProvider) {\n $stateProvider\n .state('calendars', {\n url: '/calendar',\n views: {\n calendars: {\n templateUrl: 'UIxCalMainFrame', // UI/Templates/SchedulerUI/UIxCalMainFrame.wox\n controller: 'CalendarsController',\n controllerAs: 'app'\n }\n },\n resolve: {\n stateCalendars: stateCalendars\n }\n })\n .state('calendars.view', {\n url: '/{view:(?:day|week|month|multicolumnday)}/:day',\n sticky: true,\n deepStateRedirect: true,\n views: {\n calendarView: {\n templateUrl: function($stateParams) {\n // UI/Templates/SchedulerUI/UIxCalDayView.wox or\n // UI/Templates/SchedulerUI/UIxCalWeekView.wox or\n // UI/Templates/SchedulerUI/UIxCalMonthView.wox or\n // UI/Templates/SchedulerUI/UIxCalMulticolumnDayView.wox\n return $stateParams.view + 'view?day=' + $stateParams.day;\n },\n controller: 'CalendarController',\n controllerAs: 'calendar'\n }\n },\n resolve: {\n stateEventsBlocks: stateEventsBlocks\n }\n });\n\n $urlRouterProvider.when('/calendar/day', function() {\n // If no date is specified, show today\n var now = new Date();\n return '/calendar/day/' + now.getDayString();\n });\n $urlRouterProvider.when('/calendar/multicolumnday', function() {\n // If no date is specified, show today\n var now = new Date();\n return '/calendar/multicolumnday/' + now.getDayString();\n });\n $urlRouterProvider.when('/calendar/week', function() {\n // If no date is specified, show today's week\n var now = new Date();\n return '/calendar/week/' + now.getDayString();\n });\n $urlRouterProvider.when('/calendar/month', function() {\n // If no date is specified, show today's month\n var now = new Date();\n return '/calendar/month/' + now.getDayString();\n });\n\n // If none of the above states are matched, use this as the fallback.\n // runBlock will also act as a fallback by looking at user's settings\n $urlRouterProvider.otherwise('/calendar');\n }\n\n /**\n * @ngInject\n */\n stateCalendars.$inject = ['Calendar'];\n function stateCalendars(Calendar) {\n return Calendar.$calendars || Calendar.$findAll(window.calendarsData);\n }\n\n /**\n * @ngInject\n */\n stateEventsBlocks.$inject = ['$stateParams', 'Component', 'Calendar', ];\n function stateEventsBlocks($stateParams, Component, Calendar) {\n // See CalendarController.js\n return Component.$eventsBlocksForView($stateParams.view, $stateParams.day.asDate())\n .then(function(views) {\n _.forEach(views, function(view) {\n if (view.id) {\n view.calendar = new Calendar({ id: view.id, name: view.calendarName });\n }\n });\n return views;\n });\n }\n\n /**\n * @ngInject\n */\n runBlock.$inject = ['$rootScope', '$log', '$location', '$state', 'Preferences'];\n function runBlock($rootScope, $log, $location, $state, Preferences) {\n $rootScope.$on('$stateChangeError', function(event, toState, toParams, fromState, fromParams, error) {\n $log.error(error);\n $state.go('calendar');\n });\n $rootScope.$on('$routeChangeError', function(event, current, previous, rejection) {\n $log.error(event, current, previous, rejection);\n });\n if ($location.url().length === 0) {\n // Restore user's last view\n Preferences.ready().then(function() {\n var view = /(.+)view/.exec(Preferences.settings.Calendar.View);\n if (view) {\n $location.replace().url('/calendar/' + view[1]);\n }\n });\n }\n }\n\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n CalendarController.$inject = ['$scope', '$state', '$stateParams', '$timeout', '$interval', '$log', 'sgFocus', 'Calendar', 'Component', 'stateEventsBlocks'];\n function CalendarController($scope, $state, $stateParams, $timeout, $interval, $log, focus, Calendar, Component, stateEventsBlocks) {\n var vm = this;\n\n vm.views = stateEventsBlocks;\n vm.changeView = changeView;\n\n // Refresh current view when the list of calendars is modified\n $scope.$on('calendars:list', function() {\n // See stateEventsBlocks in Scheduler.app.js\n Component.$eventsBlocksForView($stateParams.view, $stateParams.day.asDate()).then(function(data) {\n vm.views = data;\n _.forEach(vm.views, function(view) {\n if (view.id) {\n view.calendar = new Calendar({ id: view.id, name: view.calendarName });\n }\n });\n });\n });\n\n // Change calendar's view\n function changeView($event) {\n var date = angular.element($event.currentTarget).attr('date');\n $state.go('calendars.view', { view: $stateParams.view, day: date });\n }\n }\n\n angular\n .module('SOGo.SchedulerUI') \n .controller('CalendarController', CalendarController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n CalendarListController.$inject = ['$scope', '$timeout', '$state', '$mdDialog', 'Dialog', 'Preferences', 'Calendar', 'Component'];\n function CalendarListController($scope, $timeout, $state, $mdDialog, Dialog, Preferences, Calendar, Component) {\n var vm = this;\n\n vm.component = Component;\n vm.componentType = 'events';\n vm.selectedList = 0;\n vm.selectComponentType = selectComponentType;\n vm.unselectComponents = unselectComponents;\n vm.selectAll = selectAll;\n vm.toggleComponentSelection = toggleComponentSelection;\n vm.confirmDeleteSelectedComponents = confirmDeleteSelectedComponents;\n vm.openEvent = openEvent;\n vm.openTask = openTask;\n vm.newComponent = newComponent;\n vm.filter = filter;\n vm.filteredBy = filteredBy;\n vm.sort = sort;\n vm.sortedBy = sortedBy;\n vm.cancelSearch = cancelSearch;\n vm.mode = { search: false };\n\n // Select list based on user's settings\n Preferences.ready().then(function() {\n var type = 'events';\n if (Preferences.settings.Calendar.SelectedList == 'tasksListView') {\n vm.selectedList = 1;\n type = 'tasks';\n }\n selectComponentType(type, { reload: true });\n });\n\n // Refresh current list when the list of calendars is modified\n $scope.$on('calendars:list', function() {\n Component.$filter(vm.componentType, { reload: true });\n });\n\n // Switch between components tabs\n function selectComponentType(type, options) {\n if (options && options.reload || vm.componentType != type) {\n // TODO: save user settings (Calendar.SelectedList)\n if (angular.isUndefined(Component['$' + type]))\n Component.$filter(type);\n vm.unselectComponents();\n vm.componentType = type;\n Component.saveSelectedList(type);\n }\n }\n\n function unselectComponents() {\n _.each(Component['$' + vm.componentType], function(component) { component.selected = false; });\n }\n\n function selectAll() {\n _.each(Component['$' + vm.componentType], function(component) {\n component.selected = true;\n });\n }\n\n function toggleComponentSelection($event, component) {\n component.selected = !component.selected;\n $event.preventDefault();\n $event.stopPropagation();\n }\n\n function confirmDeleteSelectedComponents() {\n Dialog.confirm(l('Warning'),\n l('Are you sure you want to delete the selected components?'))\n .then(function() {\n // User confirmed the deletion\n var components = _.filter(Component['$' + vm.componentType], function(component) { return component.selected; });\n Calendar.$deleteComponents(components);\n }, function(data, status) {\n // Delete failed\n });\n }\n\n function openEvent($event, event) {\n if (event.viewable)\n openComponent($event, event, 'appointment');\n }\n\n function openTask($event, task) {\n if (task.viewable)\n openComponent($event, task, 'task');\n }\n\n function openComponent($event, component, type) {\n // UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox or\n // UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox\n var templateUrl = 'UIx' + type.capitalize() + 'ViewTemplate';\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: templateUrl,\n controller: 'ComponentController',\n controllerAs: 'editor',\n locals: {\n stateComponent: component\n }\n });\n }\n\n function newComponent($event) {\n var type = 'appointment', component;\n\n if (vm.componentType == 'tasks')\n type = 'task';\n component = new Component({ pid: 'personal', type: type });\n\n // UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox or\n // UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox\n var templateUrl = 'UIx' + type.capitalize() + 'EditorTemplate';\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: templateUrl,\n controller: 'ComponentEditorController',\n controllerAs: 'editor',\n locals: {\n stateComponent: component\n }\n });\n }\n\n function filter(filterpopup) {\n Component.$filter(vm.componentType, { filterpopup: filterpopup });\n }\n\n function filteredBy(filterpopup) {\n return Component['$query' + vm.componentType.capitalize()].filterpopup == filterpopup;\n }\n\n function sort(field) {\n Component.$filter(vm.componentType, { sort: field });\n }\n\n function sortedBy(field) {\n return Component['$query' + vm.componentType.capitalize()].sort == field;\n }\n\n function cancelSearch() {\n vm.mode.search = false;\n Component.$filter(vm.componentType, { value: '' });\n }\n }\n \n angular\n .module('SOGo.SchedulerUI')\n .controller('CalendarListController', CalendarListController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n CalendarsController.$inject = ['$scope', '$window', '$mdDialog', '$log', 'sgFocus', 'Dialog', 'sgSettings', 'Calendar', 'User', 'stateCalendars'];\n function CalendarsController($scope, $window, $mdDialog, $log, focus, Dialog, Settings, Calendar, User, stateCalendars) {\n var vm = this;\n\n vm.activeUser = Settings.activeUser;\n vm.service = Calendar;\n vm.newCalendar = newCalendar;\n vm.addWebCalendar = addWebCalendar;\n vm.confirmDelete = confirmDelete;\n vm.editFolder = editFolder;\n vm.revertEditing = revertEditing;\n vm.renameFolder = renameFolder;\n vm.share = share;\n vm.showLinks = showLinks;\n vm.showProperties = showProperties;\n vm.subscribeToFolder = subscribeToFolder;\n vm.today = today;\n\n // Dispatch the event named 'calendars:list' when a calendar is activated or deactivated or\n // when the color of a calendar is changed\n $scope.$watch(\n function() {\n return _.union(\n _.map(Calendar.$calendars, function(o) { return _.pick(o, ['id', 'active', 'color']); }),\n _.map(Calendar.$subscriptions, function(o) { return _.pick(o, ['id', 'active', 'color']); }),\n _.map(Calendar.$webcalendars, function(o) { return _.pick(o, ['id', 'active', 'color']); })\n );\n },\n function(newList, oldList) {\n // Identify which calendar has changed\n var ids = _.pluck(_.filter(newList, function(o, i) { return !_.isEqual(o, oldList[i]); }), 'id');\n if (ids.length > 0) {\n $log.debug(ids.join(', ') + ' changed');\n _.each(ids, function(id) {\n var calendar = Calendar.$get(id);\n calendar.$setActivation().then(function() {\n $scope.$broadcast('calendars:list');\n });\n });\n }\n },\n true // compare for object equality\n );\n\n function newCalendar(ev) {\n Dialog.prompt(l('New calendar'), l('Name of the Calendar'))\n .then(function(name) {\n var calendar = new Calendar(\n {\n name: name,\n isEditable: true,\n isRemote: false,\n owner: UserLogin\n }\n );\n Calendar.$add(calendar);\n });\n }\n\n function addWebCalendar() {\n Dialog.prompt(l('Subscribe to a web calendar...'), l('URL of the Calendar'), {inputType: 'url'})\n .then(function(url) {\n Calendar.$addWebCalendar(url);\n });\n }\n\n function confirmDelete(folder) {\n if (folder.isSubscription) {\n // Unsubscribe without confirmation\n folder.$delete()\n .then(function() {\n $scope.$broadcast('calendars:list');\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the calendar \"%{0}\".', folder.name),\n l(data.error));\n });\n }\n else {\n Dialog.confirm(l('Warning'), l('Are you sure you want to delete the calendar %{0}?', folder.name))\n .then(function() {\n folder.$delete()\n .then(function() {\n $scope.$broadcast('calendars:list');\n }, function(data, status) {\n Dialog.alert(l('An error occured while deleting the calendar \"%{0}\".', folder.name),\n l(data.error));\n });\n });\n }\n }\n\n function showLinks(calendar) {\n $mdDialog.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: calendar.id + '/links',\n controller: LinksDialogController,\n controllerAs: 'links',\n locals: {\n calendar: calendar\n }\n });\n \n /**\n * @ngInject\n */\n LinksDialogController.$inject = ['$mdDialog', 'calendar'];\n function LinksDialogController($mdDialog, calendar) {\n var vm = this;\n vm.calendar = calendar;\n vm.close = close;\n\n function close() {\n $mdDialog.hide();\n }\n }\n }\n\n function showProperties(calendar) {\n $mdDialog.show({\n templateUrl: calendar.id + '/properties',\n controller: PropertiesDialogController,\n controllerAs: 'properties',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n calendar: calendar\n }\n });\n \n /**\n * @ngInject\n */\n PropertiesDialogController.$inject = ['$mdDialog', 'calendar'];\n function PropertiesDialogController($mdDialog, calendar) {\n var vm = this;\n\n vm.calendar = new Calendar(calendar.$omit());\n vm.saveProperties = saveProperties;\n vm.close = close;\n\n function saveProperties() {\n vm.calendar.$save();\n // Refresh list instance\n calendar.init(vm.calendar.$omit());\n $mdDialog.hide();\n }\n\n function close() {\n $mdDialog.hide();\n }\n }\n }\n\n function editFolder(folder) {\n vm.calendarName = folder.name;\n vm.editMode = folder.id;\n focus('calendarName_' + folder.id);\n }\n\n function revertEditing(folder) {\n folder.$reset();\n vm.editMode = false;\n }\n\n function renameFolder(folder) {\n folder.$rename()\n .then(function(data) {\n vm.editMode = false;\n }, function(data, status) {\n Dialog.alert(l('Warning'), data);\n });\n }\n\n function share(calendar) {\n calendar.$acl.$users().then(function() {\n $mdDialog.show({\n templateUrl: calendar.id + '/UIxAclEditor', // UI/Templates/UIxAclEditor.wox\n controller: 'AclController', // from the ng module SOGo.Common\n controllerAs: 'acl',\n clickOutsideToClose: true,\n escapeToClose: true,\n locals: {\n usersWithACL: calendar.$acl.users,\n User: User,\n folder: calendar\n }\n });\n });\n }\n\n // Callback of sgSubscribe directive\n function subscribeToFolder(calendarData) {\n $log.debug('subscribeToFolder ' + calendarData.owner + calendarData.name);\n Calendar.$subscribe(calendarData.owner, calendarData.name).catch(function(data) {\n Dialog.alert(l('Warning'), l('An error occured please try again.'));\n });\n }\n\n function today() {\n var fragments = $window.location.hash.split('/'),\n state = fragments[1],\n view = fragments[2],\n now = new Date(),\n path = ['#', state, view, now.getDayString()];\n $window.location = path.join('/');\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .controller('CalendarsController', CalendarsController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @ngInject\n */\n ComponentController.$inject = ['$rootScope', '$mdDialog', 'Calendar', 'AddressBook', 'Alarm', 'stateComponent'];\n function ComponentController($rootScope, $mdDialog, Calendar, AddressBook, Alarm, stateComponent) {\n var vm = this, component;\n\n vm.component = stateComponent;\n vm.close = close;\n vm.cardFilter = cardFilter;\n vm.edit = edit;\n vm.editAllOccurrences = editAllOccurrences;\n vm.reply = reply;\n vm.replyAllOccurrences = replyAllOccurrences;\n vm.deleteOccurrence = deleteOccurrence;\n vm.deleteAllOccurrences = deleteAllOccurrences;\n vm.viewRawSource = viewRawSource;\n\n // Load all attributes of component\n if (angular.isUndefined(vm.component.$futureComponentData)) {\n component = Calendar.$get(vm.component.c_folder).$getComponent(vm.component.c_name, vm.component.c_recurrence_id);\n component.$futureComponentData.then(function() {\n vm.component = component;\n vm.organizer = [vm.component.organizer];\n });\n }\n\n function close() {\n $mdDialog.hide();\n }\n\n // Autocomplete cards for attendees\n function cardFilter($query) {\n AddressBook.$filterAll($query);\n return AddressBook.$cards;\n }\n\n function edit() {\n var type = (vm.component.component == 'vevent')? 'Appointment':'Task';\n $mdDialog.hide().then(function() {\n // UI/Templates/SchedulerUI/UIxAppointmentEditorTemplate.wox or\n // UI/Templates/SchedulerUI/UIxTaskEditorTemplate.wox\n var templateUrl = 'UIx' + type + 'EditorTemplate';\n $mdDialog.show({\n parent: angular.element(document.body),\n clickOutsideToClose: true,\n escapeToClose: true,\n templateUrl: templateUrl,\n controller: 'ComponentEditorController',\n controllerAs: 'editor',\n locals: {\n stateComponent: vm.component\n }\n });\n });\n }\n\n function editAllOccurrences() {\n component = Calendar.$get(vm.component.pid).$getComponent(vm.component.id);\n component.$futureComponentData.then(function() {\n vm.component = component;\n edit();\n });\n }\n\n function reply(component) {\n var c = component || vm.component;\n\n c.$reply().then(function() {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n Alarm.getAlarms();\n });\n }\n\n function replyAllOccurrences() {\n // Retrieve master event\n component = Calendar.$get(vm.component.pid).$getComponent(vm.component.id);\n component.$futureComponentData.then(function() {\n // Propagate the participant status and alarm to the master event\n component.reply = vm.component.reply;\n component.delegatedTo = vm.component.delegatedTo;\n component.$hasAlarm = vm.component.$hasAlarm;\n component.alarm = vm.component.alarm;\n // Send reply to the server\n reply(component);\n });\n }\n\n function deleteOccurrence() {\n vm.component.remove(true).then(function() {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n });\n }\n\n function deleteAllOccurrences() {\n vm.component.remove().then(function() {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n });\n }\n\n function viewRawSource($event) {\n Calendar.$$resource.post(vm.component.pid + '/' + vm.component.id, \"raw\").then(function(data) {\n $mdDialog.show({\n parent: angular.element(document.body),\n targetEvent: $event,\n clickOutsideToClose: true,\n escapeToClose: true,\n template: [\n '',\n ' ',\n '
',\n            data,\n            '    
',\n '
',\n '
',\n ' ' + l('Close') + '',\n '
',\n '
'\n ].join(''),\n controller: ComponentRawSourceDialogController\n });\n\n /**\n * @ngInject\n */\n ComponentRawSourceDialogController.$inject = ['scope', '$mdDialog'];\n function ComponentRawSourceDialogController(scope, $mdDialog) {\n scope.close = function() {\n $mdDialog.hide();\n };\n }\n });\n }\n }\n\n /**\n * @ngInject\n */\n ComponentEditorController.$inject = ['$rootScope', '$scope', '$log', '$timeout', '$mdDialog', 'User', 'Calendar', 'Component', 'AddressBook', 'Card', 'Alarm', 'stateComponent'];\n function ComponentEditorController($rootScope, $scope, $log, $timeout, $mdDialog, User, Calendar, Component, AddressBook, Card, Alarm, stateComponent) {\n var vm = this, component;\n\n vm.calendars = Calendar.$calendars;\n vm.component = stateComponent;\n vm.categories = {};\n vm.showRecurrenceEditor = vm.component.$hasCustomRepeat;\n vm.toggleRecurrenceEditor = toggleRecurrenceEditor;\n vm.showAttendeesEditor = angular.isDefined(vm.component.attendees);\n vm.toggleAttendeesEditor = toggleAttendeesEditor;\n //vm.searchText = null;\n vm.cardFilter = cardFilter;\n vm.addAttendee = addAttendee;\n vm.addAttachUrl = addAttachUrl;\n vm.cancel = cancel;\n vm.save = save;\n vm.attendeesEditor = {\n startDate: vm.component.startDate,\n endDate: vm.component.endDate,\n days: getDays(),\n hours: getHours()\n };\n\n $scope.$watch('editor.component.start', function(newStartDate, oldStartDate) {\n if (vm.component.type == 'appointment') {\n vm.component.end = new Date(vm.component.start);\n vm.component.end.addMinutes(vm.component.delta);\n vm.component.freebusy = vm.component.updateFreeBusyCoverage();\n vm.attendeesEditor.days = getDays();\n }\n });\n\n $scope.$watch('editor.component.end', function(newEndDate, oldEndDate) {\n if (newEndDate <= vm.component.start) {\n vm.component.end = oldEndDate;\n }\n else {\n vm.component.delta = Math.floor((Math.abs(vm.component.end-vm.component.start)/1000)/60);\n vm.component.freebusy = vm.component.updateFreeBusyCoverage();\n vm.attendeesEditor.days = getDays();\n }\n });\n\n function addAttachUrl() {\n var i = vm.component.addAttachUrl('');\n focus('attachUrl_' + i);\n }\n\n function toggleRecurrenceEditor() {\n vm.showRecurrenceEditor = !vm.showRecurrenceEditor;\n vm.component.$hasCustomRepeat = vm.showRecurrenceEditor;\n }\n\n function toggleAttendeesEditor() {\n vm.showAttendeesEditor = !vm.showAttendeesEditor;\n }\n\n // Autocomplete cards for attendees\n function cardFilter($query) {\n AddressBook.$filterAll($query);\n return AddressBook.$cards;\n }\n\n function addAttendee(card) {\n if (angular.isString(card)) {\n // User pressed \"Enter\" in search field, adding a non-matching card\n if (card.isValidEmail()) {\n vm.component.addAttendee(new Card({ emails: [{ value: card }] }));\n vm.searchText = '';\n }\n }\n else {\n vm.component.addAttendee(card);\n }\n }\n\n function save(form) {\n if (form.$valid) {\n vm.component.$save()\n .then(function(data) {\n $rootScope.$broadcast('calendars:list');\n $mdDialog.hide();\n Alarm.getAlarms();\n }, function(data, status) {\n $log.debug('failed');\n });\n }\n }\n\n function cancel() {\n vm.component.$reset();\n if (vm.component.isNew) {\n // Cancelling the creation of a component\n vm.component = null;\n }\n $mdDialog.hide();\n }\n\n function getDays() {\n var days = [];\n\n if (vm.component.start && vm.component.end)\n days = vm.component.start.daysUpTo(vm.component.end);\n\n return _.map(days, function(date) {\n return { stringWithSeparator: date.stringWithSeparator(),\n getDayString: date.getDayString() };\n });\n }\n\n function getHours() {\n var hours = [];\n for (var i = 0; i <= 23; i++) {\n //hours.push(Component.timeFormat.formatTime(i, 0));\n hours.push(i.toString());\n }\n return hours;\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .controller('ComponentController', ComponentController)\n .controller('ComponentEditorController', ComponentEditorController);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayBlock - An event block to be displayed in a week\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlock - the event block definition\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: clickEvent (the event that triggered the mouse click),\n * and clickComponent (a Component object)\n *\n * @example:\n\n \n */\n function sgCalendarDayBlock() {\n return {\n restrict: 'E',\n scope: {\n block: '=sgBlock',\n clickBlock: '&sgClick'\n },\n replace: true,\n template: [\n '
',\n '
',\n '
',\n '
',\n '
{{ block.component.c_title }}',\n ' ',\n // Component has an alarm\n ' ',\n // Component is confidential\n ' ',\n // Component is private\n ' ',\n '
',\n '
',\n '
',\n '
',\n '
'\n ].join(''),\n link: link\n };\n\n function link(scope, iElement, attrs) {\n // Compute overlapping (2%)\n var pc = 100 / scope.block.siblings,\n left = scope.block.position * pc,\n right = 100 - (scope.block.position + 1) * pc;\n\n if (pc < 100) {\n if (left > 0)\n left -= 2;\n if (right > 0)\n right -= 2;\n }\n\n // Add some padding (2%)\n if (left === 0)\n left = 2;\n if (right === 0)\n right = 2;\n\n // Set position\n iElement.css('left', left + '%');\n iElement.css('right', right + '%');\n iElement.addClass('starts' + scope.block.start);\n iElement.addClass('lasts' + scope.block.length);\n iElement.addClass('bg-folder' + scope.block.component.c_folder);\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarDayBlock', sgCalendarDayBlock);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayTable - Build list of blocks for a specific day\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: event (the event that triggered the mouse click),\n * and component (a Component object)\n *\n * @example:\n\n \n */\n function sgCalendarDayTable() {\n return {\n restrict: 'E',\n scope: {\n blocks: '=sgBlocks',\n day: '@sgDay',\n clickBlock: '&sgClick'\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarDayTable', sgCalendarDayTable);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarMonthDay - Build list of blocks for a specific day in a month\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @ngInject\n * @example:\n\n \n */\n function sgCalendarMonthDay() {\n return {\n restrict: 'E',\n scope: {\n blocks: '=sgBlocks',\n day: '@sgDay',\n clickBlock: '&sgClick'\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarMonthDay', sgCalendarMonthDay);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarMonthEvent - An event block to be displayed in a month\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlock - the event block definition\n * @ngInject\n * @example:\n\n \n */\n function sgCalendarMonthEvent() {\n return {\n restrict: 'E',\n scope: {\n block: '=sgBlock',\n clickBlock: '&sgClick'\n },\n replace: true,\n template: [\n '
',\n ' {{ block.starthour }} - ',\n ' {{ block.component.c_title }}',\n ' ',\n ' ',\n ' ',\n ' ',\n ' ',\n '
',\n '
',\n '
'\n ].join(''),\n link: link\n };\n\n function link(scope, iElement, attrs) {\n iElement.addClass('bg-folder' + scope.block.component.c_folder);\n }\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarMonthEvent', sgCalendarMonthEvent);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayTable - Build list of blocks for a specific day\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: event (the event that triggered the mouse click),\n * and component (a Component object)\n *\n * @example:\n\n \n */\n function sgCalendarTable() {\n return {\n restrict: 'E',\n scope: {\n calendars: '=sgCalendars',\n calendar: '@sgCalendar',\n blocksType: '@sgBlocksType',\n day: '@sgDay',\n clickBlock: '&sgClick'\n },\n template: [\n ''\n ].join('')\n };\n }\n\n angular\n .module('SOGo.SchedulerUI')\n .directive('sgCalendarTable', sgCalendarTable);\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /*\n * sgCalendarDayTable - Build list of blocks for a specific day\n * @memberof SOGo.Common\n * @restrict element\n * @param {object} sgBlocks - the events blocks definitions for the current view\n * @param {string} sgDay - the day of the events to display\n * @param {function} sgClick - the function to call when clicking on a block.\n * Two variables are available: event (the event that triggered the mouse click),\n * and component (a Component object)\n *\n * @example:\n\n http://www.html5rocks.com/en/tutorials/dnd/basics/\n https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Drag_and_drop\n\n \n */\n sgDraggableBlock.$inject = ['$mdGesture'];\n function sgDraggableBlock($mdGesture) {\n return {\n restrict: 'A',\n link: function (scope, element, attrs, controller) {\n angular.element(element).attr('draggable', 'true');\n\n // var id = angular.element(el).attr(\"id\");\n\n // if (!id) {\n // id = uuid.new()\n // angular.element(el).attr(\"id\", id);\n // }\n // console.log(id);\n\n // $mdGesture.register(element, 'drag');\n // element\n // .on('$md.dragstart', onDragStart)\n // .on('$md.drag', onDrag)\n // .on('$md.dragend', onDragEnd);\n\n element.on('dragstart', onDragStart);\n \n // el.bind(\"dragstart\", function (e) {\n // e.originalEvent.dataTransfer.setData('text', id);\n // console.log('drag');\n // $rootScope.$emit(\"LVL-DRAG-START\");\n // });\n\n // el.bind(\"dragend\", function (e) {\n // $rootScope.$emit(\"LVL-DRAG-END\");\n // });\n\n function onDragStart(ev) {\n console.debug('start ' + ev.srcElement.getBoundingClientRect().top);\n console.debug(ev.clientY);\n }\n\n function onDrag(ev) {\n console.debug('dragging');\n }\n\n function onDragEnd(ev) {\n console.debug('end');\n }\n }\n };\n }\n \n angular\n .module('SOGo.SchedulerUI')\n .directive('sgDraggableBlock', sgDraggableBlock);\n})();\n"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/Scheduler.services.js b/UI/WebServerResources/js/Scheduler.services.js index 5189b0411..dc4cd7219 100644 --- a/UI/WebServerResources/js/Scheduler.services.js +++ b/UI/WebServerResources/js/Scheduler.services.js @@ -1,2 +1,2 @@ -!function(){"use strict";function Calendar(futureCalendarData){if(this.init(futureCalendarData),this.name&&!this.id){var newCalendarData=Calendar.$$resource.create("createFolder",this.name);angular.extend(this,newCalendarData)}this.id&&(this.$acl=new Calendar.$$Acl("Calendar/"+this.id))}Calendar.$factory=["$q","$timeout","$log","sgSettings","Resource","Component","Acl",function($q,$timeout,$log,Settings,Resource,Component,Acl){return angular.extend(Calendar,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Calendar",Settings.activeUser()),$Component:Component,$$Acl:Acl,activeUser:Settings.activeUser()}),Calendar}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").factory("Calendar",Calendar.$factory),Calendar.$add=function(calendar){var list,sibling,i;list=calendar.isWebCalendar?this.$webcalendars:calendar.isSubscription?this.$subscriptions:this.$calendars,sibling=_.find(list,function(o){return"personal"!=o.id&&1===o.name.localeCompare(calendar.name)}),i=sibling?_.indexOf(_.pluck(list,"id"),sibling.id):1,list.splice(i,0,calendar)},Calendar.$findAll=function(data){var _this=this;return data&&(this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],angular.forEach(data,function(o,i){var calendar=new Calendar(o);calendar.isWebCalendar?_this.$webcalendars.push(calendar):calendar.isSubscription?_this.$subscriptions.push(calendar):_this.$calendars.push(calendar)})),_.union(this.$calendars,this.$subscriptions,this.$webcalendars)},Calendar.$get=function(id){var calendar;return calendar=_.find(Calendar.$calendars,function(o){return o.id==id}),calendar||(calendar=_.find(Calendar.$subscriptions,function(o){return o.id==id})),calendar||(calendar=_.find(Calendar.$webcalendars,function(o){return o.id==id})),calendar},Calendar.$getIndex=function(id){var i;return i=_.indexOf(_.pluck(Calendar.$calendars,"id"),id),0>i&&(i=_.indexOf(_.pluck(Calendar.$subscriptions,"id"),id)),0>i&&(i=_.indexOf(_.pluck(Calendar.$webcalendars,"id"),id)),i},Calendar.$subscribe=function(uid,path){var _this=this;return Calendar.$$resource.userResource(uid).fetch(path,"subscribe").then(function(calendarData){var calendar=new Calendar(calendarData);return _.find(_this.$subscriptions,function(o){return o.id==calendarData.id})||Calendar.$add(calendar),calendar})},Calendar.$addWebCalendar=function(url){var _this=this,d=Calendar.$q.defer();return _.find(_this.$webcalendars,function(o){return o.urls.webCalendarURL==url})?d.reject():Calendar.$$resource.post(null,"addWebCalendar",{url:url}).then(function(calendarData){angular.extend(calendarData,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:Calendar.activeUser.login,urls:{webCalendarURL:url}});var calendar=new Calendar(calendarData);Calendar.$add(calendar),Calendar.$$resource.fetch(calendar.id,"reload").then(function(data){Calendar.$log.debug(JSON.stringify(data,void 0,2))}),d.resolve()},function(){d.reject()}),d.promise},Calendar.$deleteComponents=function(components){var calendars={},_this=this;_.forEach(components,function(component){angular.isDefined(calendars[component.c_folder])||(calendars[component.c_folder]=[]),calendars[component.c_folder].push(component.c_name)}),_.forEach(calendars,function(uids,c_folder){Calendar.$$resource.post(c_folder,"batchDelete",{uids:uids})}),_this.$Component.$events=_.difference(_this.$Component.$events,components),_this.$Component.$tasks=_.difference(_this.$Component.$tasks,components)},Calendar.prototype.init=function(data){angular.extend(this,data),this.isOwned=Calendar.activeUser.isSuperUser||this.owner==Calendar.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=Calendar.activeUser.login,angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},Calendar.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+this.id},Calendar.prototype.$rename=function(){var i,calendars,_this=this;return this.name==this.$shadowData.name?Calendar.$q.when():(calendars=this.isWebCalendar?Calendar.$webcalendars:this.isSubscription?Calendar.$subscriptions:Calendar.$calendars,i=_.indexOf(_.pluck(calendars,"id"),this.id),i>-1?this.$save().then(function(){calendars.splice(i,1),Calendar.$add(_this)}):Calendar.$q.reject())},Calendar.prototype.$delete=function(){var list,promise,_this=this;return this.isSubscription?(promise=Calendar.$$resource.fetch(this.id,"unsubscribe"),list=Calendar.$subscriptions):(promise=Calendar.$$resource.remove(this.id),list=this.isWebCalendar?Calendar.$webcalendars:Calendar.$calendars),promise.then(function(){var i=_.indexOf(_.pluck(list,"id"),_this.id);list.splice(i,1)})},Calendar.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&delete _this[key]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},Calendar.prototype.$save=function(){var _this=this;return Calendar.$$resource.save(this.id,this.$omit()).then(function(data){return _this.$shadowData=_this.$omit(),data},function(data){return Calendar.$log.error(JSON.stringify(data,void 0,2)),_this.$reset(),data})},Calendar.prototype.$setActivation=function(){return Calendar.$$resource.fetch(this.id,(this.active?"":"de")+"activateFolder")},Calendar.prototype.$getComponent=function(componentId,recurrenceId){return Calendar.$Component.$find(this.id,componentId,recurrenceId)},Calendar.prototype.$omit=function(){var calendar={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(calendar[key]=value)}),calendar}}(),function(){"use strict";function Component(futureComponentData){if("function"!=typeof futureComponentData.then){if(this.init(futureComponentData),this.pid&&!this.id){var newComponentData=Component.$$resource.newguid(this.pid);this.$unwrap(newComponentData),this.isNew=!0}}else this.$unwrap(futureComponentData)}Component.$factory=["$q","$timeout","$log","sgSettings","Preferences","Gravatar","Resource",function($q,$timeout,$log,Settings,Preferences,Gravatar,Resource){return angular.extend(Component,{$q:$q,$timeout:$timeout,$log:$log,$Preferences:Preferences,$gravatar:Gravatar,$$resource:new Resource(Settings.baseURL(),Settings.activeUser()),timeFormat:"%H:%M",$query:{value:"",search:"title_Category_Location"},$queryEvents:{sort:"start",asc:1,filterpopup:"view_next7"},$queryTasks:{sort:"status",asc:1,filterpopup:"view_incomplete"},$refreshTimeout:null}),Preferences.ready().then(function(){Preferences.settings.Calendar.EventsFilterState&&(Component.$queryEvents.filterpopup=Preferences.settings.Calendar.EventsFilterState),Preferences.settings.Calendar.TasksFilterState&&(Component.$queryTasks.filterpopup=Preferences.settings.Calendar.TasksFilterState),Preferences.settings.Calendar.EventsSortingState&&(Component.$queryEvents.sort=Preferences.settings.Calendar.EventsSortingState[0],Component.$queryEvents.asc=parseInt(Preferences.settings.Calendar.EventsSortingState[1])),Preferences.settings.Calendar.TasksSortingState&&(Component.$queryTasks.sort=Preferences.settings.Calendar.TasksSortingState[0],Component.$queryTasks.asc=parseInt(Preferences.settings.Calendar.TasksSortingState[1])),Component.$queryTasks.show_completed=parseInt(Preferences.settings.ShowCompletedTasks),Component.$categories=Preferences.defaults.SOGoCalendarCategoriesColors,Preferences.defaults.SOGoTimeFormat&&(Component.timeFormat=Preferences.defaults.SOGoTimeFormat)}),Component}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").factory("Component",Component.$factory),Component.$selectedCount=function(){var count;return count=0,Component.$events&&(count=_.filter(Component.$events,function(event){return event.selected}).length),Component.$tasks&&(count=_.filter(Component.$tasks,function(task){return task.selected}).length),count},Component.$startRefreshTimeout=function(type){var _this=this;Component.$refreshTimeout&&Component.$timeout.cancel(Component.$refreshTimeout),Component.$Preferences.ready().then(function(){var refreshViewCheck=Component.$Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&"manually"!=refreshViewCheck){var f=angular.bind(_this,Component.$filter,type);Component.$refreshTimeout=Component.$timeout(f,1e3*refreshViewCheck.timeInterval())}})},Component.$filter=function(type,options){var _this=this,now=new Date,day=now.getDate(),month=now.getMonth()+1,year=now.getFullYear(),queryKey="$query"+type.capitalize(),params={day:""+year+(10>month?"0":"")+month+(10>day?"0":"")+day};return Component.$startRefreshTimeout(type),this.$Preferences.ready().then(function(){var futureComponentData,otherType,dirty=!1;return angular.extend(_this.$query,params),options&&_.each(_.keys(options),function(key){dirty|=_this.$query[key]&&options[key]!=Component.$query[key],"reload"==key&&options[key]?dirty=!0:angular.isDefined(_this.$query[key])?_this.$query[key]=options[key]:_this[queryKey][key]=options[key]}),futureComponentData=_this.$$resource.fetch(null,type+"list",angular.extend(_this[queryKey],_this.$query)),otherType="tasks"==type?"$events":"$tasks",dirty&&(delete Component[otherType],Component.$log.debug("force reload of "+otherType)),_this.$unwrapCollection(type,futureComponentData)})},Component.$find=function(calendarId,componentId,occurrenceId){var futureComponentData,path=[calendarId,componentId];return occurrenceId&&path.push(occurrenceId),futureComponentData=this.$$resource.fetch(path.join("/"),"view"),new Component(futureComponentData)},Component.filterCategories=function(query){var re=new RegExp(query,"i");return _.filter(_.keys(Component.$categories),function(category){return-1!=category.search(re)})},Component.saveSelectedList=function(componentType){return this.$$resource.post(null,"saveSelectedList",{list:componentType+"ListView"})},Component.$eventsBlocksForView=function(view,date){var viewAction,startDate,endDate;return"day"==view?(viewAction="dayView",startDate=endDate=date):"week"==view?(viewAction="weekView",startDate=date.beginOfWeek(),endDate=new Date,endDate.setTime(startDate.getTime()),endDate.addDays(6)):"month"==view&&(viewAction="monthView",startDate=date,startDate.setDate(1),startDate=startDate.beginOfWeek(),endDate=new Date,endDate.setTime(startDate.getTime()),endDate.setMonth(endDate.getMonth()+1),endDate.addDays(-1),endDate=endDate.endOfWeek()),this.$eventsBlocks(viewAction,startDate,endDate)},Component.$eventsBlocks=function(view,startDate,endDate){var params,futureComponentData,i,deferred=Component.$q.defer();return params={view:view.toLowerCase(),sd:startDate.getDayString(),ed:endDate.getDayString()},Component.$log.debug("eventsblocks "+JSON.stringify(params,void 0,2)),futureComponentData=this.$$resource.fetch(null,"eventsblocks",params),futureComponentData.then(function(data){Component.$timeout(function(){var components=[],blocks={},allDayBlocks={},dates=[];for(_.reduce(data.events,function(objects,eventData,i){var componentData=_.object(data.eventsFields,eventData),start=new Date(1e3*componentData.c_startdate);return componentData.hour=start.getHourString(),objects.push(new Component(componentData)),objects},components),_.each(_.flatten(data.blocks),function(block){block.component=components[block.nbr]}),_.each(_.flatten(data.allDayBlocks),function(allDayBlock){allDayBlock.component=components[allDayBlock.nbr]}),i=0;i1||this.repeat.days&&this.repeat.days.length>0||this.repeat.monthdays&&this.repeat.monthdays.length>0||this.repeat.months&&this.repeat.months.length>0);return b},Component.prototype.isEditable=function(){return!this.occurrenceId&&!this.isReadOnly},Component.prototype.isEditableOccurrence=function(){return this.occurrenceId&&!this.isReadOnly},Component.prototype.isInvitation=function(){return!this.occurrenceId&&this.userHasRSVP},Component.prototype.isInvitationOccurrence=function(){return this.occurrenceId&&this.userHasRSVP},Component.prototype.isReadOnly=function(){return this.isReadOnly&&!this.userHasRSVP},Component.prototype.enablePercentComplete=function(){return this.component="not-specified"!=this.status&&"cancelled"!=this.status},Component.prototype.coversFreeBusy=function(day,hour,quarter){var b=angular.isDefined(this.freebusy[day])&&angular.isDefined(this.freebusy[day][hour])&&1==this.freebusy[day][hour][quarter];return b},Component.prototype.updateFreeBusyCoverage=function(){var _this=this,freebusy={};if(this.start&&this.end){var roundedStart=new Date(this.start.getTime()),roundedEnd=new Date(this.end.getTime()),startQuarter=parseInt(roundedStart.getMinutes()/15+.5),endQuarter=parseInt(roundedEnd.getMinutes()/15+.5);return roundedStart.setMinutes(15*startQuarter),roundedEnd.setMinutes(15*endQuarter),_.each(roundedStart.daysUpTo(roundedEnd),function(date,index){var hourKey,currentDay=date.getDate(),dayKey=date.getDayString();if(dayKey==_this.start.getDayString())for(hourKey=date.getHours().toString(),freebusy[dayKey]={},freebusy[dayKey][hourKey]=[];startQuarter>0;)freebusy[dayKey][hourKey].push(0),startQuarter--;else date=date.beginOfDay(),freebusy[dayKey]={};for(;date.getTime()<_this.end.getTime()&&date.getDate()==currentDay;)hourKey=date.getHours().toString(),angular.isUndefined(freebusy[dayKey][hourKey])&&(freebusy[dayKey][hourKey]=[]),freebusy[dayKey][hourKey].push(1),date.addMinutes(15)}),freebusy}},Component.prototype.updateFreeBusy=function(attendee){var params,url,days;attendee.uid&&(params={sday:this.start.getDayString(),eday:this.end.getDayString()},url=["..","..",attendee.uid,"freebusy.ifb"],days=_.map(this.start.daysUpTo(this.end),function(day){return day.getDayString()}),angular.isUndefined(attendee.freebusy)&&(attendee.freebusy={}),Component.$$resource.fetch(url.join("/"),"ajaxRead",params).then(function(data){_.each(days,function(day){var hour;angular.isUndefined(attendee.freebusy[day])&&(attendee.freebusy[day]={}),angular.isUndefined(data[day])&&(data[day]={});for(var i=0;23>=i;i++)hour=i.toString(),data[day][hour]?attendee.freebusy[day][hour]=[data[day][hour][0],data[day][hour][15],data[day][hour][30],data[day][hour][45]]:attendee.freebusy[day][hour]=[0,0,0,0]})}))},Component.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+(this.destinationCalendar||this.c_folder)},Component.prototype.addAttendee=function(card){var attendee;card&&(attendee={name:card.c_cn,email:card.$preferredEmail(),role:"req-participant",status:"needs-action",uid:card.c_uid},_.find(this.attendees,function(o){return o.email==attendee.email})||(attendee.image=Component.$gravatar(attendee.email,32),this.attendees?this.attendees.push(attendee):this.attendees=[attendee],this.updateFreeBusy(attendee)))},Component.prototype.hasAttendee=function(card){var attendee=_.find(this.attendees,function(attendee){return _.find(card.emails,function(email){return email.value==attendee.email})});return angular.isDefined(attendee)},Component.prototype.canRemindAttendeesByEmail=function(){return"email"==this.alarm.action&&!this.isReadOnly&&this.attendees&&this.attendees.length>0},Component.prototype.addAttachUrl=function(attachUrl){if(angular.isUndefined(this.attachUrls))this.attachUrls=[{value:attachUrl}];else{for(var i=0;i-1&&this.attachUrls.length>index&&this.attachUrls.splice(index,1)},Component.prototype.$addDueDate=function(){this.due=new Date,this.dueDate=this.due.toISOString()},Component.prototype.$deleteDueDate=function(){delete this.due,delete this.dueDate},Component.prototype.$addStartDate=function(){this.start=new Date},Component.prototype.$deleteStartDate=function(){delete this.start,delete this.startDate},Component.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&delete _this[key]}),this.init(this.$shadowData),this.$shadowData=this.$omit(!0)},Component.prototype.$reply=function(){var data,_this=this,path=[this.pid,this.id];return this.occurrenceId&&path.push(this.occurrenceId),data={reply:this.reply,delegatedTo:this.delegatedTo,alarm:this.$hasAlarm?this.alarm:{}},Component.$$resource.save(path.join("/"),data,{action:"rsvpAppointment"}).then(function(data){return _this.$shadowData=_this.$omit(!0),data})},Component.prototype.$save=function(){var options,_this=this,path=[this.pid,this.id];return this.isNew&&(options={action:"saveAs"+this.type.capitalize()}),this.occurrenceId&&path.push(this.occurrenceId),Component.$$resource.save(path.join("/"),this.$omit(),options).then(function(data){return _this.$shadowData=_this.$omit(!0),data})},Component.prototype.$unwrap=function(futureComponentData){var _this=this;this.$futureComponentData=futureComponentData,this.$futureComponentData.then(function(data){_this.init(data),_this.$shadowData=_this.$omit()},function(data){angular.extend(_this,data),_this.isError=!0,Component.$log.error(_this.error)})},Component.prototype.$omit=function(){function formatTime(date){var hours=date.getHours();10>hours&&(hours="0"+hours);var minutes=date.getMinutes();return 10>minutes&&(minutes="0"+minutes),hours+":"+minutes}function formatDate(date){var year=date.getYear();1e3>year&&(year+=1900);var month=""+(date.getMonth()+1);1==month.length&&(month="0"+month);var day=""+date.getDate();return 1==day.length&&(day="0"+day),year+"-"+month+"-"+day}var component={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(component[key]=angular.copy(value))}),component.startDate=component.start?formatDate(component.start):"",component.startTime=component.start?formatTime(component.start):"",component.endDate=component.end?formatDate(component.end):"",component.endTime=component.end?formatTime(component.end):"",component.dueDate=component.due?formatDate(component.due):"",component.dueTime=component.due?formatTime(component.due):"",this.$hasCustomRepeat?"monthly"==this.repeat.frequency&&this.repeat.month.type&&"byday"==this.repeat.month.type||"yearly"==this.repeat.frequency&&this.repeat.year.byday?(delete component.repeat.monthdays,component.repeat.days=[{day:this.repeat.month.day,occurrence:this.repeat.month.occurrence.toString()}]):this.repeat.month.type&&delete component.repeat.days:this.repeat.frequency&&(component.repeat={frequency:this.repeat.frequency}),this.repeat.frequency?"until"==this.repeat.end&&this.repeat.until?component.repeat.until=this.repeat.until.stringWithSeparator("-"):"count"==this.repeat.end&&this.repeat.count?component.repeat.count=this.repeat.count:(delete component.repeat.until,delete component.repeat.count):delete component.repeat,this.$hasAlarm?!this.alarm.action||"email"!=this.alarm.action||this.attendees&&this.attendees.length>0||(this.alarm.attendees=0,this.alarm.organizer=1):component.alarm={},component}}(); +!function(){"use strict";function Calendar(futureCalendarData){if(this.init(futureCalendarData),this.name&&!this.id){var newCalendarData=Calendar.$$resource.create("createFolder",this.name);angular.extend(this,newCalendarData)}this.id&&(this.$acl=new Calendar.$$Acl("Calendar/"+this.id))}Calendar.$factory=["$q","$timeout","$log","sgSettings","Resource","Component","Acl",function($q,$timeout,$log,Settings,Resource,Component,Acl){return angular.extend(Calendar,{$q:$q,$timeout:$timeout,$log:$log,$$resource:new Resource(Settings.activeUser("folderURL")+"Calendar",Settings.activeUser()),$Component:Component,$$Acl:Acl,activeUser:Settings.activeUser()}),Calendar}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").factory("Calendar",Calendar.$factory),Calendar.$add=function(calendar){var list,sibling,i;list=calendar.isWebCalendar?this.$webcalendars:calendar.isSubscription?this.$subscriptions:this.$calendars,sibling=_.find(list,function(o){return"personal"!=o.id&&1===o.name.localeCompare(calendar.name)}),i=sibling?_.indexOf(_.pluck(list,"id"),sibling.id):1,list.splice(i,0,calendar)},Calendar.$findAll=function(data){var _this=this;return data&&(this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],angular.forEach(data,function(o,i){var calendar=new Calendar(o);calendar.isWebCalendar?_this.$webcalendars.push(calendar):calendar.isSubscription?_this.$subscriptions.push(calendar):_this.$calendars.push(calendar)})),_.union(this.$calendars,this.$subscriptions,this.$webcalendars)},Calendar.$get=function(id){var calendar;return calendar=_.find(Calendar.$calendars,function(o){return o.id==id}),calendar||(calendar=_.find(Calendar.$subscriptions,function(o){return o.id==id})),calendar||(calendar=_.find(Calendar.$webcalendars,function(o){return o.id==id})),calendar},Calendar.$getIndex=function(id){var i;return i=_.indexOf(_.pluck(Calendar.$calendars,"id"),id),0>i&&(i=_.indexOf(_.pluck(Calendar.$subscriptions,"id"),id)),0>i&&(i=_.indexOf(_.pluck(Calendar.$webcalendars,"id"),id)),i},Calendar.$subscribe=function(uid,path){var _this=this;return Calendar.$$resource.userResource(uid).fetch(path,"subscribe").then(function(calendarData){var calendar=new Calendar(calendarData);return _.find(_this.$subscriptions,function(o){return o.id==calendarData.id})||Calendar.$add(calendar),calendar})},Calendar.$addWebCalendar=function(url){var _this=this,d=Calendar.$q.defer();return _.find(_this.$webcalendars,function(o){return o.urls.webCalendarURL==url})?d.reject():Calendar.$$resource.post(null,"addWebCalendar",{url:url}).then(function(calendarData){angular.extend(calendarData,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:Calendar.activeUser.login,urls:{webCalendarURL:url}});var calendar=new Calendar(calendarData);Calendar.$add(calendar),Calendar.$$resource.fetch(calendar.id,"reload").then(function(data){Calendar.$log.debug(JSON.stringify(data,void 0,2))}),d.resolve()},function(){d.reject()}),d.promise},Calendar.$deleteComponents=function(components){var calendars={},_this=this;_.forEach(components,function(component){angular.isDefined(calendars[component.c_folder])||(calendars[component.c_folder]=[]),calendars[component.c_folder].push(component.c_name)}),_.forEach(calendars,function(uids,c_folder){Calendar.$$resource.post(c_folder,"batchDelete",{uids:uids})}),_this.$Component.$events=_.difference(_this.$Component.$events,components),_this.$Component.$tasks=_.difference(_this.$Component.$tasks,components)},Calendar.prototype.init=function(data){angular.extend(this,data),this.isOwned=Calendar.activeUser.isSuperUser||this.owner==Calendar.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=Calendar.activeUser.login,angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},Calendar.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+this.id},Calendar.prototype.$rename=function(){var i,calendars,_this=this;return this.name==this.$shadowData.name?Calendar.$q.when():(calendars=this.isWebCalendar?Calendar.$webcalendars:this.isSubscription?Calendar.$subscriptions:Calendar.$calendars,i=_.indexOf(_.pluck(calendars,"id"),this.id),i>-1?this.$save().then(function(){calendars.splice(i,1),Calendar.$add(_this)}):Calendar.$q.reject())},Calendar.prototype.$delete=function(){var list,promise,_this=this;return this.isSubscription?(promise=Calendar.$$resource.fetch(this.id,"unsubscribe"),list=Calendar.$subscriptions):(promise=Calendar.$$resource.remove(this.id),list=this.isWebCalendar?Calendar.$webcalendars:Calendar.$calendars),promise.then(function(){var i=_.indexOf(_.pluck(list,"id"),_this.id);list.splice(i,1)})},Calendar.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&delete _this[key]}),angular.extend(this,this.$shadowData),this.$shadowData=this.$omit()},Calendar.prototype.$save=function(){var _this=this;return Calendar.$$resource.save(this.id,this.$omit()).then(function(data){return _this.$shadowData=_this.$omit(),data},function(data){return Calendar.$log.error(JSON.stringify(data,void 0,2)),_this.$reset(),data})},Calendar.prototype.$setActivation=function(){return Calendar.$$resource.fetch(this.id,(this.active?"":"de")+"activateFolder")},Calendar.prototype.$getComponent=function(componentId,recurrenceId){return Calendar.$Component.$find(this.id,componentId,recurrenceId)},Calendar.prototype.$omit=function(){var calendar={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(calendar[key]=value)}),calendar}}(),function(){"use strict";function Component(futureComponentData){if("function"!=typeof futureComponentData.then){if(this.init(futureComponentData),this.pid&&!this.id){var newComponentData=Component.$$resource.newguid(this.pid);this.$unwrap(newComponentData),this.isNew=!0}}else this.$unwrap(futureComponentData)}Component.$factory=["$q","$timeout","$log","sgSettings","Preferences","Gravatar","Resource",function($q,$timeout,$log,Settings,Preferences,Gravatar,Resource){return angular.extend(Component,{$q:$q,$timeout:$timeout,$log:$log,$Preferences:Preferences,$gravatar:Gravatar,$$resource:new Resource(Settings.baseURL(),Settings.activeUser()),timeFormat:"%H:%M",$query:{value:"",search:"title_Category_Location"},$queryEvents:{sort:"start",asc:1,filterpopup:"view_next7"},$queryTasks:{sort:"status",asc:1,filterpopup:"view_incomplete"},$refreshTimeout:null}),Preferences.ready().then(function(){Preferences.settings.Calendar.EventsFilterState&&(Component.$queryEvents.filterpopup=Preferences.settings.Calendar.EventsFilterState),Preferences.settings.Calendar.TasksFilterState&&(Component.$queryTasks.filterpopup=Preferences.settings.Calendar.TasksFilterState),Preferences.settings.Calendar.EventsSortingState&&(Component.$queryEvents.sort=Preferences.settings.Calendar.EventsSortingState[0],Component.$queryEvents.asc=parseInt(Preferences.settings.Calendar.EventsSortingState[1])),Preferences.settings.Calendar.TasksSortingState&&(Component.$queryTasks.sort=Preferences.settings.Calendar.TasksSortingState[0],Component.$queryTasks.asc=parseInt(Preferences.settings.Calendar.TasksSortingState[1])),Component.$queryTasks.show_completed=parseInt(Preferences.settings.ShowCompletedTasks),Component.$categories=Preferences.defaults.SOGoCalendarCategoriesColors,Preferences.defaults.SOGoTimeFormat&&(Component.timeFormat=Preferences.defaults.SOGoTimeFormat)}),Component}];try{angular.module("SOGo.SchedulerUI")}catch(e){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").factory("Component",Component.$factory),Component.$selectedCount=function(){var count;return count=0,Component.$events&&(count=_.filter(Component.$events,function(event){return event.selected}).length),Component.$tasks&&(count=_.filter(Component.$tasks,function(task){return task.selected}).length),count},Component.$startRefreshTimeout=function(type){var _this=this;Component.$refreshTimeout&&Component.$timeout.cancel(Component.$refreshTimeout),Component.$Preferences.ready().then(function(){var refreshViewCheck=Component.$Preferences.defaults.SOGoRefreshViewCheck;if(refreshViewCheck&&"manually"!=refreshViewCheck){var f=angular.bind(_this,Component.$filter,type);Component.$refreshTimeout=Component.$timeout(f,1e3*refreshViewCheck.timeInterval())}})},Component.$filter=function(type,options){var _this=this,now=new Date,day=now.getDate(),month=now.getMonth()+1,year=now.getFullYear(),queryKey="$query"+type.capitalize(),params={day:""+year+(10>month?"0":"")+month+(10>day?"0":"")+day};return Component.$startRefreshTimeout(type),this.$Preferences.ready().then(function(){var futureComponentData,otherType,dirty=!1;return angular.extend(_this.$query,params),options&&_.each(_.keys(options),function(key){dirty|=_this.$query[key]&&options[key]!=Component.$query[key],"reload"==key&&options[key]?dirty=!0:angular.isDefined(_this.$query[key])?_this.$query[key]=options[key]:_this[queryKey][key]=options[key]}),futureComponentData=_this.$$resource.fetch(null,type+"list",angular.extend(_this[queryKey],_this.$query)),otherType="tasks"==type?"$events":"$tasks",dirty&&(delete Component[otherType],Component.$log.debug("force reload of "+otherType)),_this.$unwrapCollection(type,futureComponentData)})},Component.$find=function(calendarId,componentId,occurrenceId){var futureComponentData,path=[calendarId,componentId];return occurrenceId&&path.push(occurrenceId),futureComponentData=this.$$resource.fetch(path.join("/"),"view"),new Component(futureComponentData)},Component.filterCategories=function(query){var re=new RegExp(query,"i");return _.filter(_.keys(Component.$categories),function(category){return-1!=category.search(re)})},Component.saveSelectedList=function(componentType){return this.$$resource.post(null,"saveSelectedList",{list:componentType+"ListView"})},Component.$eventsBlocksForView=function(view,date){var viewAction,startDate,endDate;return"day"==view?(viewAction="dayView",startDate=endDate=date):"multicolumnday"==view?(viewAction="multicolumndayView",startDate=endDate=date):"week"==view?(viewAction="weekView",startDate=date.beginOfWeek(),endDate=new Date,endDate.setTime(startDate.getTime()),endDate.addDays(6)):"month"==view&&(viewAction="monthView",startDate=date,startDate.setDate(1),startDate=startDate.beginOfWeek(),endDate=new Date,endDate.setTime(startDate.getTime()),endDate.setMonth(endDate.getMonth()+1),endDate.addDays(-1),endDate=endDate.endOfWeek()),this.$eventsBlocks(viewAction,startDate,endDate)},Component.$eventsBlocks=function(view,startDate,endDate){var params,futureComponentData,i,dates=[],deferred=Component.$q.defer();return params={view:view.toLowerCase(),sd:startDate.getDayString(),ed:endDate.getDayString()},Component.$log.debug("eventsblocks "+JSON.stringify(params,void 0,2)),futureComponentData=this.$$resource.fetch(null,"eventsblocks",params),futureComponentData.then(function(views){var reduceComponent,associateComponent;reduceComponent=function(objects,eventData,i){var componentData=_.object(this.eventsFields,eventData),start=new Date(1e3*componentData.c_startdate);return componentData.hour=start.getHourString(),objects.push(new Component(componentData)),objects},associateComponent=function(block){block.component=this[block.nbr]},Component.$views=[],Component.$timeout(function(){_.forEach(views,function(data){var viewData,components=[],blocks={},allDayBlocks={};if(_.reduce(data.events,reduceComponent,components,data),_.forEach(_.flatten(data.blocks),associateComponent,components),_.each(_.flatten(data.allDayBlocks),associateComponent,components),0===dates.length)for(i=0;i1||this.repeat.days&&this.repeat.days.length>0||this.repeat.monthdays&&this.repeat.monthdays.length>0||this.repeat.months&&this.repeat.months.length>0);return b},Component.prototype.isEditable=function(){return!this.occurrenceId&&!this.isReadOnly},Component.prototype.isEditableOccurrence=function(){return this.occurrenceId&&!this.isReadOnly},Component.prototype.isInvitation=function(){return!this.occurrenceId&&this.userHasRSVP},Component.prototype.isInvitationOccurrence=function(){return this.occurrenceId&&this.userHasRSVP},Component.prototype.isReadOnly=function(){return this.isReadOnly&&!this.userHasRSVP},Component.prototype.enablePercentComplete=function(){return this.component="not-specified"!=this.status&&"cancelled"!=this.status},Component.prototype.coversFreeBusy=function(day,hour,quarter){var b=angular.isDefined(this.freebusy[day])&&angular.isDefined(this.freebusy[day][hour])&&1==this.freebusy[day][hour][quarter];return b},Component.prototype.updateFreeBusyCoverage=function(){var _this=this,freebusy={};if(this.start&&this.end){var roundedStart=new Date(this.start.getTime()),roundedEnd=new Date(this.end.getTime()),startQuarter=parseInt(roundedStart.getMinutes()/15+.5),endQuarter=parseInt(roundedEnd.getMinutes()/15+.5);return roundedStart.setMinutes(15*startQuarter),roundedEnd.setMinutes(15*endQuarter),_.each(roundedStart.daysUpTo(roundedEnd),function(date,index){var hourKey,currentDay=date.getDate(),dayKey=date.getDayString();if(dayKey==_this.start.getDayString())for(hourKey=date.getHours().toString(),freebusy[dayKey]={},freebusy[dayKey][hourKey]=[];startQuarter>0;)freebusy[dayKey][hourKey].push(0),startQuarter--;else date=date.beginOfDay(),freebusy[dayKey]={};for(;date.getTime()<_this.end.getTime()&&date.getDate()==currentDay;)hourKey=date.getHours().toString(),angular.isUndefined(freebusy[dayKey][hourKey])&&(freebusy[dayKey][hourKey]=[]),freebusy[dayKey][hourKey].push(1),date.addMinutes(15)}),freebusy}},Component.prototype.updateFreeBusy=function(attendee){var params,url,days;attendee.uid&&(params={sday:this.start.getDayString(),eday:this.end.getDayString()},url=["..","..",attendee.uid,"freebusy.ifb"],days=_.map(this.start.daysUpTo(this.end),function(day){return day.getDayString()}),angular.isUndefined(attendee.freebusy)&&(attendee.freebusy={}),Component.$$resource.fetch(url.join("/"),"ajaxRead",params).then(function(data){_.each(days,function(day){var hour;angular.isUndefined(attendee.freebusy[day])&&(attendee.freebusy[day]={}),angular.isUndefined(data[day])&&(data[day]={});for(var i=0;23>=i;i++)hour=i.toString(),data[day][hour]?attendee.freebusy[day][hour]=[data[day][hour][0],data[day][hour][15],data[day][hour][30],data[day][hour][45]]:attendee.freebusy[day][hour]=[0,0,0,0]})}))},Component.prototype.getClassName=function(base){return angular.isUndefined(base)&&(base="fg"),base+"-folder"+(this.destinationCalendar||this.c_folder)},Component.prototype.addAttendee=function(card){var attendee;card&&(attendee={name:card.c_cn,email:card.$preferredEmail(),role:"req-participant",status:"needs-action",uid:card.c_uid},_.find(this.attendees,function(o){return o.email==attendee.email})||(attendee.image=Component.$gravatar(attendee.email,32),this.attendees?this.attendees.push(attendee):this.attendees=[attendee],this.updateFreeBusy(attendee)))},Component.prototype.hasAttendee=function(card){var attendee=_.find(this.attendees,function(attendee){return _.find(card.emails,function(email){return email.value==attendee.email})});return angular.isDefined(attendee)},Component.prototype.deleteAttendee=function(attendee){var index=_.findIndex(this.attendees,function(currentAttendee){return currentAttendee.email==attendee.email});this.attendees.splice(index,1)},Component.prototype.canRemindAttendeesByEmail=function(){return"email"==this.alarm.action&&!this.isReadOnly&&this.attendees&&this.attendees.length>0},Component.prototype.addAttachUrl=function(attachUrl){if(angular.isUndefined(this.attachUrls))this.attachUrls=[{value:attachUrl}];else{for(var i=0;i-1&&this.attachUrls.length>index&&this.attachUrls.splice(index,1)},Component.prototype.$addDueDate=function(){this.due=new Date,this.due.setMinutes(15*Math.round(this.due.getMinutes()/15)),this.dueDate=this.due.toISOString()},Component.prototype.$deleteDueDate=function(){delete this.due,delete this.dueDate},Component.prototype.$addStartDate=function(){this.start=new Date,this.start.setMinutes(15*Math.round(this.start.getMinutes()/15))},Component.prototype.$deleteStartDate=function(){delete this.start,delete this.startDate},Component.prototype.$reset=function(){var _this=this;angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&delete _this[key]}),this.init(this.$shadowData),this.$shadowData=this.$omit(!0)},Component.prototype.$reply=function(){var data,_this=this,path=[this.pid,this.id];return this.occurrenceId&&path.push(this.occurrenceId),data={reply:this.reply,delegatedTo:this.delegatedTo,alarm:this.$hasAlarm?this.alarm:{}},Component.$$resource.save(path.join("/"),data,{action:"rsvpAppointment"}).then(function(data){return _this.$shadowData=_this.$omit(!0),data})},Component.prototype.$save=function(){var options,_this=this,path=[this.pid,this.id];return this.isNew&&(options={action:"saveAs"+this.type.capitalize()}),this.occurrenceId&&path.push(this.occurrenceId),Component.$$resource.save(path.join("/"),this.$omit(),options).then(function(data){return _this.$shadowData=_this.$omit(!0),data})},Component.prototype.remove=function(occurrenceOnly){var path=[this.pid,this.id];return occurrenceOnly&&this.occurrenceId&&path.push(this.occurrenceId),Component.$$resource.remove(path.join("/"))},Component.prototype.$unwrap=function(futureComponentData){var _this=this;this.$futureComponentData=futureComponentData,this.$futureComponentData.then(function(data){_this.init(data),_this.$shadowData=_this.$omit()},function(data){angular.extend(_this,data),_this.isError=!0,Component.$log.error(_this.error)})},Component.prototype.$omit=function(){function formatTime(date){var hours=date.getHours();10>hours&&(hours="0"+hours);var minutes=date.getMinutes();return 10>minutes&&(minutes="0"+minutes),hours+":"+minutes}function formatDate(date){var year=date.getYear();1e3>year&&(year+=1900);var month=""+(date.getMonth()+1);1==month.length&&(month="0"+month);var day=""+date.getDate();return 1==day.length&&(day="0"+day),year+"-"+month+"-"+day}var component={};return angular.forEach(this,function(value,key){"constructor"!=key&&"$"!=key[0]&&(component[key]=angular.copy(value))}),component.startDate=component.start?formatDate(component.start):"",component.startTime=component.start?formatTime(component.start):"",component.endDate=component.end?formatDate(component.end):"",component.endTime=component.end?formatTime(component.end):"",component.dueDate=component.due?formatDate(component.due):"",component.dueTime=component.due?formatTime(component.due):"",this.$hasCustomRepeat?"monthly"==this.repeat.frequency&&this.repeat.month.type&&"byday"==this.repeat.month.type||"yearly"==this.repeat.frequency&&this.repeat.year.byday?(delete component.repeat.monthdays,component.repeat.days=[{day:this.repeat.month.day,occurrence:this.repeat.month.occurrence.toString()}]):this.repeat.month.type&&delete component.repeat.days:this.repeat.frequency&&(component.repeat={frequency:this.repeat.frequency}),this.repeat.frequency?"until"==this.repeat.end&&this.repeat.until?component.repeat.until=this.repeat.until.stringWithSeparator("-"):"count"==this.repeat.end&&this.repeat.count?component.repeat.count=this.repeat.count:(delete component.repeat.until,delete component.repeat.count):delete component.repeat,this.$hasAlarm?!this.alarm.action||"email"!=this.alarm.action||this.attendees&&this.attendees.length>0||(this.alarm.attendees=0,this.alarm.organizer=1):component.alarm={},component}}(); //# sourceMappingURL=Scheduler.services.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Scheduler.services.js.map b/UI/WebServerResources/js/Scheduler.services.js.map index 64743e9e8..4ad1e40d1 100644 --- a/UI/WebServerResources/js/Scheduler.services.js.map +++ b/UI/WebServerResources/js/Scheduler.services.js.map @@ -1 +1 @@ -{"version":3,"file":"Scheduler.services.js","sources":["Scheduler/Calendar.service.js","Scheduler/Component.service.js"],"names":["Calendar","futureCalendarData","this","init","name","id","newCalendarData","$$resource","create","angular","extend","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","Resource","Component","Acl","activeUser","$Component","module","e","factory","$add","calendar","list","sibling","i","isWebCalendar","$webcalendars","isSubscription","$subscriptions","$calendars","_","find","o","localeCompare","indexOf","pluck","splice","$findAll","data","_this","forEach","push","union","$get","$getIndex","$subscribe","uid","path","userResource","fetch","then","calendarData","$addWebCalendar","url","d","defer","urls","webCalendarURL","reject","post","isEditable","isRemote","owner","login","debug","JSON","stringify","undefined","resolve","promise","$deleteComponents","components","calendars","component","isDefined","c_folder","c_name","uids","$events","difference","$tasks","prototype","isOwned","isSuperUser","isUndefined","$shadowData","$omit","getClassName","base","$rename","when","$save","$delete","remove","$reset","value","key","save","error","$setActivation","active","$getComponent","componentId","recurrenceId","$find","futureComponentData","pid","newComponentData","newguid","$unwrap","isNew","Preferences","Gravatar","$Preferences","$gravatar","baseURL","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","$refreshTimeout","ready","settings","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","defaults","SOGoCalendarCategoriesColors","SOGoTimeFormat","$selectedCount","count","filter","event","selected","length","task","$startRefreshTimeout","type","cancel","refreshViewCheck","SOGoRefreshViewCheck","f","bind","$filter","timeInterval","options","now","Date","day","getDate","month","getMonth","year","getFullYear","queryKey","capitalize","params","otherType","dirty","each","keys","$unwrapCollection","calendarId","occurrenceId","join","filterCategories","query","re","RegExp","category","saveSelectedList","componentType","$eventsBlocksForView","view","date","viewAction","startDate","endDate","beginOfWeek","setTime","getTime","addDays","setDate","setMonth","endOfWeek","$eventsBlocks","deferred","toLowerCase","sd","getDayString","ed","blocks","allDayBlocks","dates","reduce","events","objects","eventData","componentData","object","eventsFields","start","c_startdate","hour","getHourString","flatten","block","nbr","allDayBlock","$blocks","$allDayBlocks","fields","invoke","categories","repeat","alarm","action","quantity","unit","reference","relation","status","classification","substring","end","addHours","dueDate","due","$isRecurrent","days","byDayMask","occurrence","frequency","byday","toString","interval","monthdays","months","until","asDate","$hasCustomRepeat","hasCustomRepeat","units","M","H","D","W","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","destinationCalendar","organizer","email","$image","freebusy","updateFreeBusyCoverage","attendees","attendee","image","updateFreeBusy","b","isReadOnly","isEditableOccurrence","isInvitation","userHasRSVP","isInvitationOccurrence","enablePercentComplete","coversFreeBusy","quarter","roundedStart","roundedEnd","startQuarter","getMinutes","endQuarter","setMinutes","daysUpTo","index","hourKey","currentDay","dayKey","getHours","beginOfDay","addMinutes","sday","eday","map","addAttendee","card","c_cn","$preferredEmail","role","c_uid","hasAttendee","emails","canRemindAttendeesByEmail","addAttachUrl","attachUrl","attachUrls","deleteAttachUrl","$addDueDate","toISOString","$deleteDueDate","$addStartDate","$deleteStartDate","$reply","reply","delegatedTo","$futureComponentData","isError","formatTime","hours","minutes","formatDate","getYear","copy","startTime","endTime","dueTime","stringWithSeparator"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Calendar\n * @constructor\n * @param {object} futureCalendarData - either an object literal or a promise\n */\n function Calendar(futureCalendarData) {\n // Data is immediately available\n this.init(futureCalendarData);\n if (this.name && !this.id) {\n // Create a new calendar on the server\n var newCalendarData = Calendar.$$resource.create('createFolder', this.name);\n angular.extend(this, newCalendarData);\n }\n if (this.id) {\n this.$acl = new Calendar.$$Acl('Calendar/' + this.id);\n }\n }\n\n /**\n * @memberof Calendar\n * @desc The factory we'll use to register with Angular\n * @returns the Calendar constructor\n */\n Calendar.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Component', 'Acl', function($q, $timeout, $log, Settings, Resource, Component, Acl) {\n angular.extend(Calendar, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Calendar', Settings.activeUser()),\n $Component: Component,\n $$Acl: Acl,\n activeUser: Settings.activeUser()\n });\n\n return Calendar; // return constructor\n }];\n\n /**\n * @module SOGo.SchedulerUI\n * @desc Factory registration of Calendar in Angular module.\n */\n try {\n angular.module('SOGo.SchedulerUI');\n }\n catch(e) {\n angular.module('SOGo.SchedulerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.SchedulerUI')\n .factory('Calendar', Calendar.$factory);\n\n /**\n * @memberof Calendar\n * @desc Add a new calendar to the static list of calendars\n * @param {Calendar} calendar - an Calendar object instance\n */\n Calendar.$add = function(calendar) {\n // Insert new calendar at proper index\n var list, sibling, i;\n\n if (calendar.isWebCalendar)\n list = this.$webcalendars;\n else if (calendar.isSubscription)\n list = this.$subscriptions;\n else\n list = this.$calendars;\n\n sibling = _.find(list, function(o) {\n return (o.id != 'personal' &&\n o.name.localeCompare(calendar.name) === 1);\n });\n i = sibling ? _.indexOf(_.pluck(list, 'id'), sibling.id) : 1;\n list.splice(i, 0, calendar);\n };\n\n /**\n * @memberof Calendar\n * @desc Set or get the list of calendars. Will instanciate a new Calendar object for each item.\n * @param {object[]} [data] - the metadata of the calendars\n * @returns the list of calendars\n */\n Calendar.$findAll = function(data) {\n var _this = this;\n if (data) {\n this.$calendars = [];\n this.$subscriptions = [];\n this.$webcalendars = [];\n // Instanciate Calendar objects\n angular.forEach(data, function(o, i) {\n var calendar = new Calendar(o);\n if (calendar.isWebCalendar)\n _this.$webcalendars.push(calendar);\n else if (calendar.isSubscription)\n _this.$subscriptions.push(calendar);\n else\n _this.$calendars.push(calendar);\n });\n }\n return _.union(this.$calendars, this.$subscriptions, this.$webcalendars);\n };\n\n /**\n * @memberof Calendar\n * @desc Find a calendar among local instances (personal calendars, subscriptions and Web calendars).\n * @param {string} id - the calendar ID\n * @returns an object literal of the matching Calendar instance\n */\n Calendar.$get = function(id) {\n var calendar;\n\n calendar = _.find(Calendar.$calendars, function(o) { return o.id == id; });\n if (!calendar)\n calendar = _.find(Calendar.$subscriptions, function(o) { return o.id == id; });\n if (!calendar)\n calendar = _.find(Calendar.$webcalendars, function(o) { return o.id == id; });\n\n return calendar;\n };\n\n /**\n * @memberof Calendar\n * @desc Find a calendar among local instances (personal calendars, subscriptions and Web calendars).\n * @param {string} id - the calendar ID\n * @returns an object literal of the matching Calendar instance\n */\n Calendar.$getIndex = function(id) {\n var i;\n\n i = _.indexOf(_.pluck(Calendar.$calendars, 'id'), id);\n if (i < 0)\n i = _.indexOf(_.pluck(Calendar.$subscriptions, 'id'), id);\n if (i < 0)\n i = _.indexOf(_.pluck(Calendar.$webcalendars, 'id'), id);\n\n return i;\n };\n\n /**\n * @memberOf Calendar\n * @desc Subscribe to another user's calendar and add it to the list of calendars.\n * @param {string} uid - user id\n * @param {string} path - path of folder for specified user\n * @returns a promise of the HTTP query result\n */\n Calendar.$subscribe = function(uid, path) {\n var _this = this;\n return Calendar.$$resource.userResource(uid).fetch(path, 'subscribe').then(function(calendarData) {\n var calendar = new Calendar(calendarData);\n if (!_.find(_this.$subscriptions, function(o) {\n return o.id == calendarData.id;\n })) {\n Calendar.$add(calendar);\n }\n return calendar;\n });\n };\n\n /**\n * @memberOf Calendar\n * @desc Subscribe to a remote Web calendar\n * @param {string} url - URL of .ics file\n * @returns a promise of the HTTP query result\n */\n Calendar.$addWebCalendar = function(url) {\n var _this = this,\n d = Calendar.$q.defer();\n\n if (_.find(_this.$webcalendars, function(o) {\n return o.urls.webCalendarURL == url;\n })) {\n // Already subscribed\n d.reject();\n }\n else {\n Calendar.$$resource.post(null, 'addWebCalendar', { url: url }).then(function(calendarData) {\n angular.extend(calendarData, {\n isWebCalendar: true,\n isEditable: true,\n isRemote: false,\n owner: Calendar.activeUser.login,\n urls: { webCalendarURL: url }\n });\n var calendar = new Calendar(calendarData);\n Calendar.$add(calendar);\n Calendar.$$resource.fetch(calendar.id, 'reload').then(function(data) {\n // TODO: show a toast of the reload status\n Calendar.$log.debug(JSON.stringify(data, undefined, 2));\n });\n d.resolve();\n }, function() {\n d.reject();\n });\n }\n\n return d.promise;\n };\n\n /**\n * @function $deleteComponents\n * @memberof Calendar\n * @desc Delete multiple components from calendar.\n * @return a promise of the HTTP operation\n */\n Calendar.$deleteComponents = function(components) {\n\n // We create a c_folder -> event hash\n var calendars = {}, _this = this;\n\n _.forEach(components, function(component) {\n if (!angular.isDefined(calendars[component.c_folder]))\n calendars[component.c_folder] = [];\n\n calendars[component.c_folder].push(component.c_name);\n });\n\n _.forEach(calendars, function(uids, c_folder) {\n Calendar.$$resource.post(c_folder, 'batchDelete', {uids: uids});\n });\n\n // We slice both arrays - might be useful if in the future, we can delete\n // events and tasks at the same time.\n _this.$Component.$events = _.difference(_this.$Component.$events, components);\n _this.$Component.$tasks = _.difference(_this.$Component.$tasks, components);\n };\n\n /**\n * @function init\n * @memberof Calendar.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of calendar\n */\n Calendar.prototype.init = function(data) {\n angular.extend(this, data);\n // Add 'isOwned' and 'isSubscription' attributes based on active user (TODO: add it server-side?)\n this.isOwned = Calendar.activeUser.isSuperUser || this.owner == Calendar.activeUser.login;\n this.isSubscription = !this.isRemote && this.owner != Calendar.activeUser.login;\n if (angular.isUndefined(this.$shadowData)) {\n // Make a copy of the data for an eventual reset\n this.$shadowData = this.$omit();\n }\n };\n\n /**\n * @function getClassName\n * @memberof Calendar.prototype\n * @desc Return the calendar CSS class name based on its ID.\n * @returns a string representing the foreground CSS class name\n */\n Calendar.prototype.getClassName = function(base) {\n if (angular.isUndefined(base))\n base = 'fg';\n return base + '-folder' + this.id;\n };\n\n /**\n * @function $rename\n * @memberof Calendar.prototype\n * @desc Rename the calendar and keep the list sorted\n * @param {string} name - the new name\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$rename = function() {\n var _this = this,\n i,\n calendars;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n return Calendar.$q.when();\n }\n\n if (this.isWebCalendar)\n calendars = Calendar.$webcalendars;\n else if (this.isSubscription)\n calendars = Calendar.$subscriptions;\n else\n calendars = Calendar.$calendars;\n\n i = _.indexOf(_.pluck(calendars, 'id'), this.id);\n if (i > -1) {\n return this.$save().then(function() {\n calendars.splice(i, 1);\n Calendar.$add(_this);\n });\n }\n else {\n return Calendar.$q.reject();\n }\n };\n\n /**\n * @function $delete\n * @memberof Calendar.prototype\n * @desc Delete the calendar from the server and the static list of calendars.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$delete = function() {\n var _this = this,\n list,\n promise;\n\n if (this.isSubscription) {\n promise = Calendar.$$resource.fetch(this.id, 'unsubscribe');\n list = Calendar.$subscriptions;\n }\n else {\n promise = Calendar.$$resource.remove(this.id);\n if (this.isWebCalendar)\n list = Calendar.$webcalendars;\n else\n list = Calendar.$calendars;\n }\n\n return promise.then(function() {\n var i = _.indexOf(_.pluck(list, 'id'), _this.id);\n list.splice(i, 1);\n });\n };\n\n /**\n * @function $reset\n * @memberof Mailbox.prototype\n * @desc Reset the original state the mailbox's data.\n */\n Calendar.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n delete _this[key];\n }\n });\n angular.extend(this, this.$shadowData);\n this.$shadowData = this.$omit();\n };\n\n /**\n * @function $save\n * @memberof Calendar.prototype\n * @desc Save the calendar properties to the server.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$save = function() {\n var _this = this;\n\n return Calendar.$$resource.save(this.id, this.$omit()).then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit();\n return data;\n }, function(data) {\n Calendar.$log.error(JSON.stringify(data, undefined, 2));\n // Restore previous version\n _this.$reset();\n return data;\n });\n };\n\n /**\n * @function $setActivation\n * @memberof Calendar.prototype\n * @desc Either activate or deactivate the calendar.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$setActivation = function() {\n return Calendar.$$resource.fetch(this.id, (this.active?'':'de') + 'activateFolder');\n };\n\n /**\n * @function $getComponent\n * @memberof Calendar.prototype\n * @desc Fetch a component attributes from the server.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$getComponent = function(componentId, recurrenceId) {\n return Calendar.$Component.$find(this.id, componentId, recurrenceId);\n };\n\n /**\n * @function $omit\n * @memberof Calendar.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Calendar instance\n */\n Calendar.prototype.$omit = function() {\n var calendar = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' &&\n key[0] != '$') {\n calendar[key] = value;\n }\n });\n return calendar;\n };\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Component\n * @constructor\n * @param {object} futureComponentData - either an object literal or a promise\n */\n function Component(futureComponentData) {\n // Data is immediately available\n if (typeof futureComponentData.then !== 'function') {\n this.init(futureComponentData);\n if (this.pid && !this.id) {\n // Prepare for the creation of a new component;\n // Get UID from the server.\n var newComponentData = Component.$$resource.newguid(this.pid);\n this.$unwrap(newComponentData);\n this.isNew = true;\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureComponentData);\n }\n }\n\n /**\n * @memberof Component\n * @desc The factory we'll use to register with Angular\n * @returns the Component constructor\n */\n Component.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Preferences', 'Gravatar', 'Resource', function($q, $timeout, $log, Settings, Preferences, Gravatar, Resource) {\n angular.extend(Component, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $Preferences: Preferences,\n $gravatar: Gravatar,\n $$resource: new Resource(Settings.baseURL(), Settings.activeUser()),\n timeFormat: \"%H:%M\",\n // Filter parameters common to events and tasks\n $query: { value: '', search: 'title_Category_Location' },\n // Filter paramaters specific to events\n $queryEvents: { sort: 'start', asc: 1, filterpopup: 'view_next7' },\n // Filter parameters specific to tasks\n $queryTasks: { sort: 'status', asc: 1, filterpopup: 'view_incomplete' },\n $refreshTimeout: null\n });\n Preferences.ready().then(function() {\n // Initialize filter parameters from user's settings\n if (Preferences.settings.Calendar.EventsFilterState)\n Component.$queryEvents.filterpopup = Preferences.settings.Calendar.EventsFilterState;\n if (Preferences.settings.Calendar.TasksFilterState)\n Component.$queryTasks.filterpopup = Preferences.settings.Calendar.TasksFilterState;\n if (Preferences.settings.Calendar.EventsSortingState) {\n Component.$queryEvents.sort = Preferences.settings.Calendar.EventsSortingState[0];\n Component.$queryEvents.asc = parseInt(Preferences.settings.Calendar.EventsSortingState[1]);\n }\n if (Preferences.settings.Calendar.TasksSortingState) {\n Component.$queryTasks.sort = Preferences.settings.Calendar.TasksSortingState[0];\n Component.$queryTasks.asc = parseInt(Preferences.settings.Calendar.TasksSortingState[1]);\n }\n Component.$queryTasks.show_completed = parseInt(Preferences.settings.ShowCompletedTasks);\n // Initialize categories from user's defaults\n Component.$categories = Preferences.defaults.SOGoCalendarCategoriesColors;\n // Initialize time format from user's defaults\n if (Preferences.defaults.SOGoTimeFormat) {\n Component.timeFormat = Preferences.defaults.SOGoTimeFormat;\n }\n });\n\n return Component; // return constructor\n }];\n\n /**\n * @module SOGo.SchedulerUI\n * @desc Factory registration of Component in Angular module.\n */\n try {\n angular.module('SOGo.SchedulerUI');\n }\n catch(e) {\n angular.module('SOGo.SchedulerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.SchedulerUI')\n .factory('Component', Component.$factory);\n\n /**\n * @function $selectedCount\n * @memberof Component\n * @desc Return the number of events or tasks selected by the user.\n * @returns the number of selected events or tasks\n */\n Component.$selectedCount = function() {\n var count;\n\n count = 0;\n if (Component.$events) {\n count = (_.filter(Component.$events, function(event) { return event.selected; })).length;\n }\n if (Component.$tasks) {\n count = (_.filter(Component.$tasks, function(task) { return task.selected; })).length;\n }\n return count;\n };\n\n /**\n * @function $startRefreshTimeout\n * @memberof Component\n * @desc Starts the refresh timeout for the current selected component type, for all calendars\n */\n Component.$startRefreshTimeout = function(type) {\n var _this = this;\n\n if (Component.$refreshTimeout)\n Component.$timeout.cancel(Component.$refreshTimeout);\n\n Component.$Preferences.ready().then(function() {\n // Restart the refresh timer, if needed\n var refreshViewCheck = Component.$Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually') {\n var f = angular.bind(_this, Component.$filter, type);\n Component.$refreshTimeout = Component.$timeout(f, refreshViewCheck.timeInterval()*1000);\n }\n });\n };\n\n /**\n * @function $filter\n * @memberof Component\n * @desc Search for components matching some criterias\n * @param {string} type - either 'events' or 'tasks'\n * @param {object} [options] - additional options to the query\n * @returns a collection of Components instances\n */\n Component.$filter = function(type, options) {\n var _this = this,\n now = new Date(),\n day = now.getDate(),\n month = now.getMonth() + 1,\n year = now.getFullYear(),\n queryKey = '$query' + type.capitalize(),\n params = {\n day: '' + year + (month < 10?'0':'') + month + (day < 10?'0':'') + day,\n };\n\n Component.$startRefreshTimeout(type);\n\n return this.$Preferences.ready().then(function() {\n var futureComponentData,\n dirty = false,\n otherType;\n\n angular.extend(_this.$query, params);\n\n if (options) {\n _.each(_.keys(options), function(key) {\n // Query parameters common to events and tasks are compared\n dirty |= (_this.$query[key] && options[key] != Component.$query[key]);\n if (key == 'reload' && options[key])\n dirty = true;\n // Update either the common parameters or the type-specific parameters\n else if (angular.isDefined(_this.$query[key]))\n _this.$query[key] = options[key];\n else\n _this[queryKey][key] = options[key];\n });\n }\n\n // Perform query with both common and type-specific parameters\n futureComponentData = _this.$$resource.fetch(null, type + 'list',\n angular.extend(_this[queryKey], _this.$query));\n\n // Invalidate cached results of other type if $query has changed\n otherType = (type == 'tasks')? '$events' : '$tasks';\n if (dirty) {\n delete Component[otherType];\n Component.$log.debug('force reload of ' + otherType);\n }\n\n return _this.$unwrapCollection(type, futureComponentData);\n });\n };\n\n /**\n * @function $find\n * @desc Fetch a component from a specific calendar.\n * @param {string} calendarId - the calendar ID\n * @param {string} componentId - the component ID\n * @param {string} [occurrenceId] - the component ID\n * @see {@link Calendar.$getComponent}\n */\n Component.$find = function(calendarId, componentId, occurrenceId) {\n var futureComponentData, path = [calendarId, componentId];\n\n if (occurrenceId)\n path.push(occurrenceId);\n\n futureComponentData = this.$$resource.fetch(path.join('/'), 'view');\n\n return new Component(futureComponentData);\n };\n\n /**\n * @function filterCategories\n * @desc Search for categories matching some criterias\n * @param {string} search - the search string to match\n * @returns a collection of strings\n */\n Component.filterCategories = function(query) {\n var re = new RegExp(query, 'i');\n return _.filter(_.keys(Component.$categories), function(category) {\n return category.search(re) != -1;\n });\n };\n\n /**\n * @function saveSelectedList\n * @desc Save to the user's settings the currently selected list.\n * @param {string} componentType - either \"events\" or \"tasks\"\n * @returns a promise of the HTTP operation\n */\n Component.saveSelectedList = function(componentType) {\n return this.$$resource.post(null, 'saveSelectedList', { list: componentType + 'ListView' });\n };\n\n /**\n * @function $eventsBlocksForView\n * @desc Events blocks for a specific week\n * @param {string} view - Either 'day' or 'week'\n * @param {Date} type - Date of any day of the desired period\n * @returns a promise of a collection of objects describing the events blocks\n */\n Component.$eventsBlocksForView = function(view, date) {\n var viewAction, startDate, endDate, params;\n\n if (view == 'day') {\n viewAction = 'dayView';\n startDate = endDate = date;\n }\n else if (view == 'week') {\n viewAction = 'weekView';\n startDate = date.beginOfWeek();\n endDate = new Date();\n endDate.setTime(startDate.getTime());\n endDate.addDays(6);\n }\n else if (view == 'month') {\n viewAction = 'monthView';\n startDate = date;\n startDate.setDate(1);\n startDate = startDate.beginOfWeek();\n endDate = new Date();\n endDate.setTime(startDate.getTime());\n endDate.setMonth(endDate.getMonth() + 1);\n endDate.addDays(-1);\n endDate = endDate.endOfWeek();\n }\n return this.$eventsBlocks(viewAction, startDate, endDate);\n };\n\n /**\n * @function $eventsBlocks\n * @desc Events blocks for a specific view and period\n * @param {string} view - Either 'day' or 'week'\n * @param {Date} startDate - period's start date\n * @param {Date} endDate - period's end date\n * @returns a promise of a collection of objects describing the events blocks\n */\n Component.$eventsBlocks = function(view, startDate, endDate) {\n var params, futureComponentData, i,\n deferred = Component.$q.defer();\n\n params = { view: view.toLowerCase(), sd: startDate.getDayString(), ed: endDate.getDayString() };\n Component.$log.debug('eventsblocks ' + JSON.stringify(params, undefined, 2));\n futureComponentData = this.$$resource.fetch(null, 'eventsblocks', params);\n futureComponentData.then(function(data) {\n Component.$timeout(function() {\n var components = [], blocks = {}, allDayBlocks = {}, dates = [];\n\n // Instantiate Component objects\n _.reduce(data.events, function(objects, eventData, i) {\n var componentData = _.object(data.eventsFields, eventData),\n start = new Date(componentData.c_startdate * 1000);\n componentData.hour = start.getHourString();\n objects.push(new Component(componentData));\n return objects;\n }, components);\n\n // Associate Component objects to blocks positions\n _.each(_.flatten(data.blocks), function(block) {\n block.component = components[block.nbr];\n });\n\n // Associate Component objects to all-day blocks positions\n _.each(_.flatten(data.allDayBlocks), function(allDayBlock) {\n allDayBlock.component = components[allDayBlock.nbr];\n });\n\n // Build array of dates\n for (i = 0; i < data.blocks.length; i++) {\n dates.push(startDate.getDayString());\n startDate.addDays(1);\n }\n\n // Convert array of blocks to object with days as keys\n for (i = 0; i < data.blocks.length; i++) {\n blocks[dates[i]] = data.blocks[i];\n }\n\n // Convert array of all-day blocks to object with days as keys\n for (i = 0; i < data.allDayBlocks.length; i++) {\n allDayBlocks[dates[i]] = data.allDayBlocks[i];\n }\n\n Component.$log.debug('blocks ready (' + _.flatten(data.blocks).length + ')');\n Component.$log.debug('all day blocks ready (' + _.flatten(data.allDayBlocks).length + ')');\n\n // Save the blocks to the object model\n Component.$blocks = blocks;\n Component.$allDayBlocks = allDayBlocks;\n\n deferred.resolve({ blocks: blocks, allDayBlocks: allDayBlocks });\n });\n }, deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function $unwrapCollection\n * @desc Unwrap a promise and instanciate new Component objects using received data.\n * @param {string} type - either 'events' or 'tasks'\n * @param {promise} futureComponentData - a promise of the components' metadata\n * @returns a promise of the HTTP operation\n */\n Component.$unwrapCollection = function(type, futureComponentData) {\n var _this = this,\n components = [];\n\n return futureComponentData.then(function(data) {\n return Component.$timeout(function() {\n var fields = _.invoke(data.fields, 'toLowerCase');\n\n // Instanciate Component objects\n _.reduce(data[type], function(components, componentData, i) {\n var data = _.object(fields, componentData);\n components.push(new Component(data));\n return components;\n }, components);\n\n Component.$log.debug('list of ' + type + ' ready (' + components.length + ')');\n\n // Save the list of components to the object model\n Component['$' + type] = components;\n\n return components;\n });\n });\n };\n\n /**\n * @function init\n * @memberof Component.prototype\n * @desc Extend instance with required attributes and new data.\n * @param {object} data - attributes of component\n */\n Component.prototype.init = function(data) {\n var _this = this;\n\n this.categories = [];\n this.repeat = {};\n this.alarm = { action: 'display', quantity: 5, unit: 'MINUTES', reference: 'BEFORE', relation: 'START' };\n this.status = 'not-specified';\n angular.extend(this, data);\n\n Component.$Preferences.ready().then(function() {\n var type = (_this.type == 'appointment')? 'Events' : 'Tasks';\n\n // Set default values from user's defaults\n _this.classification = _this.classification ||\n Component.$Preferences.defaults['SOGoCalendar' + type + 'DefaultClassification'].toLowerCase();\n });\n\n if (this.startDate)\n this.start = new Date(this.startDate.substring(0,10) + ' ' + this.startDate.substring(11,16));\n else if (this.type == 'appointment') {\n this.start = new Date();\n }\n\n if (this.endDate)\n this.end = new Date(this.endDate.substring(0,10) + ' ' + this.endDate.substring(11,16));\n else if (this.type == 'appointment') {\n this.end = new Date();\n this.end.addHours(1);\n }\n\n if (this.dueDate)\n this.due = new Date(this.dueDate.substring(0,10) + ' ' + this.dueDate.substring(11,16));\n\n // Parse recurrence rule definition and initialize default values\n this.$isRecurrent = angular.isDefined(data.repeat);\n if (this.repeat.days) {\n var byDayMask = _.find(this.repeat.days, function(o) {\n return angular.isDefined(o.occurrence);\n });\n if (byDayMask)\n if (this.repeat.frequency == 'yearly')\n this.repeat.year = { byday: true };\n this.repeat.month = {\n type: 'byday',\n occurrence: byDayMask.occurrence.toString(),\n day: byDayMask.day\n };\n }\n else {\n this.repeat.days = [];\n }\n if (angular.isUndefined(this.repeat.frequency))\n this.repeat.frequency = 'never';\n if (angular.isUndefined(this.repeat.interval))\n this.repeat.interval = 1;\n if (angular.isUndefined(this.repeat.month))\n this.repeat.month = { occurrence: '1', day: 'SU', type: 'bymonthday' };\n if (angular.isUndefined(this.repeat.monthdays))\n // TODO: initialize this.repeat.monthdays with month day of start date\n this.repeat.monthdays = [];\n if (angular.isUndefined(this.repeat.months))\n // TODO: initialize this.repeat.months with month of start date\n this.repeat.months = [];\n if (angular.isUndefined(this.repeat.year))\n this.repeat.year = {};\n if (this.repeat.count)\n this.repeat.end = 'count';\n else if (this.repeat.until) {\n this.repeat.end = 'until';\n this.repeat.until = this.repeat.until.substring(0,10).asDate();\n }\n else\n this.repeat.end = 'never';\n this.$hasCustomRepeat = this.hasCustomRepeat();\n\n if (this.isNew) {\n // Set default alarm\n Component.$Preferences.ready().then(function() {\n var units = { M: 'MINUTES', H: 'HOURS', D: 'DAYS', W: 'WEEKS' };\n var match = /-PT?([0-9]+)([MHDW])/.exec(Component.$Preferences.defaults.SOGoCalendarDefaultReminder);\n if (match) {\n _this.$hasAlarm = true;\n _this.alarm.quantity = parseInt(match[1]);\n _this.alarm.unit = units[match[2]];\n }\n });\n }\n else {\n this.$hasAlarm = angular.isDefined(data.alarm);\n }\n\n // Allow the component to be moved to a different calendar\n this.destinationCalendar = this.pid;\n\n if (this.organizer && this.organizer.email) {\n this.organizer.$image = Component.$gravatar(this.organizer.email, 32);\n }\n\n // Load freebusy of attendees\n this.freebusy = this.updateFreeBusyCoverage();\n\n if (this.attendees) {\n _.each(this.attendees, function(attendee) {\n attendee.image = Component.$gravatar(attendee.email, 32);\n _this.updateFreeBusy(attendee);\n });\n }\n\n this.selected = false;\n };\n\n /**\n * @function hasCustomRepeat\n * @memberof Component.prototype\n * @desc Check if the component has a custom recurrence rule.\n * @returns true if the recurrence rule requires the full recurrence editor\n */\n Component.prototype.hasCustomRepeat = function() {\n var b = angular.isDefined(this.repeat) &&\n (this.repeat.interval > 1 ||\n this.repeat.days && this.repeat.days.length > 0 ||\n this.repeat.monthdays && this.repeat.monthdays.length > 0 ||\n this.repeat.months && this.repeat.months.length > 0);\n return b;\n };\n\n /**\n * @function isEditable\n * @memberof Component.prototype\n * @desc Check if the component is editable and not an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isEditable = function() {\n return (!this.occurrenceId && !this.isReadOnly);\n };\n\n /**\n * @function isEditableOccurrence\n * @memberof Component.prototype\n * @desc Check if the component is editable and an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isEditableOccurrence = function() {\n return (this.occurrenceId && !this.isReadOnly);\n };\n\n /**\n * @function isInvitation\n * @memberof Component.prototype\n * @desc Check if the component an invitation and not an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isInvitation = function() {\n return (!this.occurrenceId && this.userHasRSVP);\n };\n\n /**\n * @function isInvitationOccurrence\n * @memberof Component.prototype\n * @desc Check if the component an invitation and an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isInvitationOccurrence = function() {\n return (this.occurrenceId && this.userHasRSVP);\n };\n\n /**\n * @function isReadOnly\n * @memberof Component.prototype\n * @desc Check if the component is not editable and not an invitation\n * @returns true or false\n */\n Component.prototype.isReadOnly = function() {\n return (this.isReadOnly && !this.userHasRSVP);\n };\n\n /**\n * @function enablePercentComplete\n * @memberof Component.prototype\n * @desc Check if the percent completion should be enabled with respect to the\n * component's type and status.\n * @returns true if the percent completion should be displayed\n */\n Component.prototype.enablePercentComplete = function() {\n return (this.component = 'vtodo' &&\n this.status != 'not-specified' &&\n this.status != 'cancelled');\n };\n\n /**\n * @function coversFreeBusy\n * @memberof Component.prototype\n * @desc Check if a specific quarter matches the component's period\n * @returns true if the quarter covers the component's period\n */\n Component.prototype.coversFreeBusy = function(day, hour, quarter) {\n var b = (angular.isDefined(this.freebusy[day]) &&\n angular.isDefined(this.freebusy[day][hour]) &&\n this.freebusy[day][hour][quarter] == 1);\n return b;\n };\n\n /**\n * @function updateFreeBusyCoverage\n * @memberof Component.prototype\n * @desc Build a 15-minute-based representation of the component's period.\n * @returns an object literal hashed by days and hours and arrays of four 1's and 0's\n */\n Component.prototype.updateFreeBusyCoverage = function() {\n var _this = this, freebusy = {};\n\n if (this.start && this.end) {\n var roundedStart = new Date(this.start.getTime()),\n roundedEnd = new Date(this.end.getTime()),\n startQuarter = parseInt(roundedStart.getMinutes()/15 + 0.5),\n endQuarter = parseInt(roundedEnd.getMinutes()/15 + 0.5);\n roundedStart.setMinutes(15*startQuarter);\n roundedEnd.setMinutes(15*endQuarter);\n\n _.each(roundedStart.daysUpTo(roundedEnd), function(date, index) {\n var currentDay = date.getDate(),\n dayKey = date.getDayString(),\n hourKey;\n if (dayKey == _this.start.getDayString()) {\n hourKey = date.getHours().toString();\n freebusy[dayKey] = {};\n freebusy[dayKey][hourKey] = [];\n while (startQuarter > 0) {\n freebusy[dayKey][hourKey].push(0);\n startQuarter--;\n }\n }\n else {\n date = date.beginOfDay();\n freebusy[dayKey] = {};\n }\n while (date.getTime() < _this.end.getTime() &&\n date.getDate() == currentDay) {\n hourKey = date.getHours().toString();\n if (angular.isUndefined(freebusy[dayKey][hourKey]))\n freebusy[dayKey][hourKey] = [];\n freebusy[dayKey][hourKey].push(1);\n date.addMinutes(15);\n }\n });\n return freebusy;\n }\n };\n\n /**\n * @function updateFreeBusy\n * @memberof Component.prototype\n * @desc Update the freebusy information for the component's period for a specific attendee.\n * @param {Object} card - an Card object instance of the attendee\n */\n Component.prototype.updateFreeBusy = function(attendee) {\n var params, url, days;\n if (attendee.uid) {\n params =\n {\n sday: this.start.getDayString(),\n eday: this.end.getDayString()\n };\n url = ['..', '..', attendee.uid, 'freebusy.ifb'];\n days = _.map(this.start.daysUpTo(this.end), function(day) { return day.getDayString(); });\n\n if (angular.isUndefined(attendee.freebusy))\n attendee.freebusy = {};\n\n // Fetch FreeBusy information\n Component.$$resource.fetch(url.join('/'), 'ajaxRead', params).then(function(data) {\n _.each(days, function(day) {\n var hour;\n\n if (angular.isUndefined(attendee.freebusy[day]))\n attendee.freebusy[day] = {};\n\n if (angular.isUndefined(data[day]))\n data[day] = {};\n\n for (var i = 0; i <= 23; i++) {\n hour = i.toString();\n if (data[day][hour])\n attendee.freebusy[day][hour] = [\n data[day][hour][\"0\"],\n data[day][hour][\"15\"],\n data[day][hour][\"30\"],\n data[day][hour][\"45\"]\n ];\n else\n attendee.freebusy[day][hour] = [0, 0, 0, 0];\n }\n });\n });\n }\n };\n\n /**\n * @function getClassName\n * @memberof Component.prototype\n * @desc Return the component CSS class name based on its container (calendar) ID.\n * @param {string} [base] - the prefix to add to the class name (defaults to \"fg\")\n * @returns a string representing the foreground CSS class name\n */\n Component.prototype.getClassName = function(base) {\n if (angular.isUndefined(base))\n base = 'fg';\n return base + '-folder' + (this.destinationCalendar || this.c_folder);\n };\n\n /**\n * @function addAttendee\n * @memberof Component.prototype\n * @desc Add an attendee and fetch his freebusy info.\n * @param {Object} card - an Card object instance to be added to the attendees list\n */\n Component.prototype.addAttendee = function(card) {\n var attendee, url, params;\n if (card) {\n attendee = {\n name: card.c_cn,\n email: card.$preferredEmail(),\n role: 'req-participant',\n status: 'needs-action',\n uid: card.c_uid\n };\n if (!_.find(this.attendees, function(o) {\n return o.email == attendee.email;\n })) {\n attendee.image = Component.$gravatar(attendee.email, 32);\n if (this.attendees)\n this.attendees.push(attendee);\n else\n this.attendees = [attendee];\n this.updateFreeBusy(attendee);\n }\n }\n };\n\n /**\n * @function hasAttendee\n * @memberof Component.prototype\n * @desc Verify if one of the email addresses of a Card instance matches an attendee.\n * @param {Object} card - an Card object instance\n * @returns true if the Card matches an attendee\n */\n Component.prototype.hasAttendee = function(card) {\n var attendee = _.find(this.attendees, function(attendee) {\n return _.find(card.emails, function(email) {\n return email.value == attendee.email;\n });\n });\n return angular.isDefined(attendee);\n };\n\n /**\n * @function canRemindAttendeesByEmail\n * @memberof Component.prototype\n * @desc Verify if the component's reminder must be send by email and if it has at least one attendee.\n * @returns true if attendees can receive a reminder by email\n */\n Component.prototype.canRemindAttendeesByEmail = function() {\n return this.alarm.action == 'email' &&\n !this.isReadOnly &&\n this.attendees && this.attendees.length > 0;\n };\n\n /**\n * @function addAttachUrl\n * @memberof Component.prototype\n * @desc Add a new attach URL if not already defined\n * @param {string} attachUrl - the URL\n * @returns the number of values in the list of attach URLs\n */\n Component.prototype.addAttachUrl = function(attachUrl) {\n if (angular.isUndefined(this.attachUrls)) {\n this.attachUrls = [{value: attachUrl}];\n }\n else {\n for (var i = 0; i < this.attachUrls.length; i++) {\n if (this.attachUrls[i].value == attachUrl) {\n break;\n }\n }\n if (i == this.attachUrls.length)\n this.attachUrls.push({value: attachUrl});\n }\n return this.attachUrls.length - 1;\n };\n\n /**\n * @function deleteAttachUrl\n * @memberof Component.prototype\n * @desc Remove an attach URL\n * @param {number} index - the URL index in the list of attach URLs\n */\n Component.prototype.deleteAttachUrl = function(index) {\n if (index > -1 && this.attachUrls.length > index) {\n this.attachUrls.splice(index, 1);\n }\n };\n\n /**\n * @function $addDueDate\n * @memberof Component.prototype\n * @desc Add a due date\n */\n Component.prototype.$addDueDate = function() {\n this.due = new Date();\n this.dueDate = this.due.toISOString();\n };\n\n /**\n * @function $deleteDueDate\n * @memberof Component.prototype\n * @desc Delete a due date\n */\n Component.prototype.$deleteDueDate = function() {\n delete this.due;\n delete this.dueDate;\n };\n\n /**\n * @function $addStartDate\n * @memberof Component.prototype\n * @desc Add a start date\n */\n Component.prototype.$addStartDate = function() {\n this.start = new Date();\n };\n\n /**\n * @function $deleteStartDate\n * @memberof Component.prototype\n * @desc Delete a start date\n */\n Component.prototype.$deleteStartDate = function() {\n delete this.start;\n delete this.startDate;\n };\n\n /**\n * @function $reset\n * @memberof Component.prototype\n * @desc Reset the original state the component's data.\n */\n Component.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n delete _this[key];\n }\n });\n this.init(this.$shadowData);\n this.$shadowData = this.$omit(true);\n };\n\n /**\n * @function reply\n * @memberof Component.prototype\n * @desc Reply to an invitation.\n * @returns a promise of the HTTP operation\n */\n Component.prototype.$reply = function() {\n var _this = this, data, path = [this.pid, this.id];\n\n if (this.occurrenceId)\n path.push(this.occurrenceId);\n\n data = {\n reply: this.reply,\n delegatedTo: this.delegatedTo,\n alarm: this.$hasAlarm? this.alarm : {}\n };\n\n return Component.$$resource.save(path.join('/'), data, { action: 'rsvpAppointment' })\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n /**\n * @function $save\n * @memberof Component.prototype\n * @desc Save the component to the server.\n */\n Component.prototype.$save = function() {\n var _this = this, options, path = [this.pid, this.id];\n\n if (this.isNew)\n options = { action: 'saveAs' + this.type.capitalize() };\n\n if (this.occurrenceId)\n path.push(this.occurrenceId);\n\n return Component.$$resource.save(path.join('/'), this.$omit(), options)\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n /**\n * @function $unwrap\n * @memberof Component.prototype\n * @desc Unwrap a promise.\n * @param {promise} futureComponentData - a promise of some of the Component's data\n */\n Component.prototype.$unwrap = function(futureComponentData) {\n var _this = this;\n\n // Expose the promise\n this.$futureComponentData = futureComponentData;\n\n // Resolve the promise\n this.$futureComponentData.then(function(data) {\n _this.init(data);\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit();\n }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n Component.$log.error(_this.error);\n });\n };\n\n /**\n * @function $omit\n * @memberof Component.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Component instance\n */\n Component.prototype.$omit = function() {\n var component = {}, date;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n component[key] = angular.copy(value);\n }\n });\n\n // Format dates and times\n component.startDate = component.start ? formatDate(component.start) : '';\n component.startTime = component.start ? formatTime(component.start) : '';\n component.endDate = component.end ? formatDate(component.end) : '';\n component.endTime = component.end ? formatTime(component.end) : '';\n component.dueDate = component.due ? formatDate(component.due) : '';\n component.dueTime = component.due ? formatTime(component.due) : '';\n\n // Update recurrence definition depending on selections\n if (this.$hasCustomRepeat) {\n if (this.repeat.frequency == 'monthly' && this.repeat.month.type && this.repeat.month.type == 'byday' ||\n this.repeat.frequency == 'yearly' && this.repeat.year.byday) {\n // BYDAY mask for a monthly or yearly recurrence\n delete component.repeat.monthdays;\n component.repeat.days = [{ day: this.repeat.month.day, occurrence: this.repeat.month.occurrence.toString() }];\n }\n else if (this.repeat.month.type) {\n // montly recurrence by month days or yearly by month\n delete component.repeat.days;\n }\n }\n else if (this.repeat.frequency) {\n component.repeat = { frequency: this.repeat.frequency };\n }\n if (this.repeat.frequency) {\n if (this.repeat.end == 'until' && this.repeat.until)\n component.repeat.until = this.repeat.until.stringWithSeparator('-');\n else if (this.repeat.end == 'count' && this.repeat.count)\n component.repeat.count = this.repeat.count;\n else {\n delete component.repeat.until;\n delete component.repeat.count;\n }\n }\n else {\n delete component.repeat;\n }\n\n if (this.$hasAlarm) {\n if (this.alarm.action && this.alarm.action == 'email' &&\n !(this.attendees && this.attendees.length > 0)) {\n // No attendees; email reminder must be sent to organizer only\n this.alarm.attendees = 0;\n this.alarm.organizer = 1;\n }\n }\n else {\n component.alarm = {};\n }\n\n function formatTime(date) {\n var hours = date.getHours();\n if (hours < 10) hours = '0' + hours;\n\n var minutes = date.getMinutes();\n if (minutes < 10) minutes = '0' + minutes;\n return hours + ':' + minutes;\n }\n\n function formatDate(date) {\n var year = date.getYear();\n if (year < 1000) year += 1900;\n\n var month = '' + (date.getMonth() + 1);\n if (month.length == 1)\n month = '0' + month;\n\n var day = '' + date.getDate();\n if (day.length == 1)\n day = '0' + day;\n\n return year + '-' + month + '-' + day;\n }\n\n return component;\n };\n\n})();\n"]} \ No newline at end of file +{"version":3,"file":"Scheduler.services.js","sources":["Scheduler/Calendar.service.js","Scheduler/Component.service.js"],"names":["Calendar","futureCalendarData","this","init","name","id","newCalendarData","$$resource","create","angular","extend","$acl","$$Acl","$factory","$q","$timeout","$log","Settings","Resource","Component","Acl","activeUser","$Component","module","e","factory","$add","calendar","list","sibling","i","isWebCalendar","$webcalendars","isSubscription","$subscriptions","$calendars","_","find","o","localeCompare","indexOf","pluck","splice","$findAll","data","_this","forEach","push","union","$get","$getIndex","$subscribe","uid","path","userResource","fetch","then","calendarData","$addWebCalendar","url","d","defer","urls","webCalendarURL","reject","post","isEditable","isRemote","owner","login","debug","JSON","stringify","undefined","resolve","promise","$deleteComponents","components","calendars","component","isDefined","c_folder","c_name","uids","$events","difference","$tasks","prototype","isOwned","isSuperUser","isUndefined","$shadowData","$omit","getClassName","base","$rename","when","$save","$delete","remove","$reset","value","key","save","error","$setActivation","active","$getComponent","componentId","recurrenceId","$find","futureComponentData","pid","newComponentData","newguid","$unwrap","isNew","Preferences","Gravatar","$Preferences","$gravatar","baseURL","timeFormat","$query","search","$queryEvents","sort","asc","filterpopup","$queryTasks","$refreshTimeout","ready","settings","EventsFilterState","TasksFilterState","EventsSortingState","parseInt","TasksSortingState","show_completed","ShowCompletedTasks","$categories","defaults","SOGoCalendarCategoriesColors","SOGoTimeFormat","$selectedCount","count","filter","event","selected","length","task","$startRefreshTimeout","type","cancel","refreshViewCheck","SOGoRefreshViewCheck","f","bind","$filter","timeInterval","options","now","Date","day","getDate","month","getMonth","year","getFullYear","queryKey","capitalize","params","otherType","dirty","each","keys","$unwrapCollection","calendarId","occurrenceId","join","filterCategories","query","re","RegExp","category","saveSelectedList","componentType","$eventsBlocksForView","view","date","viewAction","startDate","endDate","beginOfWeek","setTime","getTime","addDays","setDate","setMonth","endOfWeek","$eventsBlocks","dates","deferred","toLowerCase","sd","getDayString","ed","views","reduceComponent","associateComponent","objects","eventData","componentData","object","eventsFields","start","c_startdate","hour","getHourString","block","nbr","$views","viewData","blocks","allDayBlocks","reduce","events","flatten","calendarName","fields","invoke","categories","repeat","alarm","action","quantity","unit","reference","relation","status","classification","delta","substring","setMinutes","Math","round","getMinutes","end","addMinutes","dueDate","due","$isRecurrent","days","byDayMask","occurrence","frequency","byday","toString","interval","monthdays","months","until","asDate","$hasCustomRepeat","hasCustomRepeat","units","M","H","D","W","match","exec","SOGoCalendarDefaultReminder","$hasAlarm","destinationCalendar","organizer","email","$image","freebusy","updateFreeBusyCoverage","attendees","attendee","image","updateFreeBusy","b","isReadOnly","isEditableOccurrence","isInvitation","userHasRSVP","isInvitationOccurrence","enablePercentComplete","coversFreeBusy","quarter","roundedStart","roundedEnd","startQuarter","endQuarter","daysUpTo","index","hourKey","currentDay","dayKey","getHours","beginOfDay","sday","eday","map","addAttendee","card","c_cn","$preferredEmail","role","c_uid","hasAttendee","emails","deleteAttendee","findIndex","currentAttendee","canRemindAttendeesByEmail","addAttachUrl","attachUrl","attachUrls","deleteAttachUrl","$addDueDate","toISOString","$deleteDueDate","$addStartDate","$deleteStartDate","$reply","reply","delegatedTo","occurrenceOnly","$futureComponentData","isError","formatTime","hours","minutes","formatDate","getYear","copy","startTime","endTime","dueTime","stringWithSeparator"],"mappings":"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","sourcesContent":["/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Calendar\n * @constructor\n * @param {object} futureCalendarData - either an object literal or a promise\n */\n function Calendar(futureCalendarData) {\n // Data is immediately available\n this.init(futureCalendarData);\n if (this.name && !this.id) {\n // Create a new calendar on the server\n var newCalendarData = Calendar.$$resource.create('createFolder', this.name);\n angular.extend(this, newCalendarData);\n }\n if (this.id) {\n this.$acl = new Calendar.$$Acl('Calendar/' + this.id);\n }\n }\n\n /**\n * @memberof Calendar\n * @desc The factory we'll use to register with Angular\n * @returns the Calendar constructor\n */\n Calendar.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Resource', 'Component', 'Acl', function($q, $timeout, $log, Settings, Resource, Component, Acl) {\n angular.extend(Calendar, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $$resource: new Resource(Settings.activeUser('folderURL') + 'Calendar', Settings.activeUser()),\n $Component: Component,\n $$Acl: Acl,\n activeUser: Settings.activeUser()\n });\n\n return Calendar; // return constructor\n }];\n\n /**\n * @module SOGo.SchedulerUI\n * @desc Factory registration of Calendar in Angular module.\n */\n try {\n angular.module('SOGo.SchedulerUI');\n }\n catch(e) {\n angular.module('SOGo.SchedulerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.SchedulerUI')\n .factory('Calendar', Calendar.$factory);\n\n /**\n * @memberof Calendar\n * @desc Add a new calendar to the static list of calendars\n * @param {Calendar} calendar - an Calendar object instance\n */\n Calendar.$add = function(calendar) {\n // Insert new calendar at proper index\n var list, sibling, i;\n\n if (calendar.isWebCalendar)\n list = this.$webcalendars;\n else if (calendar.isSubscription)\n list = this.$subscriptions;\n else\n list = this.$calendars;\n\n sibling = _.find(list, function(o) {\n return (o.id != 'personal' &&\n o.name.localeCompare(calendar.name) === 1);\n });\n i = sibling ? _.indexOf(_.pluck(list, 'id'), sibling.id) : 1;\n list.splice(i, 0, calendar);\n };\n\n /**\n * @memberof Calendar\n * @desc Set or get the list of calendars. Will instanciate a new Calendar object for each item.\n * @param {object[]} [data] - the metadata of the calendars\n * @returns the list of calendars\n */\n Calendar.$findAll = function(data) {\n var _this = this;\n if (data) {\n this.$calendars = [];\n this.$subscriptions = [];\n this.$webcalendars = [];\n // Instanciate Calendar objects\n angular.forEach(data, function(o, i) {\n var calendar = new Calendar(o);\n if (calendar.isWebCalendar)\n _this.$webcalendars.push(calendar);\n else if (calendar.isSubscription)\n _this.$subscriptions.push(calendar);\n else\n _this.$calendars.push(calendar);\n });\n }\n return _.union(this.$calendars, this.$subscriptions, this.$webcalendars);\n };\n\n /**\n * @memberof Calendar\n * @desc Find a calendar among local instances (personal calendars, subscriptions and Web calendars).\n * @param {string} id - the calendar ID\n * @returns an object literal of the matching Calendar instance\n */\n Calendar.$get = function(id) {\n var calendar;\n\n calendar = _.find(Calendar.$calendars, function(o) { return o.id == id; });\n if (!calendar)\n calendar = _.find(Calendar.$subscriptions, function(o) { return o.id == id; });\n if (!calendar)\n calendar = _.find(Calendar.$webcalendars, function(o) { return o.id == id; });\n\n return calendar;\n };\n\n /**\n * @memberof Calendar\n * @desc Find a calendar among local instances (personal calendars, subscriptions and Web calendars).\n * @param {string} id - the calendar ID\n * @returns an object literal of the matching Calendar instance\n */\n Calendar.$getIndex = function(id) {\n var i;\n\n i = _.indexOf(_.pluck(Calendar.$calendars, 'id'), id);\n if (i < 0)\n i = _.indexOf(_.pluck(Calendar.$subscriptions, 'id'), id);\n if (i < 0)\n i = _.indexOf(_.pluck(Calendar.$webcalendars, 'id'), id);\n\n return i;\n };\n\n /**\n * @memberOf Calendar\n * @desc Subscribe to another user's calendar and add it to the list of calendars.\n * @param {string} uid - user id\n * @param {string} path - path of folder for specified user\n * @returns a promise of the HTTP query result\n */\n Calendar.$subscribe = function(uid, path) {\n var _this = this;\n return Calendar.$$resource.userResource(uid).fetch(path, 'subscribe').then(function(calendarData) {\n var calendar = new Calendar(calendarData);\n if (!_.find(_this.$subscriptions, function(o) {\n return o.id == calendarData.id;\n })) {\n Calendar.$add(calendar);\n }\n return calendar;\n });\n };\n\n /**\n * @memberOf Calendar\n * @desc Subscribe to a remote Web calendar\n * @param {string} url - URL of .ics file\n * @returns a promise of the HTTP query result\n */\n Calendar.$addWebCalendar = function(url) {\n var _this = this,\n d = Calendar.$q.defer();\n\n if (_.find(_this.$webcalendars, function(o) {\n return o.urls.webCalendarURL == url;\n })) {\n // Already subscribed\n d.reject();\n }\n else {\n Calendar.$$resource.post(null, 'addWebCalendar', { url: url }).then(function(calendarData) {\n angular.extend(calendarData, {\n isWebCalendar: true,\n isEditable: true,\n isRemote: false,\n owner: Calendar.activeUser.login,\n urls: { webCalendarURL: url }\n });\n var calendar = new Calendar(calendarData);\n Calendar.$add(calendar);\n Calendar.$$resource.fetch(calendar.id, 'reload').then(function(data) {\n // TODO: show a toast of the reload status\n Calendar.$log.debug(JSON.stringify(data, undefined, 2));\n });\n d.resolve();\n }, function() {\n d.reject();\n });\n }\n\n return d.promise;\n };\n\n /**\n * @function $deleteComponents\n * @memberof Calendar\n * @desc Delete multiple components from calendar.\n * @return a promise of the HTTP operation\n */\n Calendar.$deleteComponents = function(components) {\n\n // We create a c_folder -> event hash\n var calendars = {}, _this = this;\n\n _.forEach(components, function(component) {\n if (!angular.isDefined(calendars[component.c_folder]))\n calendars[component.c_folder] = [];\n\n calendars[component.c_folder].push(component.c_name);\n });\n\n _.forEach(calendars, function(uids, c_folder) {\n Calendar.$$resource.post(c_folder, 'batchDelete', {uids: uids});\n });\n\n // We slice both arrays - might be useful if in the future, we can delete\n // events and tasks at the same time.\n _this.$Component.$events = _.difference(_this.$Component.$events, components);\n _this.$Component.$tasks = _.difference(_this.$Component.$tasks, components);\n };\n\n /**\n * @function init\n * @memberof Calendar.prototype\n * @desc Extend instance with new data and compute additional attributes.\n * @param {object} data - attributes of calendar\n */\n Calendar.prototype.init = function(data) {\n angular.extend(this, data);\n // Add 'isOwned' and 'isSubscription' attributes based on active user (TODO: add it server-side?)\n this.isOwned = Calendar.activeUser.isSuperUser || this.owner == Calendar.activeUser.login;\n this.isSubscription = !this.isRemote && this.owner != Calendar.activeUser.login;\n if (angular.isUndefined(this.$shadowData)) {\n // Make a copy of the data for an eventual reset\n this.$shadowData = this.$omit();\n }\n };\n\n /**\n * @function getClassName\n * @memberof Calendar.prototype\n * @desc Return the calendar CSS class name based on its ID.\n * @returns a string representing the foreground CSS class name\n */\n Calendar.prototype.getClassName = function(base) {\n if (angular.isUndefined(base))\n base = 'fg';\n return base + '-folder' + this.id;\n };\n\n /**\n * @function $rename\n * @memberof Calendar.prototype\n * @desc Rename the calendar and keep the list sorted\n * @param {string} name - the new name\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$rename = function() {\n var _this = this,\n i,\n calendars;\n\n if (this.name == this.$shadowData.name) {\n // Name hasn't changed\n return Calendar.$q.when();\n }\n\n if (this.isWebCalendar)\n calendars = Calendar.$webcalendars;\n else if (this.isSubscription)\n calendars = Calendar.$subscriptions;\n else\n calendars = Calendar.$calendars;\n\n i = _.indexOf(_.pluck(calendars, 'id'), this.id);\n if (i > -1) {\n return this.$save().then(function() {\n calendars.splice(i, 1);\n Calendar.$add(_this);\n });\n }\n else {\n return Calendar.$q.reject();\n }\n };\n\n /**\n * @function $delete\n * @memberof Calendar.prototype\n * @desc Delete the calendar from the server and the static list of calendars.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$delete = function() {\n var _this = this,\n list,\n promise;\n\n if (this.isSubscription) {\n promise = Calendar.$$resource.fetch(this.id, 'unsubscribe');\n list = Calendar.$subscriptions;\n }\n else {\n promise = Calendar.$$resource.remove(this.id);\n if (this.isWebCalendar)\n list = Calendar.$webcalendars;\n else\n list = Calendar.$calendars;\n }\n\n return promise.then(function() {\n var i = _.indexOf(_.pluck(list, 'id'), _this.id);\n list.splice(i, 1);\n });\n };\n\n /**\n * @function $reset\n * @memberof Mailbox.prototype\n * @desc Reset the original state the mailbox's data.\n */\n Calendar.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n delete _this[key];\n }\n });\n angular.extend(this, this.$shadowData);\n this.$shadowData = this.$omit();\n };\n\n /**\n * @function $save\n * @memberof Calendar.prototype\n * @desc Save the calendar properties to the server.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$save = function() {\n var _this = this;\n\n return Calendar.$$resource.save(this.id, this.$omit()).then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit();\n return data;\n }, function(data) {\n Calendar.$log.error(JSON.stringify(data, undefined, 2));\n // Restore previous version\n _this.$reset();\n return data;\n });\n };\n\n /**\n * @function $setActivation\n * @memberof Calendar.prototype\n * @desc Either activate or deactivate the calendar.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$setActivation = function() {\n return Calendar.$$resource.fetch(this.id, (this.active?'':'de') + 'activateFolder');\n };\n\n /**\n * @function $getComponent\n * @memberof Calendar.prototype\n * @desc Fetch a component attributes from the server.\n * @returns a promise of the HTTP operation\n */\n Calendar.prototype.$getComponent = function(componentId, recurrenceId) {\n return Calendar.$Component.$find(this.id, componentId, recurrenceId);\n };\n\n /**\n * @function $omit\n * @memberof Calendar.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Calendar instance\n */\n Calendar.prototype.$omit = function() {\n var calendar = {};\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' &&\n key[0] != '$') {\n calendar[key] = value;\n }\n });\n return calendar;\n };\n})();\n","/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n\n(function() {\n 'use strict';\n\n /**\n * @name Component\n * @constructor\n * @param {object} futureComponentData - either an object literal or a promise\n */\n function Component(futureComponentData) {\n // Data is immediately available\n if (typeof futureComponentData.then !== 'function') {\n this.init(futureComponentData);\n if (this.pid && !this.id) {\n // Prepare for the creation of a new component;\n // Get UID from the server.\n var newComponentData = Component.$$resource.newguid(this.pid);\n this.$unwrap(newComponentData);\n this.isNew = true;\n }\n }\n else {\n // The promise will be unwrapped first\n this.$unwrap(futureComponentData);\n }\n }\n\n /**\n * @memberof Component\n * @desc The factory we'll use to register with Angular\n * @returns the Component constructor\n */\n Component.$factory = ['$q', '$timeout', '$log', 'sgSettings', 'Preferences', 'Gravatar', 'Resource', function($q, $timeout, $log, Settings, Preferences, Gravatar, Resource) {\n angular.extend(Component, {\n $q: $q,\n $timeout: $timeout,\n $log: $log,\n $Preferences: Preferences,\n $gravatar: Gravatar,\n $$resource: new Resource(Settings.baseURL(), Settings.activeUser()),\n timeFormat: \"%H:%M\",\n // Filter parameters common to events and tasks\n $query: { value: '', search: 'title_Category_Location' },\n // Filter paramaters specific to events\n $queryEvents: { sort: 'start', asc: 1, filterpopup: 'view_next7' },\n // Filter parameters specific to tasks\n $queryTasks: { sort: 'status', asc: 1, filterpopup: 'view_incomplete' },\n $refreshTimeout: null\n });\n Preferences.ready().then(function() {\n // Initialize filter parameters from user's settings\n if (Preferences.settings.Calendar.EventsFilterState)\n Component.$queryEvents.filterpopup = Preferences.settings.Calendar.EventsFilterState;\n if (Preferences.settings.Calendar.TasksFilterState)\n Component.$queryTasks.filterpopup = Preferences.settings.Calendar.TasksFilterState;\n if (Preferences.settings.Calendar.EventsSortingState) {\n Component.$queryEvents.sort = Preferences.settings.Calendar.EventsSortingState[0];\n Component.$queryEvents.asc = parseInt(Preferences.settings.Calendar.EventsSortingState[1]);\n }\n if (Preferences.settings.Calendar.TasksSortingState) {\n Component.$queryTasks.sort = Preferences.settings.Calendar.TasksSortingState[0];\n Component.$queryTasks.asc = parseInt(Preferences.settings.Calendar.TasksSortingState[1]);\n }\n Component.$queryTasks.show_completed = parseInt(Preferences.settings.ShowCompletedTasks);\n // Initialize categories from user's defaults\n Component.$categories = Preferences.defaults.SOGoCalendarCategoriesColors;\n // Initialize time format from user's defaults\n if (Preferences.defaults.SOGoTimeFormat) {\n Component.timeFormat = Preferences.defaults.SOGoTimeFormat;\n }\n });\n\n return Component; // return constructor\n }];\n\n /**\n * @module SOGo.SchedulerUI\n * @desc Factory registration of Component in Angular module.\n */\n try {\n angular.module('SOGo.SchedulerUI');\n }\n catch(e) {\n angular.module('SOGo.SchedulerUI', ['SOGo.Common']);\n }\n angular.module('SOGo.SchedulerUI')\n .factory('Component', Component.$factory);\n\n /**\n * @function $selectedCount\n * @memberof Component\n * @desc Return the number of events or tasks selected by the user.\n * @returns the number of selected events or tasks\n */\n Component.$selectedCount = function() {\n var count;\n\n count = 0;\n if (Component.$events) {\n count = (_.filter(Component.$events, function(event) { return event.selected; })).length;\n }\n if (Component.$tasks) {\n count = (_.filter(Component.$tasks, function(task) { return task.selected; })).length;\n }\n return count;\n };\n\n /**\n * @function $startRefreshTimeout\n * @memberof Component\n * @desc Starts the refresh timeout for the current selected component type, for all calendars\n */\n Component.$startRefreshTimeout = function(type) {\n var _this = this;\n\n if (Component.$refreshTimeout)\n Component.$timeout.cancel(Component.$refreshTimeout);\n\n Component.$Preferences.ready().then(function() {\n // Restart the refresh timer, if needed\n var refreshViewCheck = Component.$Preferences.defaults.SOGoRefreshViewCheck;\n if (refreshViewCheck && refreshViewCheck != 'manually') {\n var f = angular.bind(_this, Component.$filter, type);\n Component.$refreshTimeout = Component.$timeout(f, refreshViewCheck.timeInterval()*1000);\n }\n });\n };\n\n /**\n * @function $filter\n * @memberof Component\n * @desc Search for components matching some criterias\n * @param {string} type - either 'events' or 'tasks'\n * @param {object} [options] - additional options to the query\n * @returns a collection of Components instances\n */\n Component.$filter = function(type, options) {\n var _this = this,\n now = new Date(),\n day = now.getDate(),\n month = now.getMonth() + 1,\n year = now.getFullYear(),\n queryKey = '$query' + type.capitalize(),\n params = {\n day: '' + year + (month < 10?'0':'') + month + (day < 10?'0':'') + day,\n };\n\n Component.$startRefreshTimeout(type);\n\n return this.$Preferences.ready().then(function() {\n var futureComponentData,\n dirty = false,\n otherType;\n\n angular.extend(_this.$query, params);\n\n if (options) {\n _.each(_.keys(options), function(key) {\n // Query parameters common to events and tasks are compared\n dirty |= (_this.$query[key] && options[key] != Component.$query[key]);\n if (key == 'reload' && options[key])\n dirty = true;\n // Update either the common parameters or the type-specific parameters\n else if (angular.isDefined(_this.$query[key]))\n _this.$query[key] = options[key];\n else\n _this[queryKey][key] = options[key];\n });\n }\n\n // Perform query with both common and type-specific parameters\n futureComponentData = _this.$$resource.fetch(null, type + 'list',\n angular.extend(_this[queryKey], _this.$query));\n\n // Invalidate cached results of other type if $query has changed\n otherType = (type == 'tasks')? '$events' : '$tasks';\n if (dirty) {\n delete Component[otherType];\n Component.$log.debug('force reload of ' + otherType);\n }\n\n return _this.$unwrapCollection(type, futureComponentData);\n });\n };\n\n /**\n * @function $find\n * @desc Fetch a component from a specific calendar.\n * @param {string} calendarId - the calendar ID\n * @param {string} componentId - the component ID\n * @param {string} [occurrenceId] - the component ID\n * @see {@link Calendar.$getComponent}\n */\n Component.$find = function(calendarId, componentId, occurrenceId) {\n var futureComponentData, path = [calendarId, componentId];\n\n if (occurrenceId)\n path.push(occurrenceId);\n\n futureComponentData = this.$$resource.fetch(path.join('/'), 'view');\n\n return new Component(futureComponentData);\n };\n\n /**\n * @function filterCategories\n * @desc Search for categories matching some criterias\n * @param {string} search - the search string to match\n * @returns a collection of strings\n */\n Component.filterCategories = function(query) {\n var re = new RegExp(query, 'i');\n return _.filter(_.keys(Component.$categories), function(category) {\n return category.search(re) != -1;\n });\n };\n\n /**\n * @function saveSelectedList\n * @desc Save to the user's settings the currently selected list.\n * @param {string} componentType - either \"events\" or \"tasks\"\n * @returns a promise of the HTTP operation\n */\n Component.saveSelectedList = function(componentType) {\n return this.$$resource.post(null, 'saveSelectedList', { list: componentType + 'ListView' });\n };\n\n /**\n * @function $eventsBlocksForView\n * @desc Events blocks for a specific week\n * @param {string} view - Either 'day' or 'week'\n * @param {Date} type - Date of any day of the desired period\n * @returns a promise of a collection of objects describing the events blocks\n */\n Component.$eventsBlocksForView = function(view, date) {\n var viewAction, startDate, endDate, params;\n\n if (view == 'day') {\n viewAction = 'dayView';\n startDate = endDate = date;\n }\n else if (view == 'multicolumnday') {\n viewAction = 'multicolumndayView';\n startDate = endDate = date;\n }\n else if (view == 'week') {\n viewAction = 'weekView';\n startDate = date.beginOfWeek();\n endDate = new Date();\n endDate.setTime(startDate.getTime());\n endDate.addDays(6);\n }\n else if (view == 'month') {\n viewAction = 'monthView';\n startDate = date;\n startDate.setDate(1);\n startDate = startDate.beginOfWeek();\n endDate = new Date();\n endDate.setTime(startDate.getTime());\n endDate.setMonth(endDate.getMonth() + 1);\n endDate.addDays(-1);\n endDate = endDate.endOfWeek();\n }\n return this.$eventsBlocks(viewAction, startDate, endDate);\n };\n\n /**\n * @function $eventsBlocks\n * @desc Events blocks for a specific view and period\n * @param {string} view - Either 'day', 'multicolumnday', 'week' or 'month'\n * @param {Date} startDate - period's start date\n * @param {Date} endDate - period's end date\n * @returns a promise of a collection of objects describing the events blocks\n */\n Component.$eventsBlocks = function(view, startDate, endDate) {\n var params, futureComponentData, i, dates = [],\n deferred = Component.$q.defer();\n\n params = { view: view.toLowerCase(), sd: startDate.getDayString(), ed: endDate.getDayString() };\n Component.$log.debug('eventsblocks ' + JSON.stringify(params, undefined, 2));\n futureComponentData = this.$$resource.fetch(null, 'eventsblocks', params);\n futureComponentData.then(function(views) {\n var reduceComponent, associateComponent;\n\n reduceComponent = function(objects, eventData, i) {\n var componentData = _.object(this.eventsFields, eventData),\n start = new Date(componentData.c_startdate * 1000);\n componentData.hour = start.getHourString();\n objects.push(new Component(componentData));\n return objects;\n };\n\n associateComponent = function(block) {\n block.component = this[block.nbr];\n };\n\n Component.$views = [];\n Component.$timeout(function() {\n _.forEach(views, function(data) {\n var components = [], blocks = {}, allDayBlocks = {}, viewData;\n\n // Instantiate Component objects\n _.reduce(data.events, reduceComponent, components, data);\n\n // Associate Component objects to blocks positions\n _.forEach(_.flatten(data.blocks), associateComponent, components);\n\n // Associate Component objects to all-day blocks positions\n _.each(_.flatten(data.allDayBlocks), associateComponent, components);\n\n // Build array of dates\n if (dates.length === 0)\n for (i = 0; i < data.blocks.length; i++) {\n dates.push(startDate.getDayString());\n startDate.addDays(1);\n }\n\n // Convert array of blocks to object with days as keys\n for (i = 0; i < data.blocks.length; i++) {\n blocks[dates[i]] = data.blocks[i];\n }\n\n // Convert array of all-day blocks to object with days as keys\n for (i = 0; i < data.allDayBlocks.length; i++) {\n allDayBlocks[dates[i]] = data.allDayBlocks[i];\n }\n\n Component.$log.debug('blocks ready (' + _.flatten(data.blocks).length + ')');\n Component.$log.debug('all day blocks ready (' + _.flatten(data.allDayBlocks).length + ')');\n\n // Save the blocks to the object model\n viewData = { blocks: blocks, allDayBlocks: allDayBlocks };\n if (data.id && data.calendarName) {\n // The multicolumnday view also includes calendar information\n viewData.id = data.id;\n viewData.calendarName = data.calendarName;\n }\n Component.$views.push(viewData);\n });\n\n deferred.resolve(Component.$views);\n });\n }, deferred.reject);\n\n return deferred.promise;\n };\n\n /**\n * @function $unwrapCollection\n * @desc Unwrap a promise and instanciate new Component objects using received data.\n * @param {string} type - either 'events' or 'tasks'\n * @param {promise} futureComponentData - a promise of the components' metadata\n * @returns a promise of the HTTP operation\n */\n Component.$unwrapCollection = function(type, futureComponentData) {\n var _this = this,\n components = [];\n\n return futureComponentData.then(function(data) {\n return Component.$timeout(function() {\n var fields = _.invoke(data.fields, 'toLowerCase');\n\n // Instanciate Component objects\n _.reduce(data[type], function(components, componentData, i) {\n var data = _.object(fields, componentData);\n components.push(new Component(data));\n return components;\n }, components);\n\n Component.$log.debug('list of ' + type + ' ready (' + components.length + ')');\n\n // Save the list of components to the object model\n Component['$' + type] = components;\n\n return components;\n });\n });\n };\n\n /**\n * @function init\n * @memberof Component.prototype\n * @desc Extend instance with required attributes and new data.\n * @param {object} data - attributes of component\n */\n Component.prototype.init = function(data) {\n var _this = this;\n\n this.categories = [];\n this.repeat = {};\n this.alarm = { action: 'display', quantity: 5, unit: 'MINUTES', reference: 'BEFORE', relation: 'START' };\n this.status = 'not-specified';\n angular.extend(this, data);\n\n Component.$Preferences.ready().then(function() {\n var type = (_this.type == 'appointment')? 'Events' : 'Tasks';\n\n // Set default values from user's defaults\n _this.classification = _this.classification ||\n Component.$Preferences.defaults['SOGoCalendar' + type + 'DefaultClassification'].toLowerCase();\n });\n\n this.delta = 60;\n\n if (this.startDate)\n this.start = new Date(this.startDate.substring(0,10) + ' ' + this.startDate.substring(11,16));\n else if (this.type == 'appointment') {\n this.start = new Date();\n this.start.setMinutes(Math.round(this.start.getMinutes()/15)*15);\n }\n\n if (this.endDate)\n this.end = new Date(this.endDate.substring(0,10) + ' ' + this.endDate.substring(11,16));\n else if (this.type == 'appointment') {\n this.end = new Date();\n this.end.setMinutes(Math.round(this.end.getMinutes()/15)*15);\n this.end.addMinutes(this.delta);\n }\n\n if (this.dueDate)\n this.due = new Date(this.dueDate.substring(0,10) + ' ' + this.dueDate.substring(11,16));\n\n // Parse recurrence rule definition and initialize default values\n this.$isRecurrent = angular.isDefined(data.repeat);\n if (this.repeat.days) {\n var byDayMask = _.find(this.repeat.days, function(o) {\n return angular.isDefined(o.occurrence);\n });\n if (byDayMask)\n if (this.repeat.frequency == 'yearly')\n this.repeat.year = { byday: true };\n this.repeat.month = {\n type: 'byday',\n occurrence: byDayMask.occurrence.toString(),\n day: byDayMask.day\n };\n }\n else {\n this.repeat.days = [];\n }\n if (angular.isUndefined(this.repeat.frequency))\n this.repeat.frequency = 'never';\n if (angular.isUndefined(this.repeat.interval))\n this.repeat.interval = 1;\n if (angular.isUndefined(this.repeat.month))\n this.repeat.month = { occurrence: '1', day: 'SU', type: 'bymonthday' };\n if (angular.isUndefined(this.repeat.monthdays))\n // TODO: initialize this.repeat.monthdays with month day of start date\n this.repeat.monthdays = [];\n if (angular.isUndefined(this.repeat.months))\n // TODO: initialize this.repeat.months with month of start date\n this.repeat.months = [];\n if (angular.isUndefined(this.repeat.year))\n this.repeat.year = {};\n if (this.repeat.count)\n this.repeat.end = 'count';\n else if (this.repeat.until) {\n this.repeat.end = 'until';\n this.repeat.until = this.repeat.until.substring(0,10).asDate();\n }\n else\n this.repeat.end = 'never';\n this.$hasCustomRepeat = this.hasCustomRepeat();\n\n if (this.isNew) {\n // Set default alarm\n Component.$Preferences.ready().then(function() {\n var units = { M: 'MINUTES', H: 'HOURS', D: 'DAYS', W: 'WEEKS' };\n var match = /-PT?([0-9]+)([MHDW])/.exec(Component.$Preferences.defaults.SOGoCalendarDefaultReminder);\n if (match) {\n _this.$hasAlarm = true;\n _this.alarm.quantity = parseInt(match[1]);\n _this.alarm.unit = units[match[2]];\n }\n });\n }\n else {\n this.$hasAlarm = angular.isDefined(data.alarm);\n }\n\n // Allow the component to be moved to a different calendar\n this.destinationCalendar = this.pid;\n\n if (this.organizer && this.organizer.email) {\n this.organizer.$image = Component.$gravatar(this.organizer.email, 32);\n }\n\n // Load freebusy of attendees\n this.freebusy = this.updateFreeBusyCoverage();\n\n if (this.attendees) {\n _.each(this.attendees, function(attendee) {\n attendee.image = Component.$gravatar(attendee.email, 32);\n _this.updateFreeBusy(attendee);\n });\n }\n\n this.selected = false;\n };\n\n /**\n * @function hasCustomRepeat\n * @memberof Component.prototype\n * @desc Check if the component has a custom recurrence rule.\n * @returns true if the recurrence rule requires the full recurrence editor\n */\n Component.prototype.hasCustomRepeat = function() {\n var b = angular.isDefined(this.repeat) &&\n (this.repeat.interval > 1 ||\n this.repeat.days && this.repeat.days.length > 0 ||\n this.repeat.monthdays && this.repeat.monthdays.length > 0 ||\n this.repeat.months && this.repeat.months.length > 0);\n return b;\n };\n\n /**\n * @function isEditable\n * @memberof Component.prototype\n * @desc Check if the component is editable and not an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isEditable = function() {\n return (!this.occurrenceId && !this.isReadOnly);\n };\n\n /**\n * @function isEditableOccurrence\n * @memberof Component.prototype\n * @desc Check if the component is editable and an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isEditableOccurrence = function() {\n return (this.occurrenceId && !this.isReadOnly);\n };\n\n /**\n * @function isInvitation\n * @memberof Component.prototype\n * @desc Check if the component an invitation and not an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isInvitation = function() {\n return (!this.occurrenceId && this.userHasRSVP);\n };\n\n /**\n * @function isInvitationOccurrence\n * @memberof Component.prototype\n * @desc Check if the component an invitation and an occurrence of a recurrent component\n * @returns true or false\n */\n Component.prototype.isInvitationOccurrence = function() {\n return (this.occurrenceId && this.userHasRSVP);\n };\n\n /**\n * @function isReadOnly\n * @memberof Component.prototype\n * @desc Check if the component is not editable and not an invitation\n * @returns true or false\n */\n Component.prototype.isReadOnly = function() {\n return (this.isReadOnly && !this.userHasRSVP);\n };\n\n /**\n * @function enablePercentComplete\n * @memberof Component.prototype\n * @desc Check if the percent completion should be enabled with respect to the\n * component's type and status.\n * @returns true if the percent completion should be displayed\n */\n Component.prototype.enablePercentComplete = function() {\n return (this.component = 'vtodo' &&\n this.status != 'not-specified' &&\n this.status != 'cancelled');\n };\n\n /**\n * @function coversFreeBusy\n * @memberof Component.prototype\n * @desc Check if a specific quarter matches the component's period\n * @returns true if the quarter covers the component's period\n */\n Component.prototype.coversFreeBusy = function(day, hour, quarter) {\n var b = (angular.isDefined(this.freebusy[day]) &&\n angular.isDefined(this.freebusy[day][hour]) &&\n this.freebusy[day][hour][quarter] == 1);\n return b;\n };\n\n /**\n * @function updateFreeBusyCoverage\n * @memberof Component.prototype\n * @desc Build a 15-minute-based representation of the component's period.\n * @returns an object literal hashed by days and hours and arrays of four 1's and 0's\n */\n Component.prototype.updateFreeBusyCoverage = function() {\n var _this = this, freebusy = {};\n\n if (this.start && this.end) {\n var roundedStart = new Date(this.start.getTime()),\n roundedEnd = new Date(this.end.getTime()),\n startQuarter = parseInt(roundedStart.getMinutes()/15 + 0.5),\n endQuarter = parseInt(roundedEnd.getMinutes()/15 + 0.5);\n roundedStart.setMinutes(15*startQuarter);\n roundedEnd.setMinutes(15*endQuarter);\n\n _.each(roundedStart.daysUpTo(roundedEnd), function(date, index) {\n var currentDay = date.getDate(),\n dayKey = date.getDayString(),\n hourKey;\n if (dayKey == _this.start.getDayString()) {\n hourKey = date.getHours().toString();\n freebusy[dayKey] = {};\n freebusy[dayKey][hourKey] = [];\n while (startQuarter > 0) {\n freebusy[dayKey][hourKey].push(0);\n startQuarter--;\n }\n }\n else {\n date = date.beginOfDay();\n freebusy[dayKey] = {};\n }\n while (date.getTime() < _this.end.getTime() &&\n date.getDate() == currentDay) {\n hourKey = date.getHours().toString();\n if (angular.isUndefined(freebusy[dayKey][hourKey]))\n freebusy[dayKey][hourKey] = [];\n freebusy[dayKey][hourKey].push(1);\n date.addMinutes(15);\n }\n });\n return freebusy;\n }\n };\n\n /**\n * @function updateFreeBusy\n * @memberof Component.prototype\n * @desc Update the freebusy information for the component's period for a specific attendee.\n * @param {Object} card - an Card object instance of the attendee\n */\n Component.prototype.updateFreeBusy = function(attendee) {\n var params, url, days;\n if (attendee.uid) {\n params =\n {\n sday: this.start.getDayString(),\n eday: this.end.getDayString()\n };\n url = ['..', '..', attendee.uid, 'freebusy.ifb'];\n days = _.map(this.start.daysUpTo(this.end), function(day) { return day.getDayString(); });\n\n if (angular.isUndefined(attendee.freebusy))\n attendee.freebusy = {};\n\n // Fetch FreeBusy information\n Component.$$resource.fetch(url.join('/'), 'ajaxRead', params).then(function(data) {\n _.each(days, function(day) {\n var hour;\n\n if (angular.isUndefined(attendee.freebusy[day]))\n attendee.freebusy[day] = {};\n\n if (angular.isUndefined(data[day]))\n data[day] = {};\n\n for (var i = 0; i <= 23; i++) {\n hour = i.toString();\n if (data[day][hour])\n attendee.freebusy[day][hour] = [\n data[day][hour][\"0\"],\n data[day][hour][\"15\"],\n data[day][hour][\"30\"],\n data[day][hour][\"45\"]\n ];\n else\n attendee.freebusy[day][hour] = [0, 0, 0, 0];\n }\n });\n });\n }\n };\n\n /**\n * @function getClassName\n * @memberof Component.prototype\n * @desc Return the component CSS class name based on its container (calendar) ID.\n * @param {string} [base] - the prefix to add to the class name (defaults to \"fg\")\n * @returns a string representing the foreground CSS class name\n */\n Component.prototype.getClassName = function(base) {\n if (angular.isUndefined(base))\n base = 'fg';\n return base + '-folder' + (this.destinationCalendar || this.c_folder);\n };\n\n /**\n * @function addAttendee\n * @memberof Component.prototype\n * @desc Add an attendee and fetch his freebusy info.\n * @param {Object} card - an Card object instance to be added to the attendees list\n */\n Component.prototype.addAttendee = function(card) {\n var attendee, url, params;\n if (card) {\n attendee = {\n name: card.c_cn,\n email: card.$preferredEmail(),\n role: 'req-participant',\n status: 'needs-action',\n uid: card.c_uid\n };\n if (!_.find(this.attendees, function(o) {\n return o.email == attendee.email;\n })) {\n attendee.image = Component.$gravatar(attendee.email, 32);\n if (this.attendees)\n this.attendees.push(attendee);\n else\n this.attendees = [attendee];\n this.updateFreeBusy(attendee);\n }\n }\n };\n\n /**\n * @function hasAttendee\n * @memberof Component.prototype\n * @desc Verify if one of the email addresses of a Card instance matches an attendee.\n * @param {Object} card - an Card object instance\n * @returns true if the Card matches an attendee\n */\n Component.prototype.hasAttendee = function(card) {\n var attendee = _.find(this.attendees, function(attendee) {\n return _.find(card.emails, function(email) {\n return email.value == attendee.email;\n });\n });\n return angular.isDefined(attendee);\n };\n\n /**\n * @function deleteAttendee\n * @memberof Component.prototype\n * @desc Remove an attendee from the component\n * @param {Object} attendee - an object literal defining an attendee\n */\n Component.prototype.deleteAttendee = function(attendee) {\n var index = _.findIndex(this.attendees, function(currentAttendee) {\n return currentAttendee.email == attendee.email;\n });\n this.attendees.splice(index, 1);\n };\n\n /**\n * @function canRemindAttendeesByEmail\n * @memberof Component.prototype\n * @desc Verify if the component's reminder must be send by email and if it has at least one attendee.\n * @returns true if attendees can receive a reminder by email\n */\n Component.prototype.canRemindAttendeesByEmail = function() {\n return this.alarm.action == 'email' &&\n !this.isReadOnly &&\n this.attendees && this.attendees.length > 0;\n };\n\n /**\n * @function addAttachUrl\n * @memberof Component.prototype\n * @desc Add a new attach URL if not already defined\n * @param {string} attachUrl - the URL\n * @returns the number of values in the list of attach URLs\n */\n Component.prototype.addAttachUrl = function(attachUrl) {\n if (angular.isUndefined(this.attachUrls)) {\n this.attachUrls = [{value: attachUrl}];\n }\n else {\n for (var i = 0; i < this.attachUrls.length; i++) {\n if (this.attachUrls[i].value == attachUrl) {\n break;\n }\n }\n if (i == this.attachUrls.length)\n this.attachUrls.push({value: attachUrl});\n }\n return this.attachUrls.length - 1;\n };\n\n /**\n * @function deleteAttachUrl\n * @memberof Component.prototype\n * @desc Remove an attach URL\n * @param {number} index - the URL index in the list of attach URLs\n */\n Component.prototype.deleteAttachUrl = function(index) {\n if (index > -1 && this.attachUrls.length > index) {\n this.attachUrls.splice(index, 1);\n }\n };\n\n /**\n * @function $addDueDate\n * @memberof Component.prototype\n * @desc Add a due date\n */\n Component.prototype.$addDueDate = function() {\n this.due = new Date();\n this.due.setMinutes(Math.round(this.due.getMinutes()/15)*15);\n this.dueDate = this.due.toISOString();\n };\n\n /**\n * @function $deleteDueDate\n * @memberof Component.prototype\n * @desc Delete a due date\n */\n Component.prototype.$deleteDueDate = function() {\n delete this.due;\n delete this.dueDate;\n };\n\n /**\n * @function $addStartDate\n * @memberof Component.prototype\n * @desc Add a start date\n */\n Component.prototype.$addStartDate = function() {\n this.start = new Date();\n this.start.setMinutes(Math.round(this.start.getMinutes()/15)*15);\n };\n\n /**\n * @function $deleteStartDate\n * @memberof Component.prototype\n * @desc Delete a start date\n */\n Component.prototype.$deleteStartDate = function() {\n delete this.start;\n delete this.startDate;\n };\n\n /**\n * @function $reset\n * @memberof Component.prototype\n * @desc Reset the original state the component's data.\n */\n Component.prototype.$reset = function() {\n var _this = this;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n delete _this[key];\n }\n });\n this.init(this.$shadowData);\n this.$shadowData = this.$omit(true);\n };\n\n /**\n * @function reply\n * @memberof Component.prototype\n * @desc Reply to an invitation.\n * @returns a promise of the HTTP operation\n */\n Component.prototype.$reply = function() {\n var _this = this, data, path = [this.pid, this.id];\n\n if (this.occurrenceId)\n path.push(this.occurrenceId);\n\n data = {\n reply: this.reply,\n delegatedTo: this.delegatedTo,\n alarm: this.$hasAlarm? this.alarm : {}\n };\n\n return Component.$$resource.save(path.join('/'), data, { action: 'rsvpAppointment' })\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n /**\n * @function $save\n * @memberof Component.prototype\n * @desc Save the component to the server.\n */\n Component.prototype.$save = function() {\n var _this = this, options, path = [this.pid, this.id];\n\n if (this.isNew)\n options = { action: 'saveAs' + this.type.capitalize() };\n\n if (this.occurrenceId)\n path.push(this.occurrenceId);\n\n return Component.$$resource.save(path.join('/'), this.$omit(), options)\n .then(function(data) {\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit(true);\n return data;\n });\n };\n\n /**\n * @function $delete\n * @memberof Component.prototype\n * @desc Delete the component from the server.\n * @param {boolean} occurrenceOnly - delete this occurrence only\n */\n Component.prototype.remove = function(occurrenceOnly) {\n var _this = this, path = [this.pid, this.id];\n\n if (occurrenceOnly && this.occurrenceId)\n path.push(this.occurrenceId);\n\n return Component.$$resource.remove(path.join('/'));\n };\n\n /**\n * @function $unwrap\n * @memberof Component.prototype\n * @desc Unwrap a promise.\n * @param {promise} futureComponentData - a promise of some of the Component's data\n */\n Component.prototype.$unwrap = function(futureComponentData) {\n var _this = this;\n\n // Expose the promise\n this.$futureComponentData = futureComponentData;\n\n // Resolve the promise\n this.$futureComponentData.then(function(data) {\n _this.init(data);\n // Make a copy of the data for an eventual reset\n _this.$shadowData = _this.$omit();\n }, function(data) {\n angular.extend(_this, data);\n _this.isError = true;\n Component.$log.error(_this.error);\n });\n };\n\n /**\n * @function $omit\n * @memberof Component.prototype\n * @desc Return a sanitized object used to send to the server.\n * @return an object literal copy of the Component instance\n */\n Component.prototype.$omit = function() {\n var component = {}, date;\n angular.forEach(this, function(value, key) {\n if (key != 'constructor' && key[0] != '$') {\n component[key] = angular.copy(value);\n }\n });\n\n // Format dates and times\n component.startDate = component.start ? formatDate(component.start) : '';\n component.startTime = component.start ? formatTime(component.start) : '';\n component.endDate = component.end ? formatDate(component.end) : '';\n component.endTime = component.end ? formatTime(component.end) : '';\n component.dueDate = component.due ? formatDate(component.due) : '';\n component.dueTime = component.due ? formatTime(component.due) : '';\n\n // Update recurrence definition depending on selections\n if (this.$hasCustomRepeat) {\n if (this.repeat.frequency == 'monthly' && this.repeat.month.type && this.repeat.month.type == 'byday' ||\n this.repeat.frequency == 'yearly' && this.repeat.year.byday) {\n // BYDAY mask for a monthly or yearly recurrence\n delete component.repeat.monthdays;\n component.repeat.days = [{ day: this.repeat.month.day, occurrence: this.repeat.month.occurrence.toString() }];\n }\n else if (this.repeat.month.type) {\n // montly recurrence by month days or yearly by month\n delete component.repeat.days;\n }\n }\n else if (this.repeat.frequency) {\n component.repeat = { frequency: this.repeat.frequency };\n }\n if (this.repeat.frequency) {\n if (this.repeat.end == 'until' && this.repeat.until)\n component.repeat.until = this.repeat.until.stringWithSeparator('-');\n else if (this.repeat.end == 'count' && this.repeat.count)\n component.repeat.count = this.repeat.count;\n else {\n delete component.repeat.until;\n delete component.repeat.count;\n }\n }\n else {\n delete component.repeat;\n }\n\n if (this.$hasAlarm) {\n if (this.alarm.action && this.alarm.action == 'email' &&\n !(this.attendees && this.attendees.length > 0)) {\n // No attendees; email reminder must be sent to organizer only\n this.alarm.attendees = 0;\n this.alarm.organizer = 1;\n }\n }\n else {\n component.alarm = {};\n }\n\n function formatTime(date) {\n var hours = date.getHours();\n if (hours < 10) hours = '0' + hours;\n\n var minutes = date.getMinutes();\n if (minutes < 10) minutes = '0' + minutes;\n return hours + ':' + minutes;\n }\n\n function formatDate(date) {\n var year = date.getYear();\n if (year < 1000) year += 1900;\n\n var month = '' + (date.getMonth() + 1);\n if (month.length == 1)\n month = '0' + month;\n\n var day = '' + date.getDate();\n if (day.length == 1)\n day = '0' + day;\n\n return year + '-' + month + '-' + day;\n }\n\n return component;\n };\n\n})();\n"]} \ No newline at end of file diff --git a/UI/WebServerResources/js/vendor/angular-animate.js b/UI/WebServerResources/js/vendor/angular-animate.js index 43c9f6c29..194829818 100644 --- a/UI/WebServerResources/js/vendor/angular-animate.js +++ b/UI/WebServerResources/js/vendor/angular-animate.js @@ -1,5 +1,5 @@ /** - * @license AngularJS v1.4.6 + * @license AngularJS v1.4.7 * (c) 2010-2015 Google, Inc. http://angularjs.org * License: MIT */ @@ -373,12 +373,6 @@ function concatWithSpace(a,b) { return a + ' ' + b; } -function $$BodyProvider() { - this.$get = ['$document', function($document) { - return jqLite($document[0].body); - }]; -} - var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) { var queue, cancelFn; @@ -629,7 +623,7 @@ var ANIMATE_TIMER_KEY = '$$animateCss'; * * `event` - The DOM event (e.g. enter, leave, move). When used, a generated CSS class of `ng-EVENT` and `ng-EVENT-active` will be applied * to the element during the animation. Multiple events can be provided when spaces are used as a separator. (Note that this will not perform any DOM operation.) * * `easing` - The CSS easing value that will be applied to the transition or keyframe animation (or both). - * * `transition` - The raw CSS transition style that will be used (e.g. `1s linear all`). + * * `transitionStyle` - The raw CSS transition style that will be used (e.g. `1s linear all`). * * `keyframeStyle` - The raw CSS keyframe animation style that will be used (e.g. `1s my_animation linear`). * * `from` - The starting CSS styles (a key/value object) that will be applied at the start of the animation. * * `to` - The ending CSS styles (a key/value object) that will be applied across the animation via a CSS transition. @@ -646,6 +640,10 @@ var ANIMATE_TIMER_KEY = '$$animateCss'; * * `staggerIndex` - The numeric index representing the stagger item (e.g. a value of 5 is equal to the sixth item in the stagger; therefore when a * * `stagger` option value of `0.1` is used then there will be a stagger delay of `600ms`) * * `applyClassesEarly` - Whether or not the classes being added or removed will be used when detecting the animation. This is set by `$animate` when enter/leave/move animations are fired to ensure that the CSS classes are resolved in time. (Note that this will prevent any transitions from occuring on the classes being added and removed.) + * * `cleanupStyles` - Whether or not the provided `from` and `to` styles will be removed once + * the animation is closed. This is useful for when the styles are used purely for the sake of + * the animation and do not have a lasting visual effect on the element (e.g. a colapse and open animation). + * By default this value is set to `false`. * * @return {object} an object with start and end methods and details about the animation. * @@ -766,6 +764,23 @@ function createLocalCacheLookup() { }; } +// we do not reassign an already present style value since +// if we detect the style property value again we may be +// detecting styles that were added via the `from` styles. +// We make use of `isDefined` here since an empty string +// or null value (which is what getPropertyValue will return +// for a non-existing style) will still be marked as a valid +// value for the style (a falsy value implies that the style +// is to be removed at the end of the animation). If we had a simple +// "OR" statement then it would not be enough to catch that. +function registerRestorableStyles(backup, node, properties) { + forEach(properties, function(prop) { + backup[prop] = isDefined(backup[prop]) + ? backup[prop] + : node.style.getPropertyValue(prop); + }); +} + var $AnimateCssProvider = ['$animateProvider', function($animateProvider) { var gcsLookup = createLocalCacheLookup(); var gcsStaggerLookup = createLocalCacheLookup(); @@ -866,6 +881,7 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) { } return function init(element, options) { + var restoreStyles = {}; var node = getDomNode(element); if (!node || !node.parentNode @@ -1067,7 +1083,12 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) { stagger.animationDuration === 0; } - applyAnimationFromStyles(element, options); + if (options.from) { + if (options.cleanupStyles) { + registerRestorableStyles(restoreStyles, node, Object.keys(options.from)); + } + applyAnimationFromStyles(element, options); + } if (flags.blockTransition || flags.blockKeyframeAnimation) { applyBlocking(maxDuration); @@ -1134,6 +1155,13 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) { applyAnimationClasses(element, options); applyAnimationStyles(element, options); + if (Object.keys(restoreStyles).length) { + forEach(restoreStyles, function(value, prop) { + value ? node.style.setProperty(prop, value) + : node.style.removeProperty(prop); + }); + } + // the reason why we have this option is to allow a synchronous closing callback // that is fired as SOON as the animation ends (when the CSS is removed) or if // the animation never takes off at all. A good example is a leave animation since @@ -1328,7 +1356,12 @@ var $AnimateCssProvider = ['$animateProvider', function($animateProvider) { } element.on(events.join(' '), onAnimationProgress); - applyAnimationToStyles(element, options); + if (options.to) { + if (options.cleanupStyles) { + registerRestorableStyles(restoreStyles, node, Object.keys(options.to)); + } + applyAnimationToStyles(element, options); + } } function onAnimationExpired() { @@ -1382,16 +1415,25 @@ var $$AnimateCssDriverProvider = ['$$animationProvider', function($$animationPro var NG_OUT_ANCHOR_CLASS_NAME = 'ng-anchor-out'; var NG_IN_ANCHOR_CLASS_NAME = 'ng-anchor-in'; - this.$get = ['$animateCss', '$rootScope', '$$AnimateRunner', '$rootElement', '$$body', '$sniffer', '$$jqLite', - function($animateCss, $rootScope, $$AnimateRunner, $rootElement, $$body, $sniffer, $$jqLite) { + function isDocumentFragment(node) { + return node.parentNode && node.parentNode.nodeType === 11; + } + + this.$get = ['$animateCss', '$rootScope', '$$AnimateRunner', '$rootElement', '$sniffer', '$$jqLite', '$document', + function($animateCss, $rootScope, $$AnimateRunner, $rootElement, $sniffer, $$jqLite, $document) { // only browsers that support these properties can render animations if (!$sniffer.animations && !$sniffer.transitions) return noop; - var bodyNode = getDomNode($$body); + var bodyNode = $document[0].body; var rootNode = getDomNode($rootElement); - var rootBodyElement = jqLite(bodyNode.parentNode === rootNode ? bodyNode : rootNode); + var rootBodyElement = jqLite( + // this is to avoid using something that exists outside of the body + // we also special case the doc fragement case because our unit test code + // appends the $rootElement to the body after the app has been bootstrapped + isDocumentFragment(rootNode) || bodyNode.contains(rootNode) ? rootNode : bodyNode + ); var applyAnimationClasses = applyAnimationClassesFactory($$jqLite); @@ -2018,15 +2060,33 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) { return (nO.addClass && nO.addClass === cO.removeClass) || (nO.removeClass && nO.removeClass === cO.addClass); }); - this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$body', '$$HashMap', + this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$HashMap', '$$animation', '$$AnimateRunner', '$templateRequest', '$$jqLite', '$$forceReflow', - function($$rAF, $rootScope, $rootElement, $document, $$body, $$HashMap, + function($$rAF, $rootScope, $rootElement, $document, $$HashMap, $$animation, $$AnimateRunner, $templateRequest, $$jqLite, $$forceReflow) { var activeAnimationsLookup = new $$HashMap(); var disabledElementsLookup = new $$HashMap(); var animationsEnabled = null; + function postDigestTaskFactory() { + var postDigestCalled = false; + return function(fn) { + // we only issue a call to postDigest before + // it has first passed. This prevents any callbacks + // from not firing once the animation has completed + // since it will be out of the digest cycle. + if (postDigestCalled) { + fn(); + } else { + $rootScope.$$postDigest(function() { + postDigestCalled = true; + fn(); + }); + } + }; + } + // Wait until all directive and route-related templates are downloaded and // compiled. The $templateRequest.totalPendingRequests variable keeps track of // all of the remote templates being currently downloaded. If there are no @@ -2089,14 +2149,6 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) { return matches; } - function triggerCallback(event, element, phase, data) { - $$rAF(function() { - forEach(findCallbacks(element, event), function(callback) { - callback(element, phase, data); - }); - }); - } - return { on: function(event, container, callback) { var node = extractElementNode(container); @@ -2191,6 +2243,9 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) { // These methods will become available after the digest has passed var runner = new $$AnimateRunner(); + // this is used to trigger callbacks in postDigest mode + var runInNextPostDigestOrNow = postDigestTaskFactory(); + if (isArray(options.addClass)) { options.addClass = options.addClass.join(' '); } @@ -2411,7 +2466,20 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) { return runner; function notifyProgress(runner, event, phase, data) { - triggerCallback(event, element, phase, data); + runInNextPostDigestOrNow(function() { + var callbacks = findCallbacks(element, event); + if (callbacks.length) { + // do not optimize this call here to RAF because + // we don't know how heavy the callback code here will + // be and if this code is buffered then this can + // lead to a performance regression. + $$rAF(function() { + forEach(callbacks, function(callback) { + callback(element, phase, data); + }); + }); + } + }); runner.progress(event, phase, data); } @@ -2454,7 +2522,8 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) { } function areAnimationsAllowed(element, parentElement, event) { - var bodyElementDetected = isMatchingElement(element, $$body) || element[0].nodeName === 'HTML'; + var bodyElement = jqLite($document[0].body); + var bodyElementDetected = isMatchingElement(element, bodyElement) || element[0].nodeName === 'HTML'; var rootElementDetected = isMatchingElement(element, $rootElement); var parentAnimationDetected = false; var animateChildren; @@ -2510,7 +2579,7 @@ var $$AnimateQueueProvider = ['$animateProvider', function($animateProvider) { if (!bodyElementDetected) { // we also need to ensure that the element is or will be apart of the body element // otherwise it is pointless to even issue an animation to be rendered - bodyElementDetected = isMatchingElement(parentElement, $$body); + bodyElementDetected = isMatchingElement(parentElement, bodyElement); } parentElement = parentElement.parent(); @@ -3101,7 +3170,6 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) { /* global angularAnimateModule: true, - $$BodyProvider, $$AnimateAsyncRunFactory, $$rAFSchedulerFactory, $$AnimateChildrenDirective, @@ -3841,8 +3909,6 @@ var $$AnimationProvider = ['$animateProvider', function($animateProvider) { * Click here {@link ng.$animate to learn more about animations with `$animate`}. */ angular.module('ngAnimate', []) - .provider('$$body', $$BodyProvider) - .directive('ngAnimateChildren', $$AnimateChildrenDirective) .factory('$$rAFScheduler', $$rAFSchedulerFactory) diff --git a/UI/WebServerResources/js/vendor/angular-animate.min.js b/UI/WebServerResources/js/vendor/angular-animate.min.js index f5abc4e0d..c24d9e066 100644 --- a/UI/WebServerResources/js/vendor/angular-animate.min.js +++ b/UI/WebServerResources/js/vendor/angular-animate.min.js @@ -1,56 +1,56 @@ /* - AngularJS v1.4.6 + AngularJS v1.4.7 (c) 2010-2015 Google, Inc. http://angularjs.org License: MIT */ -(function(F,x,Oa){'use strict';function va(a,b,c){if(!a)throw ngMinErr("areq",b||"?",c||"required");return a}function wa(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;Y(a)&&(a=a.join(" "));Y(b)&&(b=b.join(" "));return a+" "+b}function Fa(a){var b={};a&&(a.to||a.from)&&(b.to=a.to,b.from=a.from);return b}function V(a,b,c){var d="";a=Y(a)?a:a&&M(a)&&a.length?a.split(/\s+/):[];q(a,function(a,y){a&&0=a&&(a=h,h=0,b.push(e),e=[]);e.push(l.fn); -l.children.forEach(function(a){h++;c.push(a)});a--}e.length&&b.push(e);return b}(c)}var O=[],x=Q(a);return function(t,z,E){function h(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];q(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function S(a){var b=[],c={};q(a,function(a,g){var d=G(a.element),f=0<=["enter","move"].indexOf(a.event),d=a.structural?h(d):[];if(d.length){var e=f?"to":"from";q(d,function(a){var b=a.getAttribute("ng-animate-ref"); -c[b]=c[b]||{};c[b][e]={animationID:g,element:I(a)}})}else b.push(a)});var d={},f={};q(c,function(c,e){var h=c.from,r=c.to;if(h&&r){var J=a[h.animationID],k=a[r.animationID],B=h.animationID.toString();if(!f[B]){var l=f[B]={structural:!0,beforeStart:function(){J.beforeStart();k.beforeStart()},close:function(){J.close();k.close()},classes:u(J.classes,k.classes),from:J,to:k,anchors:[]};l.classes.length?b.push(l):(b.push(J),b.push(k))}f[B].anchors.push({out:h.element,"in":r.element})}else h=h?h.animationID: -r.animationID,r=h.toString(),d[r]||(d[r]=!0,b.push(a[h]))});return b}function u(a,b){a=a.split(" ");b=b.split(" ");for(var c=[],d=0;dC.expectedEndTime)?v.cancel(C.timer):p.push(r)}z&&(u=v(d,u,!1),p[0]={timer:u,expectedEndTime:k},p.push(r),a.data("$$animateCss",p));a.on(m.join(" "),l);ya(a,c)}} -function d(){var b=a.data("$$animateCss");if(b){for(var c=1;c=M&&b>=K&&(S=!0,r())}if(!s)if(g.parentNode){var H,m=[],k=function(a){if(S)z&&a&&(z=!1,r());else if(z=!a,D.animationDuration)if(a=ma(g,z),z)w.push(a);else{var b=w,c=b.indexOf(a);0<=a&&b.splice(c,1)}},p=0=a&&(a=m,m=0,b.push(f),f=[]);f.push(g.fn);g.children.forEach(function(a){m++;c.push(a)});a--}f.length&&b.push(f);return b}(c)}var $=[],t=P(a);return function(h,x,A){function Y(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];q(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function E(a){var b=[], +c={};q(a,function(a,e){var d=H(a.element),v=0<=["enter","move"].indexOf(a.event),d=a.structural?Y(d):[];if(d.length){var m=v?"to":"from";q(d,function(a){var b=a.getAttribute("ng-animate-ref");c[b]=c[b]||{};c[b][m]={animationID:e,element:J(a)}})}else b.push(a)});var e={},d={};q(c,function(c,m){var f=c.from,y=c.to;if(f&&y){var g=a[f.animationID],r=a[y.animationID],s=f.animationID.toString();if(!d[s]){var h=d[s]={structural:!0,beforeStart:function(){g.beforeStart();r.beforeStart()},close:function(){g.close(); +r.close()},classes:w(g.classes,r.classes),from:g,to:r,anchors:[]};h.classes.length?b.push(h):(b.push(g),b.push(r))}d[s].anchors.push({out:f.element,"in":y.element})}else f=f?f.animationID:y.animationID,y=f.toString(),e[y]||(e[y]=!0,b.push(a[f]))});return b}function w(a,b){a=a.split(" ");b=b.split(" ");for(var c=[],e=0;eF.expectedEndTime)?z.cancel(F.timer):k.push(m)}x&&(l=z(d,l,!1),k[0]={timer:l,expectedEndTime:s},k.push(m),a.data("$$animateCss",k));a.on(h.join(" "),f);c.to&&(c.cleanupStyles&&Da(v,n,Object.keys(c.to)),ya(a,c))}}function d(){var b=a.data("$$animateCss");if(b){for(var c=1;c=M&&b>=K&&(ua=!0,m())}if(!E)if(n.parentNode){var r,h=[],s=function(a){if(ua)l&&a&&(l=!1,m());else if(l=!a,B.animationDuration)if(a=ma(n,l),l)w.push(a);else{var b=w,c=b.indexOf(a);0<=a&&b.splice(c,1)}},k=0 My Content - * ``` - * - * ```css - * [layout] { - * box-sizing: border-box; - * display:flex; - * } - * [layout=column] { - * flex-direction : column - * } - * ``` - * - * Use of attribute selectors creates significant performance impacts in some - * browsers... mainly IE. - * - * This module registers directives that allow the same layout attributes to be - * interpreted and converted to class selectors. The directive will add equivalent classes to each element that - * contains a Layout directive. - * - * ```html - *
My Content
- *``` - * - * ```css - * .layout { - * box-sizing: border-box; - * display:flex; - * } - * .layout-column { - * flex-direction : column - * } - * ``` - */ - angular.module('material.core.layout', [ 'ng' ]) - - // Attribute directives with optional value(s) - - .directive('layout' , attributeWithObserve('layout' , true) ) - .directive('layoutSm' , attributeWithObserve('layout-sm' , true) ) - .directive('layoutGtSm' , attributeWithObserve('layout-gt-sm', true) ) - .directive('layoutLtMd' , warnAttrNotSupported('layout-lt-md',true) ) - .directive('layoutMd' , attributeWithObserve('layout-md' , true) ) - .directive('layoutGtMd' , attributeWithObserve('layout-gt-md', true) ) - .directive('layoutLtLg' , warnAttrNotSupported('layout-lt-lg',true) ) - .directive('layoutLg' , attributeWithObserve('layout-lg' , true) ) - .directive('layoutGtLg' , attributeWithObserve('layout-gt-lg', true) ) - - .directive('flex' , attributeWithObserve('flex' , true) ) - .directive('flexSm' , attributeWithObserve('flex-sm' , true) ) - .directive('flexGtSm' , attributeWithObserve('flex-gt-sm' , true) ) - .directive('flexLtMd' , warnAttrNotSupported('flex-lt-md' ,true) ) - .directive('flexMd' , attributeWithObserve('flex-md' , true) ) - .directive('flexGtMd' , attributeWithObserve('flex-gt-md' , true) ) - .directive('flexLtLg' , warnAttrNotSupported('flex-lt-lg' ,true) ) - .directive('flexLg' , attributeWithObserve('flex-lg' , true) ) - .directive('flexGtLg' , attributeWithObserve('flex-gt-lg' , true) ) - - // Attribute directives with optional value(s) but directiveName is NOT added as a class - - .directive('layoutAlign' , attributeWithObserve('layout-align') ) - .directive('layoutAlignSm' , attributeWithObserve('layout-align-sm') ) - .directive('layoutAlignGtSm' , attributeWithObserve('layout-align-gt-sm') ) - .directive('layoutAlignLtMd' , warnAttrNotSupported('layout-align-lt-md') ) - .directive('layoutAlignMd' , attributeWithObserve('layout-align-md') ) - .directive('layoutAlignGtMd' , attributeWithObserve('layout-align-gt-md') ) - .directive('layoutAlignLtLg' , warnAttrNotSupported('layout-align-lt-lg') ) - .directive('layoutAlignLg' , attributeWithObserve('layout-align-lg') ) - .directive('layoutAlignGtLg' , attributeWithObserve('layout-align-gt-lg') ) - - .directive('flexOrder' , attributeWithObserve('flex-order') ) - .directive('flexOrderSm' , attributeWithObserve('flex-order-sm') ) - .directive('flexOrderGtSm' , attributeWithObserve('flex-order-gt-sm') ) - .directive('flexOrderLtMd' , warnAttrNotSupported('flex-order-lt-md') ) - .directive('flexOrderMd' , attributeWithObserve('flex-order-md') ) - .directive('flexOrderGtMd' , attributeWithObserve('flex-order-gt-md') ) - .directive('flexOrderLtLg' , warnAttrNotSupported('flex-order-lt-lg') ) - .directive('flexOrderLg' , attributeWithObserve('flex-order-lg') ) - .directive('flexOrderGtLg' , attributeWithObserve('flex-order-gt-lg') ) - - .directive('offset' , attributeWithObserve('offset') ) - .directive('offsetSm' , attributeWithObserve('offset-sm') ) - .directive('offsetGtSm' , attributeWithObserve('offset-gt-sm') ) - .directive('offsetLtMd' , warnAttrNotSupported('offset-lt-md') ) - .directive('offsetMd' , attributeWithObserve('offset-md') ) - .directive('offsetGtMd' , attributeWithObserve('offset-gt-md') ) - .directive('offsetLtLg' , warnAttrNotSupported('offset-lt-lg') ) - .directive('offsetLg' , attributeWithObserve('offset-lg') ) - .directive('offsetGtLg' , attributeWithObserve('offset-gt-lg') ) - - // Attribute directives with no value(s) - - .directive('layoutMargin' , attributeWithoutValue('layout-margin') ) - .directive('layoutPadding' , attributeWithoutValue('layout-padding') ) - .directive('layoutWrap' , attributeWithoutValue('layout-wrap') ) - .directive('layoutFill' , attributeWithoutValue('layout-fill') ) - - .directive('hide' , attributeWithoutValue('hide') ) - .directive('hideSm' , attributeWithoutValue('hide-sm') ) - .directive('hideGtSm' , attributeWithoutValue('hide-gt-sm') ) - .directive('hideLtMd' , warnAttrNotSupported ('hide-lt-md') ) - .directive('hideMd' , attributeWithoutValue('hide-md') ) - .directive('hideGtMd' , attributeWithoutValue('hide-gt-md') ) - .directive('hideLtLg' , warnAttrNotSupported ('hide-lt-lg') ) - .directive('hideLg' , attributeWithoutValue('hide-lg') ) - .directive('hideGtLg' , attributeWithoutValue('hide-gt-lg') ) - .directive('show' , attributeWithoutValue('show') ) - .directive('showSm' , attributeWithoutValue('show-sm') ) - .directive('showGtSm' , attributeWithoutValue('show-gt-sm') ) - .directive('showLtMd' , warnAttrNotSupported ('show-lt-md') ) - .directive('showMd' , attributeWithoutValue('show-md') ) - .directive('showGtMd' , attributeWithoutValue('show-gt-md') ) - .directive('showLtLg' , warnAttrNotSupported ('show-lt-lg') ) - .directive('showLg' , attributeWithoutValue('show-lg') ) - .directive('showGtLg' , attributeWithoutValue('show-gt-lg') ); - - /** - * These functions create registration functions for ngMaterial Layout attribute directives - * This provides easy translation to switch ngMaterial attribute selectors to - * CLASS selectors and directives; which has huge performance implications - * for IE Browsers - */ - - /** - * Creates a directive registration function where a possbile dynamic attribute value will - * be observed/watched. - * @param {string} className attribute name; eg `md-layout-gt-md` with value ="row" - * @param {boolean=} addDirectiveAsClass - */ - function attributeWithObserve(className, addDirectiveAsClass) { - return function() { - return { - restrict : 'A', - compile: function(element, attr) { - attributeValueToClass(null, element, attr); - - // Use for postLink to account for transforms after ng-transclude. - return attributeValueToClass; - } - }; - }; - - /** - * Add as transformed class selector(s), then - * remove the deprecated attribute selector - */ - function attributeValueToClass(scope, element, attr) { - var directive = attr.$normalize(className); - - // Add transformed class selector(s) - if (addDirectiveAsClass) { - element.addClass(className); - } - - if (attr[directive]) { - element.addClass(className + "-" + attr[directive].replace(/\s+/g, "-")); - } - - if ( scope ) { - /** - * After link-phase, do NOT remove deprecated layout attribute selector. - * Instead watch the attribute so interpolated data-bindings to layout - * selectors will continue to be supported. - * - * $observe the className and update with new class (after removing the last one) - * - * e.g. `layout="{{layoutDemo.direction}}"` will update... - */ - var lastClass; - - attr.$observe(function() { - - return attr[className]; - - }, function(newVal) { - - element.removeClass(lastClass); - - lastClass = className + "-" + String(newVal).replace(/\s+/g, "-"); - - element.addClass(lastClass); - - }); - - } - - } - } - - /** - * Creates a registration function with for ngMaterial Layout attribute directive. - * This is a `simple` transpose of attribute usage to class usage - */ - function attributeWithoutValue(className) { - return function() { - return { - restrict : 'A', - compile: function(element, attr) { - attributeToClass(null, element); - - // Use for postLink to account for transforms after ng-transclude. - return attributeToClass; - } - }; - }; - - /** - * Add as transformed class selector, then - * remove the deprecated attribute selector - */ - function attributeToClass(scope, element) { - element.addClass(className); - - if ( scope ) { - // After link-phase, remove deprecated layout attribute selector - element.removeAttr(className); - } - } - } - - /** - * Provide console warning that this layout attribute has been deprecated - */ - function warnAttrNotSupported(className) { - var parts = className.split("-"); - - return ["$log", function($log) { - $log.warn( className + "has been deprecated. Please use a `" + parts[0] + "-gt-` variant."); - return angular.noop; - }]; - - } - -})(); - })(); (function(){ "use strict"; @@ -3136,6 +2890,446 @@ function InterimElementProvider() { (function(){ "use strict"; +(function() { + 'use strict'; + + var $mdUtil, $interpolate; + + var SUFFIXES = /(-gt)?-(sm|md|lg)/g; + var WHITESPACE = /\s+/g; + + var FLEX_OPTIONS = ['grow', 'initial', 'auto', 'none']; + var LAYOUT_OPTIONS = ['row', 'column']; + var ALIGNMENT_OPTIONS = [ + "start start", "start center", "start end", + "center", "center center", "center start", "center end", + "end", "end center", "end start", "end end", + "space-around", "space-around center", "space-around start", "space-around end", + "space-between", "space-between center", "space-between start", "space-between end" + ]; + + + var config = { + /** + * Enable directive attribute-to-class conversions + */ + enabled: true, + + /** + * After translation to classname equivalents, remove the + * original Layout attribute + */ + removeAttributes : true, + + /** + * List of mediaQuery breakpoints and associated suffixes + * + * [ + * { suffix: "sm", mediaQuery: "screen and (max-width: 599px)" }, + * { suffix: "md", mediaQuery: "screen and (min-width: 600px) and (max-width: 959px)" } + * ] + */ + breakpoints: [] + }; + + /** + * The original ngMaterial Layout solution used attribute selectors and CSS. + * + * ```html + *
My Content
+ * ``` + * + * ```css + * [layout] { + * box-sizing: border-box; + * display:flex; + * } + * [layout=column] { + * flex-direction : column + * } + * ``` + * + * Use of attribute selectors creates significant performance impacts in some + * browsers... mainly IE. + * + * This module registers directives that allow the same layout attributes to be + * interpreted and converted to class selectors. The directive will add equivalent classes to each element that + * contains a Layout directive. + * + * ```html + *
My Content
+ *``` + * + * ```css + * .layout { + * box-sizing: border-box; + * display:flex; + * } + * .layout-column { + * flex-direction : column + * } + * ``` + */ + angular.module('material.core.layout', ['ng']) + + .directive('mdLayoutCss', disableLayoutDirective ) + + .directive('layout', attributeWithObserve('layout')) + .directive('layoutSm', attributeWithObserve('layout-sm')) + .directive('layoutGtSm', attributeWithObserve('layout-gt-sm')) + .directive('layoutMd', attributeWithObserve('layout-md')) + .directive('layoutGtMd', attributeWithObserve('layout-gt-md')) + .directive('layoutLg', attributeWithObserve('layout-lg')) + .directive('layoutGtLg', attributeWithObserve('layout-gt-lg')) + + .directive('flex', attributeWithObserve('flex')) + .directive('flexSm', attributeWithObserve('flex-sm')) + .directive('flexGtSm', attributeWithObserve('flex-gt-sm')) + .directive('flexMd', attributeWithObserve('flex-md')) + .directive('flexGtMd', attributeWithObserve('flex-gt-md')) + .directive('flexLg', attributeWithObserve('flex-lg')) + .directive('flexGtLg', attributeWithObserve('flex-gt-lg')) + + .directive('flexOrder', attributeWithObserve('flex-order')) + .directive('flexOrderSm', attributeWithObserve('flex-order-sm')) + .directive('flexOrderGtSm', attributeWithObserve('flex-order-gt-sm')) + .directive('flexOrderMd', attributeWithObserve('flex-order-md')) + .directive('flexOrderGtMd', attributeWithObserve('flex-order-gt-md')) + .directive('flexOrderLg', attributeWithObserve('flex-order-lg')) + .directive('flexOrderGtLg', attributeWithObserve('flex-order-gt-lg')) + + .directive('flexOffset', attributeWithObserve('flex-offset')) + .directive('flexOffsetSm', attributeWithObserve('flex-offset-sm')) + .directive('flexOffsetGtSm', attributeWithObserve('flex-offset-gt-sm')) + .directive('flexOffsetMd', attributeWithObserve('flex-offset-md')) + .directive('flexOffsetGtMd', attributeWithObserve('flex-offset-gt-md')) + .directive('flexOffsetLg', attributeWithObserve('flex-offset-lg')) + .directive('flexOffsetGtLg', attributeWithObserve('flex-offset-gt-lg')) + + .directive('layoutAlign', attributeWithObserve('layout-align')) + .directive('layoutAlignSm', attributeWithObserve('layout-align-sm')) + .directive('layoutAlignGtSm', attributeWithObserve('layout-align-gt-sm')) + .directive('layoutAlignMd', attributeWithObserve('layout-align-md')) + .directive('layoutAlignGtMd', attributeWithObserve('layout-align-gt-md')) + .directive('layoutAlignLg', attributeWithObserve('layout-align-lg')) + .directive('layoutAlignGtLg', attributeWithObserve('layout-align-gt-lg')) + + // Attribute directives with no value(s) + + .directive('hide', attributeWithoutValue('hide')) + .directive('hideSm', attributeWithoutValue('hide-sm')) + .directive('hideGtSm', attributeWithoutValue('hide-gt-sm')) + .directive('hideMd', attributeWithoutValue('hide-md')) + .directive('hideGtMd', attributeWithoutValue('hide-gt-md')) + .directive('hideLg', attributeWithoutValue('hide-lg')) + .directive('hideGtLg', attributeWithoutValue('hide-gt-lg')) + .directive('show', attributeWithoutValue('show')) + .directive('showSm', attributeWithoutValue('show-sm')) + .directive('showGtSm', attributeWithoutValue('show-gt-sm')) + .directive('showMd', attributeWithoutValue('show-md')) + .directive('showGtMd', attributeWithoutValue('show-gt-md')) + .directive('showLg', attributeWithoutValue('show-lg')) + .directive('showGtLg', attributeWithoutValue('show-gt-lg')) + + // Attribute directives with no value(s) and NO breakpoints + + .directive('layoutMargin', attributeWithoutValue('layout-margin')) + .directive('layoutPadding', attributeWithoutValue('layout-padding')) + .directive('layoutWrap', attributeWithoutValue('layout-wrap')) + .directive('layoutNoWrap', attributeWithoutValue('layout-no-wrap')) + .directive('layoutFill', attributeWithoutValue('layout-fill')) + + // !! Deprecated attributes: use the `-lt` (aka less-than) notations + + .directive('layoutLtMd', warnAttrNotSupported('layout-lt-md', true)) + .directive('layoutLtLg', warnAttrNotSupported('layout-lt-lg', true)) + .directive('flexLtMd', warnAttrNotSupported('flex-lt-md', true)) + .directive('flexLtLg', warnAttrNotSupported('flex-lt-lg', true)) + + .directive('layoutAlignLtMd', warnAttrNotSupported('layout-align-lt-md')) + .directive('layoutAlignLtLg', warnAttrNotSupported('layout-align-lt-lg')) + .directive('flexOrderLtMd', warnAttrNotSupported('flex-order-lt-md')) + .directive('flexOrderLtLg', warnAttrNotSupported('flex-order-lt-lg')) + .directive('offsetLtMd', warnAttrNotSupported('flex-offset-lt-md')) + .directive('offsetLtLg', warnAttrNotSupported('flex-offset-lt-lg')) + + .directive('hideLtMd', warnAttrNotSupported('hide-lt-md')) + .directive('hideLtLg', warnAttrNotSupported('hide-lt-lg')) + .directive('showLtMd', warnAttrNotSupported('show-lt-md')) + .directive('showLtLg', warnAttrNotSupported('show-lt-lg')); + + /** + * Special directive that will disable ALL Layout conversions of layout + * attribute(s) to classname(s). + * + * + * + * + * + * ... + * + * + * Note: Using md-layout-css directive requires the developer to load the Material + * Layout Attribute stylesheet (which only uses attribute selectors): + * + * `angular-material.layout.css` + * + * Another option is to use the LayoutProvider to configure and disable the attribute + * conversions; this would obviate the use of the `md-layout-css` directive + * + */ + function disableLayoutDirective() { + return { + restrict : 'A', + priority : '900', + compile : function(element, attr) { + config.enabled = false; + return angular.noop; + } + }; + } + + // ********************************************************************************* + // + // These functions create registration functions for ngMaterial Layout attribute directives + // This provides easy translation to switch ngMaterial attribute selectors to + // CLASS selectors and directives; which has huge performance implications + // for IE Browsers + // + // ********************************************************************************* + + + /** + * Creates a directive registration function where a possible dynamic attribute + * value will be observed/watched. + * @param {string} className attribute name; eg `layout-gt-md` with value ="row" + */ + function attributeWithObserve(className) { + + return ['$mdUtil', '$interpolate', function(_$mdUtil_, _$interpolate_) { + $mdUtil = _$mdUtil_; + $interpolate = _$interpolate_; + + return { + restrict: 'A', + compile: function(element, attr) { + var linkFn; + if (config.enabled) { + // immediately replace static (non-interpolated) invalid values... + + validateAttributeValue( className, + getNormalizedAttrValue(className, attr, ""), + buildUpdateFn(element, className, attr) + ); + + linkFn = translateWithValueToCssClass; + } + + // Use for postLink to account for transforms after ng-transclude. + return linkFn || angular.noop; + } + }; + }]; + + /** + * Add as transformed class selector(s), then + * remove the deprecated attribute selector + */ + function translateWithValueToCssClass(scope, element, attrs) { + var updateFn = updateClassWithValue(element, className, attrs); + var unwatch = attrs.$observe(attrs.$normalize(className), updateFn); + + updateFn(getNormalizedAttrValue(className, attrs, "")); + scope.$on("$destroy", function() { unwatch() }); + + if (config.removeAttributes) element.removeAttr(className); + } + } + + /** + * Creates a registration function for ngMaterial Layout attribute directive. + * This is a `simple` transpose of attribute usage to class usage; where we ignore + * any attribute value + */ + function attributeWithoutValue(className) { + return ['$interpolate', function(_$interpolate_) { + $interpolate = _$interpolate_; + + return { + restrict: 'A', + compile: function(element, attr) { + var linkFn; + if (config.enabled) { + // immediately replace static (non-interpolated) invalid values... + + validateAttributeValue( className, + getNormalizedAttrValue(className, attr, ""), + buildUpdateFn(element, className, attr) + ); + + translateToCssClass(null, element); + + // Use for postLink to account for transforms after ng-transclude. + linkFn = translateToCssClass; + } + + return linkFn || angular.noop; + } + }; + }]; + + /** + * Add as transformed class selector, then + * remove the deprecated attribute selector + */ + function translateToCssClass(scope, element) { + element.addClass(className); + + if (config.removeAttributes) { + // After link-phase, remove deprecated layout attribute selector + element.removeAttr(className); + } + } + } + + + + /** + * After link-phase, do NOT remove deprecated layout attribute selector. + * Instead watch the attribute so interpolated data-bindings to layout + * selectors will continue to be supported. + * + * $observe() the className and update with new class (after removing the last one) + * + * e.g. `layout="{{layoutDemo.direction}}"` will update... + * + * NOTE: The value must match one of the specified styles in the CSS. + * For example `flex-gt-md="{{size}}` where `scope.size == 47` will NOT work since + * only breakpoints for 0, 5, 10, 15... 100, 33, 34, 66, 67 are defined. + * + */ + function updateClassWithValue(element, className) { + var lastClass; + + return function updateClassFn(newValue) { + var value = validateAttributeValue(className, newValue || ""); + if ( angular.isDefined(value) ) { + element.removeClass(lastClass); + lastClass = !value ? className : className + "-" + value.replace(WHITESPACE, "-") + element.addClass(lastClass); + } + }; + } + + /** + * Provide console warning that this layout attribute has been deprecated + * + */ + function warnAttrNotSupported(className) { + var parts = className.split("-"); + return ["$log", function($log) { + $log.warn(className + "has been deprecated. Please use a `" + parts[0] + "-gt-` variant."); + return angular.noop; + }]; + } + + /** + * For the Layout attribute value, validate or replace with default + * fallback value + */ + function validateAttributeValue(className, value, updateFn) { + var origValue = value; + + if (!needsInterpolation(value)) { + switch (className.replace(SUFFIXES,"")) { + case 'layout' : + if ( !findIn(value, LAYOUT_OPTIONS) ) { + value = LAYOUT_OPTIONS[0]; // 'row'; + } + break; + + case 'flex' : + if (!findIn(value, FLEX_OPTIONS)) { + if (isNaN(value)) { + value = ''; + } + } + break; + + case 'flex-offset' : + case 'flex-order' : + if (!value || isNaN(+value)) { + value = '0'; + } + break; + + case 'layout-align' : + if (!findIn(value, ALIGNMENT_OPTIONS, "-")) { + value = ALIGNMENT_OPTIONS[0]; // 'start-start'; + } + break; + + case 'layout-padding' : + case 'layout-margin' : + case 'layout-fill' : + case 'layout-wrap' : + case 'layout-no-wrap' : + value = ''; + break; + } + + if (value != origValue) { + (updateFn || angular.noop)(value); + } + } + + return value; + } + + /** + * Replace current attribute value with fallback value + */ + function buildUpdateFn(element, className, attrs) { + return function updateAttrValue(fallback) { + if (!needsInterpolation(fallback)) { + element.attr(className, fallback); + attrs[attrs.$normalize(className)] = fallback; + } + }; + } + + /** + * See if the original value has interpolation symbols: + * e.g. flex-gt-md="{{triggerPoint}}" + */ + function needsInterpolation(value) { + return (value || "").indexOf($interpolate.startSymbol()) > -1; + } + + function getNormalizedAttrValue(className, attrs, defaultVal) { + var normalizedAttr = attrs.$normalize(className); + return attrs[normalizedAttr] ? attrs[normalizedAttr].replace(WHITESPACE, "-") : defaultVal || null; + } + + function findIn(item, list, replaceWith) { + item = replaceWith && item ? item.replace(WHITESPACE, replaceWith) : item; + + var found = false; + if (item) { + list.forEach(function(it) { + it = replaceWith ? it.replace(WHITESPACE, replaceWith) : it; + found = found || (it === item); + }); + } + return found; + } + +})(); + +})(); +(function(){ +"use strict"; + (function() { 'use strict'; @@ -3324,11 +3518,14 @@ function InkRippleCtrl ($scope, $element, rippleOptions, $window, $timeout, $mdU this.lastRipple = null; $mdUtil.valueOnUse(this, 'container', this.createContainer); - $mdUtil.valueOnUse(this, 'color', this.getColor, 1); $mdUtil.valueOnUse(this, 'background', this.getColor, 0.5); + this.color = this.getColor(1); + this.$element.addClass('md-ink-ripple'); + // attach method for unit tests ($element.controller('mdInkRipple') || {}).createRipple = angular.bind(this, this.createRipple); + ($element.controller('mdInkRipple') || {}).setColor = angular.bind(this, this.setColor); this.bindEvents(); } @@ -3338,10 +3535,9 @@ InkRippleCtrl.$inject = ["$scope", "$element", "rippleOptions", "$window", "$tim * Returns the color that the ripple should be (either based on CSS or hard-coded) * @returns {string} */ -InkRippleCtrl.prototype.getColor = function (multiplier) { - multiplier = multiplier || 1; - return parseColor(this.$element.attr('md-ink-ripple')) - || parseColor(getElementColor.call(this)); +InkRippleCtrl.prototype.getColor = function () { + return this._parseColor(this.$element.attr('md-ink-ripple')) + || this._parseColor(getElementColor.call(this)); /** * Finds the color element and returns its text color for use as default ripple color @@ -3352,46 +3548,48 @@ InkRippleCtrl.prototype.getColor = function (multiplier) { colorElement = colorElement || this.$element[ 0 ]; return colorElement ? this.$window.getComputedStyle(colorElement).color : 'rgb(0,0,0)'; } +}; +/** + * Takes a string color and converts it to RGBA format + * @param color {string} + * @param [multiplier] {int} + * @returns {string} + */ + +InkRippleCtrl.prototype._parseColor = function parseColor (color, multiplier) { + multiplier = multiplier || 1; + + if (!color) return; + if (color.indexOf('rgba') === 0) return color.replace(/\d?\.?\d*\s*\)\s*$/, (0.1 * multiplier).toString() + ')'); + if (color.indexOf('rgb') === 0) return rgbToRGBA(color); + if (color.indexOf('#') === 0) return hexToRGBA(color); /** - * Takes a string color and converts it to RGBA format + * Converts hex value to RGBA string * @param color {string} * @returns {string} */ - function parseColor (color) { - if (!color) return; - if (color.indexOf('rgba') === 0) return color.replace(/\d?\.?\d*\s*\)\s*$/, (0.1 * multiplier).toString() + ')'); - if (color.indexOf('rgb') === 0) return rgbToRGBA(color); - if (color.indexOf('#') === 0) return hexToRGBA(color); - - /** - * Converts hex value to RGBA string - * @param color {string} - * @returns {string} - */ - function hexToRGBA (color) { - var hex = color[ 0 ] === '#' ? color.substr(1) : color, - dig = hex.length / 3, - red = hex.substr(0, dig), - green = hex.substr(dig, dig), - blue = hex.substr(dig * 2); - if (dig === 1) { - red += red; - green += green; - blue += blue; - } - return 'rgba(' + parseInt(red, 16) + ',' + parseInt(green, 16) + ',' + parseInt(blue, 16) + ',0.1)'; - } - - /** - * Converts an RGB color to RGBA - * @param color {string} - * @returns {string} - */ - function rgbToRGBA (color) { - return color.replace(')', ', 0.1)').replace('(', 'a('); + function hexToRGBA (color) { + var hex = color[ 0 ] === '#' ? color.substr(1) : color, + dig = hex.length / 3, + red = hex.substr(0, dig), + green = hex.substr(dig, dig), + blue = hex.substr(dig * 2); + if (dig === 1) { + red += red; + green += green; + blue += blue; } + return 'rgba(' + parseInt(red, 16) + ',' + parseInt(green, 16) + ',' + parseInt(blue, 16) + ',0.1)'; + } + /** + * Converts an RGB color to RGBA + * @param color {string} + * @returns {string} + */ + function rgbToRGBA (color) { + return color.replace(')', ', 0.1)').replace('(', 'a('); } }; @@ -3412,6 +3610,8 @@ InkRippleCtrl.prototype.bindEvents = function () { InkRippleCtrl.prototype.handleMousedown = function (event) { if ( this.mousedown ) return; + this.setColor(window.getComputedStyle(this.$element[0])['color']); + // When jQuery is loaded, we have to get the original event if (event.hasOwnProperty('originalEvent')) event = event.originalEvent; this.mousedown = true; @@ -3420,7 +3620,6 @@ InkRippleCtrl.prototype.handleMousedown = function (event) { } else { this.createRipple(event.layerX, event.layerY); } - }; /** @@ -3534,6 +3733,10 @@ InkRippleCtrl.prototype.createRipple = function (left, top) { } }; +InkRippleCtrl.prototype.setColor = function (color) { + this.color = this._parseColor(color); +}; + /** * Either kicks off the fade-out animation or queues the element for removal on mouseup * @param ripple @@ -4864,7 +5067,7 @@ if (angular.version.minor >= 4) { var forEach = angular.forEach; - var WEBKIT = window.ontransitionend === undefined && window.onwebkittransitionend !== undefined; + var WEBKIT = angular.isDefined(document.documentElement.style.WebkitAppearance); var TRANSITION_PROP = WEBKIT ? 'WebkitTransition' : 'transition'; var ANIMATION_PROP = WEBKIT ? 'WebkitAnimation' : 'animation'; var PREFIX = WEBKIT ? '-webkit-' : ''; @@ -5347,277 +5550,6 @@ angular (function(){ "use strict"; -/** - * @ngdoc module - * @name material.components.bottomSheet - * @description - * BottomSheet - */ -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, attr) { - // When navigation force destroys an interimElement, then - // listen and $destroy() that interim instance... - scope.$on('$destroy', function() { - $mdBottomSheet.destroy(); - }); - } - }; -} -MdBottomSheetDirective.$inject = ["$mdBottomSheet"]; - - -/** - * @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 `` 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 - * - *
- * - * Open a Bottom Sheet! - * - *
- *
- * - * var app = angular.module('app', ['ngMaterial']); - * app.controller('MyController', function($scope, $mdBottomSheet) { - * $scope.openBottomSheet = function() { - * $mdBottomSheet.show({ - * template: 'Hello!' - * }); - * }; - * }); - * - */ - - /** - * @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. - * - `targetEvent` - `{DOMClickEvent=}`: A click's event object. When passed in as an option, - * the location of the click will be used as the starting point for the opening animation - * of the the dialog. - * - `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 - var CLOSING_VELOCITY = 0.5; - var PADDING = 80; // same as css - - bottomSheetDefaults.$inject = ["$animate", "$mdConstant", "$mdUtil", "$mdTheming", "$mdBottomSheet", "$rootElement", "$mdGesture"]; - return $$interimElementProvider('$mdBottomSheet') - .setDefaults({ - methods: ['disableParentScroll', 'escapeToClose', 'targetEvent'], - options: bottomSheetDefaults - }); - - /* @ngInject */ - function bottomSheetDefaults($animate, $mdConstant, $mdUtil, $mdTheming, $mdBottomSheet, $rootElement, $mdGesture) { - var backdrop; - - return { - themable: true, - targetEvent: null, - onShow: onShow, - onRemove: onRemove, - escapeToClose: true, - disableParentScroll: true - }; - - - function onShow(scope, element, options, controller) { - - element = $mdUtil.extractElementByName(element, 'md-bottom-sheet'); - - // Add a backdrop that will close on click - backdrop = $mdUtil.createBackdrop(scope, "md-bottom-sheet-backdrop md-opaque"); - 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; - - // Give up focus on calling item - options.targetEvent && angular.element(options.targetEvent.target).blur(); - $mdTheming.inherit(bottomSheet.element, options.parent); - - if (options.disableParentScroll) { - options.restoreScroll = $mdUtil.disableScrollAround(bottomSheet.element, options.parent); - } - - return $animate.enter(bottomSheet.element, options.parent) - .then(function() { - var focusable = $mdUtil.findFocusTarget(element) || angular.element( - element[0].querySelector('button') || - element[0].querySelector('a') || - element[0].querySelector('[ng-click]') - ); - focusable.focus(); - - if (options.escapeToClose) { - options.rootElementKeyupCallback = function(e) { - if (e.keyCode === $mdConstant.KEY_CODE.ESCAPE) { - $mdUtil.nextTick($mdBottomSheet.cancel,true); - } - }; - $rootElement.on('keyup', options.rootElementKeyupCallback); - } - }); - - } - - function onRemove(scope, element, options) { - - var bottomSheet = options.bottomSheet; - - $animate.leave(backdrop); - return $animate.leave(bottomSheet.element).then(function() { - if (options.disableParentScroll) { - options.restoreScroll(); - delete options.restoreScroll; - } - - bottomSheet.cleanup(); - - // Restore focus - options.targetEvent && angular.element(options.targetEvent.target).focus(); - }); - } - - /** - * 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, ''); - } - } - } - - } - -} -MdBottomSheetProvider.$inject = ["$$interimElementProvider"]; - -})(); -(function(){ -"use strict"; - /** * @ngdoc module * @name material.components.button @@ -5752,6 +5684,277 @@ MdButtonDirective.$inject = ["$mdButtonInkRipple", "$mdTheming", "$mdAria", "$ti (function(){ "use strict"; +/** + * @ngdoc module + * @name material.components.bottomSheet + * @description + * BottomSheet + */ +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, attr) { + // When navigation force destroys an interimElement, then + // listen and $destroy() that interim instance... + scope.$on('$destroy', function() { + $mdBottomSheet.destroy(); + }); + } + }; +} +MdBottomSheetDirective.$inject = ["$mdBottomSheet"]; + + +/** + * @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 `` 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 + * + *
+ * + * Open a Bottom Sheet! + * + *
+ *
+ * + * var app = angular.module('app', ['ngMaterial']); + * app.controller('MyController', function($scope, $mdBottomSheet) { + * $scope.openBottomSheet = function() { + * $mdBottomSheet.show({ + * template: 'Hello!' + * }); + * }; + * }); + * + */ + + /** + * @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. + * - `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 + var CLOSING_VELOCITY = 0.5; + var PADDING = 80; // same as css + + bottomSheetDefaults.$inject = ["$animate", "$mdConstant", "$mdUtil", "$mdTheming", "$mdBottomSheet", "$rootElement", "$mdGesture"]; + return $$interimElementProvider('$mdBottomSheet') + .setDefaults({ + methods: ['disableParentScroll', 'escapeToClose', 'clickOutsideToClose'], + options: bottomSheetDefaults + }); + + /* @ngInject */ + function bottomSheetDefaults($animate, $mdConstant, $mdUtil, $mdTheming, $mdBottomSheet, $rootElement, $mdGesture) { + var backdrop; + + return { + themable: true, + onShow: onShow, + onRemove: onRemove, + escapeToClose: true, + clickOutsideToClose: true, + disableParentScroll: true + }; + + + function onShow(scope, element, options, controller) { + + element = $mdUtil.extractElementByName(element, 'md-bottom-sheet'); + + // Add a backdrop that will close on click + backdrop = $mdUtil.createBackdrop(scope, "md-bottom-sheet-backdrop md-opaque"); + + 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) + .then(function() { + var focusable = $mdUtil.findFocusTarget(element) || angular.element( + element[0].querySelector('button') || + element[0].querySelector('a') || + element[0].querySelector('[ng-click]') + ); + focusable.focus(); + + if (options.escapeToClose) { + options.rootElementKeyupCallback = function(e) { + if (e.keyCode === $mdConstant.KEY_CODE.ESCAPE) { + $mdUtil.nextTick($mdBottomSheet.cancel,true); + } + }; + $rootElement.on('keyup', options.rootElementKeyupCallback); + } + }); + + } + + function onRemove(scope, element, options) { + + var bottomSheet = options.bottomSheet; + + $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, ''); + } + } + } + + } + +} +MdBottomSheetProvider.$inject = ["$$interimElementProvider"]; + +})(); +(function(){ +"use strict"; + /** * @ngdoc module * @name material.components.card @@ -5787,7 +5990,7 @@ angular.module('material.components.card', [ * fit within a single view on a platform, but it can temporarily expand as needed. * * @usage - * ###Card with optional footer + * ### Card with optional footer * * * image caption @@ -5801,7 +6004,7 @@ angular.module('material.components.card', [ * * * - * ###Card with actions + * ### Card with actions * * * image caption @@ -5887,7 +6090,7 @@ function MdCheckboxDirective(inputDirective, $mdAria, $mdConstant, $mdTheming, $ restrict: 'E', transclude: true, require: '?ngModel', - priority:210, // Run before ngAria + priority: 210, // Run before ngAria template: '
' + '
' + @@ -5906,6 +6109,14 @@ function MdCheckboxDirective(inputDirective, $mdAria, $mdConstant, $mdTheming, $ tAttrs.tabindex = tAttrs.tabindex || '0'; tElement.attr('role', tAttrs.type); + // Attach a click handler in compile in order to immediately stop propagation + // (especially for ng-click) when the checkbox is disabled. + tElement.on('click', function(event) { + if (this.hasAttribute('disabled')) { + event.stopImmediatePropagation(); + } + }); + return function postLink(scope, element, attr, ngModelCtrl) { ngModelCtrl = ngModelCtrl || $mdUtil.fakeNgModel(); $mdTheming(element); @@ -5916,10 +6127,12 @@ function MdCheckboxDirective(inputDirective, $mdAria, $mdConstant, $mdTheming, $ ngModelCtrl.$setViewValue.bind(ngModelCtrl) ); } + $$watchExpr('ngDisabled', 'tabindex', { true: '-1', false: attr.tabindex }); + $mdAria.expectWithText(element, 'aria-label'); // Reuse the original input[type=checkbox] directive from Angular core. @@ -5935,14 +6148,18 @@ function MdCheckboxDirective(inputDirective, $mdAria, $mdConstant, $mdTheming, $ .on('keypress', keypressHandler) .on('mousedown', function() { scope.mouseActive = true; - $timeout(function(){ + $timeout(function() { scope.mouseActive = false; }, 100); }) .on('focus', function() { - if(scope.mouseActive === false) { element.addClass('md-focused'); } + if (scope.mouseActive === false) { + element.addClass('md-focused'); + } }) - .on('blur', function() { element.removeClass('md-focused'); }); + .on('blur', function() { + element.removeClass('md-focused'); + }); ngModelCtrl.$render = render; @@ -5960,12 +6177,18 @@ function MdCheckboxDirective(inputDirective, $mdAria, $mdConstant, $mdTheming, $ var keyCode = ev.which || ev.keyCode; if (keyCode === $mdConstant.KEY_CODE.SPACE || keyCode === $mdConstant.KEY_CODE.ENTER) { ev.preventDefault(); - if (!element.hasClass('md-focused')) { element.addClass('md-focused'); } + + if (!element.hasClass('md-focused')) { + element.addClass('md-focused'); + } + listener(ev); } } function listener(ev) { - if (element[0].hasAttribute('disabled')) return; + if (element[0].hasAttribute('disabled')) { + return; + } scope.$apply(function() { // Toggle the checkbox value... @@ -5992,22 +6215,6 @@ MdCheckboxDirective.$inject = ["inputDirective", "$mdAria", "$mdConstant", "$mdT (function(){ "use strict"; -/** - * @ngdoc module - * @name material.components.chips - */ -/* - * @see js folder for chips implementation - */ -angular.module('material.components.chips', [ - 'material.core', - 'material.components.autocomplete' -]); - -})(); -(function(){ -"use strict"; - /** * @ngdoc module * @name material.components.content @@ -6087,6 +6294,908 @@ function iosScrollFix(node) { (function(){ "use strict"; +/** + * @ngdoc module + * @name material.components.dialog + */ +angular + .module('material.components.dialog', [ + 'material.core', + 'material.components.backdrop' + ]) + .directive('mdDialog', MdDialogDirective) + .provider('$mdDialog', MdDialogProvider); + +function MdDialogDirective($$rAF, $mdTheming, $mdDialog) { + return { + restrict: 'E', + link: function(scope, element, attr) { + $mdTheming(element); + $$rAF(function() { + var images; + var content = element[0].querySelector('md-dialog-content'); + + if (content) { + images = content.getElementsByTagName('img'); + addOverflowClass(); + //-- delayed image loading may impact scroll height, check after images are loaded + angular.element(images).on('load', addOverflowClass); + } + + scope.$on('$destroy', function() { + $mdDialog.destroy(); + }); + + /** + * + */ + function addOverflowClass() { + element.toggleClass('md-content-overflow', content.scrollHeight > content.clientHeight); + } + + + }); + } + }; +} +MdDialogDirective.$inject = ["$$rAF", "$mdTheming", "$mdDialog"]; + +/** + * @ngdoc service + * @name $mdDialog + * @module material.components.dialog + * + * @description + * `$mdDialog` opens a dialog over the app to inform users about critical information or require + * them to make decisions. There are two approaches for setup: a simple promise API + * and regular object syntax. + * + * ## Restrictions + * + * - The dialog is always given an isolate scope. + * - The dialog's template must have an outer `` element. + * Inside, use an `` element for the dialog's content, and use + * an element with class `md-actions` for the dialog's actions. + * - Dialogs must cover the entire application to keep interactions inside of them. + * Use the `parent` option to change where dialogs are appended. + * + * ## Sizing + * - Complex dialogs can be sized with `flex="percentage"`, i.e. `flex="66"`. + * - Default max-width is 80% of the `rootElement` or `parent`. + * + * ## Css + * - `.md-dialog-content` - class that sets the padding on the content as the spec file + * + * @usage + * + *
+ *
+ * + * Employee Alert! + * + *
+ *
+ * + * Custom Dialog + * + *
+ *
+ * + * Close Alert + * + *
+ *
+ * + * Greet Employee + * + *
+ *
+ *
+ * + * ### JavaScript: object syntax + * + * (function(angular, undefined){ + * "use strict"; + * + * angular + * .module('demoApp', ['ngMaterial']) + * .controller('AppCtrl', AppController); + * + * function AppController($scope, $mdDialog) { + * var alert; + * $scope.showAlert = showAlert; + * $scope.showDialog = showDialog; + * $scope.items = [1, 2, 3]; + * + * // Internal method + * function showAlert() { + * alert = $mdDialog.alert({ + * title: 'Attention', + * content: 'This is an example of how easy dialogs can be!', + * ok: 'Close' + * }); + * + * $mdDialog + * .show( alert ) + * .finally(function() { + * alert = undefined; + * }); + * } + * + * function showDialog($event) { + * var parentEl = angular.element(document.body); + * $mdDialog.show({ + * parent: parentEl, + * targetEvent: $event, + * template: + * '' + + * ' '+ + * ' '+ + * ' '+ + * '

Number {{item}}

' + + * ' '+ + * '
'+ + * '
' + + * '
' + + * ' ' + + * ' Close Dialog' + + * ' ' + + * '
' + + * '
', + * locals: { + * items: $scope.items + * }, + * controller: DialogController + * }); + * function DialogController($scope, $mdDialog, items) { + * $scope.items = items; + * $scope.closeDialog = function() { + * $mdDialog.hide(); + * } + * } + * } + * } + * })(angular); + *
+ * + * ### JavaScript: promise API syntax, custom dialog template + * + * (function(angular, undefined){ + * "use strict"; + * + * angular + * .module('demoApp', ['ngMaterial']) + * .controller('EmployeeController', EmployeeEditor) + * .controller('GreetingController', GreetingController); + * + * // Fictitious Employee Editor to show how to use simple and complex dialogs. + * + * function EmployeeEditor($scope, $mdDialog) { + * var alert; + * + * $scope.showAlert = showAlert; + * $scope.closeAlert = closeAlert; + * $scope.showGreeting = showCustomGreeting; + * + * $scope.hasAlert = function() { return !!alert }; + * $scope.userName = $scope.userName || 'Bobby'; + * + * // Dialog #1 - Show simple alert dialog and cache + * // reference to dialog instance + * + * function showAlert() { + * alert = $mdDialog.alert() + * .title('Attention, ' + $scope.userName) + * .content('This is an example of how easy dialogs can be!') + * .ok('Close'); + * + * $mdDialog + * .show( alert ) + * .finally(function() { + * alert = undefined; + * }); + * } + * + * // Close the specified dialog instance and resolve with 'finished' flag + * // Normally this is not needed, just use '$mdDialog.hide()' to close + * // the most recent dialog popup. + * + * function closeAlert() { + * $mdDialog.hide( alert, "finished" ); + * alert = undefined; + * } + * + * // Dialog #2 - Demonstrate more complex dialogs construction and popup. + * + * function showCustomGreeting($event) { + * $mdDialog.show({ + * targetEvent: $event, + * template: + * '' + + * + * ' Hello {{ employee }}!' + + * + * '
' + + * ' ' + + * ' Close Greeting' + + * ' ' + + * '
' + + * '
', + * controller: 'GreetingController', + * onComplete: afterShowAnimation, + * locals: { employee: $scope.userName } + * }); + * + * // When the 'enter' animation finishes... + * + * function afterShowAnimation(scope, element, options) { + * // post-show code here: DOM element focus, etc. + * } + * } + * + * // Dialog #3 - Demonstrate use of ControllerAs and passing $scope to dialog + * // Here we used ng-controller="GreetingController as vm" and + * // $scope.vm === + * + * function showCustomGreeting() { + * + * $mdDialog.show({ + * clickOutsideToClose: true, + * + * scope: $scope, // use parent scope in template + * preserveScope: true, // do not forget this if use parent scope + + * // Since GreetingController is instantiated with ControllerAs syntax + * // AND we are passing the parent '$scope' to the dialog, we MUST + * // use 'vm.' in the template markup + * + * template: '' + + * ' ' + + * ' Hi There {{vm.employee}}' + + * ' ' + + * '', + * + * controller: function DialogController($scope, $mdDialog) { + * $scope.closeDialog = function() { + * $mdDialog.hide(); + * } + * } + * }); + * } + * + * } + * + * // Greeting controller used with the more complex 'showCustomGreeting()' custom dialog + * + * function GreetingController($scope, $mdDialog, employee) { + * // Assigned from construction locals options... + * $scope.employee = employee; + * + * $scope.closeDialog = function() { + * // Easily hides most recent dialog shown... + * // no specific instance reference is needed. + * $mdDialog.hide(); + * }; + * } + * + * })(angular); + *
+ */ + +/** + * @ngdoc method + * @name $mdDialog#alert + * + * @description + * Builds a preconfigured dialog with the specified message. + * + * @returns {obj} an `$mdDialogPreset` with the chainable configuration methods: + * + * - $mdDialogPreset#title(string) - sets title to string + * - $mdDialogPreset#content(string) - sets content / message to string + * - $mdDialogPreset#ok(string) - sets okay button text to string + * - $mdDialogPreset#theme(string) - sets the theme of the dialog + * + */ + +/** + * @ngdoc method + * @name $mdDialog#confirm + * + * @description + * Builds a preconfigured dialog with the specified message. You can call show and the promise returned + * will be resolved only if the user clicks the confirm action on the dialog. + * + * @returns {obj} an `$mdDialogPreset` with the chainable configuration methods: + * + * Additionally, it supports the following methods: + * + * - $mdDialogPreset#title(string) - sets title to string + * - $mdDialogPreset#content(string) - sets content / message to string + * - $mdDialogPreset#ok(string) - sets okay button text to string + * - $mdDialogPreset#cancel(string) - sets cancel button text to string + * - $mdDialogPreset#theme(string) - sets the theme of the dialog + * + */ + +/** + * @ngdoc method + * @name $mdDialog#show + * + * @description + * Show a dialog with the specified options. + * + * @param {object} optionsOrPreset Either provide an `$mdDialogPreset` returned from `alert()`, and + * `confirm()`, or an options object with the following properties: + * - `templateUrl` - `{string=}`: The url of a template that will be used as the content + * of the dialog. + * - `template` - `{string=}`: Same as templateUrl, except this is an actual template string. + * - `targetEvent` - `{DOMClickEvent=}`: A click's event object. When passed in as an option, + * the location of the click will be used as the starting point for the opening animation + * of the the dialog. + * - `scope` - `{object=}`: the scope to link the template / controller to. If none is specified, + * it will create a new isolate scope. + * This scope will be destroyed when the dialog is removed unless `preserveScope` is set to true. + * - `preserveScope` - `{boolean=}`: whether to preserve the scope when the element is removed. Default is false + * - `disableParentScroll` - `{boolean=}`: Whether to disable scrolling while the dialog is open. + * Default true. + * - `hasBackdrop` - `{boolean=}`: Whether there should be an opaque backdrop behind the dialog. + * Default true. + * - `clickOutsideToClose` - `{boolean=}`: Whether the user can click outside the dialog to + * close it. Default false. + * - `escapeToClose` - `{boolean=}`: Whether the user can press escape to close the dialog. + * Default true. + * - `focusOnOpen` - `{boolean=}`: An option to override focus behavior on open. Only disable if + * focusing some other way, as focus management is required for dialogs to be accessible. + * Defaults to true. + * - `controller` - `{string=}`: The controller to associate with the dialog. The controller + * will be injected with the local `$mdDialog`, which passes along a scope for the dialog. + * - `locals` - `{object=}`: 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 3. If `bindToController` is true, they will be + * copied to the controller instead. + * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in. + * These values will not be available until after initialization. + * - `resolve` - `{object=}`: Similar to locals, except it takes promises as values, and the + * dialog will not open until all of the promises resolve. + * - `controllerAs` - `{string=}`: An alias to assign the controller to on the scope. + * - `parent` - `{element=}`: The element to append the dialog to. Defaults to appending + * to the root element of the application. + * - `onShowing` `{function=} Callback function used to announce the show() action is + * starting. + * - `onComplete` `{function=}`: Callback function used to announce when the show() action is + * finished. + * - `onRemoving` `{function=} Callback function used to announce the close/hide() action is + * starting. This allows developers to run custom animations in parallel the close animations. + * + * @returns {promise} A promise that can be resolved with `$mdDialog.hide()` or + * rejected with `$mdDialog.cancel()`. + */ + +/** + * @ngdoc method + * @name $mdDialog#hide + * + * @description + * Hide an existing dialog and resolve the promise returned from `$mdDialog.show()`. + * + * @param {*=} response An argument for the resolved promise. + * + * @returns {promise} A promise that is resolved when the dialog has been closed. + */ + +/** + * @ngdoc method + * @name $mdDialog#cancel + * + * @description + * Hide an existing dialog and reject the promise returned from `$mdDialog.show()`. + * + * @param {*=} response An argument for the rejected promise. + * + * @returns {promise} A promise that is resolved when the dialog has been closed. + */ + +function MdDialogProvider($$interimElementProvider) { + + advancedDialogOptions.$inject = ["$mdDialog", "$mdTheming"]; + dialogDefaultOptions.$inject = ["$mdDialog", "$mdAria", "$mdUtil", "$mdConstant", "$animate", "$document", "$window", "$rootElement"]; + return $$interimElementProvider('$mdDialog') + .setDefaults({ + methods: ['disableParentScroll', 'hasBackdrop', 'clickOutsideToClose', 'escapeToClose', 'targetEvent', 'parent'], + options: dialogDefaultOptions + }) + .addPreset('alert', { + methods: ['title', 'content', 'ariaLabel', 'ok', 'theme', 'css'], + options: advancedDialogOptions + }) + .addPreset('confirm', { + methods: ['title', 'content', 'ariaLabel', 'ok', 'cancel', 'theme', 'css'], + options: advancedDialogOptions + }); + + /* @ngInject */ + function advancedDialogOptions($mdDialog, $mdTheming) { + return { + template: [ + '', + ' ', + '

{{ dialog.title }}

', + '
', + '
', + '
', + ' ', + ' {{ dialog.cancel }}', + ' ', + ' ', + ' {{ dialog.ok }}', + ' ', + '
', + '
' + ].join('').replace(/\s\s+/g, ''), + controller: function mdDialogCtrl() { + this.hide = function() { + $mdDialog.hide(true); + }; + this.abort = function() { + $mdDialog.cancel(); + }; + }, + controllerAs: 'dialog', + bindToController: true, + theme: $mdTheming.defaultTheme() + }; + } + + /* @ngInject */ + function dialogDefaultOptions($mdDialog, $mdAria, $mdUtil, $mdConstant, $animate, $document, $window, $rootElement) { + return { + hasBackdrop: true, + isolateScope: true, + onShow: onShow, + onRemove: onRemove, + clickOutsideToClose: false, + escapeToClose: true, + targetEvent: null, + focusOnOpen: true, + disableParentScroll: true, + transformTemplate: function(template) { + return '
' + validatedTemplate(template) + '
'; + + /** + * The specified template should contain a wrapper element.... + */ + function validatedTemplate(template) { + template || "" + return /<\/md-dialog>/g.test(template) ? template : "" + template + ""; + } + } + }; + + /** + * Show method for dialogs + */ + function onShow(scope, element, options, controller) { + angular.element($document[0].body).addClass('md-dialog-is-showing'); + + wrapSimpleContent(); + + captureSourceAndParent(element, options); + configureAria(element.find('md-dialog'), options); + showBackdrop(scope, element, options); + + return dialogPopIn(element, options) + .then(function() { + activateListeners(element, options); + lockScreenReader(element, options); + focusOnOpen(); + }); + + /** + * For alerts, focus on content... otherwise focus on + * the close button (or equivalent) + */ + function focusOnOpen() { + if (options.focusOnOpen) { + var target = $mdUtil.findFocusTarget(element) || findCloseButton(); + target.focus(); + } + + /** + * If no element with class dialog-close, try to find the last + * button child in md-actions and assume it is a close button + */ + function findCloseButton() { + var closeButton = element[0].querySelector('.dialog-close'); + if (!closeButton) { + var actionButtons = element[0].querySelectorAll('.md-actions button'); + closeButton = actionButtons[actionButtons.length - 1]; + } + return angular.element(closeButton); + } + } + + /** + * Wrap any simple content [specified via .content("")] in

tags. + * otherwise accept HTML content within the dialog content area... + * NOTE: Dialog uses the md-template directive to safely inject HTML content. + */ + function wrapSimpleContent() { + if ( controller ) { + var HTML_END_TAG = /<\/[\w-]*>/gm; + var content = controller.content || options.content || ""; + + var hasHTML = HTML_END_TAG.test(content); + if (!hasHTML) { + content = $mdUtil.supplant("

{0}

", [content]); + } + + // Publish updated dialog content body... to be compiled by mdTemplate directive + controller.mdContent = content; + } + } + + } + + /** + * Remove function for all dialogs + */ + function onRemove(scope, element, options) { + options.deactivateListeners(); + options.unlockScreenReader(); + options.hideBackdrop(options.$destroy); + + // For navigation $destroy events, do a quick, non-animated removal, + // but for normal closes (from clicks, etc) animate the removal + + return !!options.$destroy ? detachAndClean() : animateRemoval().then( detachAndClean ); + + /** + * For normal closes, animate the removal. + * For forced closes (like $destroy events), skip the animations + */ + function animateRemoval() { + return dialogPopOut(element, options); + } + + /** + * Detach the element + */ + function detachAndClean() { + angular.element($document[0].body).removeClass('md-dialog-is-showing'); + element.remove(); + + if (!options.$destroy) options.origin.focus(); + } + } + + /** + * Capture originator/trigger element information (if available) + * and the parent container for the dialog; defaults to the $rootElement + * unless overridden in the options.parent + */ + function captureSourceAndParent(element, options) { + options.origin = angular.extend({ + element: null, + bounds: null, + focus: angular.noop + }, options.origin || {}); + + var source = angular.element((options.targetEvent || {}).target); + if (source && source.length) { + // Compute and save the target element's bounding rect, so that if the + // element is hidden when the dialog closes, we can shrink the dialog + // back to the same position it expanded from. + options.origin.element = source; + options.origin.bounds = source[0].getBoundingClientRect(); + options.origin.focus = function() { + source.focus(); + } + } + + // If the parent specifier is a simple string selector, then query for + // the DOM element. + if ( angular.isString(options.parent) ) { + var simpleSelector = options.parent, + container = $document[0].querySelectorAll(simpleSelector); + options.parent = container.length ? container[0] : null; + } + // If we have a reference to a raw dom element, always wrap it in jqLite + options.parent = angular.element(options.parent || $rootElement); + + } + + /** + * Listen for escape keys and outside clicks to auto close + */ + function activateListeners(element, options) { + var window = angular.element($window); + var onWindowResize = $mdUtil.debounce(function(){ + stretchDialogContainerToViewport(element, options); + }, 60); + + var removeListeners = []; + var smartClose = function() { + // Only 'confirm' dialogs have a cancel button... escape/clickOutside will + // cancel or fallback to hide. + var closeFn = ( options.$type == 'alert' ) ? $mdDialog.hide : $mdDialog.cancel; + $mdUtil.nextTick(closeFn, true); + }; + + if (options.escapeToClose) { + var target = options.parent; + var keyHandlerFn = function(ev) { + if (ev.keyCode === $mdConstant.KEY_CODE.ESCAPE) { + ev.stopPropagation(); + ev.preventDefault(); + + smartClose(); + } + }; + + // Add keydown listeners + element.on('keydown', keyHandlerFn); + target.on('keydown', keyHandlerFn); + window.on('resize', onWindowResize); + + // Queue remove listeners function + removeListeners.push(function() { + + element.off('keydown', keyHandlerFn); + target.off('keydown', keyHandlerFn); + window.off('resize', onWindowResize); + + }); + } + if (options.clickOutsideToClose) { + var target = element; + var sourceElem; + + // Keep track of the element on which the mouse originally went down + // so that we can only close the backdrop when the 'click' started on it. + // A simple 'click' handler does not work, + // it sets the target object as the element the mouse went down on. + var mousedownHandler = function(ev) { + sourceElem = ev.target; + }; + + // We check if our original element and the target is the backdrop + // because if the original was the backdrop and the target was inside the dialog + // we don't want to dialog to close. + var mouseupHandler = function(ev) { + if (sourceElem === target[0] && ev.target === target[0]) { + ev.stopPropagation(); + ev.preventDefault(); + + smartClose(); + } + }; + + // Add listeners + target.on('mousedown', mousedownHandler); + target.on('mouseup', mouseupHandler); + + // Queue remove listeners function + removeListeners.push(function() { + target.off('mousedown', mousedownHandler); + target.off('mouseup', mouseupHandler); + }); + } + + // Attach specific `remove` listener handler + options.deactivateListeners = function() { + removeListeners.forEach(function(removeFn) { + removeFn(); + }); + options.deactivateListeners = null; + }; + } + + /** + * Show modal backdrop element... + */ + function showBackdrop(scope, element, options) { + + if (options.disableParentScroll) { + // !! DO this before creating the backdrop; since disableScrollAround() + // configures the scroll offset; which is used by mdBackDrop postLink() + options.restoreScroll = $mdUtil.disableScrollAround(element, options.parent); + } + + if (options.hasBackdrop) { + options.backdrop = $mdUtil.createBackdrop(scope, "md-dialog-backdrop md-opaque"); + $animate.enter(options.backdrop, options.parent); + } + + /** + * Hide modal backdrop element... + */ + options.hideBackdrop = function hideBackdrop($destroy) { + if (options.backdrop) { + if ( !!$destroy ) options.backdrop.remove(); + else $animate.leave(options.backdrop); + } + + if (options.disableParentScroll) { + options.restoreScroll(); + delete options.restoreScroll; + } + + options.hideBackdrop = null; + } + } + + /** + * Inject ARIA-specific attributes appropriate for Dialogs + */ + function configureAria(element, options) { + + var role = (options.$type === 'alert') ? 'alertdialog' : 'dialog'; + var dialogContent = element.find('md-dialog-content'); + var dialogId = element.attr('id') || ('dialog_' + $mdUtil.nextUid()); + + element.attr({ + 'role': role, + 'tabIndex': '-1' + }); + + if (dialogContent.length === 0) { + dialogContent = element; + } + + dialogContent.attr('id', dialogId); + element.attr('aria-describedby', dialogId); + + if (options.ariaLabel) { + $mdAria.expect(element, 'aria-label', options.ariaLabel); + } + else { + $mdAria.expectAsync(element, 'aria-label', function() { + var words = dialogContent.text().split(/\s+/); + if (words.length > 3) words = words.slice(0, 3).concat('...'); + return words.join(' '); + }); + } + } + + /** + * Prevents screen reader interaction behind modal window + * on swipe interfaces + */ + function lockScreenReader(element, options) { + var isHidden = true; + + // get raw DOM node + walkDOM(element[0]); + + options.unlockScreenReader = function() { + isHidden = false; + walkDOM(element[0]); + + options.unlockScreenReader = null; + }; + + /** + * Walk DOM to apply or remove aria-hidden on sibling nodes + * and parent sibling nodes + * + */ + function walkDOM(element) { + while (element.parentNode) { + if (element === document.body) { + return; + } + var children = element.parentNode.children; + for (var i = 0; i < children.length; i++) { + // skip over child if it is an ascendant of the dialog + // or a script or style tag + if (element !== children[i] && !isNodeOneOf(children[i], ['SCRIPT', 'STYLE'])) { + children[i].setAttribute('aria-hidden', isHidden); + } + } + + walkDOM(element = element.parentNode); + } + } + } + + /** + * Ensure the dialog container fill-stretches to the viewport + */ + function stretchDialogContainerToViewport(container, options) { + + var isFixed = $window.getComputedStyle($document[0].body).position == 'fixed'; + var backdrop = options.backdrop ? $window.getComputedStyle(options.backdrop[0]) : null; + var height = backdrop ? Math.min($document[0].body.clientHeight, Math.ceil(Math.abs(parseInt(backdrop.height, 10)))) : 0; + + container.css({ + top: (isFixed ? $mdUtil.scrollTop(options.parent) : 0) + 'px', + height: height ? height + 'px' : '100%' + }); + + return container; + } + + /** + * Dialog open and pop-in animation + */ + function dialogPopIn(container, options) { + + // Add the `md-dialog-container` to the DOM + options.parent.append(container); + stretchDialogContainerToViewport(container, options); + + var dialogEl = container.find('md-dialog'); + var animator = $mdUtil.dom.animator; + var buildTranslateToOrigin = animator.calculateZoomToOrigin; + var translateOptions = {transitionInClass: 'md-transition-in', transitionOutClass: 'md-transition-out'}; + var from = animator.toTransformCss(buildTranslateToOrigin(dialogEl, options.origin)); + var to = animator.toTransformCss(""); // defaults to center display (or parent or $rootElement) + + return animator + .translate3d(dialogEl, from, to, translateOptions) + .then(function(animateReversal) { + + + + // Build a reversal translate function synched to this translation... + options.reverseAnimate = function() { + + delete options.reverseAnimate; + return animateReversal( + animator.toTransformCss( + // in case the origin element has moved or is hidden, + // let's recalculate the translateCSS + buildTranslateToOrigin(dialogEl, options.origin) + ) + ); + + }; + return true; + }); + } + + /** + * Dialog close and pop-out animation + */ + function dialogPopOut(container, options) { + return options.reverseAnimate(); + } + + /** + * Utility function to filter out raw DOM nodes + */ + function isNodeOneOf(elem, nodeTypeArray) { + if (nodeTypeArray.indexOf(elem.nodeName) !== -1) { + return true; + } + } + + } +} +MdDialogProvider.$inject = ["$$interimElementProvider"]; + +})(); +(function(){ +"use strict"; + +/** + * @ngdoc module + * @name material.components.chips + */ +/* + * @see js folder for chips implementation + */ +angular.module('material.components.chips', [ + 'material.core', + 'material.components.autocomplete' +]); + +})(); +(function(){ +"use strict"; + (function() { 'use strict'; @@ -6957,7 +8066,8 @@ function iosScrollFix(node) { * * // Example uses moment.js to parse and format dates. * $mdDateLocaleProvider.parseDate = function(dateString) { - * return moment(dateString).toDate(); + * var m = moment(dateString, 'L', true); + * return m.isValid() ? m.toDate() : new Date(NaN); * }; * * $mdDateLocaleProvider.formatDate = function(date) { @@ -7211,15 +8321,22 @@ function iosScrollFix(node) { * * @param {Date} ng-model The component's model. Expects a JavaScript Date object. * @param {expression=} ng-change Expression evaluated when the model value changes. - * @param {expression=} md-min-date Expression representing a min date (inclusive). - * @param {expression=} md-max-date Expression representing a max date (inclusive). + * @param {Date=} md-min-date Expression representing a min date (inclusive). + * @param {Date=} md-max-date Expression representing a max date (inclusive). * @param {boolean=} disabled Whether the datepicker is disabled. + * @param {boolean=} required Whether a value is required for the datepicker. * * @description * `` is a component used to select a single date. * For information on how to configure internationalization for the date picker, * see `$mdDateLocaleProvider`. * + * This component supports [ngMessages](https://docs.angularjs.org/api/ngMessages/directive/ngMessages). + * Supported attributes are: + * * `required`: whether a required date is not set. + * * `mindate`: whether the selected date is before the minimum allowed date. + * * `maxdate`: whether the selected date is after the maximum allowed date. + * * @usage * * @@ -7313,14 +8430,17 @@ function iosScrollFix(node) { * * @ngInject @constructor */ - function DatePickerCtrl($scope, $element, $attrs, $compile, $timeout, $mdConstant, $mdTheming, - $mdUtil, $mdDateLocale, $$mdDateUtil, $$rAF) { + function DatePickerCtrl($scope, $element, $attrs, $compile, $timeout, $window, + $mdConstant, $mdTheming, $mdUtil, $mdDateLocale, $$mdDateUtil, $$rAF) { /** @final */ this.$compile = $compile; /** @final */ this.$timeout = $timeout; + /** @final */ + this.$window = $window; + /** @final */ this.dateLocale = $mdDateLocale; @@ -7415,7 +8535,7 @@ function iosScrollFix(node) { self.detachCalendarPane(); }); } - DatePickerCtrl.$inject = ["$scope", "$element", "$attrs", "$compile", "$timeout", "$mdConstant", "$mdTheming", "$mdUtil", "$mdDateLocale", "$$mdDateUtil", "$$rAF"]; + DatePickerCtrl.$inject = ["$scope", "$element", "$attrs", "$compile", "$timeout", "$window", "$mdConstant", "$mdTheming", "$mdUtil", "$mdDateLocale", "$$mdDateUtil", "$$rAF"]; /** * Sets up the controller's reference to ngModelController. @@ -7429,6 +8549,7 @@ function iosScrollFix(node) { self.date = self.ngModelCtrl.$viewValue; self.inputElement.value = self.dateLocale.formatDate(self.date); self.resizeInputElement(); + self.setErrorFlags(); }; }; @@ -7510,8 +8631,23 @@ function iosScrollFix(node) { }; /** - * Resizes the input element based on the size of its content. + * Sets the custom ngModel.$error flags to be consumed by ngMessages. Flags are: + * - mindate: whether the selected date is before the minimum date. + * - maxdate: whether the selected flag is after the maximum date. */ + DatePickerCtrl.prototype.setErrorFlags = function() { + if (this.dateUtil.isValidDate(this.date)) { + if (this.dateUtil.isValidDate(this.minDate)) { + this.ngModelCtrl.$error['mindate'] = this.date < this.minDate; + } + + if (this.dateUtil.isValidDate(this.maxDate)) { + this.ngModelCtrl.$error['maxdate'] = this.date > this.maxDate; + } + } + }; + + /** Resizes the input element based on the size of its content. */ DatePickerCtrl.prototype.resizeInputElement = function() { this.inputElement.size = this.inputElement.value.length + EXTRA_INPUT_SIZE; }; @@ -7524,7 +8660,6 @@ function iosScrollFix(node) { var inputString = this.inputElement.value; var parsedDate = this.dateLocale.parseDate(inputString); this.dateUtil.setDateTimeToMidnight(parsedDate); - if (inputString === '') { this.ngModelCtrl.$setViewValue(null); this.date = null; @@ -7544,6 +8679,7 @@ function iosScrollFix(node) { /** Position and attach the floating calendar to the document. */ DatePickerCtrl.prototype.attachCalendarPane = function() { var calendarPane = this.calendarPane; + calendarPane.style.transform = ''; this.$element.addClass('md-datepicker-open'); var elementRect = this.inputContainer.getBoundingClientRect(); @@ -7554,25 +8690,39 @@ function iosScrollFix(node) { var paneTop = elementRect.top - bodyRect.top; var paneLeft = elementRect.left - bodyRect.left; + var viewportTop = document.body.scrollTop; + var viewportBottom = viewportTop + this.$window.innerHeight; + + var viewportLeft = document.body.scrollLeft; + var viewportRight = document.body.scrollLeft + this.$window.innerWidth; + // If the right edge of the pane would be off the screen and shifting it left by the - // difference would not go past the left edge of the screen. - if (paneLeft + CALENDAR_PANE_WIDTH > bodyRect.right && - bodyRect.right - CALENDAR_PANE_WIDTH > 0) { - paneLeft = bodyRect.right - CALENDAR_PANE_WIDTH; + // difference would not go past the left edge of the screen. If the calendar pane is too + // big to fit on the screen at all, move it to the left of the screen and scale the entire + // element down to fit. + if (paneLeft + CALENDAR_PANE_WIDTH > viewportRight) { + if (viewportRight - CALENDAR_PANE_WIDTH > 0) { + paneLeft = viewportRight - CALENDAR_PANE_WIDTH; + } else { + paneLeft = viewportLeft; + var scale = this.$window.innerWidth / CALENDAR_PANE_WIDTH; + calendarPane.style.transform = 'scale(' + scale + ')'; + } + calendarPane.classList.add('md-datepicker-pos-adjusted'); } // If the bottom edge of the pane would be off the screen and shifting it up by the // difference would not go past the top edge of the screen. - if (paneTop + CALENDAR_PANE_HEIGHT > bodyRect.bottom && - bodyRect.bottom - CALENDAR_PANE_HEIGHT > 0) { - paneTop = bodyRect.bottom - CALENDAR_PANE_HEIGHT; + if (paneTop + CALENDAR_PANE_HEIGHT > viewportBottom && + viewportBottom - CALENDAR_PANE_HEIGHT > viewportTop) { + paneTop = viewportBottom - CALENDAR_PANE_HEIGHT; calendarPane.classList.add('md-datepicker-pos-adjusted'); } calendarPane.style.left = paneLeft + 'px'; calendarPane.style.top = paneTop + 'px'; - document.body.appendChild(this.calendarPane); + document.body.appendChild(calendarPane); // The top of the calendar pane is a transparent box that shows the text input underneath. // Since the pane is floating, though, the page underneath the pane *adjacent* to the input is @@ -7630,14 +8780,16 @@ function iosScrollFix(node) { /** Close the floating calendar pane. */ DatePickerCtrl.prototype.closeCalendarPane = function() { - this.isCalendarOpen = false; - this.detachCalendarPane(); - this.calendarPaneOpenedFrom.focus(); - this.calendarPaneOpenedFrom = null; - this.$mdUtil.enableScrolling(); + if (this.isCalendarOpen) { + this.isCalendarOpen = false; + this.detachCalendarPane(); + this.calendarPaneOpenedFrom.focus(); + this.calendarPaneOpenedFrom = null; + this.$mdUtil.enableScrolling(); - document.body.removeEventListener('click', this.bodyClickHandler); - window.removeEventListener('resize', this.windowResizeHandler); + document.body.removeEventListener('click', this.bodyClickHandler); + window.removeEventListener('resize', this.windowResizeHandler); + } }; /** Gets the controller instance for the calendar in the floating pane. */ @@ -7881,7 +9033,9 @@ function iosScrollFix(node) { * @param {Date} date */ function setDateTimeToMidnight(date) { - date.setHours(0, 0, 0, 0); + if (isValidDate(date)) { + date.setHours(0, 0, 0, 0); + } } /** @@ -7921,873 +9075,6 @@ function iosScrollFix(node) { (function(){ "use strict"; -/** - * @ngdoc module - * @name material.components.dialog - */ -angular - .module('material.components.dialog', [ - 'material.core', - 'material.components.backdrop' - ]) - .directive('mdDialog', MdDialogDirective) - .provider('$mdDialog', MdDialogProvider); - -function MdDialogDirective($$rAF, $mdTheming, $mdDialog) { - return { - restrict: 'E', - link: function(scope, element, attr) { - $mdTheming(element); - $$rAF(function() { - var images; - var content = element[0].querySelector('md-dialog-content'); - - if (content) { - images = content.getElementsByTagName('img'); - addOverflowClass(); - //-- delayed image loading may impact scroll height, check after images are loaded - angular.element(images).on('load', addOverflowClass); - } - - scope.$on('$destroy', function() { - $mdDialog.destroy(); - }); - - /** - * - */ - function addOverflowClass() { - element.toggleClass('md-content-overflow', content.scrollHeight > content.clientHeight); - } - - - }); - } - }; -} -MdDialogDirective.$inject = ["$$rAF", "$mdTheming", "$mdDialog"]; - -/** - * @ngdoc service - * @name $mdDialog - * @module material.components.dialog - * - * @description - * `$mdDialog` opens a dialog over the app to inform users about critical information or require - * them to make decisions. There are two approaches for setup: a simple promise API - * and regular object syntax. - * - * ## Restrictions - * - * - The dialog is always given an isolate scope. - * - The dialog's template must have an outer `` element. - * Inside, use an `` element for the dialog's content, and use - * an element with class `md-actions` for the dialog's actions. - * - Dialogs must cover the entire application to keep interactions inside of them. - * Use the `parent` option to change where dialogs are appended. - * - * ## Sizing - * - Complex dialogs can be sized with `flex="percentage"`, i.e. `flex="66"`. - * - Default max-width is 80% of the `rootElement` or `parent`. - * - * @usage - * - *
- *
- * - * Employee Alert! - * - *
- *
- * - * Custom Dialog - * - *
- *
- * - * Close Alert - * - *
- *
- * - * Greet Employee - * - *
- *
- *
- * - * ### JavaScript: object syntax - * - * (function(angular, undefined){ - * "use strict"; - * - * angular - * .module('demoApp', ['ngMaterial']) - * .controller('AppCtrl', AppController); - * - * function AppController($scope, $mdDialog) { - * var alert; - * $scope.showAlert = showAlert; - * $scope.showDialog = showDialog; - * $scope.items = [1, 2, 3]; - * - * // Internal method - * function showAlert() { - * alert = $mdDialog.alert({ - * title: 'Attention', - * content: 'This is an example of how easy dialogs can be!', - * ok: 'Close' - * }); - * - * $mdDialog - * .show( alert ) - * .finally(function() { - * alert = undefined; - * }); - * } - * - * function showDialog($event) { - * var parentEl = angular.element(document.body); - * $mdDialog.show({ - * parent: parentEl, - * targetEvent: $event, - * template: - * '' + - * ' '+ - * ' '+ - * ' '+ - * '

Number {{item}}

' + - * ' '+ - * '
'+ - * '
' + - * '
' + - * ' ' + - * ' Close Dialog' + - * ' ' + - * '
' + - * '
', - * locals: { - * items: $scope.items - * }, - * controller: DialogController - * }); - * function DialogController($scope, $mdDialog, items) { - * $scope.items = items; - * $scope.closeDialog = function() { - * $mdDialog.hide(); - * } - * } - * } - * } - * })(angular); - *
- * - * ### JavaScript: promise API syntax, custom dialog template - * - * (function(angular, undefined){ - * "use strict"; - * - * angular - * .module('demoApp', ['ngMaterial']) - * .controller('EmployeeController', EmployeeEditor) - * .controller('GreetingController', GreetingController); - * - * // Fictitious Employee Editor to show how to use simple and complex dialogs. - * - * function EmployeeEditor($scope, $mdDialog) { - * var alert; - * - * $scope.showAlert = showAlert; - * $scope.closeAlert = closeAlert; - * $scope.showGreeting = showCustomGreeting; - * - * $scope.hasAlert = function() { return !!alert }; - * $scope.userName = $scope.userName || 'Bobby'; - * - * // Dialog #1 - Show simple alert dialog and cache - * // reference to dialog instance - * - * function showAlert() { - * alert = $mdDialog.alert() - * .title('Attention, ' + $scope.userName) - * .content('This is an example of how easy dialogs can be!') - * .ok('Close'); - * - * $mdDialog - * .show( alert ) - * .finally(function() { - * alert = undefined; - * }); - * } - * - * // Close the specified dialog instance and resolve with 'finished' flag - * // Normally this is not needed, just use '$mdDialog.hide()' to close - * // the most recent dialog popup. - * - * function closeAlert() { - * $mdDialog.hide( alert, "finished" ); - * alert = undefined; - * } - * - * // Dialog #2 - Demonstrate more complex dialogs construction and popup. - * - * function showCustomGreeting($event) { - * $mdDialog.show({ - * targetEvent: $event, - * template: - * '' + - * - * ' Hello {{ employee }}!' + - * - * '
' + - * ' ' + - * ' Close Greeting' + - * ' ' + - * '
' + - * '
', - * controller: 'GreetingController', - * onComplete: afterShowAnimation, - * locals: { employee: $scope.userName } - * }); - * - * // When the 'enter' animation finishes... - * - * function afterShowAnimation(scope, element, options) { - * // post-show code here: DOM element focus, etc. - * } - * } - * - * // Dialog #3 - Demonstrate use of ControllerAs and passing $scope to dialog - * // Here we used ng-controller="GreetingController as vm" and - * // $scope.vm === - * - * function showCustomGreeting() { - * - * $mdDialog.show({ - * clickOutsideToClose: true, - * - * scope: $scope, // use parent scope in template - * preserveScope: true, // do not forget this if use parent scope - - * // Since GreetingController is instantiated with ControllerAs syntax - * // AND we are passing the parent '$scope' to the dialog, we MUST - * // use 'vm.' in the template markup - * - * template: '' + - * ' ' + - * ' Hi There {{vm.employee}}' + - * ' ' + - * '', - * - * controller: function DialogController($scope, $mdDialog) { - * $scope.closeDialog = function() { - * $mdDialog.hide(); - * } - * } - * }); - * } - * - * } - * - * // Greeting controller used with the more complex 'showCustomGreeting()' custom dialog - * - * function GreetingController($scope, $mdDialog, employee) { - * // Assigned from construction locals options... - * $scope.employee = employee; - * - * $scope.closeDialog = function() { - * // Easily hides most recent dialog shown... - * // no specific instance reference is needed. - * $mdDialog.hide(); - * }; - * } - * - * })(angular); - *
- */ - -/** - * @ngdoc method - * @name $mdDialog#alert - * - * @description - * Builds a preconfigured dialog with the specified message. - * - * @returns {obj} an `$mdDialogPreset` with the chainable configuration methods: - * - * - $mdDialogPreset#title(string) - sets title to string - * - $mdDialogPreset#content(string) - sets content / message to string - * - $mdDialogPreset#ok(string) - sets okay button text to string - * - $mdDialogPreset#theme(string) - sets the theme of the dialog - * - */ - -/** - * @ngdoc method - * @name $mdDialog#confirm - * - * @description - * Builds a preconfigured dialog with the specified message. You can call show and the promise returned - * will be resolved only if the user clicks the confirm action on the dialog. - * - * @returns {obj} an `$mdDialogPreset` with the chainable configuration methods: - * - * Additionally, it supports the following methods: - * - * - $mdDialogPreset#title(string) - sets title to string - * - $mdDialogPreset#content(string) - sets content / message to string - * - $mdDialogPreset#ok(string) - sets okay button text to string - * - $mdDialogPreset#cancel(string) - sets cancel button text to string - * - $mdDialogPreset#theme(string) - sets the theme of the dialog - * - */ - -/** - * @ngdoc method - * @name $mdDialog#show - * - * @description - * Show a dialog with the specified options. - * - * @param {object} optionsOrPreset Either provide an `$mdDialogPreset` returned from `alert()`, and - * `confirm()`, or an options object with the following properties: - * - `templateUrl` - `{string=}`: The url of a template that will be used as the content - * of the dialog. - * - `template` - `{string=}`: Same as templateUrl, except this is an actual template string. - * - `targetEvent` - `{DOMClickEvent=}`: A click's event object. When passed in as an option, - * the location of the click will be used as the starting point for the opening animation - * of the the dialog. - * - `scope` - `{object=}`: the scope to link the template / controller to. If none is specified, - * it will create a new isolate scope. - * This scope will be destroyed when the dialog is removed unless `preserveScope` is set to true. - * - `preserveScope` - `{boolean=}`: whether to preserve the scope when the element is removed. Default is false - * - `disableParentScroll` - `{boolean=}`: Whether to disable scrolling while the dialog is open. - * Default true. - * - `hasBackdrop` - `{boolean=}`: Whether there should be an opaque backdrop behind the dialog. - * Default true. - * - `clickOutsideToClose` - `{boolean=}`: Whether the user can click outside the dialog to - * close it. Default false. - * - `escapeToClose` - `{boolean=}`: Whether the user can press escape to close the dialog. - * Default true. - * - `focusOnOpen` - `{boolean=}`: An option to override focus behavior on open. Only disable if - * focusing some other way, as focus management is required for dialogs to be accessible. - * Defaults to true. - * - `controller` - `{string=}`: The controller to associate with the dialog. The controller - * will be injected with the local `$mdDialog`, which passes along a scope for the dialog. - * - `locals` - `{object=}`: 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 3. If `bindToController` is true, they will be - * copied to the controller instead. - * - `bindToController` - `bool`: bind the locals to the controller, instead of passing them in. - * These values will not be available until after initialization. - * - `resolve` - `{object=}`: Similar to locals, except it takes promises as values, and the - * dialog will not open until all of the promises resolve. - * - `controllerAs` - `{string=}`: An alias to assign the controller to on the scope. - * - `parent` - `{element=}`: The element to append the dialog to. Defaults to appending - * to the root element of the application. - * - `onComplete` `{function=}`: Callback function used to announce when the show() action is - * finished. - * - `onRemoving` `{function=} Callback function used to announce the close/hide() action is - * starting. This allows developers to run custom animations in parallel the close animations. - * - * @returns {promise} A promise that can be resolved with `$mdDialog.hide()` or - * rejected with `$mdDialog.cancel()`. - */ - -/** - * @ngdoc method - * @name $mdDialog#hide - * - * @description - * Hide an existing dialog and resolve the promise returned from `$mdDialog.show()`. - * - * @param {*=} response An argument for the resolved promise. - * - * @returns {promise} A promise that is resolved when the dialog has been closed. - */ - -/** - * @ngdoc method - * @name $mdDialog#cancel - * - * @description - * Hide an existing dialog and reject the promise returned from `$mdDialog.show()`. - * - * @param {*=} response An argument for the rejected promise. - * - * @returns {promise} A promise that is resolved when the dialog has been closed. - */ - -function MdDialogProvider($$interimElementProvider) { - - advancedDialogOptions.$inject = ["$mdDialog", "$mdTheming"]; - dialogDefaultOptions.$inject = ["$mdDialog", "$mdAria", "$mdUtil", "$mdConstant", "$animate", "$document", "$window", "$rootElement"]; - return $$interimElementProvider('$mdDialog') - .setDefaults({ - methods: ['disableParentScroll', 'hasBackdrop', 'clickOutsideToClose', 'escapeToClose', 'targetEvent', 'parent'], - options: dialogDefaultOptions - }) - .addPreset('alert', { - methods: ['title', 'content', 'ariaLabel', 'ok', 'theme', 'css'], - options: advancedDialogOptions - }) - .addPreset('confirm', { - methods: ['title', 'content', 'ariaLabel', 'ok', 'cancel', 'theme', 'css'], - options: advancedDialogOptions - }); - - /* @ngInject */ - function advancedDialogOptions($mdDialog, $mdTheming) { - return { - template: [ - '', - ' ', - '

{{ dialog.title }}

', - '
', - '
', - '
', - ' ', - ' {{ dialog.cancel }}', - ' ', - ' ', - ' {{ dialog.ok }}', - ' ', - '
', - '
' - ].join('').replace(/\s\s+/g, ''), - controller: function mdDialogCtrl() { - this.hide = function() { - $mdDialog.hide(true); - }; - this.abort = function() { - $mdDialog.cancel(); - }; - }, - controllerAs: 'dialog', - bindToController: true, - theme: $mdTheming.defaultTheme() - }; - } - - /* @ngInject */ - function dialogDefaultOptions($mdDialog, $mdAria, $mdUtil, $mdConstant, $animate, $document, $window, $rootElement) { - return { - hasBackdrop: true, - isolateScope: true, - onShow: onShow, - onRemove: onRemove, - clickOutsideToClose: false, - escapeToClose: true, - targetEvent: null, - focusOnOpen: true, - disableParentScroll: true, - transformTemplate: function(template) { - return '
' + validatedTemplate(template) + '
'; - - /** - * The specified template should contain a wrapper element.... - */ - function validatedTemplate(template) { - template || "" - return /<\/md-dialog>/g.test(template) ? template : "" + template + ""; - } - } - }; - - /** - * Show method for dialogs - */ - function onShow(scope, element, options, controller) { - angular.element($document[0].body).addClass('md-dialog-is-showing'); - - wrapSimpleContent(); - - captureSourceAndParent(element, options); - configureAria(element.find('md-dialog'), options); - showBackdrop(scope, element, options); - - return dialogPopIn(element, options) - .then(function() { - activateListeners(element, options); - lockScreenReader(element, options); - focusOnOpen(); - }); - - /** - * For alerts, focus on content... otherwise focus on - * the close button (or equivalent) - */ - function focusOnOpen() { - if (options.focusOnOpen) { - var target = $mdUtil.findFocusTarget(element) || findCloseButton(); - target.focus(); - } - - /** - * If no element with class dialog-close, try to find the last - * button child in md-actions and assume it is a close button - */ - function findCloseButton() { - var closeButton = element[0].querySelector('.dialog-close'); - if (!closeButton) { - var actionButtons = element[0].querySelectorAll('.md-actions button'); - closeButton = actionButtons[actionButtons.length - 1]; - } - return angular.element(closeButton); - } - } - - /** - * Wrap any simple content [specified via .content("")] in

tags. - * otherwise accept HTML content within the dialog content area... - * NOTE: Dialog uses the md-template directive to safely inject HTML content. - */ - function wrapSimpleContent() { - if ( controller ) { - var HTML_END_TAG = /<\/[\w-]*>/gm; - var content = controller.content || ""; - - var hasHTML = HTML_END_TAG.test(content); - if (!hasHTML) { - content = $mdUtil.supplant("

{0}

", [content]); - } - - // Publish updated dialog content body... to be compiled by mdTemplate directive - controller.content = content; - } - } - - } - - /** - * Remove function for all dialogs - */ - function onRemove(scope, element, options) { - options.deactivateListeners(); - options.unlockScreenReader(); - options.hideBackdrop(options.$destroy); - - // For navigation $destroy events, do a quick, non-animated removal, - // but for normal closes (from clicks, etc) animate the removal - - return !!options.$destroy ? detachAndClean() : animateRemoval().then( detachAndClean ); - - /** - * For normal closes, animate the removal. - * For forced closes (like $destroy events), skip the animations - */ - function animateRemoval() { - return dialogPopOut(element, options); - } - - /** - * Detach the element - */ - function detachAndClean() { - angular.element($document[0].body).removeClass('md-dialog-is-showing'); - element.remove(); - - if (!options.$destroy) options.origin.focus(); - } - } - - /** - * Capture originator/trigger element information (if available) - * and the parent container for the dialog; defaults to the $rootElement - * unless overridden in the options.parent - */ - function captureSourceAndParent(element, options) { - options.origin = angular.extend({ - element: null, - bounds: null, - focus: angular.noop - }, options.origin || {}); - - var source = angular.element((options.targetEvent || {}).target); - if (source && source.length) { - // Compute and save the target element's bounding rect, so that if the - // element is hidden when the dialog closes, we can shrink the dialog - // back to the same position it expanded from. - options.origin.element = source; - options.origin.bounds = source[0].getBoundingClientRect(); - options.origin.focus = function() { - source.focus(); - } - } - - // If the parent specifier is a simple string selector, then query for - // the DOM element. - if ( angular.isString(options.parent) ) { - var simpleSelector = options.parent, - container = $document[0].querySelectorAll(simpleSelector); - options.parent = container.length ? container[0] : null; - } - // If we have a reference to a raw dom element, always wrap it in jqLite - options.parent = angular.element(options.parent || $rootElement); - - } - - /** - * Listen for escape keys and outside clicks to auto close - */ - function activateListeners(element, options) { - var window = angular.element($window); - var onWindowResize = $mdUtil.debounce(function(){ - stretchDialogContainerToViewport(element, options); - }, 60); - - var removeListeners = []; - var smartClose = function() { - // Only 'confirm' dialogs have a cancel button... escape/clickOutside will - // cancel or fallback to hide. - var closeFn = ( options.$type == 'alert' ) ? $mdDialog.hide : $mdDialog.cancel; - $mdUtil.nextTick(closeFn, true); - }; - - if (options.escapeToClose) { - var target = options.parent; - var keyHandlerFn = function(ev) { - if (ev.keyCode === $mdConstant.KEY_CODE.ESCAPE) { - ev.stopPropagation(); - ev.preventDefault(); - - smartClose(); - } - }; - - // Add keyup listeners - element.on('keyup', keyHandlerFn); - target.on('keyup', keyHandlerFn); - window.on('resize', onWindowResize); - - // Queue remove listeners function - removeListeners.push(function() { - - element.off('keyup', keyHandlerFn); - target.off('keyup', keyHandlerFn); - window.off('resize', onWindowResize); - - }); - } - if (options.clickOutsideToClose) { - var target = element; - var clickHandler = function(ev) { - // Only close if we click the flex container outside on the backdrop - if (ev.target === target[0]) { - ev.stopPropagation(); - ev.preventDefault(); - - smartClose(); - } - }; - - // Add click listeners - target.on('click', clickHandler); - - // Queue remove listeners function - removeListeners.push(function() { - target.off('click', clickHandler); - }); - } - - // Attach specific `remove` listener handler - options.deactivateListeners = function() { - removeListeners.forEach(function(removeFn) { - removeFn(); - }); - options.deactivateListeners = null; - }; - } - - /** - * Show modal backdrop element... - */ - function showBackdrop(scope, element, options) { - - if (options.disableParentScroll) { - // !! DO this before creating the backdrop; since disableScrollAround() - // configures the scroll offset; which is used by mdBackDrop postLink() - options.restoreScroll = $mdUtil.disableScrollAround(element, options.parent); - } - - if (options.hasBackdrop) { - options.backdrop = $mdUtil.createBackdrop(scope, "md-dialog-backdrop md-opaque"); - $animate.enter(options.backdrop, options.parent); - } - - /** - * Hide modal backdrop element... - */ - options.hideBackdrop = function hideBackdrop($destroy) { - if (options.backdrop) { - if ( !!$destroy ) options.backdrop.remove(); - else $animate.leave(options.backdrop); - } - - if (options.disableParentScroll) { - options.restoreScroll(); - delete options.restoreScroll; - } - - options.hideBackdrop = null; - } - } - - /** - * Inject ARIA-specific attributes appropriate for Dialogs - */ - function configureAria(element, options) { - - var role = (options.$type === 'alert') ? 'alertdialog' : 'dialog'; - var dialogContent = element.find('md-dialog-content'); - var dialogId = element.attr('id') || ('dialog_' + $mdUtil.nextUid()); - - element.attr({ - 'role': role, - 'tabIndex': '-1' - }); - - if (dialogContent.length === 0) { - dialogContent = element; - } - - dialogContent.attr('id', dialogId); - element.attr('aria-describedby', dialogId); - - if (options.ariaLabel) { - $mdAria.expect(element, 'aria-label', options.ariaLabel); - } - else { - $mdAria.expectAsync(element, 'aria-label', function() { - var words = dialogContent.text().split(/\s+/); - if (words.length > 3) words = words.slice(0, 3).concat('...'); - return words.join(' '); - }); - } - } - - /** - * Prevents screen reader interaction behind modal window - * on swipe interfaces - */ - function lockScreenReader(element, options) { - var isHidden = true; - - // get raw DOM node - walkDOM(element[0]); - - options.unlockScreenReader = function() { - isHidden = false; - walkDOM(element[0]); - - options.unlockScreenReader = null; - }; - - /** - * Walk DOM to apply or remove aria-hidden on sibling nodes - * and parent sibling nodes - * - */ - function walkDOM(element) { - while (element.parentNode) { - if (element === document.body) { - return; - } - var children = element.parentNode.children; - for (var i = 0; i < children.length; i++) { - // skip over child if it is an ascendant of the dialog - // or a script or style tag - if (element !== children[i] && !isNodeOneOf(children[i], ['SCRIPT', 'STYLE'])) { - children[i].setAttribute('aria-hidden', isHidden); - } - } - - walkDOM(element = element.parentNode); - } - } - } - - /** - * Ensure the dialog container fill-stretches to the viewport - */ - function stretchDialogContainerToViewport(container, options) { - - var isFixed = $window.getComputedStyle($document[0].body).position == 'fixed'; - var backdrop = options.backdrop ? $window.getComputedStyle(options.backdrop[0]) : null; - var height = backdrop ? Math.min($document[0].body.clientHeight, Math.ceil(Math.abs(parseInt(backdrop.height, 10)))) : 0; - - container.css({ - top: (isFixed ? $mdUtil.scrollTop(options.parent) : 0) + 'px', - height: height ? height + 'px' : '100%' - }); - - return container; - } - - /** - * Dialog open and pop-in animation - */ - function dialogPopIn(container, options) { - - // Add the `md-dialog-container` to the DOM - options.parent.append(container); - stretchDialogContainerToViewport(container, options); - - var dialogEl = container.find('md-dialog'); - var animator = $mdUtil.dom.animator; - var buildTranslateToOrigin = animator.calculateZoomToOrigin; - var translateOptions = {transitionInClass: 'md-transition-in', transitionOutClass: 'md-transition-out'}; - var from = animator.toTransformCss(buildTranslateToOrigin(dialogEl, options.origin)); - var to = animator.toTransformCss(""); // defaults to center display (or parent or $rootElement) - - return animator - .translate3d(dialogEl, from, to, translateOptions) - .then(function(animateReversal) { - - - - // Build a reversal translate function synched to this translation... - options.reverseAnimate = function() { - - delete options.reverseAnimate; - return animateReversal( - animator.toTransformCss( - // in case the origin element has moved or is hidden, - // let's recalculate the translateCSS - buildTranslateToOrigin(dialogEl, options.origin) - ) - ); - - }; - return true; - }); - } - - /** - * Dialog close and pop-out animation - */ - function dialogPopOut(container, options) { - return options.reverseAnimate(); - } - - /** - * Utility function to filter out raw DOM nodes - */ - function isNodeOneOf(elem, nodeTypeArray) { - if (nodeTypeArray.indexOf(elem.nodeName) !== -1) { - return true; - } - } - - } -} -MdDialogProvider.$inject = ["$$interimElementProvider"]; - -})(); -(function(){ -"use strict"; - /** * @ngdoc module * @name material.components.divider @@ -8848,7 +9135,7 @@ MdDividerDirective.$inject = ["$mdTheming"]; * * @description * The `` directive is used inside of a `` or - * `` directive to mark the an element (or elements) as the actions and setup the + * `` directive to mark an element (or elements) as the actions and setup the * proper event listeners. * * @usage @@ -8947,6 +9234,9 @@ MdDividerDirective.$inject = ["$mdTheming"]; 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(); }); } @@ -9213,6 +9503,7 @@ MdDividerDirective.$inject = ["$mdTheming"]; } FabController.$inject = ["$scope", "$element", "$animate", "$mdUtil", "$mdConstant"]; })(); + })(); (function(){ "use strict"; @@ -9272,6 +9563,11 @@ MdDividerDirective.$inject = ["$mdTheming"]; * 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. + * * @usage * * @@ -9291,7 +9587,7 @@ MdDividerDirective.$inject = ["$mdTheming"]; * * * - * @param {string=} md-direction From which direction you would like the speed dial to appear + * @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. */ @@ -9401,6 +9697,12 @@ MdDividerDirective.$inject = ["$mdTheming"]; 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, @@ -9409,6 +9711,9 @@ MdDividerDirective.$inject = ["$mdTheming"]; 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; }); } @@ -9498,7 +9803,7 @@ MdDividerDirective.$inject = ["$mdTheming"]; * *
* - * @param {string=} md-direction From which direction you would like the toolbar items to appear + * @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. */ @@ -9557,8 +9862,8 @@ MdDividerDirective.$inject = ["$mdTheming"]; var width = el.offsetWidth; var height = el.offsetHeight; - // Make a square - var scale = width * 2; + // 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; @@ -9569,22 +9874,9 @@ MdDividerDirective.$inject = ["$mdTheming"]; // Turn on toolbar pointer events when closed toolbarElement.style.pointerEvents = 'initial'; - // Set the width/height to take up the full toolbar width - backgroundElement.style.width = scale + 'px'; - backgroundElement.style.height = scale + 'px'; - - // Set the top/left to move up/left (or right) by the scale width/height - backgroundElement.style.top = -(scale / 2) + 'px'; - - if (element.hasClass('md-right')) { - backgroundElement.style.left = -(scale / 2) + 'px'; - backgroundElement.style.right = null; - } - - if (element.hasClass('md-left')) { - backgroundElement.style.right = -(scale / 2) + 'px'; - backgroundElement.style.left = null; - } + 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'; @@ -9598,20 +9890,19 @@ MdDividerDirective.$inject = ["$mdTheming"]; // Turn off toolbar pointer events when closed toolbarElement.style.pointerEvents = 'none'; - // Otherwise, set the width/height to the trigger's width/height - backgroundElement.style.width = triggerElement.offsetWidth + 'px'; - backgroundElement.style.height = triggerElement.offsetHeight + 'px'; + // Scale it back down to the trigger's size + backgroundElement.style.transform = 'scale(1)'; // Reset the position - backgroundElement.style.top = '0px'; + backgroundElement.style.top = '0'; if (element.hasClass('md-right')) { - backgroundElement.style.left = '0px'; + backgroundElement.style.left = '0'; backgroundElement.style.right = null; } if (element.hasClass('md-left')) { - backgroundElement.style.right = '0px'; + backgroundElement.style.right = '0'; backgroundElement.style.left = null; } @@ -9664,7 +9955,7 @@ MdDividerDirective.$inject = ["$mdTheming"]; * * @description * The `` directive is used inside of a `` or - * `` directive to mark the an element (or elements) as the trigger and setup the + * `` directive to mark an element (or elements) as the trigger and setup the * proper event listeners. * * @usage @@ -9811,7 +10102,7 @@ function GridListDirective($interpolate, $mdConstant, $mdGridLayout, $mdMedia) { .addListener(invalidateLayout); } return $mdMedia.watchResponsiveAttributes( - ['md-cols', 'md-row-height'], attrs, layoutIfMediaMatch); + ['md-cols', 'md-row-height', 'md-gutter'], attrs, layoutIfMediaMatch); } function unwatchMedia() { @@ -9876,7 +10167,7 @@ function GridListDirective($interpolate, $mdConstant, $mdGridLayout, $mdMedia) { return { element: angular.element(tiles[i]), style: getTileStyle(ps.position, ps.spans, - props.colCount, props.rowCount, + props.colCount, rowCount, props.gutter, props.rowMode, props.rowHeight) } }) @@ -10006,14 +10297,12 @@ function GridListDirective($interpolate, $mdConstant, $mdGridLayout, $mdMedia) { } function getGridStyle(colCount, rowCount, gutter, rowMode, rowHeight) { - var style = { - height: '', - paddingBottom: '' - }; + var style = {}; switch(rowMode) { case 'fixed': style.height = DIMENSION({ unit: rowHeight, span: rowCount, gutter: gutter }); + style.paddingBottom = ''; break; case 'ratio': @@ -10023,6 +10312,7 @@ function GridListDirective($interpolate, $mdConstant, $mdGridLayout, $mdMedia) { vShare = hShare * (1 / rowHeight), vUnit = UNIT({ share: vShare, gutterShare: hGutterShare, gutter: gutter }); + style.height = ''; style.paddingBottom = DIMENSION({ unit: vUnit, span: rowCount, gutter: gutter}); break; @@ -10036,7 +10326,7 @@ function GridListDirective($interpolate, $mdConstant, $mdGridLayout, $mdMedia) { function getTileElements() { return [].filter.call(element.children(), function(ele) { - return ele.tagName == 'MD-GRID-TILE'; + return ele.tagName == 'MD-GRID-TILE' && !ele.$$mdDestroyed; }); } @@ -10413,6 +10703,9 @@ function GridTileDirective($mdMedia) { // Tile registration/deregistration gridCtrl.invalidateTiles(); scope.$on('$destroy', function() { + // Mark the tile as destroyed so it is no longer considered in layout, + // even if the DOM element sticks around (like during a leave animation) + element[0].$$mdDestroyed = true; unwatchAttrs(); gridCtrl.invalidateLayout(); }); @@ -10586,6 +10879,7 @@ function labelDirective() { * @param {string=} placeholder An alternative approach to using aria-label when the label is not * PRESENT. The placeholder text is copied to the aria-label attribute. * @param md-no-autogrow {boolean=} When present, textareas will not grow automatically. + * @param md-detect-hidden {boolean=} When present, textareas will be sized properly when they are revealed after being hidden. This is off by default for performance reasons because it guarantees a reflow every digest cycle. * * @usage * @@ -10801,6 +11095,31 @@ function inputTextareaDirective($mdUtil, $window, $mdAria) { var height = node.offsetHeight + line; node.style.height = height + 'px'; } + + // Attach a watcher to detect when the textarea gets shown. + if (angular.isDefined(element.attr('md-detect-hidden'))) { + + var handleHiddenChange = function() { + var wasHidden = false; + + return function() { + var isHidden = node.offsetHeight === 0; + + if (isHidden === false && wasHidden === true) { + growTextarea(); + } + + wasHidden = isHidden; + }; + }(); + + // Check every digest cycle whether the visibility of the textarea has changed. + // Queue up to run after the digest cycle is complete. + scope.$watch(function() { + $mdUtil.nextTick(handleHiddenChange, false); + return true; + }); + } } } } @@ -10823,11 +11142,29 @@ function mdMaxlengthDirective($animate) { // Stop model from trimming. This makes it so whitespace // over the maxlength still counts as invalid. attr.$set('ngTrim', 'false'); - input.after(charCountEl); + + var ngMessagesSelectors = [ + 'ng-messages', + 'data-ng-messages', + 'x-ng-messages', + '[ng-messages]', + '[data-ng-messages]', + '[x-ng-messages]' + ]; + + var ngMessages = containerCtrl.element[0].querySelector(ngMessagesSelectors.join(',')); + + // If we have an ngMessages container, put the counter at the top; otherwise, put it after the + // input so it will be positioned properly in the SCSS + if (ngMessages) { + angular.element(ngMessages).prepend(charCountEl); + } else { + input.after(charCountEl); + } ngModelCtrl.$formatters.push(renderCharCount); ngModelCtrl.$viewChangeListeners.push(renderCharCount); - element.on('input keydown', function() { + element.on('input keydown keyup', function() { renderCharCount(); //make sure it's called with no args }); @@ -10851,7 +11188,9 @@ function mdMaxlengthDirective($animate) { }; function renderCharCount(value) { - charCountEl.text(( element.val() || value || '' ).length + '/' + maxlength); + // Force the value into a string since it may be a number, + // which does not have a length property. + charCountEl.text(String(element.val() || value || '').length + '/' + maxlength); return value; } } @@ -10870,14 +11209,15 @@ function placeholderDirective($log) { // If there is no input container, just return if (!inputContainer) return; - // Add a placeholder class so we can target it in the CSS - inputContainer.setHasPlaceholder(true); - var label = inputContainer.element.find('label'); var hasNoFloat = angular.isDefined(inputContainer.element.attr('md-no-float')); // If we have a label, or they specify the md-no-float attribute, just return - if ((label && label.length) || hasNoFloat) return; + if ((label && label.length) || hasNoFloat) { + // Add a placeholder class so we can target it in the CSS + inputContainer.setHasPlaceholder(true); + return; + } // Otherwise, grab/remove the placeholder var placeholderText = attr.placeholder; @@ -10979,11 +11319,23 @@ mdListDirective.$inject = ["$mdTheming"]; * @description * The `` directive is a container intended for row items in a `` container. * + * ## CSS + * `.md-avatar` - class for image avatars + * + * `.md-avatar-icon` - class for icon avatars + * + * `.md-offset` - on content without an avatar + * * @usage * * * - * Item content in list + * + * Item content in list + * + * + * + * Item content in list * * * @@ -11877,7 +12229,7 @@ mdRadioGroupDirective.$inject = ["$mdUtil", "$mdConstant", "$mdTheming", "$timeo * @param {string=} ngChange Angular expression to be executed when input changes due to user * interaction with the input element. * @param {string} ngValue Angular expression which sets the value to which the expression should - * be set when selected.* + * be set when selected. * @param {string} value The value to which the expression should be set when selected. * @param {string=} name Property name of the form under which the control is published. * @param {string=} aria-label Adds label to radio button for accessibility. @@ -12059,11 +12411,12 @@ angular.module('material.components.select', [ * * @param {expression} ng-model The model! * @param {boolean=} multiple Whether it's multiple. - * @param {expression=} md-on-close expression to be evaluated when the select is closed + * @param {expression=} md-on-close Expression to be evaluated when the select is closed. * @param {string=} placeholder Placeholder hint text. * @param {string=} aria-label Optional label for accessibility. Only necessary if no placeholder or - * @param {string=} md-container-class class list to get applied to the .md-select-menu-container element (for custom styling) * explicit label is present. + * @param {string=} md-container-class Class list to get applied to the `.md-select-menu-container` + * element (for custom styling). * * @usage * With a placeholder (label and aria-label are added dynamically) @@ -12202,6 +12555,12 @@ function SelectDirective($mdSelect, $mdUtil, $mdTheming, $mdAria, $compile, $par } } + if (formCtrl) { + $mdUtil.nextTick(function() { + formCtrl.$setPristine(); + }); + } + var originalRender = ngModelCtrl.$render; ngModelCtrl.$render = function() { originalRender(); @@ -12209,6 +12568,8 @@ function SelectDirective($mdSelect, $mdUtil, $mdTheming, $mdAria, $compile, $par inputCheckValue(); }; + attr.$observe('placeholder', ngModelCtrl.$render); + mdSelectCtrl.setLabelText = function(text) { mdSelectCtrl.setIsPlaceholder(!text); // Use placeholder attribute, otherwise fallback to the md-input-container label @@ -12509,6 +12870,7 @@ function SelectMenuDirective($parse, $mdUtil, $mdTheming) { // reference. This allowed the developer to also push and pop from their array. $scope.$watchCollection($attrs.ngModel, function(value) { if (validateArray(value)) renderMultiple(value); + self.ngModel.$setPristine(); }); } else { delete ngModel.$validators['md-multiple']; @@ -12686,7 +13048,7 @@ function OptionDirective($mdButtonInkRipple, $mdUtil) { if (angular.isDefined(attr.ngValue)) { scope.$watch(attr.ngValue, setOptionValue); } else if (angular.isDefined(attr.value)) { - setOptionValue(isNaN(attr.value) ? attr.value : Number(attr.value)); + setOptionValue(attr.value); } else { scope.$watch(function() { return element.text(); @@ -13621,7 +13983,10 @@ function SidenavDirective($mdMedia, $mdUtil, $mdConstant, $mdTheming, $animate, sidenavCtrl.destroy(); }); - scope.$on('$destroy', backdrop.remove ); + scope.$on('$destroy', function(){ + backdrop.remove() + }); + scope.$watch(isLocked, updateIsLocked); scope.$watch('isOpen', updateIsOpen); @@ -13780,416 +14145,6 @@ function SidenavController($scope, $element, $attrs, $mdComponentRegistry, $q) { } SidenavController.$inject = ["$scope", "$element", "$attrs", "$mdComponentRegistry", "$q"]; -})(); -(function(){ -"use strict"; - - /** - * @ngdoc module - * @name material.components.slider - */ - angular.module('material.components.slider', [ - 'material.core' - ]) - .directive('mdSlider', SliderDirective); - -/** - * @ngdoc directive - * @name mdSlider - * @module material.components.slider - * @restrict E - * @description - * The `` component allows the user to choose from a range of - * values. - * - * As per the [material design spec](http://www.google.com/design/spec/style/color.html#color-ui-color-application) - * the slider is in the accent color by default. The primary color palette may be used with - * the `md-primary` class. - * - * It has two modes: 'normal' mode, where the user slides between a wide range - * of values, and 'discrete' mode, where the user slides between only a few - * select values. - * - * To enable discrete mode, add the `md-discrete` attribute to a slider, - * and use the `step` attribute to change the distance between - * values the user is allowed to pick. - * - * @usage - *

Normal Mode

- * - * - * - * - *

Discrete Mode

- * - * - * - * - * - * @param {boolean=} md-discrete Whether to enable discrete mode. - * @param {number=} step The distance between values the user is allowed to pick. Default 1. - * @param {number=} min The minimum value the user is allowed to pick. Default 0. - * @param {number=} max The maximum value the user is allowed to pick. Default 100. - */ -function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, $mdTheming, $mdGesture, $parse, $log) { - return { - scope: {}, - require: '?ngModel', - template: - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '' + - '
' + - '
' + - '
' + - '
', - compile: compile - }; - - // ********************************************************** - // Private Methods - // ********************************************************** - - function compile (tElement, tAttrs) { - tElement.attr({ - tabIndex: 0, - role: 'slider' - }); - - $mdAria.expect(tElement, 'aria-label'); - - return postLink; - } - - function postLink(scope, element, attr, ngModelCtrl) { - $mdTheming(element); - ngModelCtrl = ngModelCtrl || { - // Mock ngModelController if it doesn't exist to give us - // the minimum functionality needed - $setViewValue: function(val) { - this.$viewValue = val; - this.$viewChangeListeners.forEach(function(cb) { cb(); }); - }, - $parsers: [], - $formatters: [], - $viewChangeListeners: [] - }; - - var isDisabledGetter = angular.noop; - if (attr.disabled != null) { - isDisabledGetter = function() { return true; }; - } else if (attr.ngDisabled) { - isDisabledGetter = angular.bind(null, $parse(attr.ngDisabled), scope.$parent); - } - - var thumb = angular.element(element[0].querySelector('.md-thumb')); - var thumbText = angular.element(element[0].querySelector('.md-thumb-text')); - var thumbContainer = thumb.parent(); - var trackContainer = angular.element(element[0].querySelector('.md-track-container')); - var activeTrack = angular.element(element[0].querySelector('.md-track-fill')); - var tickContainer = angular.element(element[0].querySelector('.md-track-ticks')); - var throttledRefreshDimensions = $mdUtil.throttle(refreshSliderDimensions, 5000); - - // Default values, overridable by attrs - angular.isDefined(attr.min) ? attr.$observe('min', updateMin) : updateMin(0); - angular.isDefined(attr.max) ? attr.$observe('max', updateMax) : updateMax(100); - angular.isDefined(attr.step)? attr.$observe('step', updateStep) : updateStep(1); - - // We have to manually stop the $watch on ngDisabled because it exists - // on the parent scope, and won't be automatically destroyed when - // the component is destroyed. - var stopDisabledWatch = angular.noop; - if (attr.ngDisabled) { - stopDisabledWatch = scope.$parent.$watch(attr.ngDisabled, updateAriaDisabled); - } - - $mdGesture.register(element, 'drag'); - - element - .on('keydown', keydownListener) - .on('$md.pressdown', onPressDown) - .on('$md.pressup', onPressUp) - .on('$md.dragstart', onDragStart) - .on('$md.drag', onDrag) - .on('$md.dragend', onDragEnd); - - // On resize, recalculate the slider's dimensions and re-render - function updateAll() { - refreshSliderDimensions(); - ngModelRender(); - redrawTicks(); - } - setTimeout(updateAll, 0); - - var debouncedUpdateAll = $$rAF.throttle(updateAll); - angular.element($window).on('resize', debouncedUpdateAll); - - scope.$on('$destroy', function() { - angular.element($window).off('resize', debouncedUpdateAll); - stopDisabledWatch(); - }); - - ngModelCtrl.$render = ngModelRender; - ngModelCtrl.$viewChangeListeners.push(ngModelRender); - ngModelCtrl.$formatters.push(minMaxValidator); - ngModelCtrl.$formatters.push(stepValidator); - - /** - * Attributes - */ - var min; - var max; - var step; - function updateMin(value) { - min = parseFloat(value); - element.attr('aria-valuemin', value); - updateAll(); - } - function updateMax(value) { - max = parseFloat(value); - element.attr('aria-valuemax', value); - updateAll(); - } - function updateStep(value) { - step = parseFloat(value); - redrawTicks(); - } - function updateAriaDisabled(isDisabled) { - element.attr('aria-disabled', !!isDisabled); - } - - // Draw the ticks with canvas. - // The alternative to drawing ticks with canvas is to draw one element for each tick, - // which could quickly become a performance bottleneck. - var tickCanvas, tickCtx; - function redrawTicks() { - if (!angular.isDefined(attr.mdDiscrete)) return; - if ( angular.isUndefined(step) ) return; - - if ( step <= 0 ) { - var msg = 'Slider step value must be greater than zero when in discrete mode'; - $log.error(msg); - throw new Error(msg); - } - - var numSteps = Math.floor( (max - min) / step ); - if (!tickCanvas) { - tickCanvas = angular.element(''); - tickContainer.append(tickCanvas); - - var trackTicksStyle = $window.getComputedStyle(tickContainer[0]); - tickCtx = tickCanvas[0].getContext('2d'); - tickCtx.fillStyle = trackTicksStyle.backgroundColor || 'black'; - } - - var dimensions = getSliderDimensions(); - tickCanvas[0].width = dimensions.width; - tickCanvas[0].height = dimensions.height; - - var distance; - for (var i = 0; i <= numSteps; i++) { - distance = Math.floor(dimensions.width * (i / numSteps)); - tickCtx.fillRect(distance - 1, 0, 2, dimensions.height); - } - } - - - /** - * Refreshing Dimensions - */ - var sliderDimensions = {}; - refreshSliderDimensions(); - function refreshSliderDimensions() { - sliderDimensions = trackContainer[0].getBoundingClientRect(); - } - function getSliderDimensions() { - throttledRefreshDimensions(); - return sliderDimensions; - } - - /** - * left/right arrow listener - */ - function keydownListener(ev) { - if(element[0].hasAttribute('disabled')) { - return; - } - - var changeAmount; - if (ev.keyCode === $mdConstant.KEY_CODE.LEFT_ARROW) { - changeAmount = -step; - } else if (ev.keyCode === $mdConstant.KEY_CODE.RIGHT_ARROW) { - changeAmount = step; - } - if (changeAmount) { - if (ev.metaKey || ev.ctrlKey || ev.altKey) { - changeAmount *= 4; - } - ev.preventDefault(); - ev.stopPropagation(); - scope.$evalAsync(function() { - setModelValue(ngModelCtrl.$viewValue + changeAmount); - }); - } - } - - /** - * ngModel setters and validators - */ - function setModelValue(value) { - ngModelCtrl.$setViewValue( minMaxValidator(stepValidator(value)) ); - } - function ngModelRender() { - if (isNaN(ngModelCtrl.$viewValue)) { - ngModelCtrl.$viewValue = ngModelCtrl.$modelValue; - } - - var percent = (ngModelCtrl.$viewValue - min) / (max - min); - scope.modelValue = ngModelCtrl.$viewValue; - element.attr('aria-valuenow', ngModelCtrl.$viewValue); - setSliderPercent(percent); - thumbText.text( ngModelCtrl.$viewValue ); - } - - function minMaxValidator(value) { - if (angular.isNumber(value)) { - return Math.max(min, Math.min(max, value)); - } - } - function stepValidator(value) { - if (angular.isNumber(value)) { - var formattedValue = (Math.round(value / step) * step); - // Format to 3 digits after the decimal point - fixes #2015. - return (Math.round(formattedValue * 1000) / 1000); - } - } - - /** - * @param percent 0-1 - */ - function setSliderPercent(percent) { - activeTrack.css('width', (percent * 100) + '%'); - thumbContainer.css( - 'left', - (percent * 100) + '%' - ); - element.toggleClass('md-min', percent === 0); - } - - - /** - * Slide listeners - */ - var isDragging = false; - var isDiscrete = angular.isDefined(attr.mdDiscrete); - - function onPressDown(ev) { - if (isDisabledGetter()) return; - - element.addClass('md-active'); - element[0].focus(); - refreshSliderDimensions(); - - var exactVal = percentToValue( positionToPercent( ev.pointer.x )); - var closestVal = minMaxValidator( stepValidator(exactVal) ); - scope.$apply(function() { - setModelValue( closestVal ); - setSliderPercent( valueToPercent(closestVal)); - }); - } - function onPressUp(ev) { - if (isDisabledGetter()) return; - - element.removeClass('md-dragging md-active'); - - var exactVal = percentToValue( positionToPercent( ev.pointer.x )); - var closestVal = minMaxValidator( stepValidator(exactVal) ); - scope.$apply(function() { - setModelValue(closestVal); - ngModelRender(); - }); - } - function onDragStart(ev) { - if (isDisabledGetter()) return; - isDragging = true; - ev.stopPropagation(); - - element.addClass('md-dragging'); - setSliderFromEvent(ev); - } - function onDrag(ev) { - if (!isDragging) return; - ev.stopPropagation(); - setSliderFromEvent(ev); - } - function onDragEnd(ev) { - if (!isDragging) return; - ev.stopPropagation(); - isDragging = false; - } - - function setSliderFromEvent(ev) { - // While panning discrete, update only the - // visual positioning but not the model value. - if ( isDiscrete ) adjustThumbPosition( ev.pointer.x ); - else doSlide( ev.pointer.x ); - } - - /** - * Slide the UI by changing the model value - * @param x - */ - function doSlide( x ) { - scope.$evalAsync( function() { - setModelValue( percentToValue( positionToPercent(x) )); - }); - } - - /** - * Slide the UI without changing the model (while dragging/panning) - * @param x - */ - function adjustThumbPosition( x ) { - var exactVal = percentToValue( positionToPercent( x )); - var closestVal = minMaxValidator( stepValidator(exactVal) ); - setSliderPercent( positionToPercent(x) ); - thumbText.text( closestVal ); - } - - /** - * Convert horizontal position on slider to percentage value of offset from beginning... - * @param x - * @returns {number} - */ - function positionToPercent( x ) { - return Math.max(0, Math.min(1, (x - sliderDimensions.left) / (sliderDimensions.width))); - } - - /** - * Convert percentage offset on slide to equivalent model value - * @param percent - * @returns {*} - */ - function percentToValue( percent ) { - return (min + percent * (max - min)); - } - - function valueToPercent( val ) { - return (val - min)/(max - min); - } - } -} -SliderDirective.$inject = ["$$rAF", "$window", "$mdAria", "$mdUtil", "$mdConstant", "$mdTheming", "$mdGesture", "$parse", "$log"]; - })(); (function(){ "use strict"; @@ -14513,6 +14468,417 @@ function MdSticky($document, $mdConstant, $$rAF, $mdUtil) { } MdSticky.$inject = ["$document", "$mdConstant", "$$rAF", "$mdUtil"]; +})(); +(function(){ +"use strict"; + + /** + * @ngdoc module + * @name material.components.slider + */ + angular.module('material.components.slider', [ + 'material.core' + ]) + .directive('mdSlider', SliderDirective); + +/** + * @ngdoc directive + * @name mdSlider + * @module material.components.slider + * @restrict E + * @description + * The `` component allows the user to choose from a range of + * values. + * + * As per the [material design spec](http://www.google.com/design/spec/style/color.html#color-ui-color-application) + * the slider is in the accent color by default. The primary color palette may be used with + * the `md-primary` class. + * + * It has two modes: 'normal' mode, where the user slides between a wide range + * of values, and 'discrete' mode, where the user slides between only a few + * select values. + * + * To enable discrete mode, add the `md-discrete` attribute to a slider, + * and use the `step` attribute to change the distance between + * values the user is allowed to pick. + * + * @usage + *

Normal Mode

+ * + * + * + * + *

Discrete Mode

+ * + * + * + * + * + * @param {boolean=} md-discrete Whether to enable discrete mode. + * @param {number=} step The distance between values the user is allowed to pick. Default 1. + * @param {number=} min The minimum value the user is allowed to pick. Default 0. + * @param {number=} max The maximum value the user is allowed to pick. Default 100. + */ +function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, $mdTheming, $mdGesture, $parse, $log) { + return { + scope: {}, + require: '?ngModel', + template: + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '' + + '
' + + '
' + + '
' + + '
', + compile: compile + }; + + // ********************************************************** + // Private Methods + // ********************************************************** + + function compile (tElement, tAttrs) { + tElement.attr({ + tabIndex: 0, + role: 'slider' + }); + + $mdAria.expect(tElement, 'aria-label'); + + return postLink; + } + + function postLink(scope, element, attr, ngModelCtrl) { + $mdTheming(element); + ngModelCtrl = ngModelCtrl || { + // Mock ngModelController if it doesn't exist to give us + // the minimum functionality needed + $setViewValue: function(val) { + this.$viewValue = val; + this.$viewChangeListeners.forEach(function(cb) { cb(); }); + }, + $parsers: [], + $formatters: [], + $viewChangeListeners: [] + }; + + var isDisabledGetter = angular.noop; + if (attr.disabled != null) { + isDisabledGetter = function() { return true; }; + } else if (attr.ngDisabled) { + isDisabledGetter = angular.bind(null, $parse(attr.ngDisabled), scope.$parent); + } + + var thumb = angular.element(element[0].querySelector('.md-thumb')); + var thumbText = angular.element(element[0].querySelector('.md-thumb-text')); + var thumbContainer = thumb.parent(); + var trackContainer = angular.element(element[0].querySelector('.md-track-container')); + var activeTrack = angular.element(element[0].querySelector('.md-track-fill')); + var tickContainer = angular.element(element[0].querySelector('.md-track-ticks')); + var throttledRefreshDimensions = $mdUtil.throttle(refreshSliderDimensions, 5000); + + // Default values, overridable by attrs + angular.isDefined(attr.min) ? attr.$observe('min', updateMin) : updateMin(0); + angular.isDefined(attr.max) ? attr.$observe('max', updateMax) : updateMax(100); + angular.isDefined(attr.step)? attr.$observe('step', updateStep) : updateStep(1); + + // We have to manually stop the $watch on ngDisabled because it exists + // on the parent scope, and won't be automatically destroyed when + // the component is destroyed. + var stopDisabledWatch = angular.noop; + if (attr.ngDisabled) { + stopDisabledWatch = scope.$parent.$watch(attr.ngDisabled, updateAriaDisabled); + } + + $mdGesture.register(element, 'drag'); + + element + .on('keydown', keydownListener) + .on('$md.pressdown', onPressDown) + .on('$md.pressup', onPressUp) + .on('$md.dragstart', onDragStart) + .on('$md.drag', onDrag) + .on('$md.dragend', onDragEnd); + + // On resize, recalculate the slider's dimensions and re-render + function updateAll() { + refreshSliderDimensions(); + ngModelRender(); + redrawTicks(); + } + setTimeout(updateAll, 0); + + var debouncedUpdateAll = $$rAF.throttle(updateAll); + angular.element($window).on('resize', debouncedUpdateAll); + + scope.$on('$destroy', function() { + angular.element($window).off('resize', debouncedUpdateAll); + stopDisabledWatch(); + }); + + ngModelCtrl.$render = ngModelRender; + ngModelCtrl.$viewChangeListeners.push(ngModelRender); + ngModelCtrl.$formatters.push(minMaxValidator); + ngModelCtrl.$formatters.push(stepValidator); + + /** + * Attributes + */ + var min; + var max; + var step; + function updateMin(value) { + min = parseFloat(value); + element.attr('aria-valuemin', value); + updateAll(); + } + function updateMax(value) { + max = parseFloat(value); + element.attr('aria-valuemax', value); + updateAll(); + } + function updateStep(value) { + step = parseFloat(value); + redrawTicks(); + } + function updateAriaDisabled(isDisabled) { + element.attr('aria-disabled', !!isDisabled); + } + + // Draw the ticks with canvas. + // The alternative to drawing ticks with canvas is to draw one element for each tick, + // which could quickly become a performance bottleneck. + var tickCanvas, tickCtx; + function redrawTicks() { + if (!angular.isDefined(attr.mdDiscrete)) return; + if ( angular.isUndefined(step) ) return; + + if ( step <= 0 ) { + var msg = 'Slider step value must be greater than zero when in discrete mode'; + $log.error(msg); + throw new Error(msg); + } + + var numSteps = Math.floor( (max - min) / step ); + if (!tickCanvas) { + tickCanvas = angular.element(''); + tickContainer.append(tickCanvas); + + var trackTicksStyle = $window.getComputedStyle(tickContainer[0]); + tickCtx = tickCanvas[0].getContext('2d'); + tickCtx.fillStyle = trackTicksStyle.backgroundColor || 'black'; + } + + var dimensions = getSliderDimensions(); + tickCanvas[0].width = dimensions.width; + tickCanvas[0].height = dimensions.height; + + var distance; + for (var i = 0; i <= numSteps; i++) { + distance = Math.floor(dimensions.width * (i / numSteps)); + tickCtx.fillRect(distance - 1, 0, 2, dimensions.height); + } + } + + + /** + * Refreshing Dimensions + */ + var sliderDimensions = {}; + refreshSliderDimensions(); + function refreshSliderDimensions() { + sliderDimensions = trackContainer[0].getBoundingClientRect(); + } + function getSliderDimensions() { + throttledRefreshDimensions(); + return sliderDimensions; + } + + /** + * left/right arrow listener + */ + function keydownListener(ev) { + if(element[0].hasAttribute('disabled')) { + return; + } + + var changeAmount; + if (ev.keyCode === $mdConstant.KEY_CODE.LEFT_ARROW) { + changeAmount = -step; + } else if (ev.keyCode === $mdConstant.KEY_CODE.RIGHT_ARROW) { + changeAmount = step; + } + if (changeAmount) { + if (ev.metaKey || ev.ctrlKey || ev.altKey) { + changeAmount *= 4; + } + ev.preventDefault(); + ev.stopPropagation(); + scope.$evalAsync(function() { + setModelValue(ngModelCtrl.$viewValue + changeAmount); + }); + } + } + + /** + * ngModel setters and validators + */ + function setModelValue(value) { + ngModelCtrl.$setViewValue( minMaxValidator(stepValidator(value)) ); + } + function ngModelRender() { + if (isNaN(ngModelCtrl.$viewValue)) { + ngModelCtrl.$viewValue = ngModelCtrl.$modelValue; + } + + var percent = (ngModelCtrl.$viewValue - min) / (max - min); + scope.modelValue = ngModelCtrl.$viewValue; + element.attr('aria-valuenow', ngModelCtrl.$viewValue); + setSliderPercent(percent); + thumbText.text( ngModelCtrl.$viewValue ); + } + + function minMaxValidator(value) { + if (angular.isNumber(value)) { + return Math.max(min, Math.min(max, value)); + } + } + function stepValidator(value) { + if (angular.isNumber(value)) { + var formattedValue = (Math.round(value / step) * step); + // Format to 3 digits after the decimal point - fixes #2015. + return (Math.round(formattedValue * 1000) / 1000); + } + } + + /** + * @param percent 0-1 + */ + function setSliderPercent(percent) { + var percentStr = (percent * 100) + '%'; + + activeTrack.css('width', percentStr); + thumbContainer.css('left',percentStr); + + element.toggleClass('md-min', percent === 0); + element.toggleClass('md-max', percent === 1); + } + + + /** + * Slide listeners + */ + var isDragging = false; + var isDiscrete = angular.isDefined(attr.mdDiscrete); + + function onPressDown(ev) { + if (isDisabledGetter()) return; + + element.addClass('md-active'); + element[0].focus(); + refreshSliderDimensions(); + + var exactVal = percentToValue( positionToPercent( ev.pointer.x )); + var closestVal = minMaxValidator( stepValidator(exactVal) ); + scope.$apply(function() { + setModelValue( closestVal ); + setSliderPercent( valueToPercent(closestVal)); + }); + } + function onPressUp(ev) { + if (isDisabledGetter()) return; + + element.removeClass('md-dragging md-active'); + + var exactVal = percentToValue( positionToPercent( ev.pointer.x )); + var closestVal = minMaxValidator( stepValidator(exactVal) ); + scope.$apply(function() { + setModelValue(closestVal); + ngModelRender(); + }); + } + function onDragStart(ev) { + if (isDisabledGetter()) return; + isDragging = true; + ev.stopPropagation(); + + element.addClass('md-dragging'); + setSliderFromEvent(ev); + } + function onDrag(ev) { + if (!isDragging) return; + ev.stopPropagation(); + setSliderFromEvent(ev); + } + function onDragEnd(ev) { + if (!isDragging) return; + ev.stopPropagation(); + isDragging = false; + } + + function setSliderFromEvent(ev) { + // While panning discrete, update only the + // visual positioning but not the model value. + if ( isDiscrete ) adjustThumbPosition( ev.pointer.x ); + else doSlide( ev.pointer.x ); + } + + /** + * Slide the UI by changing the model value + * @param x + */ + function doSlide( x ) { + scope.$evalAsync( function() { + setModelValue( percentToValue( positionToPercent(x) )); + }); + } + + /** + * Slide the UI without changing the model (while dragging/panning) + * @param x + */ + function adjustThumbPosition( x ) { + var exactVal = percentToValue( positionToPercent( x )); + var closestVal = minMaxValidator( stepValidator(exactVal) ); + setSliderPercent( positionToPercent(x) ); + thumbText.text( closestVal ); + } + + /** + * Convert horizontal position on slider to percentage value of offset from beginning... + * @param x + * @returns {number} + */ + function positionToPercent( x ) { + return Math.max(0, Math.min(1, (x - sliderDimensions.left) / (sliderDimensions.width))); + } + + /** + * Convert percentage offset on slide to equivalent model value + * @param percent + * @returns {*} + */ + function percentToValue( percent ) { + return (min + percent * (max - min)); + } + + function valueToPercent( val ) { + return (val - min)/(max - min); + } + } +} +SliderDirective.$inject = ["$$rAF", "$window", "$mdAria", "$mdUtil", "$mdConstant", "$mdTheming", "$mdGesture", "$parse", "$log"]; + })(); (function(){ "use strict"; @@ -15213,8 +15579,10 @@ angular.module('material.components.toolbar', [ * * @param {boolean=} md-scroll-shrink Whether the header should shrink away as * the user scrolls down, and reveal itself as the user scrolls up. + * * _**Note (1):** for scrollShrink to work, the toolbar must be a sibling of a * `md-content` element, placed before it. See the scroll shrink demo._ + * * _**Note (2):** The `md-scroll-shrink` attribute is only parsed on component * initialization, it does not watch for scope changes._ * @@ -15437,9 +15805,8 @@ function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil, $mdThe restrict: 'E', transclude: true, priority:210, // Before ngAria - template: '\ -
\ -
', + template: '
' + + '
', scope: { visible: '=?mdVisible', delay: '=?mdDelay', @@ -15501,9 +15868,12 @@ function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil, $mdThe */ function getParentWithPointerEvents () { var parent = element.parent(); - while (parent && hasComputedStyleValue('pointer-events','none', parent[0])) { + + // jqLite might return a non-null, but still empty, parent; so check for parent and length + while (hasComputedStyleValue('pointer-events','none', parent)) { parent = parent.parent(); } + return parent; } @@ -15518,12 +15888,17 @@ function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil, $mdThe function hasComputedStyleValue(key, value, target) { - key = attr.$normalize(key); - target = target || element[0]; + var hasValue = false; - var computedStyles = $window.getComputedStyle(target); + if ( target && target.length ) { + key = attr.$normalize(key); + target = target[0] || element[0]; - return angular.isDefined(computedStyles[key]) && (computedStyles[key] == value); + var computedStyles = $window.getComputedStyle(target); + hasValue = angular.isDefined(computedStyles[key]) && (computedStyles[key] == value); + } + + return hasValue; } function bindEvents () { @@ -15707,11 +16082,13 @@ angular.module('material.components.virtualRepeat', [ * @usage * * - * + * *
Hello {{i}}!
*
*
* + * @param {number=} md-top-index Binds the index of the item that is at the top of the scroll + * container to $scope. It can both read and set the scroll position. * @param {boolean=} md-orient-horizontal Whether the container should scroll horizontally * (defaults to orientation and scrolling vertically). * @param {boolean=} md-auto-shrink When present, the container will shrink to fit @@ -15760,7 +16137,7 @@ var MAX_ELEMENT_SIZE = 1533917; var NUM_EXTRA = 3; /** @ngInject */ -function VirtualRepeatContainerController($$rAF, $scope, $element, $attrs) { +function VirtualRepeatContainerController($$rAF, $parse, $scope, $element, $attrs) { this.$scope = $scope; this.$element = $element; this.$attrs = $attrs; @@ -15784,6 +16161,25 @@ function VirtualRepeatContainerController($$rAF, $scope, $element, $attrs) { /** @type {number} Amount to offset the total scroll size by. */ this.offsetSize = parseInt(this.$attrs.mdOffsetSize, 10) || 0; + if (this.$attrs.mdTopIndex) { + /** @type {function(angular.Scope): number} Binds to topIndex on Angular scope */ + this.bindTopIndex = $parse(this.$attrs.mdTopIndex); + /** @type {number} The index of the item that is at the top of the scroll container */ + this.topIndex = this.bindTopIndex(this.$scope); + + if (!angular.isDefined(this.topIndex)) { + this.topIndex = 0; + this.bindTopIndex.assign(this.$scope, 0); + } + + this.$scope.$watch(this.bindTopIndex, angular.bind(this, function(newIndex) { + if (newIndex !== this.topIndex) { + this.scrollToIndex(newIndex); + } + })); + } else { + this.topIndex = 0; + } this.scroller = $element[0].getElementsByClassName('md-virtual-repeat-scroller')[0]; this.sizer = this.scroller.getElementsByClassName('md-virtual-repeat-sizer')[0]; @@ -15801,7 +16197,7 @@ function VirtualRepeatContainerController($$rAF, $scope, $element, $attrs) { })); } } -VirtualRepeatContainerController.$inject = ["$$rAF", "$scope", "$element", "$attrs"]; +VirtualRepeatContainerController.$inject = ["$$rAF", "$parse", "$scope", "$element", "$attrs"]; /** Called by the md-virtual-repeat inside of the container at startup. */ @@ -15943,6 +16339,19 @@ VirtualRepeatContainerController.prototype.scrollTo = function(position) { this.handleScroll_(); }; +/** + * Scrolls the item with the given index to the top of the scroll container. + * @param {number} index + */ +VirtualRepeatContainerController.prototype.scrollToIndex = function(index) { + var itemSize = this.repeater.getItemSize(); + var itemsLength = this.repeater.itemsLength; + if(index > itemsLength) { + index = itemsLength - 1; + } + this.scrollTo(itemSize * index); +}; + VirtualRepeatContainerController.prototype.resetScroll = function() { this.scrollTo(0); }; @@ -15964,6 +16373,15 @@ VirtualRepeatContainerController.prototype.handleScroll_ = function() { this.offsetter.style.webkitTransform = transform; this.offsetter.style.transform = transform; + if (this.bindTopIndex) { + var topIndex = Math.floor(offset / itemSize); + if (topIndex !== this.topIndex && topIndex < this.repeater.itemsLength) { + this.topIndex = topIndex; + this.bindTopIndex.assign(this.$scope, topIndex); + if (!this.$scope.$root.$$phase) this.$scope.$digest(); + } + } + this.repeater.containerUpdated(); }; @@ -15993,22 +16411,22 @@ VirtualRepeatContainerController.prototype.handleScroll_ = function() { * *
* - * @param {number=} md-item-size The height or width of the repeated elements (which - * must be identical for each element). Optional. Will attempt to read the size - * from the dom if missing, but still assumes that all repeated nodes have same - * height or width. - * @param {string=} md-extra-name Evaluates to an additional name to which - * the current iterated item can be assigned on the repeated scope. (Needed - * for use in md-autocomplete). - * @param {boolean=} md-on-demand When present, treats the md-virtual-repeat argument - * as an object that can fetch rows rather than an array. - * NOTE: This object must implement the following interface with two (2) methods: - * getItemAtIndex: function(index) -> item at that index or null if it is not yet - * loaded (It should start downloading the item in that case). - * getLength: function() -> number The data legnth to which the repeater container - * should be sized. Ideally, when the count is known, this method should return it. - * Otherwise, return a higher number than the currently loaded items to produce an - * infinite-scroll behavior. + * @param {number=} md-item-size The height or width of the repeated elements (which must be + * identical for each element). Optional. Will attempt to read the size from the dom if missing, + * but still assumes that all repeated nodes have same height or width. + * @param {string=} md-extra-name Evaluates to an additional name to which the current iterated item + * can be assigned on the repeated scope (needed for use in `md-autocomplete`). + * @param {boolean=} md-on-demand When present, treats the md-virtual-repeat argument as an object + * that can fetch rows rather than an array. + * + * **NOTE:** This object must implement the following interface with two (2) methods: + * + * - `getItemAtIndex: function(index) [object]` The item at that index or null if it is not yet + * loaded (it should start downloading the item in that case). + * - `getLength: function() [number]` The data length to which the repeater container + * should be sized. Ideally, when the count is known, this method should return it. + * Otherwise, return a higher number than the currently loaded items to produce an + * infinite-scroll behavior. */ function VirtualRepeatDirective($parse) { return { @@ -16176,7 +16594,7 @@ VirtualRepeatController.prototype.containerUpdated = function() { this.$$rAF(angular.bind(this, this.readItemSize_)); } })); - this.$scope.$digest(); + if (!this.$scope.$root.$$phase) this.$scope.$digest(); return; } else if (!this.sized) { @@ -16218,14 +16636,9 @@ VirtualRepeatController.prototype.getItemSize = function() { * @private */ VirtualRepeatController.prototype.virtualRepeatUpdate_ = function(items, oldItems) { - var itemsLength = items ? items.length : 0; + var itemsLength = items && items.length || 0; var lengthChanged = false; - if (itemsLength !== this.itemsLength) { - lengthChanged = true; - this.itemsLength = itemsLength; - } - // If the number of items shrank, scroll up to the top. if (this.items && itemsLength < this.items.length && this.container.getScrollOffset() !== 0) { this.items = items; @@ -16233,6 +16646,11 @@ VirtualRepeatController.prototype.virtualRepeatUpdate_ = function(items, oldItem return; } + if (itemsLength !== this.itemsLength) { + lengthChanged = true; + this.itemsLength = itemsLength; + } + this.items = items; if (items !== oldItems || lengthChanged) { this.updateIndexes_(); @@ -16246,8 +16664,10 @@ VirtualRepeatController.prototype.virtualRepeatUpdate_ = function(items, oldItem if (this.isFirstRender) { this.isFirstRender = false; - var startIndex = this.$attrs.mdStartIndex ? this.$scope.$eval(this.$attrs.mdStartIndex) : 0; - this.container.scrollTo(startIndex * this.itemSize); + var startIndex = this.$attrs.mdStartIndex ? + this.$scope.$eval(this.$attrs.mdStartIndex) : + this.container.topIndex; + this.container.scrollToIndex(startIndex); } // Detach and pool any blocks that are no longer in the viewport. @@ -16518,6 +16938,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, ctrl.id = $mdUtil.nextUid(); ctrl.isDisabled = null; ctrl.isRequired = null; + ctrl.hasNotFound = false; //-- public methods ctrl.keydown = keydown; @@ -16532,6 +16953,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, ctrl.registerSelectedItemWatcher = registerSelectedItemWatcher; ctrl.unregisterSelectedItemWatcher = unregisterSelectedItemWatcher; ctrl.notFoundVisible = notFoundVisible; + ctrl.loadingIsVisible = loadingIsVisible; return init(); @@ -16693,19 +17115,16 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, if (!hidden && oldHidden) { positionDropdown(); - if (elements) + if (elements) { $mdUtil.nextTick(function () { - $mdUtil.disableScrollAround(elements.ul); - - }, false, $scope); - } else if (hidden && !oldHidden) { - $mdUtil.nextTick(function () { - - $mdUtil.enableScrolling(); - }, false, $scope); } + } else if (hidden && !oldHidden) { + $mdUtil.nextTick(function () { + $mdUtil.enableScrolling(); + }, false, $scope); + } } /** @@ -16720,7 +17139,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, */ function onListLeave () { noBlur = false; - if (!hasFocus) ctrl.hidden = true; + ctrl.hidden = shouldHide(); } /** @@ -16811,9 +17230,8 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, // cancel results if search text is not long enough if (!isMinLengthMet()) { - ctrl.loading = false; ctrl.matches = []; - ctrl.hidden = shouldHide(); + setLoading(false); updateMessages(); } else { handleQuery(); @@ -16827,8 +17245,18 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, * Handles input blur event, determines if the dropdown should hide. */ function blur () { - hasFocus = false; - if (!noBlur) ctrl.hidden = true; + if (!noBlur) { + hasFocus = false; + ctrl.hidden = shouldHide(); + } + } + + function doBlur(forceBlur) { + if (forceBlur) { + noBlur = false; + } + + elements.input.blur(); } /** @@ -16838,7 +17266,6 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, hasFocus = true; //-- if searchText is null, let's force it to be a string if (!angular.isString($scope.searchText)) $scope.searchText = ''; - if ($scope.minLength > 0) return; ctrl.hidden = shouldHide(); if (!ctrl.hidden) handleQuery(); } @@ -16876,9 +17303,10 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, event.stopPropagation(); event.preventDefault(); clearValue(); - ctrl.matches = []; - ctrl.hidden = true; - ctrl.index = getDefaultIndex(); + + // Force the component to blur if they hit escape + doBlur(true); + break; default: } @@ -16933,12 +17361,61 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, return $scope.autoselect ? 0 : -1; } + /** + * Sets the loading parameter and updates the hidden state. + * @param value {boolean} Whether or not the component is currently loading. + */ + function setLoading(value) { + if (ctrl.loading != value) { + ctrl.loading = value; + } + + // Always refresh the hidden variable as something else might have changed + ctrl.hidden = shouldHide(); + } + /** * Determines if the menu should be hidden. * @returns {boolean} */ function shouldHide () { - if (!isMinLengthMet() || !ctrl.matches.length) return true; + if ((ctrl.loading && !hasMatches()) || hasSelection() || !hasFocus) { + return true; + } + + return !shouldShow(); + } + + /** + * Determines if the menu should be shown. + * @returns {boolean} + */ + function shouldShow() { + return (isMinLengthMet() && hasMatches()) || notFoundVisible(); + } + + /** + * Returns true if the search text has matches. + * @returns {boolean} + */ + function hasMatches() { + return ctrl.matches.length ? true : false; + } + + /** + * Returns true if the autocomplete has a valid selection. + * @returns {boolean} + */ + function hasSelection() { + return ctrl.scope.selectedItem ? true : false; + } + + /** + * Returns true if the loading indicator is, or should be, visible. + * @returns {boolean} + */ + function loadingIsVisible() { + return ctrl.loading && !hasSelection(); } /** @@ -16954,7 +17431,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, * @returns {*} */ function isMinLengthMet () { - return angular.isDefined($scope.searchText) && $scope.searchText.length >= getMinLength(); + return ($scope.searchText || '').length >= getMinLength(); } //-- actions @@ -16989,10 +17466,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, ngModel.$render(); }).finally(function () { $scope.selectedItem = ctrl.matches[ index ]; - ctrl.loading = false; - ctrl.hidden = true; - ctrl.index = 0; - ctrl.matches = []; + setLoading(false); }); }, false); } @@ -17001,7 +17475,15 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, * Clears the searchText value and selected item. */ function clearValue () { + // Set the loading to true so we don't see flashes of content + setLoading(true); + + // Reset our variables + ctrl.index = 0; + ctrl.matches = []; $scope.searchText = ''; + + // Tell the select to fire and select nothing select(-1); // Per http://www.w3schools.com/jsref/event_oninput.asp @@ -17022,16 +17504,18 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, if (angular.isArray(items)) { handleResults(items); } else if (items) { + setLoading(true); $mdUtil.nextTick(function () { - ctrl.loading = true; if (items.success) items.success(handleResults); if (items.then) items.then(handleResults); - if (items.finally) items.finally(function () { ctrl.loading = false; }); + if (items.finally) items.finally(function () { + setLoading(false); + }); },true, $scope); } function handleResults (matches) { cache[ term ] = matches; - if (searchText !== $scope.searchText) return; //-- just cache the results if old request + if ((searchText || '') !== ($scope.searchText || '')) return; //-- just cache the results if old request ctrl.matches = matches; ctrl.hidden = shouldHide(); if ($scope.selectOnMatch) selectItemOnMatch(); @@ -17088,7 +17572,9 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, } function notFoundVisible () { - return !ctrl.matches.length && !ctrl.loading && ctrl.scope.searchText && hasFocus && !ctrl.scope.selectedItem; + var textLength = (ctrl.scope.searchText || '').length; + + return ctrl.hasNotFound && !hasMatches() && !ctrl.loading && textLength >= getMinLength() && hasFocus && !hasSelection(); } /** @@ -17105,7 +17591,8 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, } else { fetchResults(searchText); } - if (hasFocus) ctrl.hidden = shouldHide(); + + ctrl.hidden = shouldHide(); } /** @@ -17170,9 +17657,9 @@ angular * selected * @param {expression=} md-search-text-change An expression to be run each time the search text * updates - * @param {string=} md-search-text A model to bind the search query text to + * @param {expression=} md-search-text A model to bind the search query text to * @param {object=} md-selected-item A model to bind the selected item to - * @param {string=} md-item-text An expression that will convert your object to a single string. + * @param {expression=} md-item-text An expression that will convert your object to a single string. * @param {string=} placeholder Placeholder text that will be forwarded to the input. * @param {boolean=} md-no-cache Disables the internal caching that happens in autocomplete * @param {boolean=} ng-disabled Determines whether or not to disable the input field @@ -17194,7 +17681,7 @@ angular * the item if the search text is an exact match * * @usage - * ###Basic Example + * ### Basic Example * * * * - * ###Example with "not found" message + * ### Example with "not found" message * * \ ' + getInputElement() + '\ \ \
    \ \ @@ -18128,9 +18635,12 @@ MdChipsCtrl.prototype.hasFocus = function () { * displayed as 'chips'. This component can make use of an `` element or an * `` element. * - * Custom `` template + * ### Custom templates * A custom template may be provided to render the content of each chip. This is achieved by - * specifying an `` element as a child of ``. Note: Any attributes on + * specifying an `` element containing the custom content as a child of + * ``. + * + * Note: Any attributes on * `` will be dropped as only the innerHTML is used for the chip template. The * variables `$chip` and `$index` are available in the scope of ``, representing * the chip object and its index in the list of chips, respectively. @@ -18528,7 +19038,8 @@ var MD_CONTACT_CHIPS_TEMPLATE = '\
    \ {{item[$mdContactChipsCtrl.contactName]}}\ + alt="{{item[$mdContactChipsCtrl.contactName]}}"\ + ng-if="item[$mdContactChipsCtrl.contactImage]" />\ \ {{item[$mdContactChipsCtrl.contactName]}}\ @@ -18540,7 +19051,8 @@ var MD_CONTACT_CHIPS_TEMPLATE = '\
    \ {{$chip[$mdContactChipsCtrl.contactName]}}\ + alt="{{$chip[$mdContactChipsCtrl.contactName]}}"\ + ng-if="$chip[$mdContactChipsCtrl.contactImage]" />\
    \
    \ {{$chip[$mdContactChipsCtrl.contactName]}}\ @@ -18697,7 +19209,8 @@ angular * nor a label on the parent element, a warning will be logged to the console. * @param {string=} alt Labels icon for accessibility. If an empty string is provided, icon * will be hidden from accessibility layer with `aria-hidden="true"`. If there's no alt on the icon - * nor a label on the parent element, a warning will be logged to the console. * + * nor a label on the parent element, a warning will be logged to the console. + * * @usage * When using SVGs: * @@ -18827,25 +19340,12 @@ function mdIconDirective($mdIcon, $mdTheming, $mdAria ) { return false; } - function prepareForFontIcon () { + function prepareForFontIcon() { if (!scope.svgIcon && !scope.svgSrc) { - if (scope.fontIcon) { element.addClass('md-font ' + scope.fontIcon); } - - if (scope.fontSet) { - element.addClass($mdIcon.fontSet(scope.fontSet)); - } - - if (shouldUseDefaultFontSet()) { - element.addClass($mdIcon.fontSet()); - } - - } - - function shouldUseDefaultFontSet() { - return !scope.fontIcon && !scope.fontSet; + element.addClass($mdIcon.fontSet(scope.fontSet)); } } } @@ -18869,7 +19369,7 @@ function mdIconDirective($mdIcon, $mdTheming, $mdAria ) { * icons and icon sets to be pre-registered and associated with source URLs **before** the `` * directives are compiled. * - * If using font-icons, the developer is repsonsible for loading the fonts. + * If using font-icons, the developer is responsible for loading the fonts. * * If using SVGs, loading of the actual svg files are deferred to on-demand requests and are loaded * internally by the `$mdIcon` service using the `$http` service. When an SVG is requested by name/ID, @@ -19355,7 +19855,7 @@ function mdIconDirective($mdIcon, $mdTheming, $mdAria ) { * Define the Icon class */ function Icon(el, config) { - if (el.tagName != 'svg') { + if (el && el.tagName != 'svg') { el = angular.element('').append(el)[0]; } @@ -19479,7 +19979,7 @@ function MenuController($mdMenu, $attrs, $element, $scope, $mdUtil, $timeout) { nestedMenu.open(); } }, nestedMenu ? 100 : 250); - var focusableTarget = event.currentTarget.querySelector('[tabindex]'); + var focusableTarget = event.currentTarget.querySelector('button:not([disabled])'); focusableTarget && focusableTarget.focus(); }); menuItems.on('mouseleave', function(event) { @@ -19551,7 +20051,8 @@ function MenuController($mdMenu, $attrs, $element, $scope, $mdUtil, $timeout) { if ( !self.isOpen ) return; self.isOpen = false; - $scope.$emit('$mdMenuClose', $element); + var eventDetails = angular.extend({}, closeOpts, { skipFocus: skipFocus }); + $scope.$emit('$mdMenuClose', $element, eventDetails); $mdMenu.hide(null, closeOpts); if (!skipFocus) { @@ -19724,7 +20225,7 @@ MenuController.$inject = ["$mdMenu", "$attrs", "$element", "$scope", "$mdUtil", * * * - * @param {string} md-po*ition-mode The position mode in the form of + * @param {string} md-position-mode The position mode in the form of * `x`, `y`. Default value is `target`,`target`. Right now the `x` axis * also suppports `target-right`. * @param {string} md-offset An offset to apply to the dropdown after positioning @@ -20032,10 +20533,10 @@ function MenuProvider($$interimElementProvider) { // kick off initial focus in the menu on the first element var focusTarget = opts.menuContentEl[0].querySelector('[md-menu-focus-target]'); - if ( !focusTarget && firstChild ) { + if ( !focusTarget ) { var firstChild = opts.menuContentEl[0].firstElementChild; - focusTarget = firstChild.querySelector('[tabindex]') || firstChild.firstElementChild; + focusTarget = firstChild && (firstChild.querySelector('.md-button:not([disabled])') || firstChild.firstElementChild); } focusTarget && focusTarget.focus(); @@ -20053,10 +20554,9 @@ function MenuProvider($$interimElementProvider) { function onMenuKeyDown(ev) { var handled; - var keyCodes = $mdConstant.KEY_CODE; switch (ev.keyCode) { case $mdConstant.KEY_CODE.ESCAPE: - opts.mdMenuCtrl.close(true, { closeAll: true }); + opts.mdMenuCtrl.close(false, { closeAll: true }); handled = true; break; case $mdConstant.KEY_CODE.UP_ARROW: @@ -20228,24 +20728,22 @@ function MenuProvider($$interimElementProvider) { right: boundryNodeRect.right - MENU_EDGE_MARGIN }; - var alignTarget, alignTargetRect, existingOffsets; + var alignTarget, alignTargetRect = { top:0, left : 0, right:0, bottom:0 }, existingOffsets = { top:0, left : 0, right:0, bottom:0 }; var positionMode = opts.mdMenuCtrl.positionMode(); if (positionMode.top == 'target' || positionMode.left == 'target' || positionMode.left == 'target-right') { - // TODO: Allow centering on an arbitrary node, for now center on first menu-item's child alignTarget = firstVisibleChild(); - if (!alignTarget) { - throw Error('Error positioning menu. No visible children.'); + if ( alignTarget ) { + // TODO: Allow centering on an arbitrary node, for now center on first menu-item's child + alignTarget = alignTarget.firstElementChild || alignTarget; + alignTarget = alignTarget.querySelector('[md-menu-align-target]') || alignTarget; + alignTargetRect = alignTarget.getBoundingClientRect(); + + existingOffsets = { + top: parseFloat(containerNode.style.top || 0), + left: parseFloat(containerNode.style.left || 0) + }; } - - alignTarget = alignTarget.firstElementChild || alignTarget; - alignTarget = alignTarget.querySelector('[md-menu-align-target]') || alignTarget; - alignTargetRect = alignTarget.getBoundingClientRect(); - - existingOffsets = { - top: parseFloat(containerNode.style.top || 0), - left: parseFloat(containerNode.style.left || 0) - }; } var position = {}; @@ -20384,23 +20882,25 @@ MenuBarController.prototype.init = function() { } }); - $scope.$on('$mdMenuClose', function(event, el) { + $scope.$on('$mdMenuClose', function(event, el, opts) { var rootMenus = self.getMenus(); if (rootMenus.indexOf(el[0]) != -1) { $element[0].classList.remove('md-open'); el[0].classList.remove('md-open'); } - if ($element[0].contains(el[0])) { - var parentMenu = el[0]; - while (parentMenu && rootMenus.indexOf(parentMenu) == -1) { - parentMenu = $mdUtil.getClosest(parentMenu, 'MD-MENU', true); - } - if (parentMenu) { - parentMenu.querySelector('button').focus(); - self.currentlyOpenMenu = undefined; - self.disableOpenOnHover(); - self.setKeyboardMode(true); + if (opts.closeAll) { + if ($element[0].contains(el[0])) { + var parentMenu = el[0]; + while (parentMenu && rootMenus.indexOf(parentMenu) == -1) { + parentMenu = $mdUtil.getClosest(parentMenu, 'MD-MENU', true); + } + if (parentMenu) { + if (!opts.skipFocus) parentMenu.querySelector('button:not([disabled])').focus(); + self.currentlyOpenMenu = undefined; + self.disableOpenOnHover(); + self.setKeyboardMode(true); + } } } }); @@ -20421,8 +20921,6 @@ MenuBarController.prototype.enableOpenOnHover = function() { if (this.openOnHoverEnabled) return; this.openOnHoverEnabled = true; - var $element = this.$element; - var parentToolbar; if (parentToolbar = this.parentToolbar) { parentToolbar.dataset.mdRestoreStyle = parentToolbar.getAttribute('style'); @@ -20468,14 +20966,14 @@ MenuBarController.prototype.scheduleOpenMenu = function(menuCtrl) { menuCtrl.open(); }, 200, false); } -} +}; MenuBarController.prototype.handleKeyDown = function(e) { var keyCodes = this.$mdConstant.KEY_CODE; var currentMenu = this.currentlyOpenMenu; var wasOpen = currentMenu && currentMenu.isOpen; this.setKeyboardMode(true); - var handled; + var handled, newMenu, newMenuCtrl; switch (e.keyCode) { case keyCodes.DOWN_ARROW: if (currentMenu) { @@ -20490,17 +20988,17 @@ MenuBarController.prototype.handleKeyDown = function(e) { handled = true; break; case keyCodes.LEFT_ARROW: - var newMenu = this.focusMenu(-1); + newMenu = this.focusMenu(-1); if (wasOpen) { - var newMenuCtrl = angular.element(newMenu).controller('mdMenu'); + newMenuCtrl = angular.element(newMenu).controller('mdMenu'); this.scheduleOpenMenu(newMenuCtrl); } handled = true; break; case keyCodes.RIGHT_ARROW: - var newMenu = this.focusMenu(+1); + newMenu = this.focusMenu(+1); if (wasOpen) { - var newMenuCtrl = angular.element(newMenu).controller('mdMenu'); + newMenuCtrl = angular.element(newMenu).controller('mdMenu'); this.scheduleOpenMenu(newMenuCtrl); } handled = true; @@ -20551,7 +21049,6 @@ MenuBarController.prototype.getFocusedMenu = function() { MenuBarController.prototype.getFocusedMenuIndex = function() { var $mdUtil = this.$mdUtil; - var $element = this.$element; var focusedEl = $mdUtil.getClosest( this.$document[0].activeElement, 'MD-MENU' @@ -20924,6 +21421,7 @@ function MenuItemDirective() { * @param {boolean=} disabled If present, disabled tab selection. * @param {expression=} md-on-deselect Expression to be evaluated after the tab has been de-selected. * @param {expression=} md-on-select Expression to be evaluated after the tab has been selected. + * @param {boolean=} md-active When true, sets the active tab. Note: There can only be one active tab at a time. * * * @usage @@ -20965,12 +21463,11 @@ function MdTab () { label = angular.element(''); if (attr.label) label.text(attr.label); else label.append(element.contents()); - } - - if (body.length == 0) { - var contents = element.contents().detach(); - body = angular.element(''); - body.append(contents); + if (body.length == 0) { + var contents = element.contents().detach(); + body = angular.element(''); + body.append(contents); + } } element.append(label); @@ -21110,7 +21607,7 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp defineBooleanAttribute('swipeContent'); defineBooleanAttribute('noDisconnect'); defineBooleanAttribute('autoselect'); - defineBooleanAttribute('centerTabs', handleCenterTabs); + defineBooleanAttribute('centerTabs', handleCenterTabs, false); defineBooleanAttribute('enableDisconnect'); // define public properties @@ -21327,7 +21824,6 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp handleResizeWhenVisible.watcher(); handleResizeWhenVisible.watcher = null; - // we have to trigger our own $apply so that the DOM bindings will update handleWindowResize(); } }, false); @@ -21413,11 +21909,11 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp * Update size calculations when the window is resized. */ function handleWindowResize () { - $scope.$apply(function () { - ctrl.lastSelectedIndex = ctrl.selectedIndex; - ctrl.offsetLeft = fixOffset(ctrl.offsetLeft); - $mdUtil.nextTick(ctrl.updateInkBarStyles, false); - $mdUtil.nextTick(updatePagination); + ctrl.lastSelectedIndex = ctrl.selectedIndex; + ctrl.offsetLeft = fixOffset(ctrl.offsetLeft); + $mdUtil.nextTick(function () { + ctrl.updateInkBarStyles(); + updatePagination(); }); } @@ -21565,7 +22061,7 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp */ function shouldPaginate () { if (ctrl.noPagination || !loaded) return false; - var canvasWidth = Math.min($element.prop('clientWidth'), ctrl.maxTabWidth); + var canvasWidth = $element.prop('clientWidth'); angular.forEach(elements.dummies, function (tab) { canvasWidth -= tab.offsetWidth; }); return canvasWidth < 0; } @@ -21613,9 +22109,17 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp * Updates whether or not pagination should be displayed. */ function updatePagination () { + if (!shouldStretchTabs()) updatePagingWidth(); + ctrl.maxTabWidth = getMaxTabWidth(); ctrl.shouldPaginate = shouldPaginate(); } + function updatePagingWidth() { + var width = 1; + angular.forEach(elements.dummies, function (element) { width += element.offsetWidth; }); + angular.element(elements.paging).css('width', width + 'px'); + } + function getMaxTabWidth () { return $element.prop('clientWidth'); } @@ -21668,7 +22172,7 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp var tab = elements.tabs[ index ], left = tab.offsetLeft, right = tab.offsetWidth + left; - ctrl.offsetLeft = Math.max(ctrl.offsetLeft, fixOffset(right - elements.canvas.clientWidth)); + ctrl.offsetLeft = Math.max(ctrl.offsetLeft, fixOffset(right - elements.canvas.clientWidth + 32 * 2)); ctrl.offsetLeft = Math.min(ctrl.offsetLeft, fixOffset(left)); } @@ -21707,17 +22211,28 @@ function MdTabsController ($scope, $element, $window, $mdConstant, $mdTabInkRipp function updateHeightFromContent () { if (!ctrl.dynamicHeight) return $element.css('height', ''); if (!ctrl.tabs.length) return queue.push(updateHeightFromContent); + var tabContent = elements.contents[ ctrl.selectedIndex ], contentHeight = tabContent ? tabContent.offsetHeight : 0, tabsHeight = elements.wrapper.offsetHeight, newHeight = contentHeight + tabsHeight, - currentHeight = $element.prop('clientHeight'); + currentHeight = $element.prop('offsetHeight'); + + // Adjusts calculations for when the buttons are bottom-aligned since this relies on absolute + // positioning. This should probably be cleaned up if a cleaner solution is possible. + if ($element.attr('md-align-tabs') === 'bottom') { + currentHeight -= tabsHeight; + newHeight -= tabsHeight; + // Need to include bottom border in these calculations + if ($element.attr('md-border-bottom') !== undefined) ++currentHeight; + } + if (currentHeight === newHeight) return; // Lock during animation so the user can't change tabs locked = true; - var fromHeight = { height: currentHeight + 'px'}, + var fromHeight = { height: currentHeight + 'px' }, toHeight = { height: newHeight + 'px' }; // Set the height to the current, specific pixel height to fix a bug on iOS where the height @@ -21877,7 +22392,7 @@ MdTabsController.$inject = ["$scope", "$element", "$window", "$mdConstant", "$md * * @param {integer=} md-selected Index of the active/selected tab * @param {boolean=} md-no-ink If present, disables ink ripple effects. - * @param {boolean=} md-no-bar If present, disables the selection ink bar. + * @param {boolean=} md-no-ink-bar If present, disables the selection ink bar. * @param {string=} md-align-tabs Attribute to indicate position of tab buttons: `bottom` or `top`; default is `top` * @param {string=} md-stretch-tabs Attribute to indicate whether or not to stretch tabs: `auto`, `always`, or `never`; default is `auto` * @param {boolean=} md-dynamic-height When enabled, the tab wrapper will resize based on the contents of the selected tab @@ -22072,7 +22587,7 @@ MdTabsTemplate.$inject = ["$compile", "$mdUtil"]; })(); (function(){ -angular.module("material.core").constant("$MD_THEME_CSS", "md-autocomplete.md-THEME_NAME-theme { background: '{{background-50}}'; } md-autocomplete.md-THEME_NAME-theme[disabled] { 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-50}}'; } .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}}'; }md-backdrop { background-color: '{{background-900-0.0}}'; } md-backdrop.md-opaque.md-THEME_NAME-theme { background-color: '{{background-900-1.0}}'; }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}}'; }a.md-button.md-THEME_NAME-theme:not([disabled]):hover, .md-button.md-THEME_NAME-theme:not([disabled]):hover { background-color: '{{background-500-0.2}}'; }a.md-button.md-THEME_NAME-theme:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme:not([disabled]).md-focused { background-color: '{{background-500-0.2}}'; }a.md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover, .md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover { background-color: transparent; }a.md-button.md-THEME_NAME-theme.md-fab, .md-button.md-THEME_NAME-theme.md-fab { background-color: '{{accent-color}}'; color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-fab md-icon, .md-button.md-THEME_NAME-theme.md-fab md-icon { color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover { background-color: '{{accent-color}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused { background-color: '{{accent-A700}}'; }a.md-button.md-THEME_NAME-theme.md-primary, .md-button.md-THEME_NAME-theme.md-primary { color: '{{primary-color}}'; } a.md-button.md-THEME_NAME-theme.md-primary.md-raised, a.md-button.md-THEME_NAME-theme.md-primary.md-fab, .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}}'; } a.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]) md-icon, a.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, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]) md-icon { color: '{{primary-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]):hover, a.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]):hover, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]):hover { background-color: '{{primary-color}}'; } a.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]).md-focused, a.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]).md-focused, .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}}'; } a.md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon { color: '{{primary-color}}'; }a.md-button.md-THEME_NAME-theme.md-fab, .md-button.md-THEME_NAME-theme.md-fab { background-color: '{{accent-color}}'; color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon { color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover { background-color: '{{accent-color}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused { background-color: '{{accent-A700}}'; }a.md-button.md-THEME_NAME-theme.md-raised, .md-button.md-THEME_NAME-theme.md-raised { color: '{{background-contrast}}'; background-color: '{{background-50}}'; } a.md-button.md-THEME_NAME-theme.md-raised:not([disabled]) .md-icon, .md-button.md-THEME_NAME-theme.md-raised:not([disabled]) .md-icon { color: '{{background-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover { background-color: '{{background-50}}'; } a.md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused { background-color: '{{background-200}}'; }a.md-button.md-THEME_NAME-theme.md-warn, .md-button.md-THEME_NAME-theme.md-warn { color: '{{warn-color}}'; } a.md-button.md-THEME_NAME-theme.md-warn.md-raised, a.md-button.md-THEME_NAME-theme.md-warn.md-fab, .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}}'; } a.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]) md-icon, a.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, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]) md-icon { color: '{{warn-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]):hover, a.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]):hover, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]):hover { background-color: '{{warn-color}}'; } a.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]).md-focused, a.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]).md-focused, .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-700}}'; } a.md-button.md-THEME_NAME-theme.md-warn:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-warn:not([disabled]) md-icon { color: '{{warn-color}}'; }a.md-button.md-THEME_NAME-theme.md-accent, .md-button.md-THEME_NAME-theme.md-accent { color: '{{accent-color}}'; } a.md-button.md-THEME_NAME-theme.md-accent.md-raised, a.md-button.md-THEME_NAME-theme.md-accent.md-fab, .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}}'; } a.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]) md-icon, a.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, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]) md-icon { color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]):hover, a.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]):hover, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]):hover { background-color: '{{accent-color}}'; } a.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]).md-focused, a.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]).md-focused, .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-700}}'; } a.md-button.md-THEME_NAME-theme.md-accent:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-accent:not([disabled]) md-icon { color: '{{accent-color}}'; }a.md-button.md-THEME_NAME-theme[disabled], a.md-button.md-THEME_NAME-theme.md-raised[disabled], a.md-button.md-THEME_NAME-theme.md-fab[disabled], a.md-button.md-THEME_NAME-theme.md-accent[disabled], a.md-button.md-THEME_NAME-theme.md-warn[disabled], .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: not-allowed; } a.md-button.md-THEME_NAME-theme[disabled] md-icon, a.md-button.md-THEME_NAME-theme.md-raised[disabled] md-icon, a.md-button.md-THEME_NAME-theme.md-fab[disabled] md-icon, a.md-button.md-THEME_NAME-theme.md-accent[disabled] md-icon, a.md-button.md-THEME_NAME-theme.md-warn[disabled] md-icon, .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}}'; }a.md-button.md-THEME_NAME-theme.md-raised[disabled], a.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-fab[disabled] { background-color: '{{foreground-4}}'; }a.md-button.md-THEME_NAME-theme[disabled], .md-button.md-THEME_NAME-theme[disabled] { background-color: transparent; }md-card.md-THEME_NAME-theme { background-color: '{{background-color}}'; border-radius: 2px; } md-card.md-THEME_NAME-theme .md-card-image { border-radius: 2px 2px 0 0; }md-checkbox.md-THEME_NAME-theme .md-ripple { color: '{{accent-600}}'; }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-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: '{{background-200}}'; }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-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: '{{background-200}}'; }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-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] .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-label { color: '{{foreground-3}}'; }md-chips.md-THEME_NAME-theme .md-chips { box-shadow: 0 1px '{{background-300}}'; } md-chips.md-THEME_NAME-theme .md-chips.md-focused { box-shadow: 0 2px '{{primary-color}}'; }md-chips.md-THEME_NAME-theme .md-chip { background: '{{background-300}}'; color: '{{background-800}}'; } 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-remove .md-button md-icon path { fill: '{{background-500}}'; }.md-contact-suggestion span.md-contact-email { color: '{{background-400}}'; }md-content.md-THEME_NAME-theme { color: '{{foreground-1}}'; background-color: '{{background-color}}'; }/** Theme styles for mdCalendar. */.md-calendar.md-THEME_NAME-theme { color: '{{foreground-1}}'; } .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-hue-1}}'; color: '{{foreground-1}}'; }.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-THEME_NAME-theme .md-calendar-date.md-focus .md-calendar-date-selection-indicator { background: '{{background-hue-1}}'; }.md-THEME_NAME-theme .md-calendar-date-selection-indicator:hover { background: '{{background-hue-1}}'; }.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: '{{foreground-3}}'; }/** Theme styles for mdDatepicker. */md-datepicker.md-THEME_NAME-theme { background: '{{background-color}}'; }.md-THEME_NAME-theme .md-datepicker-input { color: '{{background-contrast}}'; background: '{{background-color}}'; } .md-THEME_NAME-theme .md-datepicker-input::-webkit-input-placeholder, .md-THEME_NAME-theme .md-datepicker-input::-moz-placeholder, .md-THEME_NAME-theme .md-datepicker-input:-moz-placeholder, .md-THEME_NAME-theme .md-datepicker-input:-ms-input-placeholder { color: '{{foreground-3}}'; }.md-THEME_NAME-theme .md-datepicker-input-container { border-bottom-color: '{{background-300}}'; } .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused { border-bottom-color: '{{primary-500}}'; } .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-invalid { border-bottom-color: '{{warn-500}}'; }.md-THEME_NAME-theme .md-datepicker-calendar-pane { border-color: '{{background-300}}'; }.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 { fill: '{{primary-500}}'; }.md-THEME_NAME-theme .md-datepicker-calendar, .md-THEME_NAME-theme .md-datepicker-input-mask-opaque { background: '{{background-color}}'; }md-dialog.md-THEME_NAME-theme { border-radius: 4px; background-color: '{{background-color}}'; } md-dialog.md-THEME_NAME-theme.md-content-overflow .md-actions { border-top-color: '{{foreground-4}}'; }md-divider.md-THEME_NAME-theme { border-top-color: '{{foreground-4}}'; }md-icon.md-THEME_NAME-theme { color: '{{foreground-2}}'; } md-icon.md-THEME_NAME-theme.md-primary { color: '{{primary-color}}'; } md-icon.md-THEME_NAME-theme.md-accent { color: '{{accent-color}}'; } md-icon.md-THEME_NAME-theme.md-warn { color: '{{warn-color}}'; }md-input-container.md-THEME_NAME-theme .md-input { color: '{{foreground-1}}'; border-color: '{{foreground-4}}'; text-shadow: '{{foreground-shadow}}'; } md-input-container.md-THEME_NAME-theme .md-input::-webkit-input-placeholder, md-input-container.md-THEME_NAME-theme .md-input::-moz-placeholder, md-input-container.md-THEME_NAME-theme .md-input:-moz-placeholder, md-input-container.md-THEME_NAME-theme .md-input:-ms-input-placeholder { color: '{{foreground-3}}'; }md-input-container.md-THEME_NAME-theme > md-icon { color: '{{foreground-1}}'; }md-input-container.md-THEME_NAME-theme label, md-input-container.md-THEME_NAME-theme .md-placeholder { text-shadow: '{{foreground-shadow}}'; color: '{{foreground-3}}'; }md-input-container.md-THEME_NAME-theme ng-messages, md-input-container.md-THEME_NAME-theme [ng-messages], md-input-container.md-THEME_NAME-theme ng-message, md-input-container.md-THEME_NAME-theme data-ng-message, md-input-container.md-THEME_NAME-theme x-ng-message, md-input-container.md-THEME_NAME-theme [ng-message], md-input-container.md-THEME_NAME-theme [data-ng-message], md-input-container.md-THEME_NAME-theme [x-ng-message], md-input-container.md-THEME_NAME-theme [ng-message-exp], md-input-container.md-THEME_NAME-theme [data-ng-message-exp], md-input-container.md-THEME_NAME-theme [x-ng-message-exp] { color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-has-value label { color: '{{foreground-2}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused .md-input { border-color: '{{primary-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused label { color: '{{primary-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused md-icon { color: '{{primary-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent .md-input { border-color: '{{accent-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent label { color: '{{accent-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn .md-input { border-color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn label { color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme.md-input-invalid .md-input { border-color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme.md-input-invalid.md-input-focused label { color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme.md-input-invalid ng-message, md-input-container.md-THEME_NAME-theme.md-input-invalid data-ng-message, md-input-container.md-THEME_NAME-theme.md-input-invalid x-ng-message, md-input-container.md-THEME_NAME-theme.md-input-invalid [ng-message], md-input-container.md-THEME_NAME-theme.md-input-invalid [data-ng-message], md-input-container.md-THEME_NAME-theme.md-input-invalid [x-ng-message], md-input-container.md-THEME_NAME-theme.md-input-invalid [ng-message-exp], md-input-container.md-THEME_NAME-theme.md-input-invalid [data-ng-message-exp], md-input-container.md-THEME_NAME-theme.md-input-invalid [x-ng-message-exp], md-input-container.md-THEME_NAME-theme.md-input-invalid .md-char-counter { color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme .md-input[disabled], [disabled] md-input-container.md-THEME_NAME-theme .md-input { border-bottom-color: transparent; color: '{{foreground-3}}'; background-image: linear-gradient(to right, '{{foreground-3}}' 0%, '{{foreground-3}}' 33%, transparent 0%); background-image: -ms-linear-gradient(left, transparent 0%, '{{foreground-3}}' 100%); }md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h3, md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h4, md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h3, md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h4 { color: '{{foreground-1}}'; }md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text p, md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text p { color: '{{foreground-2}}'; }md-list.md-THEME_NAME-theme .md-proxy-focus.md-focused div.md-no-style { background-color: '{{background-100}}'; }md-list.md-THEME_NAME-theme md-list-item > md-icon { color: '{{foreground-2}}'; } md-list.md-THEME_NAME-theme md-list-item > md-icon.md-highlight { color: '{{primary-color}}'; } md-list.md-THEME_NAME-theme md-list-item > md-icon.md-highlight.md-accent { color: '{{accent-color}}'; }md-list.md-THEME_NAME-theme md-list-item button { background-color: '{{background-color}}'; } md-list.md-THEME_NAME-theme md-list-item button.md-button:not([disabled]):hover { background-color: '{{background-color}}'; }md-menu-content.md-THEME_NAME-theme { background-color: '{{background-color}}'; } md-menu-content.md-THEME_NAME-theme md-menu-divider { background-color: '{{foreground-4}}'; }md-menu-bar.md-THEME_NAME-theme > button.md-button { color: '{{foreground-2}}'; border-radius: 2px; }md-menu-bar.md-THEME_NAME-theme md-menu.md-open > button, md-menu-bar.md-THEME_NAME-theme md-menu > button:focus { outline: none; background: '{{background-200}}'; }md-menu-bar.md-THEME_NAME-theme.md-open:not(.md-keyboard-mode) md-menu:hover > button { background-color: '{{ background-500-0.2}}'; }md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:hover, md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:focus { background: transparent; }md-menu-content.md-THEME_NAME-theme .md-menu > .md-button:after { color: '{{foreground-2}}'; }md-menu-content.md-THEME_NAME-theme .md-menu.md-open > .md-button { background-color: '{{ background-500-0.2}}'; }md-toolbar.md-THEME_NAME-theme.md-menu-toolbar { background-color: '{{background-color}}'; color: '{{foreground-1}}'; } md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler { background-color: '{{primary-color}}'; color: '{{primary-contrast}}'; } md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler md-icon { color: '{{primary-contrast}}'; }md-progress-circular.md-THEME_NAME-theme { background-color: transparent; } md-progress-circular.md-THEME_NAME-theme .md-inner .md-gap { border-top-color: '{{primary-color}}'; border-bottom-color: '{{primary-color}}'; } md-progress-circular.md-THEME_NAME-theme .md-inner .md-left .md-half-circle, md-progress-circular.md-THEME_NAME-theme .md-inner .md-right .md-half-circle { border-top-color: '{{primary-color}}'; } md-progress-circular.md-THEME_NAME-theme .md-inner .md-right .md-half-circle { border-right-color: '{{primary-color}}'; } md-progress-circular.md-THEME_NAME-theme .md-inner .md-left .md-half-circle { border-left-color: '{{primary-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-gap { border-top-color: '{{warn-color}}'; border-bottom-color: '{{warn-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-left .md-half-circle, md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-right .md-half-circle { border-top-color: '{{warn-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-right .md-half-circle { border-right-color: '{{warn-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-left .md-half-circle { border-left-color: '{{warn-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-gap { border-top-color: '{{accent-color}}'; border-bottom-color: '{{accent-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-left .md-half-circle, md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-right .md-half-circle { border-top-color: '{{accent-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-right .md-half-circle { border-right-color: '{{accent-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-left .md-half-circle { border-left-color: '{{accent-color}}'; }md-progress-linear.md-THEME_NAME-theme .md-container { background-color: '{{primary-100}}'; }md-progress-linear.md-THEME_NAME-theme .md-bar { background-color: '{{primary-color}}'; }md-progress-linear.md-THEME_NAME-theme.md-warn .md-container { background-color: '{{warn-100}}'; }md-progress-linear.md-THEME_NAME-theme.md-warn .md-bar { background-color: '{{warn-color}}'; }md-progress-linear.md-THEME_NAME-theme.md-accent .md-container { background-color: '{{accent-100}}'; }md-progress-linear.md-THEME_NAME-theme.md-accent .md-bar { background-color: '{{accent-color}}'; }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-bar1 { background-color: '{{warn-100}}'; }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-dashed:before { background: radial-gradient('{{warn-100}}' 0%, '{{warn-100}}' 16%, transparent 42%); }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-bar1 { background-color: '{{accent-100}}'; }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-dashed:before { background: radial-gradient('{{accent-100}}' 0%, '{{accent-100}}' 16%, transparent 42%); }md-radio-button.md-THEME_NAME-theme .md-off { border-color: '{{foreground-2}}'; }md-radio-button.md-THEME_NAME-theme .md-on { background-color: '{{accent-color-0.87}}'; }md-radio-button.md-THEME_NAME-theme.md-checked .md-off { border-color: '{{accent-color-0.87}}'; }md-radio-button.md-THEME_NAME-theme.md-checked .md-ink-ripple { color: '{{accent-color-0.87}}'; }md-radio-button.md-THEME_NAME-theme .md-container .md-ripple { color: '{{accent-600}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-on, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-on { background-color: '{{primary-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off { border-color: '{{primary-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple { color: '{{primary-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple { color: '{{primary-600}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-on, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-on { background-color: '{{warn-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off { border-color: '{{warn-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple { color: '{{warn-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple { color: '{{warn-600}}'; }md-radio-group.md-THEME_NAME-theme[disabled], md-radio-button.md-THEME_NAME-theme[disabled] { color: '{{foreground-3}}'; } md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-off, md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-off { border-color: '{{foreground-3}}'; } md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-on, md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-on { border-color: '{{foreground-3}}'; }md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked .md-container:before { background-color: '{{accent-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked:not([disabled]).md-primary .md-container:before { background-color: '{{primary-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked.md-primary .md-container:before { background-color: '{{warn-color-0.26}}'; }md-select.md-THEME_NAME-theme[disabled] .md-select-value { border-bottom-color: transparent; background-image: linear-gradient(to right, '{{foreground-3}}' 0%, '{{foreground-3}}' 33%, transparent 0%); background-image: -ms-linear-gradient(left, transparent 0%, '{{foreground-3}}' 100%); }md-select.md-THEME_NAME-theme .md-select-value { border-bottom-color: '{{foreground-4}}'; } md-select.md-THEME_NAME-theme .md-select-value.md-select-placeholder { color: '{{foreground-3}}'; }md-select.md-THEME_NAME-theme.ng-invalid.ng-dirty .md-select-value { color: '{{warn-500}}' !important; border-bottom-color: '{{warn-500}}' !important; }md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value { border-bottom-color: '{{primary-color}}'; color: '{{ foreground-1 }}'; } md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value.md-select-placeholder { color: '{{ foreground-1 }}'; }md-select.md-THEME_NAME-theme:not([disabled]):focus.md-accent .md-select-value { border-bottom-color: '{{accent-color}}'; }md-select.md-THEME_NAME-theme:not([disabled]):focus.md-warn .md-select-value { border-bottom-color: '{{warn-color}}'; }md-select.md-THEME_NAME-theme[disabled] .md-select-value { color: '{{foreground-3}}'; } md-select.md-THEME_NAME-theme[disabled] .md-select-value.md-select-placeholder { color: '{{foreground-3}}'; }md-select-menu.md-THEME_NAME-theme md-option[disabled] { color: '{{foreground-3}}'; }md-select-menu.md-THEME_NAME-theme md-optgroup { color: '{{foreground-2}}'; } md-select-menu.md-THEME_NAME-theme md-optgroup md-option { color: '{{foreground-1}}'; }md-select-menu.md-THEME_NAME-theme md-option[selected] { color: '{{primary-500}}'; } md-select-menu.md-THEME_NAME-theme md-option[selected]:focus { color: '{{primary-600}}'; } md-select-menu.md-THEME_NAME-theme md-option[selected].md-accent { color: '{{accent-500}}'; } md-select-menu.md-THEME_NAME-theme md-option[selected].md-accent:focus { color: '{{accent-600}}'; }md-select-menu.md-THEME_NAME-theme md-option:focus:not([selected]) { background: '{{background-200}}'; }md-sidenav.md-THEME_NAME-theme { background-color: '{{background-color}}'; }md-slider.md-THEME_NAME-theme .md-track { background-color: '{{foreground-3}}'; }md-slider.md-THEME_NAME-theme .md-track-ticks { background-color: '{{foreground-4}}'; }md-slider.md-THEME_NAME-theme .md-focus-thumb { background-color: '{{foreground-2}}'; }md-slider.md-THEME_NAME-theme .md-focus-ring { background-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-disabled-thumb { border-color: '{{background-color}}'; }md-slider.md-THEME_NAME-theme.md-min .md-thumb:after { background-color: '{{background-color}}'; }md-slider.md-THEME_NAME-theme .md-track.md-track-fill { background-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-thumb:after { border-color: '{{accent-color}}'; background-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-sign { background-color: '{{accent-color}}'; } md-slider.md-THEME_NAME-theme .md-sign:after { border-top-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-thumb-text { color: '{{accent-contrast}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-focus-ring { background-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-track.md-track-fill { background-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-thumb:after { border-color: '{{warn-color}}'; background-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-sign { background-color: '{{warn-color}}'; } md-slider.md-THEME_NAME-theme.md-warn .md-sign:after { border-top-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-thumb-text { color: '{{warn-contrast}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-focus-ring { background-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-track.md-track-fill { background-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-thumb:after { border-color: '{{primary-color}}'; background-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-sign { background-color: '{{primary-color}}'; } md-slider.md-THEME_NAME-theme.md-primary .md-sign:after { border-top-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-thumb-text { color: '{{primary-contrast}}'; }md-slider.md-THEME_NAME-theme[disabled] .md-thumb:after { border-color: '{{foreground-3}}'; }md-slider.md-THEME_NAME-theme[disabled]:not(.md-min) .md-thumb:after { background-color: '{{foreground-3}}'; }.md-subheader.md-THEME_NAME-theme { color: '{{ foreground-2-0.23 }}'; background-color: '{{background-color}}'; } .md-subheader.md-THEME_NAME-theme.md-primary { color: '{{primary-color}}'; } .md-subheader.md-THEME_NAME-theme.md-accent { color: '{{accent-color}}'; } .md-subheader.md-THEME_NAME-theme.md-warn { color: '{{warn-color}}'; }md-switch.md-THEME_NAME-theme .md-thumb { background-color: '{{background-50}}'; }md-switch.md-THEME_NAME-theme .md-bar { background-color: '{{background-500}}'; }md-switch.md-THEME_NAME-theme.md-checked .md-thumb { background-color: '{{accent-color}}'; }md-switch.md-THEME_NAME-theme.md-checked .md-bar { background-color: '{{accent-color-0.5}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-focused .md-thumb:before { background-color: '{{accent-color-0.26}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-thumb { background-color: '{{primary-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-bar { background-color: '{{primary-color-0.5}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary.md-focused .md-thumb:before { background-color: '{{primary-color-0.26}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-thumb { background-color: '{{warn-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-bar { background-color: '{{warn-color-0.5}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn.md-focused .md-thumb:before { background-color: '{{warn-color-0.26}}'; }md-switch.md-THEME_NAME-theme[disabled] .md-thumb { background-color: '{{background-400}}'; }md-switch.md-THEME_NAME-theme[disabled] .md-bar { background-color: '{{foreground-4}}'; }md-tabs.md-THEME_NAME-theme md-tabs-wrapper { background-color: transparent; border-color: '{{foreground-4}}'; }md-tabs.md-THEME_NAME-theme .md-paginator md-icon { color: '{{primary-color}}'; }md-tabs.md-THEME_NAME-theme md-ink-bar { color: '{{accent-color}}'; background: '{{accent-color}}'; }md-tabs.md-THEME_NAME-theme .md-tab { color: '{{foreground-2}}'; } md-tabs.md-THEME_NAME-theme .md-tab[disabled] { color: '{{foreground-3}}'; } md-tabs.md-THEME_NAME-theme .md-tab.md-active, md-tabs.md-THEME_NAME-theme .md-tab.md-focused { color: '{{primary-color}}'; } md-tabs.md-THEME_NAME-theme .md-tab.md-focused { background: '{{primary-color-0.1}}'; } md-tabs.md-THEME_NAME-theme .md-tab .md-ripple-container { color: '{{accent-100}}'; }md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper { background-color: '{{accent-color}}'; } md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{accent-100}}'; } md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{accent-contrast}}'; } md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{accent-contrast-0.1}}'; } md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-ink-bar { color: '{{primary-600-1}}'; background: '{{primary-600-1}}'; }md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper { background-color: '{{primary-color}}'; } md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{primary-100}}'; } md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{primary-contrast}}'; } md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{primary-contrast-0.1}}'; }md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper { background-color: '{{warn-color}}'; } md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{warn-100}}'; } md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{warn-contrast}}'; } md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{warn-contrast-0.1}}'; }md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper { background-color: '{{primary-color}}'; } md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{primary-100}}'; } md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{primary-contrast}}'; } md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{primary-contrast-0.1}}'; }md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper { background-color: '{{accent-color}}'; } md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{accent-100}}'; } md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{accent-contrast}}'; } md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{accent-contrast-0.1}}'; } md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-ink-bar { color: '{{primary-600-1}}'; background: '{{primary-600-1}}'; }md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper { background-color: '{{warn-color}}'; } md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{warn-100}}'; } md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{warn-contrast}}'; } md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{warn-contrast-0.1}}'; }md-toast.md-THEME_NAME-theme { background-color: #323232; color: '{{background-50}}'; } md-toast.md-THEME_NAME-theme .md-button { color: '{{background-50}}'; } md-toast.md-THEME_NAME-theme .md-button.md-highlight { color: '{{primary-A200}}'; } md-toast.md-THEME_NAME-theme .md-button.md-highlight.md-accent { color: '{{accent-A200}}'; } md-toast.md-THEME_NAME-theme .md-button.md-highlight.md-warn { color: '{{warn-A200}}'; }md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) { background-color: '{{primary-color}}'; color: '{{primary-contrast}}'; } md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) md-icon { color: '{{primary-contrast}}'; } md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) .md-button { color: '{{primary-contrast}}'; } md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent { background-color: '{{accent-color}}'; color: '{{accent-contrast}}'; } md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-warn { background-color: '{{warn-color}}'; color: '{{warn-contrast}}'; }md-tooltip.md-THEME_NAME-theme { color: '{{background-A100}}'; } md-tooltip.md-THEME_NAME-theme .md-background { background-color: '{{foreground-2}}'; }"); +angular.module("material.core").constant("$MD_THEME_CSS", "md-autocomplete.md-THEME_NAME-theme { background: '{{background-50}}'; } md-autocomplete.md-THEME_NAME-theme[disabled] { 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-50}}'; } .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}}'; }md-backdrop { background-color: '{{background-900-0.0}}'; } md-backdrop.md-opaque.md-THEME_NAME-theme { background-color: '{{background-900-1.0}}'; }a.md-button.md-THEME_NAME-theme:not([disabled]):hover, .md-button.md-THEME_NAME-theme:not([disabled]):hover { background-color: '{{background-500-0.2}}'; }a.md-button.md-THEME_NAME-theme:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme:not([disabled]).md-focused { background-color: '{{background-500-0.2}}'; }a.md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover, .md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover { background-color: transparent; }a.md-button.md-THEME_NAME-theme.md-fab, .md-button.md-THEME_NAME-theme.md-fab { background-color: '{{accent-color}}'; color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-fab md-icon, .md-button.md-THEME_NAME-theme.md-fab md-icon { color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover { background-color: '{{accent-color}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused { background-color: '{{accent-A700}}'; }a.md-button.md-THEME_NAME-theme.md-primary, .md-button.md-THEME_NAME-theme.md-primary { color: '{{primary-color}}'; } a.md-button.md-THEME_NAME-theme.md-primary.md-raised, a.md-button.md-THEME_NAME-theme.md-primary.md-fab, .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}}'; } a.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]) md-icon, a.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, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]) md-icon { color: '{{primary-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]):hover, a.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]):hover, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]):hover { background-color: '{{primary-color}}'; } a.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]).md-focused, a.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]).md-focused, .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}}'; } a.md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon { color: '{{primary-color}}'; }a.md-button.md-THEME_NAME-theme.md-fab, .md-button.md-THEME_NAME-theme.md-fab { background-color: '{{accent-color}}'; color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon { color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover { background-color: '{{accent-color}}'; } a.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused { background-color: '{{accent-A700}}'; }a.md-button.md-THEME_NAME-theme.md-raised, .md-button.md-THEME_NAME-theme.md-raised { color: '{{background-contrast}}'; background-color: '{{background-50}}'; } a.md-button.md-THEME_NAME-theme.md-raised:not([disabled]) .md-icon, .md-button.md-THEME_NAME-theme.md-raised:not([disabled]) .md-icon { color: '{{background-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover { background-color: '{{background-50}}'; } a.md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused { background-color: '{{background-200}}'; }a.md-button.md-THEME_NAME-theme.md-warn, .md-button.md-THEME_NAME-theme.md-warn { color: '{{warn-color}}'; } a.md-button.md-THEME_NAME-theme.md-warn.md-raised, a.md-button.md-THEME_NAME-theme.md-warn.md-fab, .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}}'; } a.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]) md-icon, a.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, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]) md-icon { color: '{{warn-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]):hover, a.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]):hover, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]):hover { background-color: '{{warn-color}}'; } a.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]).md-focused, a.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]).md-focused, .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-700}}'; } a.md-button.md-THEME_NAME-theme.md-warn:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-warn:not([disabled]) md-icon { color: '{{warn-color}}'; }a.md-button.md-THEME_NAME-theme.md-accent, .md-button.md-THEME_NAME-theme.md-accent { color: '{{accent-color}}'; } a.md-button.md-THEME_NAME-theme.md-accent.md-raised, a.md-button.md-THEME_NAME-theme.md-accent.md-fab, .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}}'; } a.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]) md-icon, a.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, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]) md-icon { color: '{{accent-contrast}}'; } a.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]):hover, a.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]):hover, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]):hover { background-color: '{{accent-color}}'; } a.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]).md-focused, a.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]).md-focused, .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-700}}'; } a.md-button.md-THEME_NAME-theme.md-accent:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-accent:not([disabled]) md-icon { color: '{{accent-color}}'; }a.md-button.md-THEME_NAME-theme[disabled], a.md-button.md-THEME_NAME-theme.md-raised[disabled], a.md-button.md-THEME_NAME-theme.md-fab[disabled], a.md-button.md-THEME_NAME-theme.md-accent[disabled], a.md-button.md-THEME_NAME-theme.md-warn[disabled], .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: not-allowed; } a.md-button.md-THEME_NAME-theme[disabled] md-icon, a.md-button.md-THEME_NAME-theme.md-raised[disabled] md-icon, a.md-button.md-THEME_NAME-theme.md-fab[disabled] md-icon, a.md-button.md-THEME_NAME-theme.md-accent[disabled] md-icon, a.md-button.md-THEME_NAME-theme.md-warn[disabled] md-icon, .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}}'; }a.md-button.md-THEME_NAME-theme.md-raised[disabled], a.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-fab[disabled] { background-color: '{{foreground-4}}'; }a.md-button.md-THEME_NAME-theme[disabled], .md-button.md-THEME_NAME-theme[disabled] { background-color: transparent; }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}}'; }md-card.md-THEME_NAME-theme { background-color: '{{background-color}}'; border-radius: 2px; } md-card.md-THEME_NAME-theme .md-card-image { border-radius: 2px 2px 0 0; }md-checkbox.md-THEME_NAME-theme .md-ripple { color: '{{accent-600}}'; }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 .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: '{{background-200}}'; }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 .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: '{{background-200}}'; }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 .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] .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-label { color: '{{foreground-3}}'; }md-content.md-THEME_NAME-theme { color: '{{foreground-1}}'; background-color: '{{background-color}}'; }md-dialog.md-THEME_NAME-theme { border-radius: 4px; background-color: '{{background-color}}'; } md-dialog.md-THEME_NAME-theme.md-content-overflow .md-actions { border-top-color: '{{foreground-4}}'; }md-chips.md-THEME_NAME-theme .md-chips { box-shadow: 0 1px '{{background-300}}'; } md-chips.md-THEME_NAME-theme .md-chips.md-focused { box-shadow: 0 2px '{{primary-color}}'; }md-chips.md-THEME_NAME-theme .md-chip { background: '{{background-300}}'; color: '{{background-800}}'; } 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-remove .md-button md-icon path { fill: '{{background-500}}'; }.md-contact-suggestion span.md-contact-email { color: '{{background-400}}'; }/** Theme styles for mdCalendar. */.md-calendar.md-THEME_NAME-theme { color: '{{foreground-1}}'; } .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-hue-1}}'; color: '{{foreground-1}}'; }.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-THEME_NAME-theme .md-calendar-date.md-focus .md-calendar-date-selection-indicator { background: '{{background-hue-1}}'; }.md-THEME_NAME-theme .md-calendar-date-selection-indicator:hover { background: '{{background-hue-1}}'; }.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: '{{foreground-3}}'; }/** Theme styles for mdDatepicker. */md-datepicker.md-THEME_NAME-theme { background: '{{background-color}}'; }.md-THEME_NAME-theme .md-datepicker-input { color: '{{background-contrast}}'; background: '{{background-color}}'; } .md-THEME_NAME-theme .md-datepicker-input::-webkit-input-placeholder, .md-THEME_NAME-theme .md-datepicker-input::-moz-placeholder, .md-THEME_NAME-theme .md-datepicker-input:-moz-placeholder, .md-THEME_NAME-theme .md-datepicker-input:-ms-input-placeholder { color: '{{foreground-3}}'; }.md-THEME_NAME-theme .md-datepicker-input-container { border-bottom-color: '{{background-300}}'; } .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused { border-bottom-color: '{{primary-500}}'; } .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-invalid { border-bottom-color: '{{warn-500}}'; }.md-THEME_NAME-theme .md-datepicker-calendar-pane { border-color: '{{background-300}}'; }.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 { fill: '{{primary-500}}'; }.md-THEME_NAME-theme .md-datepicker-calendar, .md-THEME_NAME-theme .md-datepicker-input-mask-opaque { background: '{{background-color}}'; }md-divider.md-THEME_NAME-theme { border-top-color: '{{foreground-4}}'; }md-icon.md-THEME_NAME-theme { color: '{{foreground-2}}'; } md-icon.md-THEME_NAME-theme.md-primary { color: '{{primary-color}}'; } md-icon.md-THEME_NAME-theme.md-accent { color: '{{accent-color}}'; } md-icon.md-THEME_NAME-theme.md-warn { color: '{{warn-color}}'; }md-input-container.md-THEME_NAME-theme .md-input { color: '{{foreground-1}}'; border-color: '{{foreground-4}}'; text-shadow: '{{foreground-shadow}}'; } md-input-container.md-THEME_NAME-theme .md-input::-webkit-input-placeholder, md-input-container.md-THEME_NAME-theme .md-input::-moz-placeholder, md-input-container.md-THEME_NAME-theme .md-input:-moz-placeholder, md-input-container.md-THEME_NAME-theme .md-input:-ms-input-placeholder { color: '{{foreground-3}}'; }md-input-container.md-THEME_NAME-theme > md-icon { color: '{{foreground-1}}'; }md-input-container.md-THEME_NAME-theme label, md-input-container.md-THEME_NAME-theme .md-placeholder { text-shadow: '{{foreground-shadow}}'; color: '{{foreground-3}}'; }md-input-container.md-THEME_NAME-theme ng-messages :not(.md-char-counter), md-input-container.md-THEME_NAME-theme [ng-messages] :not(.md-char-counter), md-input-container.md-THEME_NAME-theme ng-message :not(.md-char-counter), md-input-container.md-THEME_NAME-theme data-ng-message :not(.md-char-counter), md-input-container.md-THEME_NAME-theme x-ng-message :not(.md-char-counter), md-input-container.md-THEME_NAME-theme [ng-message] :not(.md-char-counter), md-input-container.md-THEME_NAME-theme [data-ng-message] :not(.md-char-counter), md-input-container.md-THEME_NAME-theme [x-ng-message] :not(.md-char-counter), md-input-container.md-THEME_NAME-theme [ng-message-exp] :not(.md-char-counter), md-input-container.md-THEME_NAME-theme [data-ng-message-exp] :not(.md-char-counter), md-input-container.md-THEME_NAME-theme [x-ng-message-exp] :not(.md-char-counter) { color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-has-value label { color: '{{foreground-2}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused .md-input { border-color: '{{primary-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused label { color: '{{primary-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused md-icon { color: '{{primary-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent .md-input { border-color: '{{accent-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent label { color: '{{accent-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn .md-input { border-color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn label { color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme.md-input-invalid .md-input { border-color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme.md-input-invalid.md-input-focused label { color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme.md-input-invalid ng-message, md-input-container.md-THEME_NAME-theme.md-input-invalid data-ng-message, md-input-container.md-THEME_NAME-theme.md-input-invalid x-ng-message, md-input-container.md-THEME_NAME-theme.md-input-invalid [ng-message], md-input-container.md-THEME_NAME-theme.md-input-invalid [data-ng-message], md-input-container.md-THEME_NAME-theme.md-input-invalid [x-ng-message], md-input-container.md-THEME_NAME-theme.md-input-invalid [ng-message-exp], md-input-container.md-THEME_NAME-theme.md-input-invalid [data-ng-message-exp], md-input-container.md-THEME_NAME-theme.md-input-invalid [x-ng-message-exp], md-input-container.md-THEME_NAME-theme.md-input-invalid .md-char-counter { color: '{{warn-500}}'; }md-input-container.md-THEME_NAME-theme .md-input[disabled], [disabled] md-input-container.md-THEME_NAME-theme .md-input { border-bottom-color: transparent; color: '{{foreground-3}}'; background-image: linear-gradient(to right, '{{foreground-3}}' 0%, '{{foreground-3}}' 33%, transparent 0%); background-image: -ms-linear-gradient(left, transparent 0%, '{{foreground-3}}' 100%); }md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h3, md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h4, md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h3, md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h4 { color: '{{foreground-1}}'; }md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text p, md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text p { color: '{{foreground-2}}'; }md-list.md-THEME_NAME-theme .md-proxy-focus.md-focused div.md-no-style { background-color: '{{background-100}}'; }md-list.md-THEME_NAME-theme md-list-item > .md-avatar-icon { background-color: '{{foreground-3}}'; color: '{{background-color}}'; }md-list.md-THEME_NAME-theme md-list-item > md-icon { color: '{{foreground-2}}'; } md-list.md-THEME_NAME-theme md-list-item > md-icon.md-highlight { color: '{{primary-color}}'; } md-list.md-THEME_NAME-theme md-list-item > md-icon.md-highlight.md-accent { color: '{{accent-color}}'; }md-list.md-THEME_NAME-theme md-list-item button { background-color: '{{background-color}}'; } md-list.md-THEME_NAME-theme md-list-item button.md-button:not([disabled]):hover { background-color: '{{background-color}}'; }md-menu-content.md-THEME_NAME-theme { background-color: '{{background-color}}'; } md-menu-content.md-THEME_NAME-theme md-menu-divider { background-color: '{{foreground-4}}'; }md-menu-bar.md-THEME_NAME-theme > button.md-button { color: '{{foreground-2}}'; border-radius: 2px; }md-menu-bar.md-THEME_NAME-theme md-menu.md-open > button, md-menu-bar.md-THEME_NAME-theme md-menu > button:focus { outline: none; background: '{{background-200}}'; }md-menu-bar.md-THEME_NAME-theme.md-open:not(.md-keyboard-mode) md-menu:hover > button { background-color: '{{ background-500-0.2}}'; }md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:hover, md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:focus { background: transparent; }md-menu-content.md-THEME_NAME-theme .md-menu > .md-button:after { color: '{{foreground-2}}'; }md-menu-content.md-THEME_NAME-theme .md-menu.md-open > .md-button { background-color: '{{ background-500-0.2}}'; }md-toolbar.md-THEME_NAME-theme.md-menu-toolbar { background-color: '{{background-color}}'; color: '{{foreground-1}}'; } md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler { background-color: '{{primary-color}}'; color: '{{primary-contrast}}'; } md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler md-icon { color: '{{primary-contrast}}'; }md-progress-circular.md-THEME_NAME-theme { background-color: transparent; } md-progress-circular.md-THEME_NAME-theme .md-inner .md-gap { border-top-color: '{{primary-color}}'; border-bottom-color: '{{primary-color}}'; } md-progress-circular.md-THEME_NAME-theme .md-inner .md-left .md-half-circle, md-progress-circular.md-THEME_NAME-theme .md-inner .md-right .md-half-circle { border-top-color: '{{primary-color}}'; } md-progress-circular.md-THEME_NAME-theme .md-inner .md-right .md-half-circle { border-right-color: '{{primary-color}}'; } md-progress-circular.md-THEME_NAME-theme .md-inner .md-left .md-half-circle { border-left-color: '{{primary-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-gap { border-top-color: '{{warn-color}}'; border-bottom-color: '{{warn-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-left .md-half-circle, md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-right .md-half-circle { border-top-color: '{{warn-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-right .md-half-circle { border-right-color: '{{warn-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-warn .md-inner .md-left .md-half-circle { border-left-color: '{{warn-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-gap { border-top-color: '{{accent-color}}'; border-bottom-color: '{{accent-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-left .md-half-circle, md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-right .md-half-circle { border-top-color: '{{accent-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-right .md-half-circle { border-right-color: '{{accent-color}}'; } md-progress-circular.md-THEME_NAME-theme.md-accent .md-inner .md-left .md-half-circle { border-left-color: '{{accent-color}}'; }md-progress-linear.md-THEME_NAME-theme .md-container { background-color: '{{primary-100}}'; }md-progress-linear.md-THEME_NAME-theme .md-bar { background-color: '{{primary-color}}'; }md-progress-linear.md-THEME_NAME-theme.md-warn .md-container { background-color: '{{warn-100}}'; }md-progress-linear.md-THEME_NAME-theme.md-warn .md-bar { background-color: '{{warn-color}}'; }md-progress-linear.md-THEME_NAME-theme.md-accent .md-container { background-color: '{{accent-100}}'; }md-progress-linear.md-THEME_NAME-theme.md-accent .md-bar { background-color: '{{accent-color}}'; }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-bar1 { background-color: '{{warn-100}}'; }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-dashed:before { background: radial-gradient('{{warn-100}}' 0%, '{{warn-100}}' 16%, transparent 42%); }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-bar1 { background-color: '{{accent-100}}'; }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-dashed:before { background: radial-gradient('{{accent-100}}' 0%, '{{accent-100}}' 16%, transparent 42%); }md-radio-button.md-THEME_NAME-theme .md-off { border-color: '{{foreground-2}}'; }md-radio-button.md-THEME_NAME-theme .md-on { background-color: '{{accent-color-0.87}}'; }md-radio-button.md-THEME_NAME-theme.md-checked .md-off { border-color: '{{accent-color-0.87}}'; }md-radio-button.md-THEME_NAME-theme.md-checked .md-ink-ripple { color: '{{accent-color-0.87}}'; }md-radio-button.md-THEME_NAME-theme .md-container .md-ripple { color: '{{accent-600}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-on, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-on { background-color: '{{primary-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off { border-color: '{{primary-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple { color: '{{primary-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple { color: '{{primary-600}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-on, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-on { background-color: '{{warn-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off { border-color: '{{warn-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple { color: '{{warn-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple, md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple { color: '{{warn-600}}'; }md-radio-group.md-THEME_NAME-theme[disabled], md-radio-button.md-THEME_NAME-theme[disabled] { color: '{{foreground-3}}'; } md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-off, md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-off { border-color: '{{foreground-3}}'; } md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-on, md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-on { border-color: '{{foreground-3}}'; }md-radio-group.md-THEME_NAME-theme .md-checked .md-ink-ripple { color: '{{accent-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-primary .md-checked:not([disabled]) .md-ink-ripple, md-radio-group.md-THEME_NAME-theme .md-checked:not([disabled]).md-primary .md-ink-ripple { color: '{{primary-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme .md-checked.md-primary .md-ink-ripple { color: '{{warn-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked .md-container:before { background-color: '{{accent-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked:not([disabled]).md-primary .md-container:before { background-color: '{{primary-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked.md-primary .md-container:before { background-color: '{{warn-color-0.26}}'; }md-select.md-THEME_NAME-theme[disabled] .md-select-value { border-bottom-color: transparent; background-image: linear-gradient(to right, '{{foreground-3}}' 0%, '{{foreground-3}}' 33%, transparent 0%); background-image: -ms-linear-gradient(left, transparent 0%, '{{foreground-3}}' 100%); }md-select.md-THEME_NAME-theme .md-select-value { border-bottom-color: '{{foreground-4}}'; } md-select.md-THEME_NAME-theme .md-select-value.md-select-placeholder { color: '{{foreground-3}}'; }md-select.md-THEME_NAME-theme.ng-invalid.ng-dirty .md-select-value { color: '{{warn-500}}' !important; border-bottom-color: '{{warn-500}}' !important; }md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value { border-bottom-color: '{{primary-color}}'; color: '{{ foreground-1 }}'; } md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value.md-select-placeholder { color: '{{ foreground-1 }}'; }md-select.md-THEME_NAME-theme:not([disabled]):focus.md-accent .md-select-value { border-bottom-color: '{{accent-color}}'; }md-select.md-THEME_NAME-theme:not([disabled]):focus.md-warn .md-select-value { border-bottom-color: '{{warn-color}}'; }md-select.md-THEME_NAME-theme[disabled] .md-select-value { color: '{{foreground-3}}'; } md-select.md-THEME_NAME-theme[disabled] .md-select-value.md-select-placeholder { color: '{{foreground-3}}'; }md-select-menu.md-THEME_NAME-theme md-option[disabled] { color: '{{foreground-3}}'; }md-select-menu.md-THEME_NAME-theme md-optgroup { color: '{{foreground-2}}'; } md-select-menu.md-THEME_NAME-theme md-optgroup md-option { color: '{{foreground-1}}'; }md-select-menu.md-THEME_NAME-theme md-option[selected] { color: '{{primary-500}}'; } md-select-menu.md-THEME_NAME-theme md-option[selected]:focus { color: '{{primary-600}}'; } md-select-menu.md-THEME_NAME-theme md-option[selected].md-accent { color: '{{accent-500}}'; } md-select-menu.md-THEME_NAME-theme md-option[selected].md-accent:focus { color: '{{accent-600}}'; }md-select-menu.md-THEME_NAME-theme md-option:focus:not([selected]) { background: '{{background-200}}'; }md-sidenav.md-THEME_NAME-theme { background-color: '{{background-color}}'; }md-slider.md-THEME_NAME-theme .md-track { background-color: '{{foreground-3}}'; }md-slider.md-THEME_NAME-theme .md-track-ticks { background-color: '{{foreground-4}}'; }md-slider.md-THEME_NAME-theme .md-focus-thumb { background-color: '{{foreground-2}}'; }md-slider.md-THEME_NAME-theme .md-focus-ring { background-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-disabled-thumb { border-color: '{{background-color}}'; }md-slider.md-THEME_NAME-theme.md-min .md-thumb:after { background-color: '{{background-color}}'; }md-slider.md-THEME_NAME-theme .md-track.md-track-fill { background-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-thumb:after { border-color: '{{accent-color}}'; background-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-sign { background-color: '{{accent-color}}'; } md-slider.md-THEME_NAME-theme .md-sign:after { border-top-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-thumb-text { color: '{{accent-contrast}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-focus-ring { background-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-track.md-track-fill { background-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-thumb:after { border-color: '{{warn-color}}'; background-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-sign { background-color: '{{warn-color}}'; } md-slider.md-THEME_NAME-theme.md-warn .md-sign:after { border-top-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-thumb-text { color: '{{warn-contrast}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-focus-ring { background-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-track.md-track-fill { background-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-thumb:after { border-color: '{{primary-color}}'; background-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-sign { background-color: '{{primary-color}}'; } md-slider.md-THEME_NAME-theme.md-primary .md-sign:after { border-top-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-thumb-text { color: '{{primary-contrast}}'; }md-slider.md-THEME_NAME-theme[disabled] .md-thumb:after { border-color: '{{foreground-3}}'; }md-slider.md-THEME_NAME-theme[disabled]:not(.md-min) .md-thumb:after { background-color: '{{foreground-3}}'; }.md-subheader.md-THEME_NAME-theme { color: '{{ foreground-2-0.23 }}'; background-color: '{{background-color}}'; } .md-subheader.md-THEME_NAME-theme.md-primary { color: '{{primary-color}}'; } .md-subheader.md-THEME_NAME-theme.md-accent { color: '{{accent-color}}'; } .md-subheader.md-THEME_NAME-theme.md-warn { color: '{{warn-color}}'; }md-switch.md-THEME_NAME-theme .md-ink-ripple { color: '{{background-500}}'; }md-switch.md-THEME_NAME-theme .md-thumb { background-color: '{{background-50}}'; }md-switch.md-THEME_NAME-theme .md-bar { background-color: '{{background-500}}'; }md-switch.md-THEME_NAME-theme.md-checked .md-ink-ripple { color: '{{accent-color}}'; }md-switch.md-THEME_NAME-theme.md-checked .md-thumb { background-color: '{{accent-color}}'; }md-switch.md-THEME_NAME-theme.md-checked .md-bar { background-color: '{{accent-color-0.5}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-focused .md-thumb:before { background-color: '{{accent-color-0.26}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-ink-ripple { color: '{{primary-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-thumb { background-color: '{{primary-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-bar { background-color: '{{primary-color-0.5}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary.md-focused .md-thumb:before { background-color: '{{primary-color-0.26}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-ink-ripple { color: '{{warn-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-thumb { background-color: '{{warn-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-bar { background-color: '{{warn-color-0.5}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn.md-focused .md-thumb:before { background-color: '{{warn-color-0.26}}'; }md-switch.md-THEME_NAME-theme[disabled] .md-thumb { background-color: '{{background-400}}'; }md-switch.md-THEME_NAME-theme[disabled] .md-bar { background-color: '{{foreground-4}}'; }md-tabs.md-THEME_NAME-theme md-tabs-wrapper { background-color: transparent; border-color: '{{foreground-4}}'; }md-tabs.md-THEME_NAME-theme .md-paginator md-icon { color: '{{primary-color}}'; }md-tabs.md-THEME_NAME-theme md-ink-bar { color: '{{accent-color}}'; background: '{{accent-color}}'; }md-tabs.md-THEME_NAME-theme .md-tab { color: '{{foreground-2}}'; } md-tabs.md-THEME_NAME-theme .md-tab[disabled], md-tabs.md-THEME_NAME-theme .md-tab[disabled] md-icon { color: '{{foreground-3}}'; } md-tabs.md-THEME_NAME-theme .md-tab.md-active, md-tabs.md-THEME_NAME-theme .md-tab.md-active md-icon, md-tabs.md-THEME_NAME-theme .md-tab.md-focused, md-tabs.md-THEME_NAME-theme .md-tab.md-focused md-icon { color: '{{primary-color}}'; } md-tabs.md-THEME_NAME-theme .md-tab.md-focused { background: '{{primary-color-0.1}}'; } md-tabs.md-THEME_NAME-theme .md-tab .md-ripple-container { color: '{{accent-100}}'; }md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper { background-color: '{{accent-color}}'; } md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{accent-100}}'; } md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{accent-contrast}}'; } md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{accent-contrast-0.1}}'; } md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-ink-bar { color: '{{primary-600-1}}'; background: '{{primary-600-1}}'; }md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper { background-color: '{{primary-color}}'; } md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{primary-100}}'; } md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{primary-contrast}}'; } md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{primary-contrast-0.1}}'; }md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper { background-color: '{{warn-color}}'; } md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{warn-100}}'; } md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{warn-contrast}}'; } md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{warn-contrast-0.1}}'; }md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper { background-color: '{{primary-color}}'; } md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{primary-100}}'; } md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{primary-contrast}}'; } md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{primary-contrast-0.1}}'; }md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper { background-color: '{{accent-color}}'; } md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{accent-100}}'; } md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{accent-contrast}}'; } md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{accent-contrast-0.1}}'; } md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-ink-bar { color: '{{primary-600-1}}'; background: '{{primary-600-1}}'; }md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper { background-color: '{{warn-color}}'; } md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) { color: '{{warn-100}}'; } md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { color: '{{warn-contrast}}'; } md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused { background: '{{warn-contrast-0.1}}'; }md-toast.md-THEME_NAME-theme { background-color: #323232; color: '{{background-50}}'; } md-toast.md-THEME_NAME-theme .md-button { color: '{{background-50}}'; } md-toast.md-THEME_NAME-theme .md-button.md-highlight { color: '{{primary-A200}}'; } md-toast.md-THEME_NAME-theme .md-button.md-highlight.md-accent { color: '{{accent-A200}}'; } md-toast.md-THEME_NAME-theme .md-button.md-highlight.md-warn { color: '{{warn-A200}}'; }md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) { background-color: '{{primary-color}}'; color: '{{primary-contrast}}'; } md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) md-icon { color: '{{primary-contrast}}'; } md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) .md-button { color: '{{primary-contrast}}'; } md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent { background-color: '{{accent-color}}'; color: '{{accent-contrast}}'; } md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-warn { background-color: '{{warn-color}}'; color: '{{warn-contrast}}'; }md-tooltip.md-THEME_NAME-theme { color: '{{background-A100}}'; } md-tooltip.md-THEME_NAME-theme .md-background { background-color: '{{foreground-2}}'; }"); })(); diff --git a/UI/WebServerResources/js/vendor/angular-material.min.js b/UI/WebServerResources/js/vendor/angular-material.min.js index 59003fca4..e442491a4 100644 --- a/UI/WebServerResources/js/vendor/angular-material.min.js +++ b/UI/WebServerResources/js/vendor/angular-material.min.js @@ -2,13 +2,14 @@ * Angular Material Design * https://github.com/angular/material * @license MIT - * v0.11.0-master-9313a4a + * v0.11.3 */ -!function(e,t,n){"use strict";!function(){t.module("ngMaterial",["ng","ngAnimate","ngAria","material.core","material.core.gestures","material.core.layout","material.core.theming.palette","material.core.theming","material.core.animate","material.components.autocomplete","material.components.backdrop","material.components.bottomSheet","material.components.button","material.components.card","material.components.checkbox","material.components.chips","material.components.content","material.components.datepicker","material.components.dialog","material.components.divider","material.components.fabActions","material.components.fabShared","material.components.fabSpeedDial","material.components.fabToolbar","material.components.fabTrigger","material.components.gridList","material.components.icon","material.components.input","material.components.list","material.components.menu","material.components.menuBar","material.components.progressCircular","material.components.progressLinear","material.components.radioButton","material.components.select","material.components.sidenav","material.components.slider","material.components.sticky","material.components.subheader","material.components.swipe","material.components.switch","material.components.tabs","material.components.toast","material.components.toolbar","material.components.tooltip","material.components.virtualRepeat","material.components.whiteframe"])}(),function(){function e(e,t){e.decorator("$$rAF",["$delegate",o]),t.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("red").backgroundPalette("grey")}function n(e){return{restrict:"A",scope:{template:"=mdTemplate"},link:function(t,n){function o(o){n.html(o),e(n.contents())(t)}t.$watch("template",o)}}}function o(e){return e.throttle=function(t){var n,o,r,i;return function(){n=arguments,i=this,r=t,o||(o=!0,e(function(){r.apply(i,Array.prototype.slice.call(n)),o=!1}))}},e}t.module("material.core",["ngAnimate","material.core.animate","material.core.layout","material.core.gestures","material.core.theming"]).directive("mdTemplate",n).config(e),e.$inject=["$provide","$mdThemingProvider"],n.$inject=["$compile"]}(),function(){function e(e){function t(e){return n?"webkit"+e.charAt(0).toUpperCase()+e.substring(1):e}var n=/webkit/i.test(e.vendorPrefix);return{KEY_CODE:{ENTER:13,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,TAB:9,BACKSPACE:8,DELETE:46},CSS:{TRANSITIONEND:"transitionend"+(n?" webkitTransitionEnd":""),ANIMATIONEND:"animationend"+(n?" webkitAnimationEnd":""),TRANSFORM:t("transform"),TRANSFORM_ORIGIN:t("transformOrigin"),TRANSITION:t("transition"),TRANSITION_DURATION:t("transitionDuration"),ANIMATION_PLAY_STATE:t("animationPlayState"),ANIMATION_DURATION:t("animationDuration"),ANIMATION_NAME:t("animationName"),ANIMATION_TIMING:t("animationTimingFunction"),ANIMATION_DIRECTION:t("animationDirection")},MEDIA:{sm:"(max-width: 599px)","gt-sm":"(min-width: 600px)",md:"(min-width: 600px) and (max-width: 959px)","gt-md":"(min-width: 960px)",lg:"(min-width: 960px) and (max-width: 1199px)","gt-lg":"(min-width: 1200px)"},MEDIA_PRIORITY:["gt-lg","lg","gt-md","md","gt-sm","sm"]}}t.module("material.core").factory("$mdConstant",e),e.$inject=["$sniffer"]}(),function(){function e(e,n){function o(){return[].concat(E)}function r(){return E.length}function i(e){return E.length&&e>-1&&e-1}function p(){return E.length?E[0]:null}function f(){return E.length?E[E.length-1]:null}function g(e,o,r,a){r=r||b;for(var d=u(o);;){if(!i(d))return null;var c=d+(e?-1:1),l=null;if(i(c)?l=E[c]:n&&(l=e?f():p(),c=u(l)),null===l||c===a)return null;if(r(l))return l;t.isUndefined(a)&&(a=c),d=c}}var b=function(){return!0};e&&!t.isArray(e)&&(e=Array.prototype.slice.call(e)),n=!!n;var E=e||[];return{items:o,count:r,inRange:i,contains:h,indexOf:u,itemAt:c,findBy:l,add:s,remove:m,first:p,last:f,next:t.bind(null,g,!1),previous:t.bind(null,g,!0),hasPrevious:d,hasNext:a}}t.module("material.core").config(["$provide",function(t){t.decorator("$mdUtil",["$delegate",function(t){return t.iterator=e,t}])}])}(),function(){function e(e,n,o){function r(e){var n=u[e];t.isUndefined(n)&&(n=u[e]=i(e));var o=p[n];return t.isUndefined(o)&&(o=a(n)),o}function i(t){return e.MEDIA[t]||("("!==t.charAt(0)?"("+t+")":t)}function a(e){var t=h[e]=o.matchMedia(e);return t.addListener(d),p[t.media]=!!t.matches}function d(e){n.$evalAsync(function(){p[e.media]=!!e.matches})}function c(e){return h[e]}function l(t,n){for(var o=0;o
    ');return e.appendChild(a[0]),a.on("wheel",r),a.on("touchmove",r),o.on("keydown",n),function(){a.off("wheel"),a.off("touchmove"),a[0].parentNode.removeChild(a[0]),o.off("keydown",n),delete f.disableScrollAround._enableScrolling}}function i(){var e=d.parentNode,t=e.getAttribute("style")||"",n=d.getAttribute("style")||"",o=f.scrollTop(d),r=d.clientWidth;return d.scrollHeight>d.clientHeight&&(a(d,{position:"fixed",width:"100%",top:-o+"px"}),a(e,{overflowY:"scroll"})),d.clientWidth
    ');o[0].body.appendChild(e[0]),this.floatingScrollbars.cached=e[0].offsetWidth==e[0].childNodes[0].offsetWidth,e.remove()}return this.floatingScrollbars.cached},forceFocus:function(t){var n=t[0]||t;document.addEventListener("click",function r(e){e.target===n&&e.$focus&&(n.focus(),e.stopImmediatePropagation(),e.preventDefault(),n.removeEventListener("click",r))},!0);var o=document.createEvent("MouseEvents");o.initMouseEvent("click",!1,!0,e,{},0,0,0,0,!1,!1,!1,!1,0,null),o.$material=!0,o.$focus=!0,n.dispatchEvent(o)},createBackdrop:function(e,t){return a(f.supplant('',[t]))(e)},supplant:function(e,t,n){return n=n||/\{([^\{\}]*)\}/g,e.replace(n,function(e,n){var o=n.split("."),r=t;try{for(var i in o)o.hasOwnProperty(i)&&(r=r[o[i]])}catch(a){r=e}return"string"==typeof r||"number"==typeof r?r:e})},fakeNgModel:function(){return{$fake:!0,$setTouched:t.noop,$setViewValue:function(e){this.$viewValue=e,this.$render(e),this.$viewChangeListeners.forEach(function(e){e()})},$isEmpty:function(e){return 0===(""+e).length},$parsers:[],$formatters:[],$viewChangeListeners:[],$render:t.noop}},debounce:function(e,t,o,r){var a;return function(){var d=o,c=Array.prototype.slice.call(arguments);i.cancel(a),a=i(function(){a=n,e.apply(d,c)},t||10,r)}},throttle:function(e,t){var n;return function(){var o=this,r=arguments,i=f.now();(!n||i-n>t)&&(e.apply(o,r),n=i)}},time:function(e){var t=f.now();return e(),f.now()-t},valueOnUse:function(e,t,n){var o=null,r=Array.prototype.slice.call(arguments),i=r.length>3?r.slice(3):[];Object.defineProperty(e,t,{get:function(){return null===o&&(o=n.apply(e,i)),o}})},nextUid:function(){return""+r++},validateScope:function(e){var n=e&&t.isDefined(e.scope());return n||s.warn("element.scope() is not available when 'debug mode' == false. @see https://docs.angularjs.org/guide/production!"),n},disconnectScope:function(e){if(e&&e.$root!==e&&!e.$$destroyed){var t=e.$parent;e.$$disconnected=!0,t.$$childHead===e&&(t.$$childHead=e.$$nextSibling),t.$$childTail===e&&(t.$$childTail=e.$$prevSibling),e.$$prevSibling&&(e.$$prevSibling.$$nextSibling=e.$$nextSibling),e.$$nextSibling&&(e.$$nextSibling.$$prevSibling=e.$$prevSibling),e.$$nextSibling=e.$$prevSibling=null}},reconnectScope:function(e){if(e&&e.$root!==e&&e.$$disconnected){var t=e,n=t.$parent;t.$$disconnected=!1,t.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=t,n.$$childTail=t):n.$$childHead=n.$$childTail=t}},getClosest:function(e,n,o){if(e instanceof t.element&&(e=e[0]),n=n.toUpperCase(),o&&(e=e.parentNode),!e)return null;do if(e.nodeName===n)return e;while(e=e.parentNode);return null},elementContains:function(n,o){var r=e.Node&&e.Node.prototype&&Node.prototype.contains,i=r?t.bind(n,n.contains):t.bind(n,function(e){return n===o||!!(16&this.compareDocumentPosition(e))});return i(o)},extractElementByName:function(e,n,o,r){function i(e){return a(e)||(o?d(e):null)}function a(e){if(e)for(var t=0,o=e.length;o>t;t++)if(e[t].nodeName.toLowerCase()===n)return e[t];return null}function d(e){var t;if(e)for(var n=0,o=e.length;o>n;n++){var r=e[n];if(!t)for(var a=0,d=r.childNodes.length;d>a;a++)t=t||i([r.childNodes[a]])}return t}var c=i(e);return!c&&r&&s.warn(f.supplant("Unable to find node '{0}' in element '{1}'.",[n,e[0].outerHTML])),t.element(c||e)},initOptionalProperties:function(e,n,o){o=o||{},t.forEach(e.$$isolateBindings,function(r,i){if(r.optional&&t.isUndefined(e[i])){var a=t.isDefined(n[r.attrName]);e[i]=t.isDefined(o[i])?o[i]:a}})},nextTick:function(e,t,n){function o(){var e=n&&n.$$destroyed,t=e?[]:r.queue,o=e?null:r.digest;r.queue=[],r.timeout=null,r.digest=!1,t.forEach(function(e){e()}),o&&d.$digest()}var r=f.nextTick,a=r.timeout,c=r.queue||[];return c.push(e),null==t&&(t=!0),r.digest=r.digest||t,r.queue=c,a||(r.timeout=i(o,0,!1))},processTemplate:function(e){return p?e:e&&t.isString(e)?e.replace(/\{\{/g,u).replace(/}}/g,h):e}};return f.dom.animator=c(f),f}var r=0;t.module("material.core").factory("$mdUtil",o),o.$inject=["$document","$timeout","$compile","$rootScope","$$mdAnimate","$interpolate","$log"],t.element.prototype.focus=t.element.prototype.focus||function(){return this.length&&this[0].focus(),this},t.element.prototype.blur=t.element.prototype.blur||function(){return this.length&&this[0].blur(),this}}(),function(){function e(e,n,o){function r(e,o,r){var i=t.element(e)[0]||e;!i||i.hasAttribute(o)&&0!==i.getAttribute(o).length||c(i,o)||(r=t.isString(r)?r.trim():"",r.length?e.attr(o,r):n.warn('ARIA: Attribute "',o,'", required for accessibility, is missing on node:',i))}function i(t,n,o){e(function(){r(t,n,o())})}function a(e,t){i(e,t,function(){return d(e)})}function d(e){return e.text().trim()}function c(e,t){function n(e){var t=e.currentStyle?e.currentStyle:o.getComputedStyle(e);return"none"===t.display}var r=e.hasChildNodes(),i=!1;if(r)for(var a=e.childNodes,d=0;d").html(o.trim()).contents(),c=r(a);return n={locals:e,element:a,link:function(o){if(e.$scope=o,s){var r=i(s,e,!0);f&&t.extend(r.instance,e);var d=r();a.data("$ngControllerController",d),a.children().data("$ngControllerController",d),m&&(o[m]=d),n.controller=d}return c(o)}}})}}t.module("material.core").service("$mdCompiler",e),e.$inject=["$q","$http","$injector","$compile","$controller","$templateCache"]}(),function(){function n(){}function o(n,o,r){function i(e,t,n){var o=p[t.replace(/^\$md./,"")];if(!o)throw new Error("Failed to register element with handler "+t+". Available handlers: "+Object.keys(p).join(", "));return o.registerElement(e,n)}function a(e,o){var r=new n(e);return t.extend(r,o),p[e]=r,h}var c=navigator.userAgent||navigator.vendor||e.opera,l=c.match(/ipad|iphone|ipod/i),m=c.match(/android/i),u="undefined"!=typeof e.jQuery&&t.element===e.jQuery,h={handler:a,register:i,isHijackingClicks:(l||m)&&!u&&!f};return h.isHijackingClicks&&h.handler("click",{options:{maxDistance:6},onEnd:function(e,t){t.distancethis.options.maxDistance&&this.cancel()},onEnd:function(){this.onCancel()}}).handler("drag",{options:{minDistance:6,horizontal:!0,cancelMultiplier:1.5},onStart:function(e){this.state.registeredParent||this.cancel()},onMove:function(e,t){var n,o;e.preventDefault(),this.state.dragPointer?this.dispatchDragMove(e):(this.state.options.horizontal?(n=Math.abs(t.distanceX)>this.state.options.minDistance,o=Math.abs(t.distanceY)>this.state.options.minDistance*this.state.options.cancelMultiplier):(n=Math.abs(t.distanceY)>this.state.options.minDistance,o=Math.abs(t.distanceX)>this.state.options.minDistance*this.state.options.cancelMultiplier),n?(this.state.dragPointer=d(e),s(e,this.state.dragPointer),this.dispatchEvent(e,"$md.dragstart",this.state.dragPointer)):o&&this.cancel())},dispatchDragMove:o.throttle(function(e){this.state.isRunning&&(s(e,this.state.dragPointer),this.dispatchEvent(e,"$md.drag",this.state.dragPointer))}),onEnd:function(e,t){this.state.dragPointer&&(s(e,this.state.dragPointer),this.dispatchEvent(e,"$md.dragend",this.state.dragPointer))}}).handler("swipe",{options:{minVelocity:.65,minDistance:10},onEnd:function(e,t){if(Math.abs(t.velocityX)>this.state.options.minVelocity&&Math.abs(t.distanceX)>this.state.options.minDistance){var n="left"==t.directionX?"$md.swipeleft":"$md.swiperight";this.dispatchEvent(e,n)}}})}function r(e){this.name=e,this.state={}}function i(){function n(e,n,o){o=o||u;var r=new t.element.Event(n);r.$material=!0,r.pointer=o,r.srcEvent=e,t.extend(r,{clientX:o.x,clientY:o.y,screenX:o.x,screenY:o.y,pageX:o.x,pageY:o.y,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey,metaKey:e.metaKey}),t.element(o.target).trigger(r)}function o(t,n,o){o=o||u;var r;"click"===n?(r=document.createEvent("MouseEvents"),r.initMouseEvent("click",!0,!0,e,t.detail,o.x,o.y,o.x,o.y,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget||null)):(r=document.createEvent("CustomEvent"),r.initCustomEvent(n,!0,!0,{})),r.$material=!0,r.pointer=o,r.srcEvent=t,o.target.dispatchEvent(r)}var i="undefined"!=typeof e.jQuery&&t.element===e.jQuery;return r.prototype={options:{},dispatchEvent:i?n:o,onStart:t.noop,onMove:t.noop,onEnd:t.noop,onCancel:t.noop,start:function(e,n){if(!this.state.isRunning){var o=this.getNearestParent(e.target),r=o&&o.$mdGesture[this.name]||{};this.state={isRunning:!0,options:t.extend({},this.options,r),registeredParent:o},this.onStart(e,n)}},move:function(e,t){this.state.isRunning&&this.onMove(e,t)},end:function(e,t){this.state.isRunning&&(this.onEnd(e,t),this.state.isRunning=!1)},cancel:function(e,t){this.onCancel(e,t),this.state={}},getNearestParent:function(e){for(var t=e;t;){if((t.$mdGesture||{})[this.name])return t;t=t.parentNode}return null},registerElement:function(e,t){function n(){delete e[0].$mdGesture[o.name],e.off("$destroy",n)}var o=this;return e[0].$mdGesture=e[0].$mdGesture||{},e[0].$mdGesture[this.name]=t||{},e.on("$destroy",n),n}},r}function a(e,n){function o(e,t){var o;for(var r in p)o=p[r],o instanceof n&&("start"===e&&o.cancel(),o[e](t,u))}function r(e){if(!u){var t=+Date.now();h&&!c(e,h)&&t-h.endTime<1500||(u=d(e),o("start",e))}}function i(e){u&&c(e,u)&&(s(e,u),o("move",e))}function a(e){u&&c(e,u)&&(s(e,u),u.endTime=+Date.now(),o("end",e),h=u,u=null)}document.contains||(document.contains=function(e){return document.body.contains(e)}),!b&&e.isHijackingClicks&&(document.addEventListener("click",function(e){var t=0===e.clientX&&0===e.clientY;t||e.$material||e.isIonicTap||l(e)?(g=null,"label"==e.target.tagName.toLowerCase()&&(g={x:e.x,y:e.y})):(e.preventDefault(),e.stopPropagation(),g=null)},!0),b=!0);var m="mousedown touchstart pointerdown",f="mousemove touchmove pointermove",E="mouseup mouseleave touchend touchcancel pointerup pointercancel";t.element(document).on(m,r).on(f,i).on(E,a).on("$$mdGestureReset",function(){h=u=null})}function d(e){var t=m(e),n={startTime:+Date.now(),target:e.target,type:e.type.charAt(0)};return n.startX=n.x=t.pageX,n.startY=n.y=t.pageY,n}function c(e,t){return e&&t&&e.type.charAt(0)===t.type}function l(e){return g&&g.x==e.x&&g.y==e.y}function s(e,t){var n=m(e),o=t.x=n.pageX,r=t.y=n.pageY;t.distanceX=o-t.startX,t.distanceY=r-t.startY,t.distance=Math.sqrt(t.distanceX*t.distanceX+t.distanceY*t.distanceY),t.directionX=t.distanceX>0?"right":t.distanceX<0?"left":"",t.directionY=t.distanceY>0?"up":t.distanceY<0?"down":"",t.duration=+Date.now()-t.startTime,t.velocityX=t.distanceX/t.duration,t.velocityY=t.distanceY/t.duration}function m(e){return e=e.originalEvent||e,e.touches&&e.touches[0]||e.changedTouches&&e.changedTouches[0]||e}var u,h,p={},f=!1,g=null,b=!1;t.module("material.core.gestures",[]).provider("$mdGesture",n).factory("$$MdGestureHandler",i).run(a),n.prototype={skipClickHijack:function(){return f=!0},$get:["$$MdGestureHandler","$$rAF","$timeout",function(e,t,n){return new o(e,t,n)}]},o.$inject=["$$MdGestureHandler","$$rAF","$timeout"],a.$inject=["$mdGesture","$$MdGestureHandler"]}(),function(){function e(){function e(e){function n(e){return c.optionsFactory=e.options,c.methods=(e.methods||[]).concat(a),l}function o(e,t){return d[e]=t,l}function r(t,n){if(n=n||{},n.methods=n.methods||[],n.options=n.options||function(){return{}},/^cancel|hide|show$/.test(t))throw new Error("Preset '"+t+"' in "+e+" is reserved!");if(n.methods.indexOf("_options")>-1)throw new Error("Method '_options' in "+e+" is reserved!");return c.presets[t]={methods:n.methods.concat(a),optionsFactory:n.options,argOption:n.argOption},l}function i(n,o){function r(e){return e=e||{},e._options&&(e=e._options),m.show(t.extend({},s,e))}function i(e){return m.destroy(e)}function a(t,n){var r={};return r[e]=u,o.invoke(t||function(){return n},{},r)}var l,s,m=n(),u={hide:m.hide,cancel:m.cancel,show:r,destroy:i};return l=c.methods||[],s=a(c.optionsFactory,{}),t.forEach(d,function(e,t){u[t]=e}),t.forEach(c.presets,function(e,n){function o(e){this._options=t.extend({},r,e)}var r=a(e.optionsFactory,{}),i=(e.methods||[]).concat(l);if(t.extend(r,{$type:n}),t.forEach(i,function(e){o.prototype[e]=function(t){return this._options[e]=t,this}}),e.argOption){var d="show"+n.charAt(0).toUpperCase()+n.slice(1);u[d]=function(e){var t=u[n](e);return u.show(t)}}u[n]=function(n){return arguments.length&&e.argOption&&!t.isObject(n)&&!t.isArray(n)?(new o)[e.argOption](n):new o(n)}}),u}var a=["onHide","onShow","onRemove"],d={},c={presets:{}},l={setDefaults:n,addPreset:r,addMethod:o,$get:i};return l.addPreset("build",{methods:["controller","controllerAs","resolve","template","templateUrl","themable","transformTemplate","parent"]}),i.$inject=["$$interimElement","$injector"],l}function o(e,o,r,i,a,d,c,l,s,m,u){return function(){function u(e){e=e||{};var t=new g(e||{}),n=!e.skipHide&&M.length?b.hide():o.when(!0);return n["finally"](function(){M.push(t),t.show()["catch"](function(e){return e})}),t.deferred.promise}function h(e,t){function r(n){return n.remove(e||v,!1,t||{})["catch"](function(e){return e}),n.deferred.promise}if(!M.length)return o.when(e||v);if(t=t||{},t.closeAll){var i=o.all(M.reverse().map(r));return M=[],i}if(t.closeTo!==n)return o.all(M.splice(t.closeTo).map(r));var a=M.pop();return r(a)}function p(e,t){var n=M.shift();return n?(n.remove(e||E,!0,t||{})["catch"](function(e){return e}),n.deferred.promise):o.when(e||E)}function f(){var e=M.shift();return e?e.remove(E,!1,{$destroy:!0}):o.when(E)}function g(u){function h(){return o(function(e,t){function n(e){A.deferred.reject(e),t(e)}g(u).then(function(t){C=E(t,u),T=$(C,u,t.controller).then(e,n)},n)})}function p(e,n,r){function i(e){A.deferred.resolve(e)}function a(e){A.deferred.reject(e)}return C?(u=t.extend(u||{},r||{}),u.cancelAutoHide&&u.cancelAutoHide(),u.element.triggerHandler("$mdInterimElementRemove"),u.$destroy===!0?y(u.element,u):(o.when(T)["finally"](function(){y(u.element,u).then(function(){n&&a(e)||i(e)},a)}),A.deferred.promise)):o.when(!1)}function f(e){return e=e||{},e.template&&(e.template=l.processTemplate(e.template)),t.extend({preserveScope:!1,cancelAutoHide:t.noop,scope:e.scope||i.$new(e.isolateScope),onShow:function(e,t,n){return c.enter(t,n.parent)},onRemove:function(e,t){return t&&c.leave(t)||o.when()}},e)}function g(e){var t=e.skipCompile?null:s.compile(e);return t||o(function(t){t({locals:{},link:function(){return e.element}})})}function E(e,n){t.extend(e.locals,n);var o=e.link(n.scope);return n.element=o,n.parent=v(o,n),n.themable&&m(o),o}function v(n,o){var r=o.parent;if(r=t.isFunction(r)?r(o.scope,n,o):t.isString(r)?t.element(e[0].querySelector(r)):t.element(r),!(r||{}).length){var i;return d[0]&&d[0].querySelector&&(i=d[0].querySelector(":not(svg) > body")),i||(i=d[0]),"#comment"==i.nodeName&&(i=e[0].body),t.element(i)}return r}function M(){var e,o=t.noop;u.hideDelay&&(e=a(b.hide,u.hideDelay),o=function(){a.cancel(e)}),u.cancelAutoHide=function(){o(),u.cancelAutoHide=n}}function $(e,n,r){var i=n.onComplete||t.noop;return o(function(t,a){try{o.when(n.onShow(n.scope,e,n,r)).then(function(){i(n.scope,e,n),M(),t(e)},a)}catch(d){a(d.message)}})}function y(e,n){var o=n.onRemoving||t.noop;return r(function(t,i){try{var a=r.when(n.onRemove(n.scope,e,n)||!0);o(e,a),1==n.$destroy?t(e):a.then(function(){!n.preserveScope&&n.scope&&n.scope.$destroy(),t(e)},i)}catch(d){i(d.message)}})}var A,C,T=o.when(!0);return u=f(u),A={options:u,deferred:o.defer(),show:h,remove:p}}var b,E=!1,v=!0,M=[];return b={show:u,hide:h,cancel:p,destroy:f}}}return e.$get=o,o.$inject=["$document","$q","$$q","$rootScope","$timeout","$rootElement","$animate","$mdUtil","$mdCompiler","$mdTheming","$log"],e}t.module("material.core").provider("$$interimElement",e)}(),function(){!function(){function e(e,t){function n(n,o,r){var i=r.$normalize(e);if(t&&o.addClass(e),r[i]&&o.addClass(e+"-"+r[i].replace(/\s+/g,"-")),n){var a;r.$observe(function(){return r[e]},function(t){o.removeClass(a),a=e+"-"+String(t).replace(/\s+/g,"-"),o.addClass(a)})}}return function(){return{restrict:"A",compile:function(e,t){return n(null,e,t),n}}}}function n(e){function t(t,n){n.addClass(e),t&&n.removeAttr(e)}return function(){return{restrict:"A",compile:function(e,n){return t(null,e),t}}}}function o(e){var n=e.split("-");return["$log",function(o){return o.warn(e+"has been deprecated. Please use a `"+n[0]+"-gt-` variant."),t.noop}]}t.module("material.core.layout",["ng"]).directive("layout",e("layout",!0)).directive("layoutSm",e("layout-sm",!0)).directive("layoutGtSm",e("layout-gt-sm",!0)).directive("layoutLtMd",o("layout-lt-md",!0)).directive("layoutMd",e("layout-md",!0)).directive("layoutGtMd",e("layout-gt-md",!0)).directive("layoutLtLg",o("layout-lt-lg",!0)).directive("layoutLg",e("layout-lg",!0)).directive("layoutGtLg",e("layout-gt-lg",!0)).directive("flex",e("flex",!0)).directive("flexSm",e("flex-sm",!0)).directive("flexGtSm",e("flex-gt-sm",!0)).directive("flexLtMd",o("flex-lt-md",!0)).directive("flexMd",e("flex-md",!0)).directive("flexGtMd",e("flex-gt-md",!0)).directive("flexLtLg",o("flex-lt-lg",!0)).directive("flexLg",e("flex-lg",!0)).directive("flexGtLg",e("flex-gt-lg",!0)).directive("layoutAlign",e("layout-align")).directive("layoutAlignSm",e("layout-align-sm")).directive("layoutAlignGtSm",e("layout-align-gt-sm")).directive("layoutAlignLtMd",o("layout-align-lt-md")).directive("layoutAlignMd",e("layout-align-md")).directive("layoutAlignGtMd",e("layout-align-gt-md")).directive("layoutAlignLtLg",o("layout-align-lt-lg")).directive("layoutAlignLg",e("layout-align-lg")).directive("layoutAlignGtLg",e("layout-align-gt-lg")).directive("flexOrder",e("flex-order")).directive("flexOrderSm",e("flex-order-sm")).directive("flexOrderGtSm",e("flex-order-gt-sm")).directive("flexOrderLtMd",o("flex-order-lt-md")).directive("flexOrderMd",e("flex-order-md")).directive("flexOrderGtMd",e("flex-order-gt-md")).directive("flexOrderLtLg",o("flex-order-lt-lg")).directive("flexOrderLg",e("flex-order-lg")).directive("flexOrderGtLg",e("flex-order-gt-lg")).directive("offset",e("offset")).directive("offsetSm",e("offset-sm")).directive("offsetGtSm",e("offset-gt-sm")).directive("offsetLtMd",o("offset-lt-md")).directive("offsetMd",e("offset-md")).directive("offsetGtMd",e("offset-gt-md")).directive("offsetLtLg",o("offset-lt-lg")).directive("offsetLg",e("offset-lg")).directive("offsetGtLg",e("offset-gt-lg")).directive("layoutMargin",n("layout-margin")).directive("layoutPadding",n("layout-padding")).directive("layoutWrap",n("layout-wrap")).directive("layoutFill",n("layout-fill")).directive("hide",n("hide")).directive("hideSm",n("hide-sm")).directive("hideGtSm",n("hide-gt-sm")).directive("hideLtMd",o("hide-lt-md")).directive("hideMd",n("hide-md")).directive("hideGtMd",n("hide-gt-md")).directive("hideLtLg",o("hide-lt-lg")).directive("hideLg",n("hide-lg")).directive("hideGtLg",n("hide-gt-lg")).directive("show",n("show")).directive("showSm",n("show-sm")).directive("showGtSm",n("show-gt-sm")).directive("showLtMd",o("show-lt-md")).directive("showMd",n("show-md")).directive("showGtMd",n("show-gt-md")).directive("showLtLg",o("show-lt-lg")).directive("showLg",n("show-lg")).directive("showGtLg",n("show-gt-lg"))}()}(),function(){function e(e,n){function o(e){return e&&""!==e}var r,i=[],a={};return r={notFoundError:function(t){e.error("No instance found for handle",t)},getInstances:function(){return i},get:function(e){if(!o(e))return null;var t,n,r;for(t=0,n=i.length;n>t;t++)if(r=i[t],r.$$mdHandle===e)return r;return null},register:function(e,n){function o(){var t=i.indexOf(e);-1!==t&&i.splice(t,1)}function r(){var t=a[n];t&&(t.resolve(e),delete a[n])}return n?(e.$$mdHandle=n,i.push(e),r(),o):t.noop},when:function(e){if(o(e)){var t=n.defer(),i=r.get(e);return i?t.resolve(i):a[e]=t,t.promise}return n.reject("Invalid `md-component-id` value.")}}}t.module("material.core").factory("$mdComponentRegistry",e),e.$inject=["$log","$q"]}(),function(){!function(){function e(e){function n(e){return e.hasClass("md-icon-button")?{isMenuItem:e.hasClass("md-menu-item"),fitRipple:!0,center:!0}:{isMenuItem:e.hasClass("md-menu-item"),dimBackground:!0}}return{attach:function(o,r,i){return i=t.extend(n(r),i),e.attach(o,r,i)}}}t.module("material.core").factory("$mdButtonInkRipple",e),e.$inject=["$mdInkRipple"]}()}(),function(){!function(){function e(e){function n(n,o,r){return e.attach(n,o,t.extend({center:!0,dimBackground:!1,fitRipple:!0},r))}return{attach:n}}t.module("material.core").factory("$mdCheckboxInkRipple",e),e.$inject=["$mdInkRipple"]}()}(),function(){!function(){function e(e){function n(n,o,r){return e.attach(n,o,t.extend({center:!1,dimBackground:!0,outline:!1,rippleSize:"full"},r))}return{attach:n}}t.module("material.core").factory("$mdListInkRipple",e),e.$inject=["$mdInkRipple"]}()}(),function(){function e(e,n){return{controller:t.noop,link:function(t,o,r){r.hasOwnProperty("mdInkRippleCheckbox")?n.attach(t,o):e.attach(t,o)}}}function n(e){function n(n,r,i){return r.controller("mdNoInk")?t.noop:e.instantiate(o,{$scope:n,$element:r,rippleOptions:i})}return{attach:n}}function o(e,n,o,r,i,a){this.$window=r,this.$timeout=i,this.$mdUtil=a,this.$scope=e,this.$element=n,this.options=o,this.mousedown=!1,this.ripples=[],this.timeout=null,this.lastRipple=null,a.valueOnUse(this,"container",this.createContainer),a.valueOnUse(this,"color",this.getColor,1),a.valueOnUse(this,"background",this.getColor,.5),(n.controller("mdInkRipple")||{}).createRipple=t.bind(this,this.createRipple),this.bindEvents()}function r(){return{controller:t.noop}}t.module("material.core").factory("$mdInkRipple",n).directive("mdInkRipple",e).directive("mdNoInk",r).directive("mdNoBar",r).directive("mdNoStretch",r);var i=450;e.$inject=["$mdButtonInkRipple","$mdCheckboxInkRipple"],n.$inject=["$injector"],o.$inject=["$scope","$element","rippleOptions","$window","$timeout","$mdUtil"],o.prototype.getColor=function(e){function t(){var e=this.options.colorElement&&this.options.colorElement[0];return e=e||this.$element[0],e?this.$window.getComputedStyle(e).color:"rgb(0,0,0)"}function n(t){function n(e){var t="#"===e[0]?e.substr(1):e,n=t.length/3,o=t.substr(0,n),r=t.substr(n,n),i=t.substr(2*n);return 1===n&&(o+=o,r+=r,i+=i),"rgba("+parseInt(o,16)+","+parseInt(r,16)+","+parseInt(i,16)+",0.1)"}function o(e){return e.replace(")",", 0.1)").replace("(","a(")}if(t)return 0===t.indexOf("rgba")?t.replace(/\d?\.?\d*\s*\)\s*$/,(.1*e).toString()+")"):0===t.indexOf("rgb")?o(t):0===t.indexOf("#")?n(t):void 0}return e=e||1,n(this.$element.attr("md-ink-ripple"))||n(t.call(this))},o.prototype.bindEvents=function(){this.$element.on("mousedown",t.bind(this,this.handleMousedown)), -this.$element.on("mouseup",t.bind(this,this.handleMouseup)),this.$element.on("mouseleave",t.bind(this,this.handleMouseup))},o.prototype.handleMousedown=function(e){this.mousedown||(e.hasOwnProperty("originalEvent")&&(e=e.originalEvent),this.mousedown=!0,this.options.center?this.createRipple(this.container.prop("clientWidth")/2,this.container.prop("clientWidth")/2):this.createRipple(e.layerX,e.layerY))},o.prototype.handleMouseup=function(){if(this.mousedown||this.lastRipple){var e=this;this.mousedown=!1,this.$mdUtil.nextTick(function(){e.clearRipples()},!1)}},o.prototype.clearRipples=function(){for(var e=0;e
');return this.$element.append(e),e},o.prototype.clearTimeout=function(){this.timeout&&(this.$timeout.cancel(this.timeout),this.timeout=null)},o.prototype.isRippleAllowed=function(){var e=this.$element[0];do{if(!e.tagName||"BODY"===e.tagName)break;if(e&&e.hasAttribute&&e.hasAttribute("disabled"))return!1}while(e=e.parentNode);return!0},o.prototype.createRipple=function(e,n){function o(e){return e?e.replace("rgba","rgb").replace(/,[^\),]+\)/,")"):"rgb(0,0,0)"}function r(e,t,n){return e?Math.max(t,n):Math.sqrt(Math.pow(t,2)+Math.pow(n,2))}if(this.isRippleAllowed()){var a=this,d=t.element('
'),c=this.$element.prop("clientWidth"),l=this.$element.prop("clientHeight"),s=2*Math.max(Math.abs(c-e),e),m=2*Math.max(Math.abs(l-n),n),u=r(this.options.fitRipple,s,m);d.css({left:e+"px",top:n+"px",background:"black",width:u+"px",height:u+"px",backgroundColor:o(this.color),borderColor:o(this.color)}),this.lastRipple=d,this.clearTimeout(),this.timeout=this.$timeout(function(){a.clearTimeout(),a.mousedown||a.fadeInComplete(d)},.35*i,!1),this.options.dimBackground&&this.container.css({backgroundColor:this.background}),this.container.append(d),this.ripples.push(d),d.addClass("md-ripple-placed"),this.$mdUtil.nextTick(function(){d.addClass("md-ripple-scaled md-ripple-active"),a.$timeout(function(){a.clearRipples()},i,!1)},!1)}},o.prototype.fadeInComplete=function(e){this.lastRipple===e?this.timeout||this.mousedown||this.removeRipple(e):this.removeRipple(e)},o.prototype.removeRipple=function(e){var t=this,n=this.ripples.indexOf(e);0>n||(this.ripples.splice(this.ripples.indexOf(e),1),e.removeClass("md-ripple-active"),0===this.ripples.length&&this.container.css({backgroundColor:""}),this.$timeout(function(){t.fadeOutComplete(e)},i,!1))},o.prototype.fadeOutComplete=function(e){e.remove(),this.lastRipple=null}}(),function(){!function(){function e(e){function n(n,o,r){return e.attach(n,o,t.extend({center:!1,dimBackground:!0,outline:!1,rippleSize:"full"},r))}return{attach:n}}t.module("material.core").factory("$mdTabInkRipple",e),e.$inject=["$mdInkRipple"]}()}(),function(){t.module("material.core.theming.palette",[]).constant("$mdColorPalette",{red:{50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 A100",contrastStrongLightColors:"400 500 600 700 A200 A400 A700"},pink:{50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"500 600 A200 A400 A700"},purple:{50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400 A200 A400 A700"},"deep-purple":{50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",A100:"#b388ff",A200:"#7c4dff",A400:"#651fff",A700:"#6200ea",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400 A200"},indigo:{50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400 A200 A400"},blue:{50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 400 A100",contrastStrongLightColors:"500 600 700 A200 A400 A700"},"light-blue":{50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea",contrastDefaultColor:"dark",contrastLightColors:"600 700 800 900 A700",contrastStrongLightColors:"600 700 800 A700"},cyan:{50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4",contrastDefaultColor:"dark",contrastLightColors:"700 800 900",contrastStrongLightColors:"700 800 900"},teal:{50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},green:{50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853",contrastDefaultColor:"dark",contrastLightColors:"600 700 800 900",contrastStrongLightColors:"600 700"},"light-green":{50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17",contrastDefaultColor:"dark",contrastLightColors:"700 800 900",contrastStrongLightColors:"700 800 900"},lime:{50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00",contrastDefaultColor:"dark",contrastLightColors:"900",contrastStrongLightColors:"900"},yellow:{50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600",contrastDefaultColor:"dark"},amber:{50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00",contrastDefaultColor:"dark"},orange:{50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},"deep-orange":{50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 400 A100 A200",contrastStrongLightColors:"500 600 700 800 900 A400 A700"},brown:{50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037",contrastDefaultColor:"light",contrastDarkColors:"50 100 200",contrastStrongLightColors:"300 400"},grey:{50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",1000:"#000000",A100:"#ffffff",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161",contrastDefaultColor:"dark",contrastLightColors:"600 700 800 900"},"blue-grey":{50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300",contrastStrongLightColors:"400 500"}})}(),function(){function e(e){function o(e,t){return t=t||{},s[e]=a(e,t),b}function r(e,n){return a(e,t.extend({},s[e]||{},n))}function a(e,t){var n=C.filter(function(e){return!t[e]});if(n.length)throw new Error("Missing colors %1 in palette %2!".replace("%1",n.join(", ")).replace("%2",e));return t}function d(e,n){if(m[e])return m[e];n=n||"default";var o="string"==typeof n?m[n]:n,r=new c(e);return o&&t.forEach(o.colors,function(e,n){r.colors[n]={name:e.name,hues:t.extend({},e.hues)}}),m[e]=r,r}function c(e){function n(e){if(e=0===arguments.length?!0:!!e,e!==o.isDark){o.isDark=e,o.foregroundPalette=o.isDark?p:h,o.foregroundShadow=o.isDark?f:g;var n=o.isDark?A:y,r=o.isDark?y:A;return t.forEach(n,function(e,t){var n=o.colors[t],i=r[t];if(n)for(var a in n.hues)n.hues[a]===i[a]&&(n.hues[a]=e[a])}),o}}var o=this;o.name=e,o.colors={},o.dark=n,n(!1),M.forEach(function(e){var n=(o.isDark?A:y)[e];o[e+"Palette"]=function(r,i){var a=o.colors[e]={name:r,hues:t.extend({},n,i)};return Object.keys(a.hues).forEach(function(e){if(!n[e])throw new Error("Invalid hue name '%1' in theme %2's %3 color %4. Available hue names: %4".replace("%1",e).replace("%2",o.name).replace("%3",r).replace("%4",Object.keys(n).join(", ")))}),Object.keys(a.hues).map(function(e){return a.hues[e]}).forEach(function(t){if(-1==C.indexOf(t))throw new Error("Invalid hue value '%1' in theme %2's %3 color %4. Available hue values: %5".replace("%1",t).replace("%2",o.name).replace("%3",e).replace("%4",r).replace("%5",C.join(", ")))}),o},o[e+"Color"]=function(){var t=Array.prototype.slice.call(arguments);return console.warn("$mdThemingProviderTheme."+e+"Color() has been deprecated. Use $mdThemingProviderTheme."+e+"Palette() instead."),o[e+"Palette"].apply(o,t)}})}function u(e,o){function r(e){return e===n||""===e?!0:i.THEMES[e]!==n}function i(t,o){o===n&&(o=t,t=n),t===n&&(t=e),i.inherit(o,o)}return i.inherit=function(n,i){function a(e){r(e)||o.warn("Attempted to use unregistered theme '"+e+"'. Register it with $mdThemingProvider.theme().");var t=n.data("$mdThemeName");t&&n.removeClass("md-"+t+"-theme"),n.addClass("md-"+e+"-theme"),n.data("$mdThemeName",e),d&&n.data("$mdThemeController",d)}var d=i.controller("mdTheme"),c=n.attr("md-theme-watch");if((v||t.isDefined(c))&&"false"!=c){var l=e.$watch(function(){return d&&d.$mdTheme||E},a);n.on("$destroy",l)}else{var s=d&&d.$mdTheme||E;a(s)}},i.THEMES=t.extend({},m),i.defaultTheme=function(){return E},i.registered=r,i}s={},m={};var b,E="default",v=!1;return t.extend(s,e),u.$inject=["$rootScope","$log"],b={definePalette:o,extendPalette:r,theme:d,setDefaultTheme:function(e){E=e},alwaysWatchTheme:function(e){v=e},$get:u,_LIGHT_DEFAULT_HUES:y,_DARK_DEFAULT_HUES:A,_PALETTES:s,_THEMES:m,_parseRules:i,_rgba:l}}function o(e,t,n){return{priority:100,link:{pre:function(o,r,i){var a={$setTheme:function(t){e.registered(t)||n.warn("attempted to use unregistered theme '"+t+"'"),a.$mdTheme=t}};r.data("$mdThemeController",a),a.$setTheme(t(i.mdTheme)(o)),i.$observe("mdTheme",a.$setTheme)}}}}function r(e){return e}function i(e,n,o){d(e,n),o=o.replace(/THEME_NAME/g,e.name);var r=[],i=e.colors[n],a=new RegExp(".md-"+e.name+"-theme","g"),c=new RegExp("('|\")?{{\\s*("+n+")-(color|contrast)-?(\\d\\.?\\d*)?\\s*}}(\"|')?","g"),m=/'?"?\{\{\s*([a-zA-Z]+)-(A?\d+|hue\-[0-3]|shadow)-?(\d\.?\d*)?(contrast)?\s*\}\}'?"?/g,u=s[i.name];return o=o.replace(m,function(t,n,o,r,i){return"foreground"===n?"shadow"==o?e.foregroundShadow:e.foregroundPalette[o]||e.foregroundPalette[1]:(0===o.indexOf("hue")&&(o=e.colors[n].hues[o]),l((s[e.colors[n].name][o]||"")[i?"contrast":"value"],r))}),t.forEach(i.hues,function(t,n){var i=o.replace(c,function(e,n,o,r,i){return l(u[t]["color"===r?"value":"contrast"],i)});"default"!==n&&(i=i.replace(a,".md-"+e.name+"-theme.md-"+n)),"default"==e.name&&(i=i.replace(/\.md-default-theme/g,"")),r.push(i)}),r}function a(e){function n(e){var n=e.contrastDefaultColor,o=e.contrastLightColors||[],r=e.contrastStrongLightColors||[],i=e.contrastDarkColors||[];"string"==typeof o&&(o=o.split(" ")),"string"==typeof r&&(r=r.split(" ")),"string"==typeof i&&(i=i.split(" ")),delete e.contrastDefaultColor,delete e.contrastLightColors,delete e.contrastStrongLightColors,delete e.contrastDarkColors,t.forEach(e,function(a,d){function l(){return"light"===n?i.indexOf(d)>-1?b:r.indexOf(d)>-1?v:E:o.indexOf(d)>-1?r.indexOf(d)>-1?v:E:b}if(!t.isObject(a)){var s=c(a);if(!s)throw new Error("Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.".replace("%1",a).replace("%2",e.name).replace("%3",d));e[d]={value:s,contrast:l()}}})}var o=document.getElementsByTagName("head")[0],r=o?o.firstElementChild:null,a=e.has("$MD_THEME_CSS")?e.get("$MD_THEME_CSS"):"";if(r&&0!==a.length){t.forEach(s,n);var d={},l=a.split(/\}(?!(\}|'|"|;))/).filter(function(e){return e&&e.length}).map(function(e){return e.trim()+"}"}),h=new RegExp("md-("+M.join("|")+")","g");M.forEach(function(e){d[e]=""}),l.forEach(function(e){for(var t,n=(e.match(h),0);t=M[n];n++)if(e.indexOf(".md-"+t)>-1)return d[t]+=e;for(n=0;t=M[n];n++)if(e.indexOf(t)>-1)return d[t]+=e;return d[$]+=e}),t.forEach(m,function(e){u[e.name]||(M.forEach(function(t){for(var n=i(e,t,d[t]);n.length;){var a=document.createElement("style");a.setAttribute("type","text/css"),a.appendChild(document.createTextNode(n.shift())),o.insertBefore(a,r)}}),e.colors.primary.name==e.colors.accent.name&&console.warn("$mdThemingProvider: Using the same palette for primary and accent. This violates the material design spec."),u[e.name]=!0)})}}function d(e,t){if(!s[(e.colors[t]||{}).name])throw new Error("You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3".replace("%1",e.name).replace("%2",t).replace("%3",Object.keys(s).join(", ")))}function c(e){if(t.isArray(e)&&3==e.length)return e;if(/^rgb/.test(e))return e.replace(/(^\s*rgba?\(|\)\s*$)/g,"").split(",").map(function(e,t){return 3==t?parseFloat(e,10):parseInt(e,10)});if("#"==e.charAt(0)&&(e=e.substring(1)),/^([a-fA-F0-9]{3}){1,2}$/g.test(e)){var n=e.length/3,o=e.substr(0,n),r=e.substr(n,n),i=e.substr(2*n);return 1===n&&(o+=o,r+=r,i+=i),[parseInt(o,16),parseInt(r,16),parseInt(i,16)]}}function l(e,n){return e?(4==e.length&&(e=t.copy(e),n?e.pop():n=e.pop()),n&&("number"==typeof n||"string"==typeof n&&n.length)?"rgba("+e.join(",")+","+n+")":"rgb("+e.join(",")+")"):"rgb('0,0,0')"}t.module("material.core.theming",["material.core.theming.palette"]).directive("mdTheme",o).directive("mdThemable",r).provider("$mdTheming",e).run(a);var s,m,u={},h={name:"dark",1:"rgba(0,0,0,0.87)",2:"rgba(0,0,0,0.54)",3:"rgba(0,0,0,0.26)",4:"rgba(0,0,0,0.12)"},p={name:"light",1:"rgba(255,255,255,1.0)",2:"rgba(255,255,255,0.7)",3:"rgba(255,255,255,0.3)",4:"rgba(255,255,255,0.12)"},f="1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)",g="",b=c("rgba(0,0,0,0.87)"),E=c("rgba(255,255,255,0.87"),v=c("rgb(255,255,255)"),M=["primary","accent","warn","background"],$="primary",y={accent:{"default":"A200","hue-1":"A100","hue-2":"A400","hue-3":"A700"},background:{"default":"A100","hue-1":"300","hue-2":"800","hue-3":"900"}},A={background:{"default":"800","hue-1":"600","hue-2":"300","hue-3":"900"}};M.forEach(function(e){var t={"default":"500","hue-1":"300","hue-2":"800","hue-3":"A100"};y[e]||(y[e]=t),A[e]||(A[e]=t)});var C=["50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700"];e.$inject=["$mdColorPalette"],o.$inject=["$mdTheming","$interpolate","$log"],r.$inject=["$mdTheming"],a.$inject=["$injector"]}(),function(){function e(e,n,o,r,i){var a;return a={translate3d:function(e,t,n,o){function r(n){return i(e,{to:n||t,addClass:o.transitionOutClass,removeClass:o.transitionInClass}).start()}return i(e,{from:t,to:n,addClass:o.transitionInClass}).start().then(function(){return r})},waitTransitionEnd:function(e,t){var i=3e3;return n(function(n,a){function d(t){t&&t.target!==e[0]||(t&&o.cancel(c),e.off(r.CSS.TRANSITIONEND,d),n())}t=t||{};var c=o(d,t.timeout||i);e.on(r.CSS.TRANSITIONEND,d)})},calculateZoomToOrigin:function(n,o){var r=o.element,i="translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )",d=t.bind(null,e.supplant,i),c=d({centerX:0,centerY:0,scaleX:.5,scaleY:.5});if(r){var l=a.clientRect(r)||a.copyRect(o.bounds),s=a.copyRect(n[0].getBoundingClientRect()),m=a.centerPointFor(s),u=a.centerPointFor(l);c=d({centerX:u.x-m.x,centerY:u.y-m.y,scaleX:Math.round(100*Math.min(.5,l.width/s.width))/100,scaleY:Math.round(100*Math.min(.5,l.height/s.height))/100})}return c},toCss:function(e){function n(e,n,r){t.forEach(n.split(" "),function(e){o[e]=r})}var o={},i="left top right bottom width height x y min-width min-height max-width max-height";return t.forEach(e,function(e,a){if(!t.isUndefined(e))if(i.indexOf(a)>=0)o[a]=e+"px";else switch(a){case"transition":n(a,r.CSS.TRANSITION,e);break;case"transform":n(a,r.CSS.TRANSFORM,e);break;case"transformOrigin":n(a,r.CSS.TRANSFORM_ORIGIN,e)}}),o},toTransformCss:function(e,n,o){var i={};return t.forEach(r.CSS.TRANSFORM.split(" "),function(t){i[t]=e}),n&&(o=o||"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important",i.transition=o),i},copyRect:function(e,n){return e?(n=n||{},t.forEach("left top right bottom width height".split(" "),function(t){n[t]=Math.round(e[t])}),n.width=n.width||n.right-n.left,n.height=n.height||n.bottom-n.top,n):null},clientRect:function(e){var n=t.element(e)[0].getBoundingClientRect(),o=function(e){return e&&e.width>0&&e.height>0};return o(n)?a.copyRect(n):null},centerPointFor:function(e){return{x:Math.round(e.left+e.width/2),y:Math.round(e.top+e.height/2)}}}}t.module("material.core").factory("$$mdAnimate",["$q","$timeout","$mdConstant","$animateCss",function(t,n,o,r){return function(i){return e(i,t,n,o,r)}}])}(),function(){t.version.minor>=4?t.module("material.core.animate",[]):!function(){function o(e){return e.replace(/-[a-z]/g,function(e){return e.charAt(1).toUpperCase()})}var r=t.forEach,i=e.ontransitionend===n&&e.onwebkittransitionend!==n,a=i?"-webkit-":"",d=(i?"webkitTransitionEnd ":"")+"transitionend",c=(i?"webkitAnimationEnd ":"")+"animationend",l=["$document",function(e){return function(){return e[0].body.clientWidth+1}}],s=["$$rAF",function(e){return function(){var t=!1;return e(function(){t=!0}),function(n){t?n():e(n)}}}],m=["$q","$$rAFMutex",function(e,n){function o(e){this.setHost(e),this._doneCallbacks=[],this._runInAnimationFrame=n(),this._state=0}var i=0,a=1,d=2;return o.prototype={setHost:function(e){this.host=e||{}},done:function(e){this._state===d?e():this._doneCallbacks.push(e)},progress:t.noop,getPromise:function(){if(!this.promise){var t=this;this.promise=e(function(e,n){t.done(function(t){t===!1?n():e()})})}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},"catch":function(e){return this.getPromise()["catch"](e)},"finally":function(e){return this.getPromise()["finally"](e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;t._state===i&&(t._state=a,t._runInAnimationFrame(function(){t._resolve(e)}))},_resolve:function(e){this._state!==d&&(r(this._doneCallbacks,function(t){t(e)}),this._doneCallbacks.length=0,this._state=d)}},o}];t.module("material.core.animate",[]).factory("$$forceReflow",l).factory("$$AnimateRunner",m).factory("$$rAFMutex",s).factory("$animateCss",["$window","$$rAF","$$AnimateRunner","$$forceReflow","$$jqLite","$timeout",function(e,t,n,l,s,m){function u(t,i){var l=[],s=M(t);i.transitionStyle&&l.push([a+"transition",i.transitionStyle]),i.keyframeStyle&&l.push([a+"animation",i.keyframeStyle]),i.delay&&l.push([a+"transition-delay",i.delay+"s"]),i.duration&&l.push([a+"transition-duration",i.duration+"s"]);var u=i.keyframeStyle||i.to&&(i.duration>0||i.transitionStyle),f=!!i.addClass||!!i.removeClass,y=u||f;$(t,!0),E(t,i);var A,C,T=!1;return{close:e.close,start:function(){function e(){return T?void 0:(T=!0,A&&C&&t.off(A,C),h(t,i),b(t,i),r(l,function(e){s.style[o(e[0])]=""}),u.complete(!0),u)}var u=new n;return g(function(){if($(t,!1),!y)return e();r(l,function(e){var t=e[0],n=e[1];s.style[o(t)]=n}),h(t,i);var n=p(t);if(0===n.duration)return e();var u=[];i.easing&&(n.transitionDuration&&u.push([a+"transition-timing-function",i.easing]),n.animationDuration&&u.push([a+"animation-timing-function",i.easing])),i.delay&&n.animationDelay&&u.push([a+"animation-delay",i.delay+"s"]),i.duration&&n.animationDuration&&u.push([a+"animation-duration",i.duration+"s"]),r(u,function(e){var t=e[0],n=e[1];s.style[o(t)]=n,l.push(e)});var f=n.delay,g=1e3*f,b=n.duration,E=1e3*b,M=Date.now();A=[],n.transitionDuration&&A.push(d),n.animationDuration&&A.push(c),A=A.join(" "),C=function(t){t.stopPropagation();var n=t.originalEvent||t,o=n.timeStamp||Date.now(),r=parseFloat(n.elapsedTime.toFixed(3));Math.max(o-M,0)>=g&&r>=b&&e()},t.on(A,C),v(t,i),m(e,g+1.5*E,!1)}),u}}}function h(e,t){t.addClass&&(s.addClass(e,t.addClass),t.addClass=null),t.removeClass&&(s.removeClass(e,t.removeClass),t.removeClass=null)}function p(t){function n(e){return i?"Webkit"+e.charAt(0).toUpperCase()+e.substr(1):e}var o=M(t),r=e.getComputedStyle(o),a=f(r[n("transitionDuration")]),d=f(r[n("animationDuration")]),c=f(r[n("transitionDelay")]),l=f(r[n("animationDelay")]);d*=parseInt(r[n("animationIterationCount")],10)||1;var s=Math.max(d,a),m=Math.max(l,c);return{duration:s,delay:m,animationDuration:d,transitionDuration:a,animationDelay:l,transitionDelay:c}}function f(e){var t=0,n=(e||"").split(/\s*,\s*/);return r(n,function(e){"s"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e}),t}function g(e){y&&y(),A.push(e),y=t(function(){y=null;for(var e=l(),t=0;to&&(o=Math.max(-r,o/2)),e.css(n.CSS.TRANSFORM,"translate3d(0,"+(r+o)+"px,0)")}function s(t){if(t.pointer.distanceY>0&&(t.pointer.distanceY>20||Math.abs(t.pointer.velocityY)>o)){var r=e.prop("offsetHeight")-t.pointer.distanceY,a=Math.min(r/t.pointer.velocityY*.75,500);e.css(n.CSS.TRANSITION_DURATION,a+"ms"),i.nextTick(d.cancel,!0)}else e.css(n.CSS.TRANSITION_DURATION,""),e.css(n.CSS.TRANSFORM,"")}var m=l.register(t,"drag",{horizontal:!1});return t.on("$md.dragstart",a).on("$md.drag",c).on("$md.dragend",s),{element:e,cleanup:function(){m(),t.off("$md.dragstart",a),t.off("$md.drag",c),t.off("$md.dragend",s)}}}var h;return{themable:!0,targetEvent:null,onShow:s,onRemove:m,escapeToClose:!0,disableParentScroll:!0}}var o=.5,r=80;return n.$inject=["$animate","$mdConstant","$mdUtil","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture"],e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","targetEvent"],options:n})}t.module("material.components.bottomSheet",["material.core","material.components.backdrop"]).directive("mdBottomSheet",e).provider("$mdBottomSheet",n),e.$inject=["$mdBottomSheet"],n.$inject=["$$interimElementProvider"]}(),function(){function e(e,n,o,r){function i(e){return t.isDefined(e.href)||t.isDefined(e.ngHref)||t.isDefined(e.ngLink)||t.isDefined(e.uiSref)}function a(e,t){return i(t)?'':''}function d(a,d,c){var l=d[0];n(d),e.attach(a,d);var s=l.textContent.trim();s||o.expect(d,"aria-label"),i(c)&&t.isDefined(c.ngDisabled)&&a.$watch(c.ngDisabled,function(e){d.attr("tabindex",e?-1:0)}),d.on("click",function(e){c.disabled===!0&&(e.preventDefault(),e.stopImmediatePropagation())}),a.mouseActive=!1,d.on("mousedown",function(){a.mouseActive=!0,r(function(){a.mouseActive=!1},100)}).on("focus",function(){a.mouseActive===!1&&d.addClass("md-focused")}).on("blur",function(e){d.removeClass("md-focused")})}return{restrict:"EA",replace:!0,transclude:!0,template:a,link:d}}t.module("material.components.button",["material.core"]).directive("mdButton",e),e.$inject=["$mdButtonInkRipple","$mdTheming","$mdAria","$timeout"]}(),function(){function e(e){return{restrict:"E",link:function(t,n,o){e(n)}}}t.module("material.components.card",["material.core"]).directive("mdCard",e),e.$inject=["$mdTheming"]}(),function(){function e(e,n,o,r,i,a){function d(d,l){return l.type="checkbox",l.tabindex=l.tabindex||"0",d.attr("role",l.type),function(d,l,s,m){function u(e,t,n){s[e]&&d.$watch(s[e],function(e){n[e]&&l.attr(t,n[e])})}function h(e){var t=e.which||e.keyCode;(t===o.KEY_CODE.SPACE||t===o.KEY_CODE.ENTER)&&(e.preventDefault(),l.hasClass("md-focused")||l.addClass("md-focused"),p(e))}function p(e){l[0].hasAttribute("disabled")||d.$apply(function(){var t=s.ngChecked?s.checked:!m.$viewValue;m.$setViewValue(t,e&&e.type),m.$render()})}function f(){m.$viewValue?l.addClass(c):l.removeClass(c)}m=m||i.fakeNgModel(),r(l),s.ngChecked&&d.$watch(d.$eval.bind(d,s.ngChecked),m.$setViewValue.bind(m)),u("ngDisabled","tabindex",{"true":"-1","false":s.tabindex}),n.expectWithText(l,"aria-label"),e.link.pre(d,{on:t.noop,0:{}},s,[m]),d.mouseActive=!1,l.on("click",p).on("keypress",h).on("mousedown",function(){d.mouseActive=!0,a(function(){d.mouseActive=!1},100)}).on("focus",function(){d.mouseActive===!1&&l.addClass("md-focused")}).on("blur",function(){l.removeClass("md-focused")}),m.$render=f}}e=e[0];var c="md-checked";return{restrict:"E",transclude:!0,require:"?ngModel",priority:210,template:'
',compile:d}}t.module("material.components.checkbox",["material.core"]).directive("mdCheckbox",e),e.$inject=["inputDirective","$mdAria","$mdConstant","$mdTheming","$mdUtil","$timeout"]}(),function(){t.module("material.components.chips",["material.core","material.components.autocomplete"])}(),function(){function e(e){function t(e,t){this.$scope=e,this.$element=t}return{restrict:"E",controller:["$scope","$element",t],link:function(t,o,r){o[0];e(o),t.$broadcast("$mdContentLoaded",o),n(o[0])}}}function n(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)))})}t.module("material.components.content",["material.core"]).directive("mdContent",e),e.$inject=["$mdTheming"]}(),function(){!function(){function e(){return{template:'
',scope:{minDate:"=mdMinDate",maxDate:"=mdMaxDate"},require:["ngModel","mdCalendar"],controller:n,controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,o){var r=o[0],i=o[1];i.configureNgModel(r)}}}function n(e,t,n,o,r,i,a,c,l,s,m){if(a(e),this.items={length:2e3},this.maxDate&&this.minDate){var u=c.getMonthDistance(this.minDate,this.maxDate)+1;u=Math.max(u,1),u+=1,this.items.length=u}if(this.$animate=o,this.$q=r,this.$mdInkRipple=s,this.$mdUtil=m,this.keyCode=i.KEY_CODE,this.dateUtil=c,this.dateLocale=l,this.$element=e,this.$scope=n,this.calendarElement=e[0].querySelector(".md-calendar"),this.calendarScroller=e[0].querySelector(".md-virtual-repeat-scroller"),this.today=this.dateUtil.createDateAtMidnight(),this.firstRenderableDate=this.dateUtil.incrementMonths(this.today,-this.items.length/2),this.minDate&&this.minDate>this.firstRenderableDate)this.firstRenderableDate=this.minDate;else if(this.maxDate){this.items.length-2;this.firstRenderableDate=this.dateUtil.incrementMonths(this.maxDate,-(this.items.length-2))}this.id=d++,this.ngModelCtrl=null,this.selectedDate=null,this.displayDate=null,this.focusDate=null,this.isInitialized=!1,this.isMonthTransitionInProgress=!1,t.tabindex||e.attr("tabindex","-1");var h=this;this.cellClickHandler=function(){var e=this;this.hasAttribute("data-timestamp")&&n.$apply(function(){var t=Number(e.getAttribute("data-timestamp"));h.setNgModelValue(h.dateUtil.createDateAtMidnight(t))})},this.attachCalendarEventListeners()}t.module("material.components.datepicker",["material.core","material.components.icon","material.components.virtualRepeat"]).directive("mdCalendar",e);var o=265,r=45,i="md-calendar-selected-date",a="md-focus",d=0;n.$inject=["$element","$attrs","$scope","$animate","$q","$mdConstant","$mdTheming","$$mdDateUtil","$mdDateLocale","$mdInkRipple","$mdUtil"],n.prototype.configureNgModel=function(e){this.ngModelCtrl=e;var t=this;e.$render=function(){t.changeSelectedDate(t.ngModelCtrl.$viewValue); -}},n.prototype.buildInitialCalendarDisplay=function(){this.buildWeekHeader(),this.hideVerticalScrollbar(),this.displayDate=this.selectedDate||this.today,this.isInitialized=!0},n.prototype.hideVerticalScrollbar=function(){var e=this.$element[0],t=e.querySelector(".md-calendar-scroll-mask"),n=this.calendarScroller,o=e.querySelector(".md-calendar-day-header").clientWidth,r=n.offsetWidth-n.clientWidth;t.style.width=o+"px",n.style.width=o+r+"px",n.style.paddingRight=r+"px"},n.prototype.attachCalendarEventListeners=function(){this.$element.on("keydown",t.bind(this,this.handleKeyEvent))},n.prototype.handleKeyEvent=function(e){var t=this;this.$scope.$apply(function(){if(e.which==t.keyCode.ESCAPE||e.which==t.keyCode.TAB)return t.$scope.$emit("md-calendar-close"),void(e.which==t.keyCode.TAB&&e.preventDefault());if(e.which===t.keyCode.ENTER)return t.setNgModelValue(t.displayDate),void e.preventDefault();var n=t.getFocusDateFromKeyEvent(e);n&&(n=t.boundDateByMinAndMax(n),e.preventDefault(),e.stopPropagation(),t.changeDisplayDate(n).then(function(){t.focus(n)}))})},n.prototype.getFocusDateFromKeyEvent=function(e){var t=this.dateUtil,n=this.keyCode;switch(e.which){case n.RIGHT_ARROW:return t.incrementDays(this.displayDate,1);case n.LEFT_ARROW:return t.incrementDays(this.displayDate,-1);case n.DOWN_ARROW:return e.metaKey?t.incrementMonths(this.displayDate,1):t.incrementDays(this.displayDate,7);case n.UP_ARROW:return e.metaKey?t.incrementMonths(this.displayDate,-1):t.incrementDays(this.displayDate,-7);case n.PAGE_DOWN:return t.incrementMonths(this.displayDate,1);case n.PAGE_UP:return t.incrementMonths(this.displayDate,-1);case n.HOME:return t.getFirstDateOfMonth(this.displayDate);case n.END:return t.getLastDateOfMonth(this.displayDate);default:return null}},n.prototype.getSelectedMonthIndex=function(){return this.dateUtil.getMonthDistance(this.firstRenderableDate,this.selectedDate||this.today)},n.prototype.scrollToMonth=function(e){if(this.dateUtil.isValidDate(e)){var t=this.dateUtil.getMonthDistance(this.firstRenderableDate,e);this.calendarScroller.scrollTop=t*o}},n.prototype.setNgModelValue=function(e){this.$scope.$emit("md-calendar-change",e),this.ngModelCtrl.$setViewValue(e),this.ngModelCtrl.$render()},n.prototype.focus=function(e){var t=e||this.selectedDate||this.today,n=this.calendarElement.querySelector(".md-focus");n&&n.classList.remove(a);var o=this.getDateId(t),r=document.getElementById(o);r?(r.classList.add(a),r.focus()):this.focusDate=t},n.prototype.boundDateByMinAndMax=function(e){var t=e;return this.minDate&&ethis.maxDate&&(t=new Date(this.maxDate.getTime())),t},n.prototype.changeSelectedDate=function(e){var t=this,n=this.selectedDate;this.selectedDate=e,this.changeDisplayDate(e).then(function(){if(n){var o=document.getElementById(t.getDateId(n));o&&(o.classList.remove(i),o.setAttribute("aria-selected","false"))}if(e){var r=document.getElementById(t.getDateId(e));r&&(r.classList.add(i),r.setAttribute("aria-selected","true"))}})},n.prototype.changeDisplayDate=function(e){if(!this.isInitialized)return this.buildInitialCalendarDisplay(),this.$q.when();if(!this.dateUtil.isValidDate(e)||this.isMonthTransitionInProgress)return this.$q.when();this.isMonthTransitionInProgress=!0;var t=this.animateDateChange(e);this.displayDate=e;var n=this;return t.then(function(){n.isMonthTransitionInProgress=!1}),t},n.prototype.animateDateChange=function(e){return this.scrollToMonth(e),this.$q.when()},n.prototype.buildWeekHeader=function(){for(var e=this.dateLocale.firstDayOfWeek,t=this.dateLocale.shortDays,n=document.createElement("tr"),o=0;7>o;o++){var r=document.createElement("th");r.textContent=t[(o+e)%7],n.appendChild(r)}this.$element.find("thead").append(n)},n.prototype.getDateId=function(e){return["md",this.id,e.getFullYear(),e.getMonth(),e.getDate()].join("-")}}()}(),function(){!function(){function e(){return{require:["^^mdCalendar","mdCalendarMonth"],scope:{offset:"=mdMonthOffset"},controller:n,controllerAs:"mdMonthCtrl",bindToController:!0,link:function(e,t,n,o){var r=o[0],i=o[1];i.calendarCtrl=r,i.generateContent(),e.$watch(function(){return i.offset},function(e,t){e!=t&&i.generateContent()})}}}function n(e,t,n){this.dateUtil=t,this.dateLocale=n,this.$element=e,this.calendarCtrl=null,this.offset,this.focusAfterAppend=null}t.module("material.components.datepicker").directive("mdCalendarMonth",e);var o="md-calendar-date-today",r="md-calendar-selected-date",i="md-focus";n.$inject=["$element","$$mdDateUtil","$mdDateLocale"],n.prototype.generateContent=function(){var e=this.calendarCtrl,t=this.dateUtil.incrementMonths(e.firstRenderableDate,this.offset);this.$element.empty(),this.$element.append(this.buildCalendarForMonth(t)),this.focusAfterAppend&&(this.focusAfterAppend.classList.add(i),this.focusAfterAppend.focus(),this.focusAfterAppend=null)},n.prototype.buildDateCell=function(e){var t=this.calendarCtrl,n=document.createElement("td");if(n.tabIndex=-1,n.classList.add("md-calendar-date"),n.setAttribute("role","gridcell"),e){n.setAttribute("tabindex","-1"),n.setAttribute("aria-label",this.dateLocale.longDateFormatter(e)),n.id=t.getDateId(e),n.setAttribute("data-timestamp",e.getTime()),this.dateUtil.isSameDay(e,t.today)&&n.classList.add(o),this.dateUtil.isValidDate(t.selectedDate)&&this.dateUtil.isSameDay(e,t.selectedDate)&&(n.classList.add(r),n.setAttribute("aria-selected","true"));var i=this.dateLocale.dates[e.getDate()];if(this.dateUtil.isDateWithinRange(e,this.calendarCtrl.minDate,this.calendarCtrl.maxDate)){var a=document.createElement("span");n.appendChild(a),a.classList.add("md-calendar-date-selection-indicator"),a.textContent=i,n.addEventListener("click",t.cellClickHandler),t.focusDate&&this.dateUtil.isSameDay(e,t.focusDate)&&(this.focusAfterAppend=n)}else n.classList.add("md-calendar-date-disabled"),n.textContent=i}return n},n.prototype.buildDateRow=function(e){var t=document.createElement("tr");return t.setAttribute("role","row"),t.setAttribute("aria-label",this.dateLocale.weekNumberFormatter(e)),t},n.prototype.buildCalendarForMonth=function(e){var t=this.dateUtil.isValidDate(e)?e:new Date,n=this.dateUtil.getFirstDateOfMonth(t),o=this.getLocaleDay_(n),r=this.dateUtil.getNumberOfDaysInMonth(t),i=document.createDocumentFragment(),a=1,d=this.buildDateRow(a);i.appendChild(d);var c=this.offset===this.calendarCtrl.items.length-1,l=0,s=document.createElement("td");if(s.classList.add("md-calendar-month-label"),this.calendarCtrl.maxDate&&n>this.calendarCtrl.maxDate&&s.classList.add("md-calendar-month-label-disabled"),s.textContent=this.dateLocale.monthHeaderFormatter(t),2>=o){s.setAttribute("colspan","7");var m=this.buildDateRow();if(m.appendChild(s),i.insertBefore(m,d),c)return i}else l=2,s.setAttribute("colspan","2"),d.appendChild(s);for(var u=l;o>u;u++)d.appendChild(this.buildDateCell());for(var h=o,p=n,f=1;r>=f;f++){if(7===h){if(c)return i;h=0,a++,d=this.buildDateRow(a),i.appendChild(d)}p.setDate(f);var g=this.buildDateCell(p);d.appendChild(g),h++}for(;d.childNodes.length<7;)d.appendChild(this.buildDateCell());for(;i.childNodes.length<6;){for(var b=this.buildDateRow(),u=0;7>u;u++)b.appendChild(this.buildDateCell());i.appendChild(b)}return i},n.prototype.getLocaleDay_=function(e){return(e.getDay()+(7-this.dateLocale.firstDayOfWeek))%7}}()}(),function(){!function(){t.module("material.components.datepicker").config(["$provide",function(e){function t(){this.months=null,this.shortMonths=null,this.days=null,this.shortDays=null,this.dates=null,this.firstDayOfWeek=0,this.formatDate=null,this.parseDate=null,this.monthHeaderFormatter=null,this.weekNumberFormatter=null,this.longDateFormatter=null,this.msgCalendar="",this.msgOpenCalendar=""}t.prototype.$get=function(e){function t(e){if(!e)return"";var t=e.toLocaleTimeString(),n=e;return 0!=e.getHours()||-1===t.indexOf("11:")&&-1===t.indexOf("23:")||(n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),1,0,0)),n.toLocaleDateString()}function n(e){return new Date(e)}function o(e){e=e.trim();var t=/^(([a-zA-Z]{3,}|[0-9]{1,4})([ \.,]+|[\/\-])){2}([a-zA-Z]{3,}|[0-9]{1,4})$/;return t.test(e)}function r(e){return u.shortMonths[e.getMonth()]+" "+e.getFullYear()}function i(e){return"Week "+e}function a(e){return[u.days[e.getDay()],u.months[e.getMonth()],u.dates[e.getDate()],e.getFullYear()].join(" ")}for(var d=e.DATETIME_FORMATS.DAY.map(function(e){return e[0]}),c=Array(32),l=1;31>=l;l++)c[l]=l;var s="Calendar",m="Open calendar",u={months:this.months||e.DATETIME_FORMATS.MONTH,shortMonths:this.shortMonths||e.DATETIME_FORMATS.SHORTMONTH,days:this.days||e.DATETIME_FORMATS.DAY,shortDays:this.shortDays||d,dates:this.dates||c,firstDayOfWeek:this.firstDayOfWeek||0,formatDate:this.formatDate||t,parseDate:this.parseDate||n,isDateComplete:this.isDateComplete||o,monthHeaderFormatter:this.monthHeaderFormatter||r,weekNumberFormatter:this.weekNumberFormatter||i,longDateFormatter:this.longDateFormatter||a,msgCalendar:this.msgCalendar||s,msgOpenCalendar:this.msgOpenCalendar||m};return u},t.prototype.$get.$inject=["$locale"],e.provider("$mdDateLocale",new t)}])}()}(),function(){!function(){function n(){return{template:'
',require:["ngModel","mdDatepicker"],scope:{minDate:"=mdMinDate",maxDate:"=mdMaxDate",placeholder:"@mdPlaceholder"},controller:o,controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,o){var r=o[0],i=o[1];i.configureNgModel(r)}}}function o(e,n,o,r,i,a,d,c,l,s,m){this.$compile=r,this.$timeout=i,this.dateLocale=l,this.dateUtil=s,this.$mdConstant=a,this.$mdUtil=c,this.$$rAF=m,this.ngModelCtrl=null,this.inputElement=n[0].querySelector("input"),this.ngInputElement=t.element(this.inputElement),this.inputContainer=n[0].querySelector(".md-datepicker-input-container"),this.calendarPane=n[0].querySelector(".md-datepicker-calendar-pane"),this.calendarButton=n[0].querySelector(".md-datepicker-button"),this.inputMask=n[0].querySelector(".md-datepicker-input-mask-opaque"),this.$element=n,this.$attrs=o,this.$scope=e,this.date=null,this.isFocused=!1,this.isDisabled,this.setDisabled(n[0].disabled||t.isString(o.disabled)),this.isCalendarOpen=!1,this.calendarPaneOpenedFrom=null,this.calendarPane.id="md-date-pane"+c.nextUid(),d(n),this.bodyClickHandler=t.bind(this,this.handleBodyClick),this.windowResizeHandler=c.debounce(t.bind(this,this.closeCalendarPane),100),o.tabindex||n.attr("tabindex","-1"),this.installPropertyInterceptors(),this.attachChangeListeners(),this.attachInteractionListeners();var u=this;e.$on("$destroy",function(){u.detachCalendarPane()})}t.module("material.components.datepicker").directive("mdDatepicker",n);var r=3,i="md-datepicker-invalid",a=500,d=368,c=360;o.$inject=["$scope","$element","$attrs","$compile","$timeout","$mdConstant","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF"],o.prototype.configureNgModel=function(e){this.ngModelCtrl=e;var t=this;e.$render=function(){t.date=t.ngModelCtrl.$viewValue,t.inputElement.value=t.dateLocale.formatDate(t.date),t.resizeInputElement()}},o.prototype.attachChangeListeners=function(){var e=this;e.$scope.$on("md-calendar-change",function(t,n){e.ngModelCtrl.$setViewValue(n),e.date=n,e.inputElement.value=e.dateLocale.formatDate(n),e.closeCalendarPane(),e.resizeInputElement(),e.inputContainer.classList.remove(i)}),e.ngInputElement.on("input",t.bind(e,e.resizeInputElement)),e.ngInputElement.on("input",e.$mdUtil.debounce(e.handleInputEvent,a,e))},o.prototype.attachInteractionListeners=function(){var e=this,t=this.$scope,n=this.$mdConstant.KEY_CODE;e.ngInputElement.on("keydown",function(o){o.altKey&&o.keyCode==n.DOWN_ARROW&&(e.openCalendarPane(o),t.$digest())}),t.$on("md-calendar-close",function(){e.closeCalendarPane()})},o.prototype.installPropertyInterceptors=function(){var e=this;if(this.$attrs.ngDisabled){var t=this.$mdUtil.validateScope(this.$element)?this.$element.scope():null;t&&t.$watch(this.$attrs.ngDisabled,function(t){e.setDisabled(t)})}Object.defineProperty(this,"placeholder",{get:function(){return e.inputElement.placeholder},set:function(t){e.inputElement.placeholder=t||""}})},o.prototype.setDisabled=function(e){this.isDisabled=e,this.inputElement.disabled=e,this.calendarButton.disabled=e},o.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+r},o.prototype.handleInputEvent=function(){var e=this.inputElement.value,t=this.dateLocale.parseDate(e);this.dateUtil.setDateTimeToMidnight(t),""===e?(this.ngModelCtrl.$setViewValue(null),this.date=null,this.inputContainer.classList.remove(i)):this.dateUtil.isValidDate(t)&&this.dateLocale.isDateComplete(e)&&this.dateUtil.isDateWithinRange(t,this.minDate,this.maxDate)?(this.ngModelCtrl.$setViewValue(t),this.date=t,this.inputContainer.classList.remove(i)):this.inputContainer.classList.toggle(i,e)},o.prototype.attachCalendarPane=function(){var e=this.calendarPane;this.$element.addClass("md-datepicker-open");var t=this.inputContainer.getBoundingClientRect(),n=document.body.getBoundingClientRect(),o=t.top-n.top,r=t.left-n.left;r+c>n.right&&n.right-c>0&&(r=n.right-c,e.classList.add("md-datepicker-pos-adjusted")),o+d>n.bottom&&n.bottom-d>0&&(o=n.bottom-d,e.classList.add("md-datepicker-pos-adjusted")),e.style.left=r+"px",e.style.top=o+"px",document.body.appendChild(this.calendarPane),this.inputMask.style.left=t.width+"px",this.$$rAF(function(){e.classList.add("md-pane-open")})},o.prototype.detachCalendarPane=function(){this.$element.removeClass("md-datepicker-open"),this.calendarPane.classList.remove("md-pane-open"),this.calendarPane.classList.remove("md-datepicker-pos-adjusted"),this.calendarPane.parentNode&&this.calendarPane.parentNode.removeChild(this.calendarPane)},o.prototype.openCalendarPane=function(t){if(!this.isCalendarOpen&&!this.isDisabled){this.isCalendarOpen=!0,this.calendarPaneOpenedFrom=t.target,this.attachCalendarPane(),this.focusCalendar(),this.$mdUtil.disableScrollAround(this.calendarPane);var n=this;this.$mdUtil.nextTick(function(){document.body.addEventListener("click",n.bodyClickHandler)},!1),e.addEventListener("resize",this.windowResizeHandler)}},o.prototype.closeCalendarPane=function(){this.isCalendarOpen=!1,this.detachCalendarPane(),this.calendarPaneOpenedFrom.focus(),this.calendarPaneOpenedFrom=null,this.$mdUtil.enableScrolling(),document.body.removeEventListener("click",this.bodyClickHandler),e.removeEventListener("resize",this.windowResizeHandler)},o.prototype.getCalendarCtrl=function(){return t.element(this.calendarPane.querySelector("md-calendar")).controller("mdCalendar")},o.prototype.focusCalendar=function(){var e=this;this.$mdUtil.nextTick(function(){e.getCalendarCtrl().focus()},!1)},o.prototype.setFocused=function(e){this.isFocused=e},o.prototype.handleBodyClick=function(e){if(this.isCalendarOpen){var t=this.$mdUtil.getClosest(e.target,"md-calendar");t||this.closeCalendarPane(),this.$scope.$digest()}}}()}(),function(){!function(){t.module("material.components.datepicker").factory("$$mdDateUtil",function(){function e(e){return new Date(e.getFullYear(),e.getMonth(),1)}function n(e){return new Date(e.getFullYear(),e.getMonth()+1,0).getDate()}function o(e){return new Date(e.getFullYear(),e.getMonth()+1,1)}function r(e){return new Date(e.getFullYear(),e.getMonth()-1,1)}function i(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()}function a(e,t){return e.getDate()==t.getDate()&&i(e,t)}function d(e,t){var n=o(e);return i(n,t)}function c(e,t){var n=r(e);return i(t,n)}function l(e,t){return b((e.getTime()+t.getTime())/2)}function s(t){var n=e(t);return Math.floor((n.getDay()+t.getDate()-1)/7)}function m(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)}function u(e,t){var o=new Date(e.getFullYear(),e.getMonth()+t,1),r=n(o);return r=n)&&(!t.isDate(o)||o>=e)}return{getFirstDateOfMonth:e,getNumberOfDaysInMonth:n,getDateInNextMonth:o,getDateInPreviousMonth:r,isInNextMonth:d,isInPreviousMonth:c,getDateMidpoint:l,isSameMonthAndYear:i,getWeekOfMonth:s,incrementDays:m,incrementMonths:u,getLastDateOfMonth:p,isSameDay:a,getMonthDistance:h,isValidDate:f,setDateTimeToMidnight:g,createDateAtMidnight:b,isDateWithinRange:E}})}()}(),function(){function e(e,n,o){return{restrict:"E",link:function(r,i,a){n(i),e(function(){function e(){i.toggleClass("md-content-overflow",a.scrollHeight>a.clientHeight)}var n,a=i[0].querySelector("md-dialog-content");a&&(n=a.getElementsByTagName("img"),e(),t.element(n).on("load",e)),r.$on("$destroy",function(){o.destroy()})})}}}function n(e){function n(e,t){return{template:['',' ','

{{ dialog.title }}

','
',"
",'
',' '," {{ dialog.cancel }}"," ",' '," {{ dialog.ok }}"," ","
","
"].join("").replace(/\s\s+/g,""),controller:function(){this.hide=function(){e.hide(!0)},this.abort=function(){e.cancel()}},controllerAs:"dialog",bindToController:!0,theme:t.defaultTheme()}}function o(e,n,o,r,i,a,d,c){function l(e,n,r,i){function d(){function e(){var e=n[0].querySelector(".dialog-close");if(!e){var o=n[0].querySelectorAll(".md-actions button");e=o[o.length-1]}return t.element(e)}if(r.focusOnOpen){var i=o.findFocusTarget(n)||e();i.focus()}}function c(){if(i){var e=/<\/[\w-]*>/gm,t=i.content||"",n=e.test(t);n||(t=o.supplant("

{0}

",[t])),i.content=t}}return t.element(a[0].body).addClass("md-dialog-is-showing"),c(),m(n,r),p(n.find("md-dialog"),r),h(e,n,r),b(n,r).then(function(){u(n,r),f(n,r),d()})}function s(e,n,o){function r(){return E(n,o)}function i(){t.element(a[0].body).removeClass("md-dialog-is-showing"),n.remove(),o.$destroy||o.origin.focus()}return o.deactivateListeners(),o.unlockScreenReader(),o.hideBackdrop(o.$destroy),o.$destroy?i():r().then(i)}function m(e,n){n.origin=t.extend({element:null,bounds:null,focus:t.noop},n.origin||{});var o=t.element((n.targetEvent||{}).target);if(o&&o.length&&(n.origin.element=o,n.origin.bounds=o[0].getBoundingClientRect(),n.origin.focus=function(){o.focus()}),t.isString(n.parent)){var r=n.parent,i=a[0].querySelectorAll(r);n.parent=i.length?i[0]:null}n.parent=t.element(n.parent||c)}function u(n,i){var a=t.element(d),c=o.debounce(function(){g(n,i)},60),l=[],s=function(){var t="alert"==i.$type?e.hide:e.cancel;o.nextTick(t,!0)};if(i.escapeToClose){var m=i.parent,u=function(e){e.keyCode===r.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),s())};n.on("keyup",u),m.on("keyup",u),a.on("resize",c),l.push(function(){n.off("keyup",u),m.off("keyup",u),a.off("resize",c)})}if(i.clickOutsideToClose){var m=n,h=function(e){e.target===m[0]&&(e.stopPropagation(),e.preventDefault(),s())};m.on("click",h),l.push(function(){m.off("click",h)})}i.deactivateListeners=function(){l.forEach(function(e){e()}),i.deactivateListeners=null}}function h(e,t,n){n.disableParentScroll&&(n.restoreScroll=o.disableScrollAround(t,n.parent)),n.hasBackdrop&&(n.backdrop=o.createBackdrop(e,"md-dialog-backdrop md-opaque"),i.enter(n.backdrop,n.parent)),n.hideBackdrop=function(e){n.backdrop&&(e?n.backdrop.remove():i.leave(n.backdrop)),n.disableParentScroll&&(n.restoreScroll(),delete n.restoreScroll),n.hideBackdrop=null}}function p(e,t){var r="alert"===t.$type?"alertdialog":"dialog",i=e.find("md-dialog-content"),a=e.attr("id")||"dialog_"+o.nextUid();e.attr({role:r,tabIndex:"-1"}),0===i.length&&(i=e),i.attr("id",a),e.attr("aria-describedby",a),t.ariaLabel?n.expect(e,"aria-label",t.ariaLabel):n.expectAsync(e,"aria-label",function(){var e=i.text().split(/\s+/);return e.length>3&&(e=e.slice(0,3).concat("...")),e.join(" ")})}function f(e,t){function n(e){for(;e.parentNode;){if(e===document.body)return;for(var t=e.parentNode.children,r=0;r/g.test(e)?e:""+e+""}return'
'+t(e)+"
"}}}return n.$inject=["$mdDialog","$mdTheming"],o.$inject=["$mdDialog","$mdAria","$mdUtil","$mdConstant","$animate","$document","$window","$rootElement"],e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","parent"],options:o}).addPreset("alert",{methods:["title","content","ariaLabel","ok","theme","css"],options:n}).addPreset("confirm",{methods:["title","content","ariaLabel","ok","cancel","theme","css"],options:n})}t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",e).provider("$mdDialog",n),e.$inject=["$$rAF","$mdTheming","$mdDialog"],n.$inject=["$$interimElementProvider"]}(),function(){function e(e){return{restrict:"E",link:e}}t.module("material.components.divider",["material.core"]).directive("mdDivider",e),e.$inject=["$mdTheming"]}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],compile:function(e,n){var o=e.children(),r=!1;t.forEach(["","data-","x-"],function(e){r=r||(o.attr(e+"ng-repeat")?!0:!1)}),r?o.addClass("md-fab-action-item"):o.wrap('
')}}}t.module("material.components.fabActions",["material.core"]).directive("mdFabActions",e)}()}(),function(){!function(){function n(n,o,r,i,a){function d(){S.direction=S.direction||"down",S.isOpen=S.isOpen||!1,p()}function c(){var e=["mousedown","mouseup","click","touchstart","touchend","focusin","focusout"];t.forEach(e,function(e){o.on(e,u)}),n.$on("$destroy",function(){t.forEach(e,function(e){o.off(e,u)})})}function l(){O=[]}function s(e){var n,o,r,i=0;do o=e.map(function(e){return e.replace("?","")}),n=t.equals(O,o),n||(e=m(e),r=e.length>=O.length&&e.length!==o.length);while(10>i&&!n&&r);return n}function m(e){var t=!1;return e.filter(function(e){return t||-1===e.indexOf("?")?!0:(t=!0,!1)})}function u(e){return O.push(e.type),s(["mousedown","focusout?","focusin?","mouseup","click"])?(N(e),void l()):s(["touchstart?","touchend?","click"])?(N(e),void l()):s(["focusin"])?(S.open(),void l()):s(["focusout"])?(S.close(),void l()):void h()}function h(){D&&e.clearTimeout(D),D=e.setTimeout(function(){l()},250)}function p(){S.currentActionIndex=-1}function f(){n.$watch("vm.direction",function(e,t){r.removeClass(o,"md-"+t),r.addClass(o,"md-"+e),p()});var e,t;n.$watch("vm.isOpen",function(n){p(),e&&t||(e=_(),t=H()),n?b():E();var i=n?"md-is-open":"",a=n?"":"md-is-open";e.attr("aria-haspopup",!0),e.attr("aria-expanded",n),t.attr("aria-hidden",!n),r.setClass(o,i,a)})}function g(){i.nextTick(function(){r.addClass(o,"md-noop")})}function b(){t.element(document).on("keydown",v)}function E(){t.element(document).off("keydown",v)}function v(e){switch(e.which){case a.KEY_CODE.SPACE:return e.preventDefault(),!1;case a.KEY_CODE.ESCAPE:return S.close(),e.preventDefault(),!1;case a.KEY_CODE.LEFT_ARROW:return A(e),!1;case a.KEY_CODE.UP_ARROW:return C(e),!1;case a.KEY_CODE.RIGHT_ARROW:return T(e),!1;case a.KEY_CODE.DOWN_ARROW:return k(e),!1}}function M(e){y(e,-1)}function $(e){y(e,1)}function y(e,n){var o=H()[0].querySelectorAll(".md-fab-action-item");t.forEach(o,function(e){t.element(t.element(e).children()[0]).attr("tabindex",-1)}),S.currentActionIndex=S.currentActionIndex+n,S.currentActionIndex=Math.min(o.length-1,S.currentActionIndex),S.currentActionIndex=Math.max(0,S.currentActionIndex);var r=t.element(o[S.currentActionIndex]).children()[0];t.element(r).attr("tabindex",0),r.focus(),e.preventDefault(),e.stopImmediatePropagation()}function A(e){"left"===S.direction?$(e):M(e)}function C(e){"down"===S.direction?M(e):$(e)}function T(e){"left"===S.direction?M(e):$(e)}function k(e){"up"===S.direction?M(e):$(e)}function w(e){return i.getClosest(e,"md-fab-trigger")}function x(e){return i.getClosest(e,"md-fab-actions")}function N(e){w(e.target)&&S.toggle(),x(e.target)&&S.close()}function _(){return o.find("md-fab-trigger")}function H(){return o.find("md-fab-actions")}var S=this;S.open=function(){n.$evalAsync("vm.isOpen = true")},S.close=function(){n.$evalAsync("vm.isOpen = false"),o.find("md-fab-trigger")[0].focus()},S.toggle=function(){n.$evalAsync("vm.isOpen = !vm.isOpen")},d(),c(),f(),g();var D,O=[]}t.module("material.components.fabShared",["material.core"]).controller("FabController",n),n.$inject=["$scope","$element","$animate","$mdUtil","$mdConstant"]}()}(),function(){!function(){function n(){function e(e,t){t.prepend('
')}return{restrict:"E",scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:"FabController",controllerAs:"vm",link:e}}function o(){function n(n){var o=n[0],r=n.controller("mdFabSpeedDial"),i=o.querySelectorAll(".md-fab-action-item"),a=o.querySelector("md-fab-trigger"),d=o.querySelector(".md-css-variables"),c=parseInt(e.getComputedStyle(d).zIndex);t.forEach(i,function(e,t){var n=e.style;n.transform=n.webkitTransform="",n.transitionDelay="",n.opacity=1,n.zIndex=i.length-t+c}),a.style.zIndex=c+i.length+1,r.isOpen||t.forEach(i,function(e,t){var n,o,i=e.style;switch(r.direction){case"up":n=e.scrollHeight*(t+1),o="Y";break;case"down":n=-e.scrollHeight*(t+1),o="Y";break;case"left":n=e.scrollWidth*(t+1),o="X";break;case"right":n=-e.scrollWidth*(t+1),o="X"}var a="translate"+o+"("+n+"px)";i.transform=i.webkitTransform=a})}return{addClass:function(e,t,o){e.hasClass("md-fling")&&(n(e),o())},removeClass:function(e,t,o){n(e),o()}}}function r(){function e(e){var o=e[0],r=e.controller("mdFabSpeedDial"),i=o.querySelectorAll(".md-fab-action-item");t.forEach(i,function(e,t){var o=e.style,a=t*n;o.opacity=r.isOpen?1:0,o.transform=o.webkitTransform=r.isOpen?"scale(1)":"scale(0)",o.transitionDelay=(r.isOpen?a:i.length-a)+"ms"})}var n=65;return{addClass:function(t,n,o){e(t),o()},removeClass:function(t,n,o){e(t),o()}}}t.module("material.components.fabSpeedDial",["material.core","material.components.fabShared","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabSpeedDial",n).animation(".md-fling",o).animation(".md-scale",r).service("mdFabSpeedDialFlingAnimation",o).service("mdFabSpeedDialScaleAnimation",r)}()}(),function(){!function(){function n(){function e(e,t,n){t.addClass("md-fab-toolbar"),t.find("md-fab-trigger").find("button").prepend('
')}return{restrict:"E",transclude:!0,template:'
',scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:"FabController",controllerAs:"vm",link:e}}function o(){function n(n,o,r){if(o){var i=n[0],a=n.controller("mdFabToolbar"),d=i.querySelector(".md-fab-toolbar-background"),c=i.querySelector("md-fab-trigger button"),l=i.querySelector("md-toolbar"),s=i.querySelector("md-fab-trigger button md-icon"),m=n.find("md-fab-actions").children();if(c&&d){var u=e.getComputedStyle(c).getPropertyValue("background-color"),h=i.offsetWidth,p=(i.offsetHeight,2*h);d.style.backgroundColor=u,d.style.borderRadius=h+"px",a.isOpen?(l.style.pointerEvents="initial",d.style.width=p+"px",d.style.height=p+"px",d.style.top=-(p/2)+"px",n.hasClass("md-right")&&(d.style.left=-(p/2)+"px",d.style.right=null),n.hasClass("md-left")&&(d.style.right=-(p/2)+"px",d.style.left=null),d.style.transitionDelay="0ms",s&&(s.style.transitionDelay=".3s"),t.forEach(m,function(e,t){e.style.transitionDelay=25*(m.length-t)+"ms"})):(l.style.pointerEvents="none",d.style.width=c.offsetWidth+"px",d.style.height=c.offsetHeight+"px",d.style.top="0px",n.hasClass("md-right")&&(d.style.left="0px",d.style.right=null),n.hasClass("md-left")&&(d.style.right="0px",d.style.left=null),d.style.transitionDelay="200ms",s&&(s.style.transitionDelay="0ms"),t.forEach(m,function(e,t){e.style.transitionDelay=200+25*t+"ms"}))}}}return{addClass:function(e,t,o){n(e,t,o),o()},removeClass:function(e,t,o){n(e,t,o),o()}}}t.module("material.components.fabToolbar",["material.core","material.components.fabShared","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabToolbar",n).animation(".md-fab-toolbar",o).service("mdFabToolbarAnimation",o)}()}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"]}}t.module("material.components.fabTrigger",["material.core"]).directive("mdFabTrigger",e)}()}(),function(){function e(e,o,r,i){function a(n,a,d,c){function l(){for(var e in o.MEDIA)i(e),i.getQuery(o.MEDIA[e]).addListener(A);return i.watchResponsiveAttributes(["md-cols","md-row-height"],d,m)}function s(){c.layoutDelegate=t.noop,C();for(var e in o.MEDIA)i.getQuery(o.MEDIA[e]).removeListener(A)}function m(e){null==e?c.invalidateLayout():i(e)&&c.invalidateLayout()}function u(e){var o=g(),i={tileSpans:b(o),colCount:E(),rowMode:$(),rowHeight:M(),gutter:v()};if(e||!t.equals(i,T)){var d=r(i.colCount,i.tileSpans,o).map(function(e,n){return{grid:{element:a,style:f(i.colCount,n,i.gutter,i.rowMode,i.rowHeight)},tiles:e.map(function(e,n){return{element:t.element(o[n]),style:p(e.position,e.spans,i.colCount,i.rowCount,i.gutter,i.rowMode,i.rowHeight)}})}}).reflow().performance();n.mdOnLayout({$event:{ -performance:d}}),T=i}}function h(e){return k+e+w}function p(e,t,n,o,r,i,a){var d=1/n*100,c=(n-1)/n,l=x({share:d,gutterShare:c,gutter:r}),s={left:N({unit:l,offset:e.col,gutter:r}),width:_({unit:l,span:t.col,gutter:r}),paddingTop:"",marginTop:"",top:"",height:""};switch(i){case"fixed":s.top=N({unit:a,offset:e.row,gutter:r}),s.height=_({unit:a,span:t.row,gutter:r});break;case"ratio":var m=d/a,u=x({share:m,gutterShare:c,gutter:r});s.paddingTop=_({unit:u,span:t.row,gutter:r}),s.marginTop=N({unit:u,offset:e.row,gutter:r});break;case"fit":var h=(o-1)/o,m=1/o*100,u=x({share:m,gutterShare:h,gutter:r});s.top=N({unit:u,offset:e.row,gutter:r}),s.height=_({unit:u,span:t.row,gutter:r})}return s}function f(e,t,n,o,r){var i={height:"",paddingBottom:""};switch(o){case"fixed":i.height=_({unit:r,span:t,gutter:n});break;case"ratio":var a=1===e?0:(e-1)/e,d=1/e*100,c=d*(1/r),l=x({share:c,gutterShare:a,gutter:n});i.paddingBottom=_({unit:l,span:t,gutter:n});break;case"fit":}return i}function g(){return[].filter.call(a.children(),function(e){return"MD-GRID-TILE"==e.tagName})}function b(e){return[].map.call(e,function(e){var n=t.element(e).controller("mdGridTile");return{row:parseInt(i.getResponsiveAttribute(n.$attrs,"md-rowspan"),10)||1,col:parseInt(i.getResponsiveAttribute(n.$attrs,"md-colspan"),10)||1}})}function E(){var e=parseInt(i.getResponsiveAttribute(d,"md-cols"),10);if(isNaN(e))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";return e}function v(){return y(i.getResponsiveAttribute(d,"md-gutter")||1)}function M(){var e=i.getResponsiveAttribute(d,"md-row-height");switch($()){case"fixed":return y(e);case"ratio":var t=e.split(":");return parseFloat(t[0])/parseFloat(t[1]);case"fit":return 0}}function $(){var e=i.getResponsiveAttribute(d,"md-row-height");return"fit"==e?"fit":-1!==e.indexOf(":")?"ratio":"fixed"}function y(e){return/\D$/.test(e)?e:e+"px"}a.attr("role","list"),c.layoutDelegate=u;var A=t.bind(c,c.invalidateLayout),C=l();n.$on("$destroy",s);var T,k=e.startSymbol(),w=e.endSymbol(),x=e(h("share")+"% - ("+h("gutter")+" * "+h("gutterShare")+")"),N=e("calc(("+h("unit")+" + "+h("gutter")+") * "+h("offset")+")"),_=e("calc(("+h("unit")+") * "+h("span")+" + ("+h("span")+" - 1) * "+h("gutter")+")")}return{restrict:"E",controller:n,scope:{mdOnLayout:"&"},link:a}}function n(e){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=e.nextTick,this.layoutDelegate=t.noop}function o(e){function n(t,n){var o,a,d,c,l,s;return c=e.time(function(){a=r(t,n)}),o={layoutInfo:function(){return a},map:function(t){return l=e.time(function(){var e=o.layoutInfo();d=t(e.positioning,e.rowCount)}),o},reflow:function(t){return s=e.time(function(){var e=t||i;e(d.grid,d.tiles)}),o},performance:function(){return{tileCount:n.length,layoutTime:c,mapTime:l,reflowTime:s,totalTime:c+l+s}}}}function o(e,t){e.element.css(e.style),t.forEach(function(e){e.element.css(e.style)})}function r(e,t){function n(t,n){if(t.col>e)throw"md-grid-list: Tile at position "+n+" has a colspan ("+t.col+") that exceeds the column count ("+e+")";for(var a=0,s=0;s-a=e?o():(a=l.indexOf(0,d),-1!==a&&-1!==(s=i(a+1))?d=s+1:(a=s=0,o()));return r(a,t.col,t.row),d=a+t.col,{col:a,row:c}}function o(){d=0,c++,r(0,e,-1)}function r(e,t,n){for(var o=e;e+t>o;o++)l[o]=Math.max(l[o]+n,0)}function i(e){var t;for(t=e;tn;n++)t.push(0);return t}var d=0,c=0,l=a();return{positioning:t.map(function(e,t){return{spans:e,position:n(e,t)}}),rowCount:c+Math.max.apply(Math,l)}}var i=o;return n.animateWith=function(e){i=t.isFunction(e)?e:o},n}function r(e){function n(n,o,r,i){o.attr("role","listitem");var a=e.watchResponsiveAttributes(["md-colspan","md-rowspan"],r,t.bind(i,i.invalidateLayout));i.invalidateTiles(),n.$on("$destroy",function(){a(),i.invalidateLayout()}),t.isDefined(n.$parent.$index)&&n.$watch(function(){return n.$parent.$index},function(e,t){e!==t&&i.invalidateTiles()})}return{restrict:"E",require:"^mdGridList",template:"
",transclude:!0,scope:{},controller:["$attrs",function(e){this.$attrs=e}],link:n}}function i(){return{template:"
",transclude:!0}}t.module("material.components.gridList",["material.core"]).directive("mdGridList",e).directive("mdGridTile",r).directive("mdGridTileFooter",i).directive("mdGridTileHeader",i).factory("$mdGridLayout",o),e.$inject=["$interpolate","$mdConstant","$mdGridLayout","$mdMedia"],n.$inject=["$mdUtil"],n.prototype={invalidateTiles:function(){this.tilesInvalidated=!0,this.invalidateLayout()},invalidateLayout:function(){this.layoutInvalidated||(this.layoutInvalidated=!0,this.$timeout_(t.bind(this,this.layout)))},layout:function(){try{this.layoutDelegate(this.tilesInvalidated)}finally{this.layoutInvalidated=!1,this.tilesInvalidated=!1}}},o.$inject=["$mdUtil"],r.$inject=["$mdMedia"]}(),function(){t.module("material.components.icon",["material.core"])}(),function(){function e(e,t){function n(t,n,o){e(n)}function o(e,n,o){var r=this;r.isErrorGetter=o.mdIsError&&t(o.mdIsError),r.delegateClick=function(){r.input.focus()},r.element=n,r.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},r.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},r.setHasMessages=function(e){n.toggleClass("md-input-has-messages",!!e)},r.setHasPlaceholder=function(e){n.toggleClass("md-input-has-placeholder",!!e)},r.setInvalid=function(e){n.toggleClass("md-input-invalid",!!e)},e.$watch(function(){return r.label&&r.input},function(e){e&&!r.label.attr("for")&&r.label.attr("for",r.input.attr("id"))})}return o.$inject=["$scope","$element","$attrs"],{restrict:"E",link:n,controller:o}}function n(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,o){o&&!n.mdNoFloat&&(o.label=t,e.$on("$destroy",function(){o.label=null}))}}}function o(e,n,o){function r(r,i,a,d){function c(e){return m.setHasValue(!h.$isEmpty(e)),e}function l(){m.setHasValue(i.val().length>0||(i[0].validity||{}).badInput)}function s(){function o(e){return f(),e}function a(){if(s.style.height=s.offsetHeight+"px",i.addClass("md-no-flex"),isNaN(u)){l.style.height="auto",l.scrollTop=0;var e=d();e&&(l.style.height=e+"px")}else{l.setAttribute("rows",1),p||(l.style.minHeight="0",p=i.prop("clientHeight"),l.style.minHeight=null);var t=Math.max(u,Math.round(l.scrollHeight/p));l.setAttribute("rows",t)}i.removeClass("md-no-flex"),s.style.height="auto"}function d(){var e=l.scrollHeight-l.offsetHeight;return l.offsetHeight+(e>0?e:0)}function c(e){l.scrollTop=0;var t=l.scrollHeight-l.offsetHeight,n=l.offsetHeight+t;l.style.height=n+"px"}if(!t.isDefined(i.attr("md-no-autogrow"))){var l=i[0],s=m.element[0],u=NaN,p=null;l.hasAttribute("rows")&&(u=parseInt(l.getAttribute("rows")));var f=e.debounce(a,1);h?(h.$formatters.push(o),h.$viewChangeListeners.push(o)):f(),i.on("keydown input",f),isNaN(u)&&(i.attr("rows","1"),i.on("scroll",c)),t.element(n).on("resize",f),r.$on("$destroy",function(){t.element(n).off("resize",f)})}}var m=d[0],u=!!d[1],h=d[1]||e.fakeNgModel(),p=t.isDefined(a.readonly);if(m){if(m.input)throw new Error(" can only have *one* , @@ -24537,7 +24605,9 @@ var ngModelMinErr = minErr('ngModel'); * @ngdoc type * @name ngModel.NgModelController * - * @property {string} $viewValue Actual string value in the view. + * @property {*} $viewValue The actual value from the control's view. For `input` elements, this is a + * String. See {@link ngModel.NgModelController#$setViewValue} for information about when the $viewValue + * is set. * @property {*} $modelValue The value in the model that the control is bound to. * @property {Array.} $parsers Array of functions to execute, as a pipeline, whenever the control reads value from the DOM. The functions are called in array order, each passing @@ -26488,11 +26558,16 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) { function updateOptionElement(option, element) { option.element = element; element.disabled = option.disabled; - if (option.value !== element.value) element.value = option.selectValue; + // NOTE: The label must be set before the value, otherwise IE10/11/EDGE create unresponsive + // selects in certain circumstances when multiple selects are next to each other and display + // the option list in listbox style, i.e. the select is [multiple], or specifies a [size]. + // See https://github.com/angular/angular.js/issues/11314 for more info. + // This is unfortunately untestable with unit / e2e tests if (option.label !== element.label) { element.label = option.label; element.textContent = option.label; } + if (option.value !== element.value) element.value = option.selectValue; } function addOrReuseElement(parent, current, type, templateElement) { @@ -26533,7 +26608,10 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) { if (emptyOption_ || unknownOption_) { while (current && (current === emptyOption_ || - current === unknownOption_)) { + current === unknownOption_ || + emptyOption_ && emptyOption_.nodeType === NODE_TYPE_COMMENT)) { + // Empty options might have directives that transclude + // and insert comments (e.g. ngIf) current = current.nextSibling; } } @@ -28281,7 +28359,7 @@ var SelectController = *
* *
- * * * * @@ -28322,7 +28400,7 @@ var SelectController = *
*
* - * * * *
@@ -28334,7 +28412,7 @@ var SelectController = * angular.module('ngrepeatSelect', []) * .controller('ExampleController', ['$scope', function($scope) { * $scope.data = { - * singleSelect: null, + * repeatSelect: null, * availableOptions: [ * {id: '1', name: 'Option A'}, * {id: '2', name: 'Option B'}, diff --git a/UI/WebServerResources/js/vendor/angular.min.js b/UI/WebServerResources/js/vendor/angular.min.js index 975219b72..272101ec7 100644 --- a/UI/WebServerResources/js/vendor/angular.min.js +++ b/UI/WebServerResources/js/vendor/angular.min.js @@ -1,293 +1,294 @@ /* - AngularJS v1.4.6 + AngularJS v1.4.7 (c) 2010-2015 Google, Inc. http://angularjs.org License: MIT */ -(function(Q,X,w){'use strict';function I(b){return function(){var a=arguments[0],c;c="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.4.6/"+(b?b+"/":"")+a;for(a=1;a").append(b).html();try{return b[0].nodeType===Pa?F(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+F(b)})}catch(d){return F(c)}}function wc(b){try{return decodeURIComponent(b)}catch(a){}} -function xc(b){var a={};m((b||"").split("&"),function(b){var d,e,f;b&&(e=b=b.replace(/\+/g,"%20"),d=b.indexOf("="),-1!==d&&(e=b.substring(0,d),f=b.substring(d+1)),e=wc(e),A(e)&&(f=A(f)?wc(f):!0,ta.call(a,e)?J(a[e])?a[e].push(f):a[e]=[a[e],f]:a[e]=f))});return a}function Pb(b){var a=[];m(b,function(b,d){J(b)?m(b,function(b){a.push(la(d,!0)+(!0===b?"":"="+la(b,!0)))}):a.push(la(d,!0)+(!0===b?"":"="+la(b,!0)))});return a.length?a.join("&"):""}function ob(b){return la(b,!0).replace(/%26/gi,"&").replace(/%3D/gi, -"=").replace(/%2B/gi,"+")}function la(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Wd(b,a){var c,d,e=Qa.length;for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=fb(a,c.strictDi);d.invoke(["$rootScope", -"$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;Q&&e.test(Q.name)&&(c.debugInfoEnabled=!0,Q.name=Q.name.replace(e,""));if(Q&&!f.test(Q.name))return d();Q.name=Q.name.replace(f,"");aa.resumeBootstrap=function(b){m(b,function(b){a.push(b)});return d()};x(aa.resumeDeferredBootstrap)&&aa.resumeDeferredBootstrap()}function Yd(){Q.name="NG_ENABLE_DEBUG_INFO!"+Q.name;Q.location.reload()} -function Zd(b){b=aa.element(b).injector();if(!b)throw Ea("test");return b.get("$$testability")}function zc(b,a){a=a||"_";return b.replace($d,function(b,d){return(d?a:"")+b.toLowerCase()})}function ae(){var b;if(!Ac){var a=pb();(ra=v(a)?Q.jQuery:a?Q[a]:w)&&ra.fn.on?(C=ra,P(ra.fn,{scope:Ra.scope,isolateScope:Ra.isolateScope,controller:Ra.controller,injector:Ra.injector,inheritedData:Ra.inheritedData}),b=ra.cleanData,ra.cleanData=function(a){var d;if(Qb)Qb=!1;else for(var e=0,f;null!=(f=a[e]);e++)(d= -ra._data(f,"events"))&&d.$destroy&&ra(f).triggerHandler("$destroy");b(a)}):C=R;aa.element=C;Ac=!0}}function qb(b,a,c){if(!b)throw Ea("areq",a||"?",c||"required");return b}function Sa(b,a,c){c&&J(b)&&(b=b[b.length-1]);qb(x(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ta(b,a){if("hasOwnProperty"===b)throw Ea("badname",a);}function Bc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,g=0;g")+d[2];for(d=d[0];d--;)c=c.lastChild;f=db(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";m(f,function(a){e.appendChild(a)});return e}function R(b){if(b instanceof R)return b;var a;G(b)&&(b=T(b),a=!0);if(!(this instanceof -R)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new R(b)}if(a){a=X;var c;b=(c=Bf.exec(b))?[a.createElement(c[1])]:(c=Lc(b,a))?c.childNodes:[]}Mc(this,b)}function Ub(b){return b.cloneNode(!0)}function ub(b,a){a||vb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;dk&&this.remove(r.key);return b}},get:function(a){if(k").parent()[0])});var f= -S(a,b,a,c,d,e);W.$$addScopeClass(a);var h=null;return function(b,c,d){qb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,g=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);h||(h=(d=d&&d[0])?"foreignobject"!==wa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==h?C(Xb(h,C("
").append(a).html())):c?Ra.clone.call(a):a;if(g)for(var k in g)d.data("$"+k+"Controller",g[k].instance);W.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function S(a, -b,c,d,e,f){function h(a,c,d,e){var f,k,l,r,n,t,O;if(q)for(O=Array(c.length),r=0;rD.priority)break;if(M=D.scope)D.templateUrl||(B(M)?(Q("new/isolated scope", -u||S,D,v),u=D):Q("new/isolated scope",u,D,v)),S=S||D;y=D.name;!D.templateUrl&&D.controller&&(M=D.controller,ba=ba||ha(),Q("'"+y+"' controller",ba[y],D,v),ba[y]=D);if(M=D.transclude)N=!0,D.$$tlb||(Q("transclusion",z,D,v),z=D),"element"==M?(ia=!0,H=D.priority,M=v,v=d.$$element=C(X.createComment(" "+y+": "+d[y]+" ")),b=v[0],U(f,ua.call(M,0),b),Ka=W(M,e,H,h&&h.name,{nonTlbTranscludeDirective:z})):(M=C(Ub(b)).contents(),v.empty(),Ka=W(M,e));if(D.template)if(m=!0,Q("template",L,D,v),L=D,M=x(D.template)? -D.template(v,d):D.template,M=ga(M),D.replace){h=D;M=Sb.test(M)?Wc(Xb(D.templateNamespace,T(M))):[];b=M[0];if(1!=M.length||b.nodeType!==pa)throw fa("tplrt",y,"");U(f,v,b);F={$attr:{}};M=ca(b,[],F);var If=a.splice(I+1,a.length-(I+1));u&&A(M);a=a.concat(M).concat(If);Xc(d,F);F=a.length}else v.html(M);if(D.templateUrl)m=!0,Q("template",L,D,v),L=D,D.replace&&(h=D),K=Jf(a.splice(I,a.length-I),v,d,f,N&&Ka,g,k,{controllerDirectives:ba,newScopeDirective:S!==D&&S,newIsolateScopeDirective:u,templateDirective:L, -nonTlbTranscludeDirective:z}),F=a.length;else if(D.compile)try{na=D.compile(v,d,Ka),x(na)?n(null,na,P,R):na&&n(na.pre,na.post,P,R)}catch(V){c(V,xa(v))}D.terminal&&(K.terminal=!0,H=Math.max(H,D.priority))}K.scope=S&&!0===S.scope;K.transcludeOnThisElement=N;K.templateOnThisElement=m;K.transclude=Ka;r.hasElementTranscludeDirective=ia;return K}function A(a){for(var b=0,c=a.length;bn.priority)&&-1!=n.restrict.indexOf(f)&&(k&&(n=Nb(n,{$$start:k,$$end:l})),b.push(n),g=n)}catch(H){c(H)}}return g}function I(b){if(e.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,f=c.length;d").append(b).html();try{return b[0].nodeType===Pa?F(c):c.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(a,b){return"<"+F(b)})}catch(d){return F(c)}}function xc(b){try{return decodeURIComponent(b)}catch(a){}} +function yc(b){var a={};m((b||"").split("&"),function(b){var d,e,f;b&&(e=b=b.replace(/\+/g,"%20"),d=b.indexOf("="),-1!==d&&(e=b.substring(0,d),f=b.substring(d+1)),e=xc(e),A(e)&&(f=A(f)?xc(f):!0,ta.call(a,e)?J(a[e])?a[e].push(f):a[e]=[a[e],f]:a[e]=f))});return a}function Pb(b){var a=[];m(b,function(b,d){J(b)?m(b,function(b){a.push(la(d,!0)+(!0===b?"":"="+la(b,!0)))}):a.push(la(d,!0)+(!0===b?"":"="+la(b,!0)))});return a.length?a.join("&"):""}function ob(b){return la(b,!0).replace(/%26/gi,"&").replace(/%3D/gi, +"=").replace(/%2B/gi,"+")}function la(b,a){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,a?"%20":"+")}function Yd(b,a){var c,d,e=Qa.length;for(d=0;d/,">"));}a=a||[];a.unshift(["$provide",function(a){a.value("$rootElement",b)}]);c.debugInfoEnabled&&a.push(["$compileProvider",function(a){a.debugInfoEnabled(!0)}]);a.unshift("ng");d=fb(a,c.strictDi);d.invoke(["$rootScope", +"$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return d},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;Q&&e.test(Q.name)&&(c.debugInfoEnabled=!0,Q.name=Q.name.replace(e,""));if(Q&&!f.test(Q.name))return d();Q.name=Q.name.replace(f,"");da.resumeBootstrap=function(b){m(b,function(b){a.push(b)});return d()};x(da.resumeDeferredBootstrap)&&da.resumeDeferredBootstrap()}function $d(){Q.name="NG_ENABLE_DEBUG_INFO!"+Q.name;Q.location.reload()} +function ae(b){b=da.element(b).injector();if(!b)throw Ea("test");return b.get("$$testability")}function Ac(b,a){a=a||"_";return b.replace(be,function(b,d){return(d?a:"")+b.toLowerCase()})}function ce(){var b;if(!Bc){var a=pb();(ra=v(a)?Q.jQuery:a?Q[a]:w)&&ra.fn.on?(B=ra,P(ra.fn,{scope:Ra.scope,isolateScope:Ra.isolateScope,controller:Ra.controller,injector:Ra.injector,inheritedData:Ra.inheritedData}),b=ra.cleanData,ra.cleanData=function(a){var d;if(Qb)Qb=!1;else for(var e=0,f;null!=(f=a[e]);e++)(d= +ra._data(f,"events"))&&d.$destroy&&ra(f).triggerHandler("$destroy");b(a)}):B=R;da.element=B;Bc=!0}}function qb(b,a,c){if(!b)throw Ea("areq",a||"?",c||"required");return b}function Sa(b,a,c){c&&J(b)&&(b=b[b.length-1]);qb(x(b),a,"not a function, got "+(b&&"object"===typeof b?b.constructor.name||"Object":typeof b));return b}function Ta(b,a){if("hasOwnProperty"===b)throw Ea("badname",a);}function Cc(b,a,c){if(!a)return b;a=a.split(".");for(var d,e=b,f=a.length,h=0;h")+d[2];for(d=d[0];d--;)c=c.lastChild;f=db(f,c.childNodes);c=e.firstChild;c.textContent=""}else f.push(a.createTextNode(b));e.textContent="";e.innerHTML="";m(f,function(a){e.appendChild(a)});return e}function R(b){if(b instanceof R)return b;var a;G(b)&&(b=T(b), +a=!0);if(!(this instanceof R)){if(a&&"<"!=b.charAt(0))throw Tb("nosel");return new R(b)}if(a){a=X;var c;b=(c=Ef.exec(b))?[a.createElement(c[1])]:(c=Mc(b,a))?c.childNodes:[]}Nc(this,b)}function Ub(b){return b.cloneNode(!0)}function ub(b,a){a||vb(b);if(b.querySelectorAll)for(var c=b.querySelectorAll("*"),d=0,e=c.length;dk&&this.remove(r.key);return b}},get:function(a){if(k").parent()[0])});var f= +S(a,b,a,c,d,e);W.$$addScopeClass(a);var g=null;return function(b,c,d){qb(b,"scope");d=d||{};var e=d.parentBoundTranscludeFn,h=d.transcludeControllers;d=d.futureParentElement;e&&e.$$boundTransclude&&(e=e.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==wa(d)&&d.toString().match(/SVG/)?"svg":"html":"html");d="html"!==g?B(Xb(g,B("
").append(a).html())):c?Ra.clone.call(a):a;if(h)for(var k in h)d.data("$"+k+"Controller",h[k].instance);W.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,e);return d}}function S(a, +b,c,d,e,f){function g(a,c,d,e){var f,k,l,r,n,t,O;if(q)for(O=Array(c.length),r=0;rD.priority)break;if(M=D.scope)D.templateUrl||(C(M)?(Q("new/isolated scope", +u||S,D,v),u=D):Q("new/isolated scope",u,D,v)),S=S||D;y=D.name;!D.templateUrl&&D.controller&&(M=D.controller,ba=ba||fa(),Q("'"+y+"' controller",ba[y],D,v),ba[y]=D);if(M=D.transclude)N=!0,D.$$tlb||(Q("transclusion",z,D,v),z=D),"element"==M?(ia=!0,H=D.priority,M=v,v=d.$$element=B(X.createComment(" "+y+": "+d[y]+" ")),b=v[0],U(f,ua.call(M,0),b),Ka=W(M,e,H,g&&g.name,{nonTlbTranscludeDirective:z})):(M=B(Ub(b)).contents(),v.empty(),Ka=W(M,e));if(D.template)if(m=!0,Q("template",L,D,v),L=D,M=x(D.template)? +D.template(v,d):D.template,M=ha(M),D.replace){g=D;M=Sb.test(M)?Xc(Xb(D.templateNamespace,T(M))):[];b=M[0];if(1!=M.length||b.nodeType!==pa)throw ga("tplrt",y,"");U(f,v,b);F={$attr:{}};M=ca(b,[],F);var Lf=a.splice(I+1,a.length-(I+1));u&&A(M);a=a.concat(M).concat(Lf);Yc(d,F);F=a.length}else v.html(M);if(D.templateUrl)m=!0,Q("template",L,D,v),L=D,D.replace&&(g=D),K=Mf(a.splice(I,a.length-I),v,d,f,N&&Ka,h,k,{controllerDirectives:ba,newScopeDirective:S!==D&&S,newIsolateScopeDirective:u,templateDirective:L, +nonTlbTranscludeDirective:z}),F=a.length;else if(D.compile)try{na=D.compile(v,d,Ka),x(na)?n(null,na,P,R):na&&n(na.pre,na.post,P,R)}catch(V){c(V,xa(v))}D.terminal&&(K.terminal=!0,H=Math.max(H,D.priority))}K.scope=S&&!0===S.scope;K.transcludeOnThisElement=N;K.templateOnThisElement=m;K.transclude=Ka;r.hasElementTranscludeDirective=ia;return K}function A(a){for(var b=0,c=a.length;bn.priority)&&-1!=n.restrict.indexOf(f)&&(k&&(n=Nb(n,{$$start:k,$$end:l})),b.push(n),h=n)}catch(H){c(H)}}return h}function I(b){if(e.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,f=c.length;d"+b+"";return c.childNodes[0].childNodes;default:return b}}function R(a,b){if("srcdoc"==b)return ia.HTML;var c=wa(a);if("xlinkHref"==b||"form"==c&&"action"==b||"img"!=c&&("src"==b|| -"ngSrc"==b))return ia.RESOURCE_URL}function V(a,c,d,e,f){var g=R(a,e);f=h[e]||f;var l=b(d,!0,g,f);if(l){if("multiple"===e&&"select"===wa(a))throw fa("selmulti",xa(a));c.push({priority:100,compile:function(){return{pre:function(a,c,h){c=h.$$observers||(h.$$observers={});if(k.test(e))throw fa("nodomevents");var r=h[e];r!==d&&(l=r&&b(r,!0,g,f),d=r);l&&(h[e]=l(a),(c[e]||(c[e]=[])).$$inter=!0,(h.$$observers&&h.$$observers[e].$$scope||a).$watch(l,function(a,b){"class"===e&&a!=b?h.$updateClass(a,b):h.$set(e, -a)}))}}}})}}function U(a,b,c){var d=b[0],e=b.length,f=d.parentNode,h,g;if(a)for(h=0,g=a.length;h=a)return b;for(;a--;)8===b[a].nodeType&&Kf.call(b,a,1);return b}function Ve(){var b={},a=!1;this.register=function(a,d){Ta(a,"controller");B(a)?P(b,a):b[a]=d};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(c,d){function e(a,b,c,d){if(!a||!B(a.$scope))throw I("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,g,h,l){var k,n,p;h=!0===h;l&&G(l)&&(p=l);if(G(f)){l=f.match(Uc);if(!l)throw Lf("ctrlfmt",f); -n=l[1];p=p||l[3];f=b.hasOwnProperty(n)?b[n]:Bc(g.$scope,n,!0)||(a?Bc(d,n,!0):w);Sa(f,n,!0)}if(h)return h=(J(f)?f[f.length-1]:f).prototype,k=Object.create(h||null),p&&e(g,p,k,n||f.name),P(function(){var a=c.invoke(f,k,g,n);a!==k&&(B(a)||x(a))&&(k=a,p&&e(g,p,k,n||f.name));return k},{instance:k,identifier:p});k=c.instantiate(f,g,n);p&&e(g,p,k,n||f.name);return k}}]}function We(){this.$get=["$window",function(b){return C(b.document)}]}function Xe(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b, -arguments)}}]}function Yb(b){return B(b)?da(b)?b.toISOString():eb(b):b}function bf(){this.$get=function(){return function(b){if(!b)return"";var a=[];mc(b,function(b,d){null===b||v(b)||(J(b)?m(b,function(b,c){a.push(la(d)+"="+la(Yb(b)))}):a.push(la(d)+"="+la(Yb(b))))});return a.join("&")}}}function cf(){this.$get=function(){return function(b){function a(b,e,f){null===b||v(b)||(J(b)?m(b,function(b,c){a(b,e+"["+(B(b)?c:"")+"]")}):B(b)&&!da(b)?mc(b,function(b,c){a(b,e+(f?"":"[")+c+(f?"":"]"))}):c.push(la(e)+ -"="+la(Yb(b))))}if(!b)return"";var c=[];a(b,"",!0);return c.join("&")}}}function Zb(b,a){if(G(b)){var c=b.replace(Mf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf($c))||(d=(d=c.match(Nf))&&Of[d[0]].test(c));d&&(b=uc(c))}}return b}function ad(b){var a=ha(),c;G(b)?m(b.split("\n"),function(b){c=b.indexOf(":");var e=F(T(b.substr(0,c)));b=T(b.substr(c+1));e&&(a[e]=a[e]?a[e]+", "+b:b)}):B(b)&&m(b,function(b,c){var f=F(c),g=T(b);f&&(a[f]=a[f]?a[f]+", "+g:g)});return a}function bd(b){var a; -return function(c){a||(a=ad(b));return c?(c=a[F(c)],void 0===c&&(c=null),c):a}}function cd(b,a,c,d){if(x(d))return d(b,a,c);m(d,function(d){b=d(b,a,c)});return b}function af(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return B(a)&&"[object File]"!==va.call(a)&&"[object Blob]"!==va.call(a)&&"[object FormData]"!==va.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ja($b),put:ja($b),patch:ja($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN", -paramSerializer:"$httpParamSerializer"},a=!1;this.useApplyAsync=function(b){return A(b)?(a=!!b,this):a};var c=!0;this.useLegacyPromiseExtensions=function(a){return A(a)?(c=!!a,this):c};var d=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,g,h,l,k){function n(a){function d(a){var b=P({},a);b.data=a.data?cd(a.data,a.headers,a.status,f.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:l.reject(b)}function e(a,b){var c, -d={};m(a,function(a,e){x(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a});return d}if(!aa.isObject(a))throw I("$http")("badreq",a);var f=P({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse,paramSerializer:b.paramSerializer},a);f.headers=function(a){var c=b.headers,d=P({},a.headers),f,h,g,c=P({},c.common,c[F(a.method)]);a:for(f in c){h=F(f);for(g in d)if(F(g)===h)continue a;d[f]=c[f]}return e(d,ja(a))}(a);f.method=sb(f.method);f.paramSerializer=G(f.paramSerializer)?k.get(f.paramSerializer): -f.paramSerializer;var h=[function(a){var c=a.headers,e=cd(a.data,bd(c),w,a.transformRequest);v(e)&&m(c,function(a,b){"content-type"===F(b)&&delete c[b]});v(a.withCredentials)&&!v(b.withCredentials)&&(a.withCredentials=b.withCredentials);return p(a,e).then(d,d)},w],g=l.when(f);for(m(E,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError);(a.response||a.responseError)&&h.push(a.response,a.responseError)});h.length;){a=h.shift();var r=h.shift(),g=g.then(a,r)}c?(g.success=function(a){Sa(a, -"fn");g.then(function(b){a(b.data,b.status,b.headers,f)});return g},g.error=function(a){Sa(a,"fn");g.then(null,function(b){a(b.data,b.status,b.headers,f)});return g}):(g.success=dd("success"),g.error=dd("error"));return g}function p(c,d){function g(b,c,d,e){function f(){k(c,b,d,e)}L&&(200<=b&&300>b?L.put(ba,[b,c,ad(d),e]):L.remove(ba));a?h.$applyAsync(f):(f(),h.$$phase||h.$apply())}function k(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?O.resolve:O.reject)({data:a,status:b,headers:bd(d),config:c,statusText:e})} -function p(a){k(a.data,a.status,ja(a.headers()),a.statusText)}function E(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var O=l.defer(),H=O.promise,L,m,S=c.headers,ba=r(c.url,c.paramSerializer(c.params));n.pendingRequests.push(c);H.then(E,E);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(L=B(c.cache)?c.cache:B(b.cache)?b.cache:t);L&&(m=L.get(ba),A(m)?m&&x(m.then)?m.then(p,p):J(m)?k(m[1],m[0],ja(m[2]),m[3]):k(m,200,{},"OK"):L.put(ba,H));v(m)&&((m= -ed(c.url)?f()[c.xsrfCookieName||b.xsrfCookieName]:w)&&(S[c.xsrfHeaderName||b.xsrfHeaderName]=m),e(c.method,ba,d,g,S,c.timeout,c.withCredentials,c.responseType));return H}function r(a,b){0=l&&(u.resolve(E),t(q.$$intervalId),delete f[q.$$intervalId]);K||b.$apply()}, -h);f[q.$$intervalId]=u;return q}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):!1};return e}]}function ac(b){b=b.split("/");for(var a=b.length;a--;)b[a]=ob(b[a]);return b.join("/")}function fd(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=Y(c.port)||Rf[c.protocol]||null}function gd(b,a){var c="/"!==b.charAt(0);c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&& -"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=xc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function sa(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ja(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Cb(b){return b.replace(/(#.+)|#$/,"$1")}function bc(b,a,c){this.$$html5=!0;c=c||"";fd(b,this);this.$$parse=function(b){var c=sa(a,b);if(!G(c))throw Db("ipthprfx",b,a);gd(c,this);this.$$path|| -(this.$$path="/");this.$$compose()};this.$$compose=function(){var b=Pb(this.$$search),c=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;A(f=sa(b,d))?(g=f,g=A(f=sa(c,f))?a+(sa("/",f)||f):b+g):A(f=sa(a,d))?g=a+f:a==d+"/"&&(g=a);g&&this.$$parse(g);return!!g}}function cc(b,a,c){fd(b,this);this.$$parse=function(d){var e=sa(b,d)||sa(a,d),f;v(e)||"#"!== -e.charAt(0)?this.$$html5?f=e:(f="",v(e)&&(b=d,this.replace())):(f=sa(c,e),v(f)&&(f=e));gd(f,this);d=this.$$path;var e=b,g=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));g.exec(f)||(d=(f=g.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl=function(a,c){return Ja(b)==Ja(a)?(this.$$parse(a),!0):!1}}function hd(b, -a,c){this.$$html5=!0;cc.apply(this,arguments);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;b==Ja(d)?f=d:(g=sa(a,d))?f=b+c+g:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Eb(b){return function(){return this[b]}}function id(b,a){return function(c){if(v(c))return this[b];this[b]=a(c);this.$$compose(); -return this}}function ef(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return A(a)?(b=a,this):b};this.html5Mode=function(b){return bb(b)?(a.enabled=b,this):B(b)?(bb(b.enabled)&&(a.enabled=b.enabled),bb(b.requireBase)&&(a.requireBase=b.requireBase),bb(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c,d,e,f,g){function h(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state= -d.state()}catch(h){throw k.url(e),k.$$state=f,h;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,n;n=d.baseHref();var p=d.url(),r;if(a.enabled){if(!n&&a.requireBase)throw Db("nobase");r=p.substring(0,p.indexOf("/",p.indexOf("//")+2))+(n||"/");n=e.history?bc:hd}else r=Ja(p),n=cc;var t=r.substr(0,Ja(r).lastIndexOf("/")+1);k=new n(r,t,"#"+b);k.$$parseLinkUrl(p,p);k.$$state=d.state();var E=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&& -!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=C(b.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var h=e.prop("href"),l=e.attr("href")||e.attr("xlink:href");B(h)&&"[object SVGAnimatedString]"===h.toString()&&(h=Aa(h.animVal).href);E.test(h)||!h||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(h,l)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),g.angular["ff-684208-preventDefault"]=!0))}});Cb(k.absUrl())!=Cb(p)&&d.url(k.absUrl(),!0);var K=!0;d.onUrlChange(function(a, -b){v(sa(t,a))?g.location.href=a:(c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,h(d,!1,e)):(K=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Cb(d.url()),b=Cb(k.absUrl()),f=d.state(),g=k.$$replace,r=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(K||r)K=!1,c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state, -f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(r&&h(b,g,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function ff(){var b=!0,a=this;this.debugEnabled=function(a){return A(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log|| -y;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];m(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function Xa(b,a){b=B(b)&&b.toString?b.toString():b;if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"===b||"__proto__"===b)throw ea("isecfld",a);return b} -function Ba(b,a){if(b){if(b.constructor===b)throw ea("isecfn",a);if(b.window===b)throw ea("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw ea("isecdom",a);if(b===Object)throw ea("isecobj",a);}return b}function jd(b,a){if(b){if(b.constructor===b)throw ea("isecfn",a);if(b===Sf||b===Tf||b===Uf)throw ea("isecff",a);}}function Vf(b,a){return"undefined"!==typeof b?b:a}function kd(b,a){return"undefined"===typeof b?a:"undefined"===typeof a?b:b+a}function U(b,a){var c,d;switch(b.type){case s.Program:c= -!0;m(b.body,function(b){U(b.expression,a);c=c&&b.expression.constant});b.constant=c;break;case s.Literal:b.constant=!0;b.toWatch=[];break;case s.UnaryExpression:U(b.argument,a);b.constant=b.argument.constant;b.toWatch=b.argument.toWatch;break;case s.BinaryExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.left.toWatch.concat(b.right.toWatch);break;case s.LogicalExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.constant? -[]:[b];break;case s.ConditionalExpression:U(b.test,a);U(b.alternate,a);U(b.consequent,a);b.constant=b.test.constant&&b.alternate.constant&&b.consequent.constant;b.toWatch=b.constant?[]:[b];break;case s.Identifier:b.constant=!1;b.toWatch=[b];break;case s.MemberExpression:U(b.object,a);b.computed&&U(b.property,a);b.constant=b.object.constant&&(!b.computed||b.property.constant);b.toWatch=[b];break;case s.CallExpression:c=b.filter?!a(b.callee.name).$stateful:!1;d=[];m(b.arguments,function(b){U(b,a);c= -c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=b.filter&&!a(b.callee.name).$stateful?d:[b];break;case s.AssignmentExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=[b];break;case s.ArrayExpression:c=!0;d=[];m(b.elements,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=d;break;case s.ObjectExpression:c=!0;d=[];m(b.properties,function(b){U(b.value,a);c=c&&b.value.constant;b.value.constant|| -d.push.apply(d,b.value.toWatch)});b.constant=c;b.toWatch=d;break;case s.ThisExpression:b.constant=!1,b.toWatch=[]}}function ld(b){if(1==b.length){b=b[0].expression;var a=b.toWatch;return 1!==a.length?a:a[0]!==b?a:w}}function md(b){return b.type===s.Identifier||b.type===s.MemberExpression}function nd(b){if(1===b.body.length&&md(b.body[0].expression))return{type:s.AssignmentExpression,left:b.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function od(b){return 0===b.body.length||1=== -b.body.length&&(b.body[0].expression.type===s.Literal||b.body[0].expression.type===s.ArrayExpression||b.body[0].expression.type===s.ObjectExpression)}function pd(b,a){this.astBuilder=b;this.$filter=a}function qd(b,a){this.astBuilder=b;this.$filter=a}function Fb(b){return"constructor"==b}function dc(b){return x(b.valueOf)?b.valueOf():Wf.call(b)}function gf(){var b=ha(),a=ha();this.$get=["$filter",function(c){function d(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=dc(a),"object"===typeof a)? -!1:a===b||a!==a&&b!==b}function e(a,b,c,e,f){var h=e.inputs,g;if(1===h.length){var k=d,h=h[0];return a.$watch(function(a){var b=h(a);d(b,k)||(g=e(a,w,w,[b]),k=b&&dc(b));return g},b,c,f)}for(var l=[],n=[],p=0,m=h.length;p=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,h=d.length;fa)for(b in l++,f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}} -c.$stateful=!0;var d=this,e,f,g,k=1t&&(D=4-t,u[D]||(u[D]=[]),u[D].push({msg:x(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:h}));else if(b===d){r=!1;break a}}catch(y){g(y)}if(!(k=m.$$watchersCount&&m.$$childHead||m!==this&&m.$$nextSibling))for(;m!==this&&!(k=m.$$nextSibling);)m=m.$parent}while(m= -k);if((r||z.length)&&!t--)throw q.$$phase=null,c("infdig",a,u);}while(r||z.length);for(q.$$phase=null;N.length;)try{N.shift()()}catch(A){g(A)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===q&&l.$$applicationDestroyed();r(this,-this.$$watchersCount);for(var b in this.$$listenerCount)t(this,this.$$listenerCount[b],b);a&&a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling); -this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=y;this.$on=this.$watch=this.$watchGroup=function(){return y};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(a,b){return h(a)(this,b)},$evalAsync:function(a,b){q.$$phase||z.length|| -l.defer(function(){z.length&&q.$digest()});z.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){N.push(a)},$apply:function(a){try{p("$apply");try{return this.$eval(a)}finally{q.$$phase=null}}catch(b){g(b)}finally{try{q.$digest()}catch(c){throw g(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&w.push(b);u()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++; -while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,t(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,h={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=db([h],arguments,1),l,n;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(n=d.length;lWa)throw Ca("iequirks");var d=ja(oa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b}, -d.valueOf=$a);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,g=d.trustAs;m(oa,function(a,b){var c=F(b);d[gb("parse_as_"+c)]=function(b){return e(a,b)};d[gb("get_trusted_"+c)]=function(b){return f(a,b)};d[gb("trust_as_"+c)]=function(b){return g(a,b)}});return d}]}function nf(){this.$get=["$window","$document",function(b,a){var c={},d=Y((/android (\d+)/.exec(F((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator|| -{}).userAgent),f=a[0]||{},g,h=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,n=!1;if(l){for(var p in l)if(k=h.exec(p)){g=k[0];g=g.substr(0,1).toUpperCase()+g.substr(1);break}g||(g="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||g+"Transition"in l);n=!!("animation"in l||g+"Animation"in l);!d||k&&n||(k=G(l.webkitTransition),n=G(l.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Wa)return!1;if(v(c[a])){var b=f.createElement("div"); -c[a]="on"+a in b}return c[a]},csp:Fa(),vendorPrefix:g,transitions:k,animations:n,android:d}}]}function pf(){this.$get=["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,g){e.totalPendingRequests++;G(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var h=a.defaults&&a.defaults.transformResponse;J(h)?h=h.filter(function(a){return a!==Zb}):h===Zb&&(h=null);return a.get(f,{cache:b,transformResponse:h})["finally"](function(){e.totalPendingRequests--}).then(function(a){b.put(f,a.data);return a.data}, -function(a){if(!g)throw fa("tpload",f,a.status,a.statusText);return c.reject(a)})}e.totalPendingRequests=0;return e}]}function qf(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var g=[];m(a,function(a){var d=aa.element(a).data("$binding");d&&m(d,function(d){c?(new RegExp("(^|\\s)"+sd(b)+"(\\s|\\||$)")).test(d)&&g.push(a):-1!=d.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,c){for(var g=["ng-", -"data-ng-","ng\\:"],h=0;hb;b=Math.abs(b);var g=Infinity===b;if(!g&&!isFinite(b))return"";var h=b+"",l="",k=!1,n=[];g&&(l="\u221e");if(!g&&-1!==h.indexOf("e")){var p=h.match(/([\d\.]+)e(-?)(\d+)/); -p&&"-"==p[2]&&p[3]>e+1?b=0:(l=h,k=!0)}if(g||k)0b&&(l=b.toFixed(e),b=parseFloat(l));else{g=(h.split(Bd)[1]||"").length;v(e)&&(e=Math.min(Math.max(a.minFrac,g),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var g=(""+b).split(Bd),h=g[0],g=g[1]||"",p=0,r=a.lgSize,t=a.gSize;if(h.length>=r+t)for(p=h.length-r,k=0;kb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Gb(e,a,d)}}function Hb(b,a){return function(c,d){var e=c["get"+b](),f=sb(a?"SHORT"+b:b);return d[f][e]}}function Cd(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5: -12)-a)}function Dd(b){return function(a){var c=Cd(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Gb(a,b)}}function hc(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function xd(b){function a(a){var b;if(b=a.match(c)){a=new Date(0);var f=0,g=0,h=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=Y(b[9]+b[10]),g=Y(b[9]+b[11]));h.call(a,Y(b[1]),Y(b[2])-1,Y(b[3]));f=Y(b[4]||0)-f;g=Y(b[5]||0)-g;h=Y(b[6]|| -0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,g,h,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var g="",h=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;G(c)&&(c=dg.test(c)?Y(c):a(c));V(c)&&(c=new Date(c));if(!da(c)||!isFinite(c.getTime()))return c;for(;e;)(k=eg.exec(e))?(h=db(h,k,1),e=h.pop()):(h.push(e),e=null);var n=c.getTimezoneOffset();f&&(n=vc(f,c.getTimezoneOffset()),c=Ob(c, -f,!0));m(h,function(a){l=fg[a];g+=l?l(c,b.DATETIME_FORMATS,n):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Zf(){return function(b,a){v(a)&&(a=2);return eb(b,a)}}function $f(){return function(b,a,c){a=Infinity===Math.abs(Number(a))?Number(a):Y(a);if(isNaN(a))return b;V(b)&&(b=b.toString());if(!J(b)&&!G(b))return b;c=!c||isNaN(c)?0:Y(c);c=0>c&&c>=-b.length?b.length+c:c;return 0<=a?b.slice(c,c+a):0===c?b.slice(a,b.length):b.slice(Math.max(0,c+a),c)}}function zd(b){function a(a,c){c= -c?-1:1;return a.map(function(a){var d=1,h=$a;if(x(a))h=a;else if(G(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))d="-"==a.charAt(0)?-1:1,a=a.substring(1);if(""!==a&&(h=b(a),h.constant))var l=h(),h=function(a){return a[l]}}return{get:h,descending:d*c}})}function c(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}return function(b,e,f){if(!Da(b))return b;J(e)||(e=[e]);0===e.length&&(e=["+"]);var g=a(e,f);g.push({get:function(){return{}},descending:f?-1:1});b=Array.prototype.map.call(b, -function(a,b){return{value:a,predicateValues:g.map(function(d){var e=d.get(a);d=typeof e;if(null===e)d="string",e="null";else if("string"===d)e=e.toLowerCase();else if("object"===d)a:{if("function"===typeof e.valueOf&&(e=e.valueOf(),c(e)))break a;if(pc(e)&&(e=e.toString(),c(e)))break a;e=b}return{value:e,type:d}})}});b.sort(function(a,b){for(var c=0,d=0,e=g.length;db||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",n)}a.on("change",l);d.$render=function(){var b=d.$isEmpty(d.$viewValue)?"":d.$viewValue;a.val()!==b&&a.val(b)}}function Kb(b,a){return function(c,d){var e,f;if(da(c))return c;if(G(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(gg.test(c))return new Date(c); -b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},m(e,function(b,c){c=s};g.$observe("min",function(a){s=r(a);h.$validate()})}if(A(g.max)||g.ngMax){var u;h.$validators.max= -function(a){return!p(a)||v(u)||c(a)<=u};g.$observe("max",function(a){u=r(a);h.$validate()})}}}function Gd(b,a,c,d){(d.$$hasNativeValidators=B(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?w:b})}function Hd(b,a,c,d,e){if(A(d)){b=b(d);if(!b.constant)throw lb("constexpr",c,d);return b(a)}return e}function jc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Sb=/<|&#?\w+;/,zf=/<([\w:]+)/,Af=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ma={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"", -"
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option;ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead;ma.th=ma.td;var Ra=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===X.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(Q).on("load",a))},toString:function(){var b=[];m(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?C(this[b]):C(this[this.length+b])},length:0, -push:ig,sort:[].sort,splice:[].splice},Bb={};m("multiple selected checked disabled readOnly required open".split(" "),function(b){Bb[F(b)]=b});var Rc={};m("input select option textarea button form details".split(" "),function(b){Rc[b]=!0});var Zc={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};m({data:Vb,removeData:vb,hasData:function(b){for(var a in hb[b.ng339])return!0;return!1}},function(b,a){R[a]=b});m({data:Vb,inheritedData:Ab,scope:function(b){return C.data(b, -"$scope")||Ab(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return C.data(b,"$isolateScope")||C.data(b,"$isolateScopeNoTemplate")},controller:Oc,injector:function(b){return Ab(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:xb,css:function(b,a,c){a=gb(a);if(A(c))b.style[a]=c;else return b.style[a]},attr:function(b,a,c){var d=b.nodeType;if(d!==Pa&&2!==d&&8!==d)if(d=F(a),Bb[d])if(A(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]|| -(b.attributes.getNamedItem(a)||y).specified?d:w;else if(A(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?w:b},prop:function(b,a,c){if(A(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(v(b)){var d=a.nodeType;return d===pa||d===Pa?a.textContent:""}a.textContent=b}b.$dv="";return b}(),val:function(b,a){if(v(a)){if(b.multiple&&"select"===wa(b)){var c=[];m(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value= -a},html:function(b,a){if(v(a))return b.innerHTML;ub(b,!0);b.innerHTML=a},empty:Pc},function(b,a){R.prototype[a]=function(a,d){var e,f,g=this.length;if(b!==Pc&&v(2==b.length&&b!==xb&&b!==Oc?a:d)){if(B(a)){for(e=0;e <= >= && || ! = |".split(" "),function(a){Lb[a]=!0});var pg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},ec=function(a){this.options=a};ec.prototype={constructor:ec,lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=A(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw ea("lexerr",a,c,this.text); -},readNumber:function(){for(var a="",c=this.index;this.index","<=",">=");)a={type:s.BinaryExpression,operator:c.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a={type:s.BinaryExpression,operator:c.text, -left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a={type:s.BinaryExpression,operator:c.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:s.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object(): -this.constants.hasOwnProperty(this.peek().text)?a=ga(this.constants[this.consume().text]):this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var c;c=this.expect("(","[",".");)"("===c.text?(a={type:s.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):"["===c.text?(a={type:s.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===c.text?a={type:s.MemberExpression, -object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var c={type:s.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return c},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.expression());while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:s.Identifier, -name:a.text}},constant:function(){return{type:s.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:s.ArrayExpression,elements:a}},object:function(){var a=[],c;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;c={type:s.Property,kind:"init"};this.peek().constant?c.key=this.constant():this.peek().identifier?c.key=this.identifier(): -this.throwError("invalid key",this.peek());this.consume(":");c.value=this.expression();a.push(c)}while(this.expect(","))}this.consume("}");return{type:s.ObjectExpression,properties:a}},throwError:function(a,c){throw ea("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},consume:function(a){if(0===this.tokens.length)throw ea("ueoe",this.text);var c=this.expect(a);c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},peekToken:function(){if(0===this.tokens.length)throw ea("ueoe", -this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a];var g=a.text;if(g===c||g===d||g===e||g===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},constants:{"true":{type:s.Literal,value:!0},"false":{type:s.Literal,value:!1},"null":{type:s.Literal,value:null},undefined:{type:s.Literal,value:w},"this":{type:s.ThisExpression}}}; -pd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:c,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};U(e,d.$filter);var f="",g;this.stage="assign";if(g=nd(e))this.state.computing="assign",f=this.nextId(),this.recurse(g,f),this.return_(f),f="fn.assign="+this.generateFunction("assign","s,v,l");g=ld(e.body);d.stage="inputs";m(g,function(a,c){var e="fn"+c;d.state[e]={vars:[],body:[],own:{}};d.state.computing=e; -var f=d.nextId();d.recurse(a,f);d.return_(f);d.state.inputs.push(e);a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(e);f='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+f+this.watchFns()+"return fn;";f=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","ifDefined","plus","text",f))(this.$filter,Xa,Ba,jd,Vf,kd,a);this.state=this.stage=w;f.literal=od(e);f.constant=e.constant;return f}, -USE:"use",STRICT:"strict",watchFns:function(){var a=[],c=this.state.inputs,d=this;m(c,function(c){a.push("var "+c+"="+d.generateFunction(c,"s"))});c.length&&a.push("fn.inputs=["+c.join(",")+"];");return a.join("")},generateFunction:function(a,c){return"function("+c+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],c=this;m(this.state.filters,function(d,e){a.push(d+"=$filter("+c.escape(e)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length? -"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,c,d,e,f,g){var h,l,k=this,n,p;e=e||y;if(!g&&A(a.watchId))c=c||this.nextId(),this.if_("i",this.lazyAssign(c,this.computedMember("i",a.watchId)),this.lazyRecurse(a,c,d,e,f,!0));else switch(a.type){case s.Program:m(a.body,function(c,d){k.recurse(c.expression,w,w,function(a){l=a});d!==a.body.length-1?k.current().body.push(l,";"):k.return_(l)});break;case s.Literal:p=this.escape(a.value); -this.assign(c,p);e(p);break;case s.UnaryExpression:this.recurse(a.argument,w,w,function(a){l=a});p=a.operator+"("+this.ifDefined(l,0)+")";this.assign(c,p);e(p);break;case s.BinaryExpression:this.recurse(a.left,w,w,function(a){h=a});this.recurse(a.right,w,w,function(a){l=a});p="+"===a.operator?this.plus(h,l):"-"===a.operator?this.ifDefined(h,0)+a.operator+this.ifDefined(l,0):"("+h+")"+a.operator+"("+l+")";this.assign(c,p);e(p);break;case s.LogicalExpression:c=c||this.nextId();k.recurse(a.left,c);k.if_("&&"=== -a.operator?c:k.not(c),k.lazyRecurse(a.right,c));e(c);break;case s.ConditionalExpression:c=c||this.nextId();k.recurse(a.test,c);k.if_(c,k.lazyRecurse(a.alternate,c),k.lazyRecurse(a.consequent,c));e(c);break;case s.Identifier:c=c||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);Xa(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){f&& -1!==f&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(c,k.nonComputedMember("s",a.name))})},c&&k.lazyAssign(c,k.nonComputedMember("l",a.name)));(k.state.expensiveChecks||Fb(a.name))&&k.addEnsureSafeObject(c);e(c);break;case s.MemberExpression:h=d&&(d.context=this.nextId())||this.nextId();c=c||this.nextId();k.recurse(a.object,h,w,function(){k.if_(k.notNull(h),function(){if(a.computed)l=k.nextId(),k.recurse(a.property,l),k.addEnsureSafeMemberName(l), -f&&1!==f&&k.if_(k.not(k.computedMember(h,l)),k.lazyAssign(k.computedMember(h,l),"{}")),p=k.ensureSafeObject(k.computedMember(h,l)),k.assign(c,p),d&&(d.computed=!0,d.name=l);else{Xa(a.property.name);f&&1!==f&&k.if_(k.not(k.nonComputedMember(h,a.property.name)),k.lazyAssign(k.nonComputedMember(h,a.property.name),"{}"));p=k.nonComputedMember(h,a.property.name);if(k.state.expensiveChecks||Fb(a.property.name))p=k.ensureSafeObject(p);k.assign(c,p);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(c, -"undefined")});e(c)},!!f);break;case s.CallExpression:c=c||this.nextId();a.filter?(l=k.filter(a.callee.name),n=[],m(a.arguments,function(a){var c=k.nextId();k.recurse(a,c);n.push(c)}),p=l+"("+n.join(",")+")",k.assign(c,p),e(c)):(l=k.nextId(),h={},n=[],k.recurse(a.callee,l,h,function(){k.if_(k.notNull(l),function(){k.addEnsureSafeFunction(l);m(a.arguments,function(a){k.recurse(a,k.nextId(),w,function(a){n.push(k.ensureSafeObject(a))})});h.name?(k.state.expensiveChecks||k.addEnsureSafeObject(h.context), -p=k.member(h.context,h.name,h.computed)+"("+n.join(",")+")"):p=l+"("+n.join(",")+")";p=k.ensureSafeObject(p);k.assign(c,p)},function(){k.assign(c,"undefined")});e(c)}));break;case s.AssignmentExpression:l=this.nextId();h={};if(!md(a.left))throw ea("lval");this.recurse(a.left,w,h,function(){k.if_(k.notNull(h.context),function(){k.recurse(a.right,l);k.addEnsureSafeObject(k.member(h.context,h.name,h.computed));p=k.member(h.context,h.name,h.computed)+a.operator+l;k.assign(c,p);e(c||p)})},1);break;case s.ArrayExpression:n= -[];m(a.elements,function(a){k.recurse(a,k.nextId(),w,function(a){n.push(a)})});p="["+n.join(",")+"]";this.assign(c,p);e(p);break;case s.ObjectExpression:n=[];m(a.properties,function(a){k.recurse(a.value,k.nextId(),w,function(c){n.push(k.escape(a.key.type===s.Identifier?a.key.name:""+a.key.value)+":"+c)})});p="{"+n.join(",")+"}";this.assign(c,p);e(p);break;case s.ThisExpression:this.assign(c,"s");e("s");break;case s.NGValueParameter:this.assign(c,"v"),e("v")}},getHasOwnProperty:function(a,c){var d= -a+"."+c,e=this.current().own;e.hasOwnProperty(d)||(e[d]=this.nextId(!1,a+"&&("+this.escape(c)+" in "+a+")"));return e[d]},assign:function(a,c){if(a)return this.current().body.push(a,"=",c,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,c){return"ifDefined("+a+","+this.escape(c)+")"},plus:function(a,c){return"plus("+a+","+c+")"},return_:function(a){this.current().body.push("return ",a,";")}, -if_:function(a,c,d){if(!0===a)c();else{var e=this.current().body;e.push("if(",a,"){");c();e.push("}");d&&(e.push("else{"),d(),e.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,c){return a+"."+c},computedMember:function(a,c){return a+"["+c+"]"},member:function(a,c,d){return d?this.computedMember(a,c):this.nonComputedMember(a,c)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a), -";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},lazyRecurse:function(a,c,d,e,f,g){var h=this;return function(){h.recurse(a,c,d,e,f,g)}},lazyAssign:function(a,c){var d=this;return function(){d.assign(a,c)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g, -stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(G(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(V(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw ea("esc");},nextId:function(a,c){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(c?"="+c:""));return d},current:function(){return this.state[this.state.computing]}}; -qd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=c;U(e,d.$filter);var f,g;if(f=nd(e))g=this.recurse(f);f=ld(e.body);var h;f&&(h=[],m(f,function(a,c){var e=d.recurse(a);a.input=e;h.push(e);a.watchId=c}));var l=[];m(e.body,function(a){l.push(d.recurse(a.expression))});f=0===e.body.length?function(){}:1===e.body.length?l[0]:function(a,c){var d;m(l,function(e){d=e(a,c)});return d};g&&(f.assign=function(a,c,d){return g(a,d,c)});h&&(f.inputs= -h);f.literal=od(e);f.constant=e.constant;return f},recurse:function(a,c,d){var e,f,g=this,h;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case s.Literal:return this.value(a.value,c);case s.UnaryExpression:return f=this.recurse(a.argument),this["unary"+a.operator](f,c);case s.BinaryExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case s.LogicalExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e, -f,c);case s.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),c);case s.Identifier:return Xa(a.name,g.expression),g.identifier(a.name,g.expensiveChecks||Fb(a.name),c,d,g.expression);case s.MemberExpression:return e=this.recurse(a.object,!1,!!d),a.computed||(Xa(a.property.name,g.expression),f=a.property.name),a.computed&&(f=this.recurse(a.property)),a.computed?this.computedMember(e,f,c,d,g.expression):this.nonComputedMember(e,f, -g.expensiveChecks,c,d,g.expression);case s.CallExpression:return h=[],m(a.arguments,function(a){h.push(g.recurse(a))}),a.filter&&(f=this.$filter(a.callee.name)),a.filter||(f=this.recurse(a.callee,!0)),a.filter?function(a,d,e,g){for(var r=[],m=0;m":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)>c(e,f,g,h);return d?{value:e}:e}},"binary<=":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)<=c(e,f,g,h);return d?{value:e}:e}},"binary>=":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)>=c(e,f,g,h);return d?{value:e}:e}},"binary&&":function(a,c,d){return function(e,f,g,h){e= -a(e,f,g,h)&&c(e,f,g,h);return d?{value:e}:e}},"binary||":function(a,c,d){return function(e,f,g,h){e=a(e,f,g,h)||c(e,f,g,h);return d?{value:e}:e}},"ternary?:":function(a,c,d,e){return function(f,g,h,l){f=a(f,g,h,l)?c(f,g,h,l):d(f,g,h,l);return e?{value:f}:f}},value:function(a,c){return function(){return c?{context:w,name:w,value:a}:a}},identifier:function(a,c,d,e,f){return function(g,h,l,k){g=h&&a in h?h:g;e&&1!==e&&g&&!g[a]&&(g[a]={});h=g?g[a]:w;c&&Ba(h,f);return d?{context:g,name:a,value:h}:h}}, -computedMember:function(a,c,d,e,f){return function(g,h,l,k){var n=a(g,h,l,k),p,m;null!=n&&(p=c(g,h,l,k),Xa(p,f),e&&1!==e&&n&&!n[p]&&(n[p]={}),m=n[p],Ba(m,f));return d?{context:n,name:p,value:m}:m}},nonComputedMember:function(a,c,d,e,f,g){return function(h,l,k,n){h=a(h,l,k,n);f&&1!==f&&h&&!h[c]&&(h[c]={});l=null!=h?h[c]:w;(d||Fb(c))&&Ba(l,g);return e?{context:h,name:c,value:l}:l}},inputs:function(a,c){return function(d,e,f,g){return g?g[c]:a(d,e,f)}}};var fc=function(a,c,d){this.lexer=a;this.$filter= -c;this.options=d;this.ast=new s(this.lexer);this.astCompiler=d.csp?new qd(this.ast,c):new pd(this.ast,c)};fc.prototype={constructor:fc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};ha();ha();var Wf=Object.prototype.valueOf,Ca=I("$sce"),oa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},fa=I("$compile"),Z=X.createElement("a"),ud=Aa(Q.location.href);vd.$inject=["$document"];Jc.$inject=["$provide"];wd.$inject=["$locale"];yd.$inject=["$locale"]; -var Bd=".",fg={yyyy:$("FullYear",4),yy:$("FullYear",2,0,!0),y:$("FullYear",1),MMMM:Hb("Month"),MMM:Hb("Month",!0),MM:$("Month",2,1),M:$("Month",1,1),dd:$("Date",2),d:$("Date",1),HH:$("Hours",2),H:$("Hours",1),hh:$("Hours",2,-12),h:$("Hours",1,-12),mm:$("Minutes",2),m:$("Minutes",1),ss:$("Seconds",2),s:$("Seconds",1),sss:$("Milliseconds",3),EEEE:Hb("Day"),EEE:Hb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a,c,d){a=-1*d;return a=(0<=a?"+":"")+(Gb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},eg=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,dg=/^\-?\d+$/;xd.$inject=["$locale"];var ag=qa(F),bg=qa(sb);zd.$inject=["$parse"];var fe=qa({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"===va.call(c.prop("href"))? -"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),tb={};m(Bb,function(a,c){function d(a,d,f){a.$watch(f[e],function(a){f.$set(c,!!a)})}if("multiple"!=a){var e=ya("ng-"+c),f=d;"checked"===a&&(f=function(a,c,f){f.ngModel!==f[e]&&d(a,c,f)});tb[e]=function(){return{restrict:"A",priority:100,link:f}}}});m(Zc,function(a,c){tb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(hg))){f.$set("ngPattern", -new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});m(["src","srcset","href"],function(a){var c=ya("ng-"+a);tb[c]=function(){return{priority:99,link:function(d,e,f){var g=a,h=a;"href"===a&&"[object SVGAnimatedString]"===va.call(e.prop("href"))&&(h="xlinkHref",f.$attr[h]="xlink:href",g=null);f.$observe(c,function(c){c?(f.$set(h,c),Wa&&g&&e.prop(g,f[h])):"href"===a&&f.$set(h,null)})}}}});var Ib={$addControl:y,$$renameControl:function(a,c){a.$name=c},$removeControl:y,$setValidity:y, -$setDirty:y,$setPristine:y,$setSubmitted:y};Ed.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Md=function(a){return["$timeout","$parse",function(c,d){function e(a){return""===a?d('this[""]').assign:d(a).assign||y}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Ed,compile:function(d,g){d.addClass(Ya).addClass(mb);var h=g.name?"name":a&&g.ngForm?"ngForm":!1;return{pre:function(a,d,f,g){var m=g[0];if(!("action"in f)){var t=function(c){a.$apply(function(){m.$commitViewValue(); -m.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",t,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",t,!1)},0,!1)})}(g[1]||m.$$parentForm).$addControl(m);var s=h?e(m.$name):y;h&&(s(a,m),f.$observe(h,function(c){m.$name!==c&&(s(a,w),m.$$parentForm.$$renameControl(m,c),s=e(m.$name),s(a,m))}));d.on("$destroy",function(){m.$$parentForm.$removeControl(m);s(a,w);P(m,Ib)})}}}}}]},ge=Md(),te=Md(!0),gg=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/, -qg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,rg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,sg=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Nd=/^(\d{4})-(\d{2})-(\d{2})$/,Od=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,kc=/^(\d{4})-W(\d\d)$/,Pd=/^(\d{4})-(\d\d)$/,Qd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Rd={text:function(a,c,d,e,f,g){jb(a,c,d,e,f,g);ic(e)},date:kb("date", -Nd,Kb(Nd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kb("datetimelocal",Od,Kb(Od,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:kb("time",Qd,Kb(Qd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kb("week",kc,function(a,c){if(da(a))return a;if(G(a)){kc.lastIndex=0;var d=kc.exec(a);if(d){var e=+d[1],f=+d[2],g=d=0,h=0,l=0,k=Cd(e),f=7*(f-1);c&&(d=c.getHours(),g=c.getMinutes(),h=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,g,h,l)}}return NaN},"yyyy-Www"), -month:kb("month",Pd,Kb(Pd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,g){Gd(a,c,d,e);jb(a,c,d,e,f,g);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:sg.test(a)?parseFloat(a):w});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!V(a))throw lb("numfmt",a);a=a.toString()}return a});if(A(d.min)||d.ngMin){var h;e.$validators.min=function(a){return e.$isEmpty(a)||v(h)||a>=h};d.$observe("min",function(a){A(a)&&!V(a)&&(a=parseFloat(a,10));h=V(a)&&!isNaN(a)?a:w;e.$validate()})}if(A(d.max)|| -d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||v(l)||a<=l};d.$observe("max",function(a){A(a)&&!V(a)&&(a=parseFloat(a,10));l=V(a)&&!isNaN(a)?a:w;e.$validate()})}},url:function(a,c,d,e,f,g){jb(a,c,d,e,f,g);ic(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||qg.test(d)}},email:function(a,c,d,e,f,g){jb(a,c,d,e,f,g);ic(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||rg.test(d)}},radio:function(a,c, -d,e){v(d.name)&&c.attr("name",++nb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,g,h,l){var k=Hd(l,a,"ngTrueValue",d.ngTrueValue,!0),n=Hd(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ka(a, -k)});e.$parsers.push(function(a){return a?k:n})},hidden:y,button:y,submit:y,reset:y,file:y},Dc=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,g,h,l){l[0]&&(Rd[F(h.type)]||Rd.text)(f,g,h,l[0],c,a,d,e)}}}}],tg=/^(true|false|\d+)$/,Le=function(){return{restrict:"A",priority:100,compile:function(a,c){return tg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value", -a)})}}}},le=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=v(a)?"":a})}}}}],ne=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,g){d=a(f.attr(g.$attr.ngBindTemplate));c.$$addBindingInfo(f,d.expressions);f=f[0];g.$observe("ngBindTemplate",function(a){f.textContent=v(a)?"":a})}}}}],me=["$sce","$parse", -"$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var g=c(f.ngBindHtml),h=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(h,function(){e.html(a.getTrustedHtml(g(c))||"")})}}}}],Ke=qa({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),oe=jc("",!0),qe=jc("Odd",0),pe=jc("Even",1),re=Na({compile:function(a,c){c.$set("ngCloak", -w);a.removeClass("ng-cloak")}}),se=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ic={},ug={blur:!0,focus:!0};m("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Ic[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,g){var h=d(g[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){h(c,{$event:d})}; -ug[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var ve=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,g){var h,l,k;c.$watch(e.ngIf,function(c){c?l||g(function(c,f){l=f;c[c.length++]=X.createComment(" end ngIf: "+e.ngIf+" ");h={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),h&&(k=rb(h.clone),a.leave(k).then(function(){k=null}),h=null))})}}}],we=["$templateRequest","$anchorScroll", -"$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:aa.noop,compile:function(e,f){var g=f.ngInclude||f.src,h=f.onload||"",l=f.autoscroll;return function(e,f,m,r,t){var s=0,v,u,q,z=function(){u&&(u.remove(),u=null);v&&(v.$destroy(),v=null);q&&(d.leave(q).then(function(){u=null}),u=q,q=null)};e.$watch(g,function(g){var m=function(){!A(l)||l&&!e.$eval(l)||c()},p=++s;g?(a(g,!0).then(function(a){if(p===s){var c=e.$new();r.template=a;a=t(c,function(a){z(); -d.enter(a,null,f).then(m)});v=c;q=a;v.$emit("$includeContentLoaded",g);e.$eval(h)}},function(){p===s&&(z(),e.$emit("$includeContentError",g))}),e.$emit("$includeContentRequested",g)):(z(),r.template=null)})}}}}],Ne=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Lc(f.template,X).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],xe=Na({priority:450, -compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Je=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",g="false"!==d.ngTrim,h=g?T(f):f;e.$parsers.push(function(a){if(!v(a)){var c=[];a&&m(a.split(h),function(a){a&&c.push(g?T(a):a)});return c}});e.$formatters.push(function(a){return J(a)?a.join(f):w});e.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",Id="ng-invalid",Ya="ng-pristine",Jb="ng-dirty",Kd= -"ng-pending",lb=I("ngModel"),vg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,g,h,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=w;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending= -w;this.$name=n(d.name||"",!1)(a);this.$$parentForm=Ib;var p=f(d.ngModel),r=p.assign,t=p,s=r,K=null,u,q=this;this.$$setOptions=function(a){if((q.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),h=f(d.ngModel+"($$$p)");t=function(a){var d=p(a);x(d)&&(d=c(a));return d};s=function(a,c){x(p(a))?h(a,{$$$p:q.$modelValue}):r(a,q.$modelValue)}}else if(!p.assign)throw lb("nonassign",d.ngModel,xa(e));};this.$render=y;this.$isEmpty=function(a){return v(a)||""===a||null===a||a!==a};var z=0;Fd({ctrl:this,$element:e, -set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},$animate:g});this.$setPristine=function(){q.$dirty=!1;q.$pristine=!0;g.removeClass(e,Jb);g.addClass(e,Ya)};this.$setDirty=function(){q.$dirty=!0;q.$pristine=!1;g.removeClass(e,Ya);g.addClass(e,Jb);q.$$parentForm.$setDirty()};this.$setUntouched=function(){q.$touched=!1;q.$untouched=!0;g.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){q.$touched=!0;q.$untouched=!1;g.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue= -function(){h.cancel(K);q.$viewValue=q.$$lastCommittedViewValue;q.$render()};this.$validate=function(){if(!V(q.$modelValue)||!isNaN(q.$modelValue)){var a=q.$$rawModelValue,c=q.$valid,d=q.$modelValue,e=q.$options&&q.$options.allowInvalid;q.$$runValidators(a,q.$$lastCommittedViewValue,function(f){e||c===f||(q.$modelValue=f?a:w,q.$modelValue!==d&&q.$$writeModelToScope())})}};this.$$runValidators=function(a,c,d){function e(){var d=!0;m(q.$validators,function(e,f){var g=e(a,c);d=d&&g;h(f,g)});return d? -!0:(m(q.$asyncValidators,function(a,c){h(c,null)}),!1)}function f(){var d=[],e=!0;m(q.$asyncValidators,function(f,g){var k=f(a,c);if(!k||!x(k.then))throw lb("$asyncValidators",k);h(g,w);d.push(k.then(function(){h(g,!0)},function(a){e=!1;h(g,!1)}))});d.length?k.all(d).then(function(){g(e)},y):g(!0)}function h(a,c){l===z&&q.$setValidity(a,c)}function g(a){l===z&&d(a)}z++;var l=z;(function(){var a=q.$$parserName||"parse";if(v(u))h(a,null);else return u||(m(q.$validators,function(a,c){h(c,null)}),m(q.$asyncValidators, -function(a,c){h(c,null)})),h(a,u),u;return!0})()?e()?f():g(!1):g(!1)};this.$commitViewValue=function(){var a=q.$viewValue;h.cancel(K);if(q.$$lastCommittedViewValue!==a||""===a&&q.$$hasNativeValidators)q.$$lastCommittedViewValue=a,q.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=q.$$lastCommittedViewValue;if(u=v(c)?w:!0)for(var d=0;d=a)return b;for(;a--;)8===b[a].nodeType&&Nf.call(b,a,1);return b}function Xe(){var b={},a=!1;this.register=function(a,d){Ta(a,"controller");C(a)?P(b,a):b[a]=d};this.allowGlobals=function(){a=!0};this.$get=["$injector","$window",function(c,d){function e(a,b,c,d){if(!a||!C(a.$scope))throw I("$controller")("noscp",d,b);a.$scope[b]=c}return function(f,h,g,l){var k,n,p;g=!0===g;l&&G(l)&&(p=l);if(G(f)){l=f.match(Vc);if(!l)throw Of("ctrlfmt",f); +n=l[1];p=p||l[3];f=b.hasOwnProperty(n)?b[n]:Cc(h.$scope,n,!0)||(a?Cc(d,n,!0):w);Sa(f,n,!0)}if(g)return g=(J(f)?f[f.length-1]:f).prototype,k=Object.create(g||null),p&&e(h,p,k,n||f.name),P(function(){var a=c.invoke(f,k,h,n);a!==k&&(C(a)||x(a))&&(k=a,p&&e(h,p,k,n||f.name));return k},{instance:k,identifier:p});k=c.instantiate(f,h,n);p&&e(h,p,k,n||f.name);return k}}]}function Ye(){this.$get=["$window",function(b){return B(b.document)}]}function Ze(){this.$get=["$log",function(b){return function(a,c){b.error.apply(b, +arguments)}}]}function Yb(b){return C(b)?ea(b)?b.toISOString():eb(b):b}function df(){this.$get=function(){return function(b){if(!b)return"";var a=[];nc(b,function(b,d){null===b||v(b)||(J(b)?m(b,function(b,c){a.push(la(d)+"="+la(Yb(b)))}):a.push(la(d)+"="+la(Yb(b))))});return a.join("&")}}}function ef(){this.$get=function(){return function(b){function a(b,e,f){null===b||v(b)||(J(b)?m(b,function(b,c){a(b,e+"["+(C(b)?c:"")+"]")}):C(b)&&!ea(b)?nc(b,function(b,c){a(b,e+(f?"":"[")+c+(f?"":"]"))}):c.push(la(e)+ +"="+la(Yb(b))))}if(!b)return"";var c=[];a(b,"",!0);return c.join("&")}}}function Zb(b,a){if(G(b)){var c=b.replace(Pf,"").trim();if(c){var d=a("Content-Type");(d=d&&0===d.indexOf(ad))||(d=(d=c.match(Qf))&&Rf[d[0]].test(c));d&&(b=vc(c))}}return b}function bd(b){var a=fa(),c;G(b)?m(b.split("\n"),function(b){c=b.indexOf(":");var e=F(T(b.substr(0,c)));b=T(b.substr(c+1));e&&(a[e]=a[e]?a[e]+", "+b:b)}):C(b)&&m(b,function(b,c){var f=F(c),h=T(b);f&&(a[f]=a[f]?a[f]+", "+h:h)});return a}function cd(b){var a; +return function(c){a||(a=bd(b));return c?(c=a[F(c)],void 0===c&&(c=null),c):a}}function dd(b,a,c,d){if(x(d))return d(b,a,c);m(d,function(d){b=d(b,a,c)});return b}function cf(){var b=this.defaults={transformResponse:[Zb],transformRequest:[function(a){return C(a)&&"[object File]"!==va.call(a)&&"[object Blob]"!==va.call(a)&&"[object FormData]"!==va.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ja($b),put:ja($b),patch:ja($b)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN", +paramSerializer:"$httpParamSerializer"},a=!1;this.useApplyAsync=function(b){return A(b)?(a=!!b,this):a};var c=!0;this.useLegacyPromiseExtensions=function(a){return A(a)?(c=!!a,this):c};var d=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(e,f,h,g,l,k){function n(a){function d(a){var b=P({},a);b.data=a.data?dd(a.data,a.headers,a.status,f.transformResponse):a.data;a=a.status;return 200<=a&&300>a?b:l.reject(b)}function e(a,b){var c, +d={};m(a,function(a,e){x(a)?(c=a(b),null!=c&&(d[e]=c)):d[e]=a});return d}if(!da.isObject(a))throw I("$http")("badreq",a);var f=P({method:"get",transformRequest:b.transformRequest,transformResponse:b.transformResponse,paramSerializer:b.paramSerializer},a);f.headers=function(a){var c=b.headers,d=P({},a.headers),f,g,h,c=P({},c.common,c[F(a.method)]);a:for(f in c){g=F(f);for(h in d)if(F(h)===g)continue a;d[f]=c[f]}return e(d,ja(a))}(a);f.method=sb(f.method);f.paramSerializer=G(f.paramSerializer)?k.get(f.paramSerializer): +f.paramSerializer;var g=[function(a){var c=a.headers,e=dd(a.data,cd(c),w,a.transformRequest);v(e)&&m(c,function(a,b){"content-type"===F(b)&&delete c[b]});v(a.withCredentials)&&!v(b.withCredentials)&&(a.withCredentials=b.withCredentials);return p(a,e).then(d,d)},w],h=l.when(f);for(m(E,function(a){(a.request||a.requestError)&&g.unshift(a.request,a.requestError);(a.response||a.responseError)&&g.push(a.response,a.responseError)});g.length;){a=g.shift();var r=g.shift(),h=h.then(a,r)}c?(h.success=function(a){Sa(a, +"fn");h.then(function(b){a(b.data,b.status,b.headers,f)});return h},h.error=function(a){Sa(a,"fn");h.then(null,function(b){a(b.data,b.status,b.headers,f)});return h}):(h.success=ed("success"),h.error=ed("error"));return h}function p(c,d){function h(b,c,d,e){function f(){k(c,b,d,e)}L&&(200<=b&&300>b?L.put(ba,[b,c,bd(d),e]):L.remove(ba));a?g.$applyAsync(f):(f(),g.$$phase||g.$apply())}function k(a,b,d,e){b=-1<=b?b:0;(200<=b&&300>b?O.resolve:O.reject)({data:a,status:b,headers:cd(d),config:c,statusText:e})} +function p(a){k(a.data,a.status,ja(a.headers()),a.statusText)}function E(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var O=l.defer(),H=O.promise,L,m,S=c.headers,ba=r(c.url,c.paramSerializer(c.params));n.pendingRequests.push(c);H.then(E,E);!c.cache&&!b.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(L=C(c.cache)?c.cache:C(b.cache)?b.cache:t);L&&(m=L.get(ba),A(m)?m&&x(m.then)?m.then(p,p):J(m)?k(m[1],m[0],ja(m[2]),m[3]):k(m,200,{},"OK"):L.put(ba,H));v(m)&&((m= +fd(c.url)?f()[c.xsrfCookieName||b.xsrfCookieName]:w)&&(S[c.xsrfHeaderName||b.xsrfHeaderName]=m),e(c.method,ba,d,h,S,c.timeout,c.withCredentials,c.responseType));return H}function r(a,b){0=l&&(u.resolve(E), +t(q.$$intervalId),delete f[q.$$intervalId]);K||b.$apply()},g);f[q.$$intervalId]=u;return q}var f={};e.cancel=function(b){return b&&b.$$intervalId in f?(f[b.$$intervalId].reject("canceled"),a.clearInterval(b.$$intervalId),delete f[b.$$intervalId],!0):!1};return e}]}function ac(b){b=b.split("/");for(var a=b.length;a--;)b[a]=ob(b[a]);return b.join("/")}function gd(b,a){var c=Aa(b);a.$$protocol=c.protocol;a.$$host=c.hostname;a.$$port=Y(c.port)||Tf[c.protocol]||null}function hd(b,a){var c="/"!==b.charAt(0); +c&&(b="/"+b);var d=Aa(b);a.$$path=decodeURIComponent(c&&"/"===d.pathname.charAt(0)?d.pathname.substring(1):d.pathname);a.$$search=yc(d.search);a.$$hash=decodeURIComponent(d.hash);a.$$path&&"/"!=a.$$path.charAt(0)&&(a.$$path="/"+a.$$path)}function sa(b,a){if(0===a.indexOf(b))return a.substr(b.length)}function Ja(b){var a=b.indexOf("#");return-1==a?b:b.substr(0,a)}function Cb(b){return b.replace(/(#.+)|#$/,"$1")}function bc(b,a,c){this.$$html5=!0;c=c||"";gd(b,this);this.$$parse=function(b){var c=sa(a, +b);if(!G(c))throw Db("ipthprfx",b,a);hd(c,this);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var b=Pb(this.$$search),c=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(b?"?"+b:"")+c;this.$$absUrl=a+this.$$url.substr(1)};this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,h;A(f=sa(b,d))?(h=f,h=A(f=sa(c,f))?a+(sa("/",f)||f):b+h):A(f=sa(a,d))?h=a+f:a==d+"/"&&(h=a);h&&this.$$parse(h);return!!h}}function cc(b,a,c){gd(b,this); +this.$$parse=function(d){var e=sa(b,d)||sa(a,d),f;v(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",v(e)&&(b=d,this.replace())):(f=sa(c,e),v(f)&&(f=e));hd(f,this);d=this.$$path;var e=b,h=/^\/[A-Z]:(\/.*)/;0===f.indexOf(e)&&(f=f.replace(e,""));h.exec(f)||(d=(f=h.exec(d))?f[1]:d);this.$$path=d;this.$$compose()};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+(this.$$url?c+this.$$url:"")};this.$$parseLinkUrl= +function(a,c){return Ja(b)==Ja(a)?(this.$$parse(a),!0):!1}}function id(b,a,c){this.$$html5=!0;cc.apply(this,arguments);this.$$parseLinkUrl=function(d,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,h;b==Ja(d)?f=d:(h=sa(a,d))?f=b+c+h:a===d+"/"&&(f=a);f&&this.$$parse(f);return!!f};this.$$compose=function(){var a=Pb(this.$$search),e=this.$$hash?"#"+ob(this.$$hash):"";this.$$url=ac(this.$$path)+(a?"?"+a:"")+e;this.$$absUrl=b+c+this.$$url}}function Eb(b){return function(){return this[b]}}function jd(b, +a){return function(c){if(v(c))return this[b];this[b]=a(c);this.$$compose();return this}}function hf(){var b="",a={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(a){return A(a)?(b=a,this):b};this.html5Mode=function(b){return bb(b)?(a.enabled=b,this):C(b)?(bb(b.enabled)&&(a.enabled=b.enabled),bb(b.requireBase)&&(a.requireBase=b.requireBase),bb(b.rewriteLinks)&&(a.rewriteLinks=b.rewriteLinks),this):a};this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(c, +d,e,f,h){function g(a,b,c){var e=k.url(),f=k.$$state;try{d.url(a,b,c),k.$$state=d.state()}catch(g){throw k.url(e),k.$$state=f,g;}}function l(a,b){c.$broadcast("$locationChangeSuccess",k.absUrl(),a,k.$$state,b)}var k,n;n=d.baseHref();var p=d.url(),r;if(a.enabled){if(!n&&a.requireBase)throw Db("nobase");r=p.substring(0,p.indexOf("/",p.indexOf("//")+2))+(n||"/");n=e.history?bc:id}else r=Ja(p),n=cc;var t=r.substr(0,Ja(r).lastIndexOf("/")+1);k=new n(r,t,"#"+b);k.$$parseLinkUrl(p,p);k.$$state=d.state(); +var E=/^\s*(javascript|mailto):/i;f.on("click",function(b){if(a.rewriteLinks&&!b.ctrlKey&&!b.metaKey&&!b.shiftKey&&2!=b.which&&2!=b.button){for(var e=B(b.target);"a"!==wa(e[0]);)if(e[0]===f[0]||!(e=e.parent())[0])return;var g=e.prop("href"),l=e.attr("href")||e.attr("xlink:href");C(g)&&"[object SVGAnimatedString]"===g.toString()&&(g=Aa(g.animVal).href);E.test(g)||!g||e.attr("target")||b.isDefaultPrevented()||!k.$$parseLinkUrl(g,l)||(b.preventDefault(),k.absUrl()!=d.url()&&(c.$apply(),h.angular["ff-684208-preventDefault"]= +!0))}});Cb(k.absUrl())!=Cb(p)&&d.url(k.absUrl(),!0);var K=!0;d.onUrlChange(function(a,b){v(sa(t,a))?h.location.href=a:(c.$evalAsync(function(){var d=k.absUrl(),e=k.$$state,f;k.$$parse(a);k.$$state=b;f=c.$broadcast("$locationChangeStart",a,d,b,e).defaultPrevented;k.absUrl()===a&&(f?(k.$$parse(d),k.$$state=e,g(d,!1,e)):(K=!1,l(d,e)))}),c.$$phase||c.$digest())});c.$watch(function(){var a=Cb(d.url()),b=Cb(k.absUrl()),f=d.state(),h=k.$$replace,r=a!==b||k.$$html5&&e.history&&f!==k.$$state;if(K||r)K=!1, +c.$evalAsync(function(){var b=k.absUrl(),d=c.$broadcast("$locationChangeStart",b,a,k.$$state,f).defaultPrevented;k.absUrl()===b&&(d?(k.$$parse(a),k.$$state=f):(r&&g(b,h,f===k.$$state?null:k.$$state),l(a,f)))});k.$$replace=!1});return k}]}function jf(){var b=!0,a=this;this.debugEnabled=function(a){return A(a)?(b=a,this):b};this.$get=["$window",function(c){function d(a){a instanceof Error&&(a.stack?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a= +a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=c.console||{},e=b[a]||b.log||y;a=!1;try{a=!!e.apply}catch(l){}return a?function(){var a=[];m(arguments,function(b){a.push(d(b))});return e.apply(b,a)}:function(a,b){e(a,null==b?"":b)}}return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){b&&c.apply(a,arguments)}}()}}]}function Xa(b,a){if("__defineGetter__"===b||"__defineSetter__"===b||"__lookupGetter__"===b||"__lookupSetter__"=== +b||"__proto__"===b)throw Z("isecfld",a);return b}function kd(b,a){b+="";if(!G(b))throw Z("iseccst",a);return b}function Ba(b,a){if(b){if(b.constructor===b)throw Z("isecfn",a);if(b.window===b)throw Z("isecwindow",a);if(b.children&&(b.nodeName||b.prop&&b.attr&&b.find))throw Z("isecdom",a);if(b===Object)throw Z("isecobj",a);}return b}function ld(b,a){if(b){if(b.constructor===b)throw Z("isecfn",a);if(b===Uf||b===Vf||b===Wf)throw Z("isecff",a);}}function md(b,a){if(b&&(b===(0).constructor||b===(!1).constructor|| +b==="".constructor||b==={}.constructor||b===[].constructor||b===Function.constructor))throw Z("isecaf",a);}function Xf(b,a){return"undefined"!==typeof b?b:a}function nd(b,a){return"undefined"===typeof b?a:"undefined"===typeof a?b:b+a}function U(b,a){var c,d;switch(b.type){case s.Program:c=!0;m(b.body,function(b){U(b.expression,a);c=c&&b.expression.constant});b.constant=c;break;case s.Literal:b.constant=!0;b.toWatch=[];break;case s.UnaryExpression:U(b.argument,a);b.constant=b.argument.constant;b.toWatch= +b.argument.toWatch;break;case s.BinaryExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.left.toWatch.concat(b.right.toWatch);break;case s.LogicalExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant;b.toWatch=b.constant?[]:[b];break;case s.ConditionalExpression:U(b.test,a);U(b.alternate,a);U(b.consequent,a);b.constant=b.test.constant&&b.alternate.constant&&b.consequent.constant;b.toWatch=b.constant?[]:[b];break;case s.Identifier:b.constant= +!1;b.toWatch=[b];break;case s.MemberExpression:U(b.object,a);b.computed&&U(b.property,a);b.constant=b.object.constant&&(!b.computed||b.property.constant);b.toWatch=[b];break;case s.CallExpression:c=b.filter?!a(b.callee.name).$stateful:!1;d=[];m(b.arguments,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=b.filter&&!a(b.callee.name).$stateful?d:[b];break;case s.AssignmentExpression:U(b.left,a);U(b.right,a);b.constant=b.left.constant&&b.right.constant; +b.toWatch=[b];break;case s.ArrayExpression:c=!0;d=[];m(b.elements,function(b){U(b,a);c=c&&b.constant;b.constant||d.push.apply(d,b.toWatch)});b.constant=c;b.toWatch=d;break;case s.ObjectExpression:c=!0;d=[];m(b.properties,function(b){U(b.value,a);c=c&&b.value.constant;b.value.constant||d.push.apply(d,b.value.toWatch)});b.constant=c;b.toWatch=d;break;case s.ThisExpression:b.constant=!1,b.toWatch=[]}}function od(b){if(1==b.length){b=b[0].expression;var a=b.toWatch;return 1!==a.length?a:a[0]!==b?a:w}} +function pd(b){return b.type===s.Identifier||b.type===s.MemberExpression}function qd(b){if(1===b.body.length&&pd(b.body[0].expression))return{type:s.AssignmentExpression,left:b.body[0].expression,right:{type:s.NGValueParameter},operator:"="}}function rd(b){return 0===b.body.length||1===b.body.length&&(b.body[0].expression.type===s.Literal||b.body[0].expression.type===s.ArrayExpression||b.body[0].expression.type===s.ObjectExpression)}function sd(b,a){this.astBuilder=b;this.$filter=a}function td(b, +a){this.astBuilder=b;this.$filter=a}function Fb(b){return"constructor"==b}function dc(b){return x(b.valueOf)?b.valueOf():Yf.call(b)}function kf(){var b=fa(),a=fa();this.$get=["$filter",function(c){function d(a,b){return null==a||null==b?a===b:"object"===typeof a&&(a=dc(a),"object"===typeof a)?!1:a===b||a!==a&&b!==b}function e(a,b,c,e,f){var g=e.inputs,h;if(1===g.length){var k=d,g=g[0];return a.$watch(function(a){var b=g(a);d(b,k)||(h=e(a,w,w,[b]),k=b&&dc(b));return h},b,c,f)}for(var l=[],n=[],p=0, +m=g.length;p=this.promise.$$state.status&&d&&d.length&&b(function(){for(var b,e,f=0,g=d.length;fa)for(b in l++,f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$stateful=!0;var d=this,e,f,h,k=1 +t&&(D=4-t,u[D]||(u[D]=[]),u[D].push({msg:x(b.exp)?"fn: "+(b.exp.name||b.exp.toString()):b.exp,newVal:f,oldVal:g}));else if(b===d){r=!1;break a}}catch(y){h(y)}if(!(k=m.$$watchersCount&&m.$$childHead||m!==this&&m.$$nextSibling))for(;m!==this&&!(k=m.$$nextSibling);)m=m.$parent}while(m=k);if((r||z.length)&&!t--)throw q.$$phase=null,c("infdig",a,u);}while(r||z.length);for(q.$$phase=null;N.length;)try{N.shift()()}catch(A){h(A)}},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy"); +this.$$destroyed=!0;this===q&&l.$$applicationDestroyed();r(this,-this.$$watchersCount);for(var b in this.$$listenerCount)t(this,this.$$listenerCount[b],b);a&&a.$$childHead==this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail==this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=y;this.$on= +this.$watch=this.$watchGroup=function(){return y};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){q.$$phase||z.length||l.defer(function(){z.length&&q.$digest()});z.push({scope:this,expression:a,locals:b})},$$postDigest:function(a){N.push(a)},$apply:function(a){try{p("$apply");try{return this.$eval(a)}finally{q.$$phase=null}}catch(b){h(b)}finally{try{q.$digest()}catch(c){throw h(c), +c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&w.push(b);u()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(c[d]=null,t(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,f=!1,g={name:a,targetScope:e,stopPropagation:function(){f=!0},preventDefault:function(){g.defaultPrevented=!0},defaultPrevented:!1}, +k=db([g],arguments,1),l,n;do{d=e.$$listeners[a]||c;g.currentScope=e;l=0;for(n=d.length;lWa)throw Ca("iequirks");var d=ja(oa);d.isEnabled=function(){return b};d.trustAs=c.trustAs;d.getTrusted=c.getTrusted;d.valueOf=c.valueOf;b||(d.trustAs=d.getTrusted=function(a,b){return b},d.valueOf=$a);d.parseAs=function(b,c){var e=a(c);return e.literal&&e.constant?e:a(c,function(a){return d.getTrusted(b,a)})};var e=d.parseAs,f=d.getTrusted,h=d.trustAs;m(oa,function(a,b){var c=F(b);d[gb("parse_as_"+c)]=function(b){return e(a,b)};d[gb("get_trusted_"+c)]=function(b){return f(a,b)};d[gb("trust_as_"+ +c)]=function(b){return h(a,b)}});return d}]}function qf(){this.$get=["$window","$document",function(b,a){var c={},d=Y((/android (\d+)/.exec(F((b.navigator||{}).userAgent))||[])[1]),e=/Boxee/i.test((b.navigator||{}).userAgent),f=a[0]||{},h,g=/^(Moz|webkit|ms)(?=[A-Z])/,l=f.body&&f.body.style,k=!1,n=!1;if(l){for(var p in l)if(k=g.exec(p)){h=k[0];h=h.substr(0,1).toUpperCase()+h.substr(1);break}h||(h="WebkitOpacity"in l&&"webkit");k=!!("transition"in l||h+"Transition"in l);n=!!("animation"in l||h+"Animation"in +l);!d||k&&n||(k=G(l.webkitTransition),n=G(l.webkitAnimation))}return{history:!(!b.history||!b.history.pushState||4>d||e),hasEvent:function(a){if("input"===a&&11>=Wa)return!1;if(v(c[a])){var b=f.createElement("div");c[a]="on"+a in b}return c[a]},csp:Fa(),vendorPrefix:h,transitions:k,animations:n,android:d}}]}function sf(){this.$get=["$templateCache","$http","$q","$sce",function(b,a,c,d){function e(f,h){e.totalPendingRequests++;G(f)&&b.get(f)||(f=d.getTrustedResourceUrl(f));var g=a.defaults&&a.defaults.transformResponse; +J(g)?g=g.filter(function(a){return a!==Zb}):g===Zb&&(g=null);return a.get(f,{cache:b,transformResponse:g})["finally"](function(){e.totalPendingRequests--}).then(function(a){b.put(f,a.data);return a.data},function(a){if(!h)throw ga("tpload",f,a.status,a.statusText);return c.reject(a)})}e.totalPendingRequests=0;return e}]}function tf(){this.$get=["$rootScope","$browser","$location",function(b,a,c){return{findBindings:function(a,b,c){a=a.getElementsByClassName("ng-binding");var h=[];m(a,function(a){var d= +da.element(a).data("$binding");d&&m(d,function(d){c?(new RegExp("(^|\\s)"+vd(b)+"(\\s|\\||$)")).test(d)&&h.push(a):-1!=d.indexOf(b)&&h.push(a)})});return h},findModels:function(a,b,c){for(var h=["ng-","data-ng-","ng\\:"],g=0;gb;b=Math.abs(b);var h=Infinity===b;if(!h&&!isFinite(b))return"";var g=b+"",l="",k=!1,n=[];h&&(l="\u221e");if(!h&&-1!==g.indexOf("e")){var p=g.match(/([\d\.]+)e(-?)(\d+)/);p&&"-"==p[2]&&p[3]>e+1?b=0:(l=g,k=!0)}if(h||k)0b&&(l=b.toFixed(e),b=parseFloat(l),l=l.replace(hc,d));else{h=(g.split(hc)[1]||"").length;v(e)&&(e=Math.min(Math.max(a.minFrac,h),a.maxFrac));b=+(Math.round(+(b.toString()+"e"+e)).toString()+"e"+-e);var h=(""+b).split(hc),g=h[0],h=h[1]||"",p=0, +r=a.lgSize,t=a.gSize;if(g.length>=r+t)for(p=g.length-r,k=0;kb&&(d="-",b=-b);for(b=""+b;b.length-c)e+=c;0===e&&-12==c&&(e=12);return Gb(e,a,d)}}function Hb(b,a){return function(c,d){var e=c["get"+b](),f=sb(a?"SHORT"+b:b);return d[f][e]}}function Ed(b){var a=(new Date(b,0,1)).getDay();return new Date(b,0,(4>=a?5:12)-a)}function Fd(b){return function(a){var c=Ed(a.getFullYear());a=+new Date(a.getFullYear(),a.getMonth(),a.getDate()+(4-a.getDay()))-+c;a=1+Math.round(a/6048E5);return Gb(a,b)}}function ic(b,a){return 0>=b.getFullYear()?a.ERAS[0]:a.ERAS[1]}function Ad(b){function a(a){var b;if(b= +a.match(c)){a=new Date(0);var f=0,h=0,g=b[8]?a.setUTCFullYear:a.setFullYear,l=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=Y(b[9]+b[10]),h=Y(b[9]+b[11]));g.call(a,Y(b[1]),Y(b[2])-1,Y(b[3]));f=Y(b[4]||0)-f;h=Y(b[5]||0)-h;g=Y(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));l.call(a,f,h,g,b)}return a}var c=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,e,f){var h="",g=[],l,k;e=e||"mediumDate";e=b.DATETIME_FORMATS[e]||e;G(c)&&(c= +fg.test(c)?Y(c):a(c));V(c)&&(c=new Date(c));if(!ea(c)||!isFinite(c.getTime()))return c;for(;e;)(k=gg.exec(e))?(g=db(g,k,1),e=g.pop()):(g.push(e),e=null);var n=c.getTimezoneOffset();f&&(n=wc(f,c.getTimezoneOffset()),c=Ob(c,f,!0));m(g,function(a){l=hg[a];h+=l?l(c,b.DATETIME_FORMATS,n):a.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return h}}function ag(){return function(b,a){v(a)&&(a=2);return eb(b,a)}}function bg(){return function(b,a,c){a=Infinity===Math.abs(Number(a))?Number(a):Y(a);if(isNaN(a))return b; +V(b)&&(b=b.toString());if(!J(b)&&!G(b))return b;c=!c||isNaN(c)?0:Y(c);c=0>c&&c>=-b.length?b.length+c:c;return 0<=a?b.slice(c,c+a):0===c?b.slice(a,b.length):b.slice(Math.max(0,c+a),c)}}function Cd(b){function a(a,c){c=c?-1:1;return a.map(function(a){var d=1,g=$a;if(x(a))g=a;else if(G(a)){if("+"==a.charAt(0)||"-"==a.charAt(0))d="-"==a.charAt(0)?-1:1,a=a.substring(1);if(""!==a&&(g=b(a),g.constant))var l=g(),g=function(a){return a[l]}}return{get:g,descending:d*c}})}function c(a){switch(typeof a){case "number":case "boolean":case "string":return!0; +default:return!1}}return function(b,e,f){if(!Da(b))return b;J(e)||(e=[e]);0===e.length&&(e=["+"]);var h=a(e,f);h.push({get:function(){return{}},descending:f?-1:1});b=Array.prototype.map.call(b,function(a,b){return{value:a,predicateValues:h.map(function(d){var e=d.get(a);d=typeof e;if(null===e)d="string",e="null";else if("string"===d)e=e.toLowerCase();else if("object"===d)a:{if("function"===typeof e.valueOf&&(e=e.valueOf(),c(e)))break a;if(qc(e)&&(e=e.toString(),c(e)))break a;e=b}return{value:e,type:d}})}}); +b.sort(function(a,b){for(var c=0,d=0,e=h.length;db||37<=b&&40>=b||n(a,this,this.value)});if(e.hasEvent("paste"))a.on("paste cut",n)}a.on("change",l);d.$render=function(){var b=d.$isEmpty(d.$viewValue)? +"":d.$viewValue;a.val()!==b&&a.val(b)}}function Kb(b,a){return function(c,d){var e,f;if(ea(c))return c;if(G(c)){'"'==c.charAt(0)&&'"'==c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));if(ig.test(c))return new Date(c);b.lastIndex=0;if(e=b.exec(c))return e.shift(),f=d?{yyyy:d.getFullYear(),MM:d.getMonth()+1,dd:d.getDate(),HH:d.getHours(),mm:d.getMinutes(),ss:d.getSeconds(),sss:d.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},m(e,function(b,c){c=s};h.$observe("min",function(a){s=r(a);g.$validate()})}if(A(h.max)||h.ngMax){var u;g.$validators.max=function(a){return!p(a)||v(u)||c(a)<=u};h.$observe("max",function(a){u=r(a);g.$validate()})}}}function Id(b,a,c,d){(d.$$hasNativeValidators=C(a[0].validity))&&d.$parsers.push(function(b){var c=a.prop("validity")||{};return c.badInput&&!c.typeMismatch?w:b})}function Jd(b,a,c,d,e){if(A(d)){b= +b(d);if(!b.constant)throw lb("constexpr",c,d);return b(a)}return e}function kc(b,a){b="ngClass"+b;return["$animate",function(c){function d(a,b){var c=[],d=0;a:for(;d(?:<\/\1>|)$/,Sb=/<|&#?\w+;/,Cf=/<([\w:-]+)/,Df=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi, +ma={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option;ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead;ma.th=ma.td;var Ra=R.prototype={ready:function(b){function a(){c||(c=!0,b())}var c=!1;"complete"===X.readyState?setTimeout(a):(this.on("DOMContentLoaded",a),R(Q).on("load",a))}, +toString:function(){var b=[];m(this,function(a){b.push(""+a)});return"["+b.join(", ")+"]"},eq:function(b){return 0<=b?B(this[b]):B(this[this.length+b])},length:0,push:kg,sort:[].sort,splice:[].splice},Bb={};m("multiple selected checked disabled readOnly required open".split(" "),function(b){Bb[F(b)]=b});var Sc={};m("input select option textarea button form details".split(" "),function(b){Sc[b]=!0});var $c={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"}; +m({data:Vb,removeData:vb,hasData:function(b){for(var a in hb[b.ng339])return!0;return!1}},function(b,a){R[a]=b});m({data:Vb,inheritedData:Ab,scope:function(b){return B.data(b,"$scope")||Ab(b.parentNode||b,["$isolateScope","$scope"])},isolateScope:function(b){return B.data(b,"$isolateScope")||B.data(b,"$isolateScopeNoTemplate")},controller:Pc,injector:function(b){return Ab(b,"$injector")},removeAttr:function(b,a){b.removeAttribute(a)},hasClass:xb,css:function(b,a,c){a=gb(a);if(A(c))b.style[a]=c;else return b.style[a]}, +attr:function(b,a,c){var d=b.nodeType;if(d!==Pa&&2!==d&&8!==d)if(d=F(a),Bb[d])if(A(c))c?(b[a]=!0,b.setAttribute(a,d)):(b[a]=!1,b.removeAttribute(d));else return b[a]||(b.attributes.getNamedItem(a)||y).specified?d:w;else if(A(c))b.setAttribute(a,c);else if(b.getAttribute)return b=b.getAttribute(a,2),null===b?w:b},prop:function(b,a,c){if(A(c))b[a]=c;else return b[a]},text:function(){function b(a,b){if(v(b)){var d=a.nodeType;return d===pa||d===Pa?a.textContent:""}a.textContent=b}b.$dv="";return b}(), +val:function(b,a){if(v(a)){if(b.multiple&&"select"===wa(b)){var c=[];m(b.options,function(a){a.selected&&c.push(a.value||a.text)});return 0===c.length?null:c}return b.value}b.value=a},html:function(b,a){if(v(a))return b.innerHTML;ub(b,!0);b.innerHTML=a},empty:Qc},function(b,a){R.prototype[a]=function(a,d){var e,f,h=this.length;if(b!==Qc&&v(2==b.length&&b!==xb&&b!==Pc?a:d)){if(C(a)){for(e=0;e <= >= && || ! = |".split(" "),function(a){Lb[a]=!0});var rg={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},ec=function(a){this.options=a};ec.prototype={constructor:ec,lex:function(a){this.text=a;this.index=0;for(this.tokens= +[];this.index=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdent:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isExpOperator:function(a){return"-"=== +a||"+"===a||this.isNumber(a)},throwError:function(a,c,d){d=d||this.index;c=A(c)?"s "+c+"-"+this.index+" ["+this.text.substring(c,d)+"]":" "+d;throw Z("lexerr",a,c,this.text);},readNumber:function(){for(var a="",c=this.index;this.index","<=",">=");)a={type:s.BinaryExpression,operator:c.text, +left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),c;c=this.expect("+","-");)a={type:s.BinaryExpression,operator:c.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),c;c=this.expect("*","/","%");)a={type:s.BinaryExpression,operator:c.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:s.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()}, +primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?a=this.object():this.constants.hasOwnProperty(this.peek().text)?a=ha(this.constants[this.consume().text]):this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var c;c=this.expect("(","[",".");)"("===c.text?(a={type:s.CallExpression,callee:a,arguments:this.parseArguments()}, +this.consume(")")):"["===c.text?(a={type:s.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===c.text?a={type:s.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var c={type:s.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return c},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.expression()); +while(this.expect(","))}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:s.Identifier,name:a.text}},constant:function(){return{type:s.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:s.ArrayExpression,elements:a}},object:function(){var a=[],c;if("}"!==this.peekToken().text){do{if(this.peek("}"))break; +c={type:s.Property,kind:"init"};this.peek().constant?c.key=this.constant():this.peek().identifier?c.key=this.identifier():this.throwError("invalid key",this.peek());this.consume(":");c.value=this.expression();a.push(c)}while(this.expect(","))}this.consume("}");return{type:s.ObjectExpression,properties:a}},throwError:function(a,c){throw Z("syntax",c.text,a,c.index+1,this.text,this.text.substring(c.index));},consume:function(a){if(0===this.tokens.length)throw Z("ueoe",this.text);var c=this.expect(a); +c||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return c},peekToken:function(){if(0===this.tokens.length)throw Z("ueoe",this.text);return this.tokens[0]},peek:function(a,c,d,e){return this.peekAhead(0,a,c,d,e)},peekAhead:function(a,c,d,e,f){if(this.tokens.length>a){a=this.tokens[a];var h=a.text;if(h===c||h===d||h===e||h===f||!(c||d||e||f))return a}return!1},expect:function(a,c,d,e){return(a=this.peek(a,c,d,e))?(this.tokens.shift(),a):!1},constants:{"true":{type:s.Literal,value:!0}, +"false":{type:s.Literal,value:!1},"null":{type:s.Literal,value:null},undefined:{type:s.Literal,value:w},"this":{type:s.ThisExpression}}};sd.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.state={nextId:0,filters:{},expensiveChecks:c,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};U(e,d.$filter);var f="",h;this.stage="assign";if(h=qd(e))this.state.computing="assign",f=this.nextId(),this.recurse(h,f),this.return_(f),f="fn.assign="+this.generateFunction("assign", +"s,v,l");h=od(e.body);d.stage="inputs";m(h,function(a,c){var e="fn"+c;d.state[e]={vars:[],body:[],own:{}};d.state.computing=e;var f=d.nextId();d.recurse(a,f);d.return_(f);d.state.inputs.push(e);a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(e);f='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+f+this.watchFns()+"return fn;";f=(new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue", +"ensureSafeAssignContext","ifDefined","plus","text",f))(this.$filter,Xa,Ba,ld,kd,md,Xf,nd,a);this.state=this.stage=w;f.literal=rd(e);f.constant=e.constant;return f},USE:"use",STRICT:"strict",watchFns:function(){var a=[],c=this.state.inputs,d=this;m(c,function(c){a.push("var "+c+"="+d.generateFunction(c,"s"))});c.length&&a.push("fn.inputs=["+c.join(",")+"];");return a.join("")},generateFunction:function(a,c){return"function("+c+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a= +[],c=this;m(this.state.filters,function(d,e){a.push(d+"=$filter("+c.escape(e)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,c,d,e,f,h){var g,l,k=this,n,p;e=e||y;if(!h&&A(a.watchId))c=c||this.nextId(),this.if_("i",this.lazyAssign(c,this.computedMember("i",a.watchId)),this.lazyRecurse(a,c,d,e,f,!0));else switch(a.type){case s.Program:m(a.body, +function(c,d){k.recurse(c.expression,w,w,function(a){l=a});d!==a.body.length-1?k.current().body.push(l,";"):k.return_(l)});break;case s.Literal:p=this.escape(a.value);this.assign(c,p);e(p);break;case s.UnaryExpression:this.recurse(a.argument,w,w,function(a){l=a});p=a.operator+"("+this.ifDefined(l,0)+")";this.assign(c,p);e(p);break;case s.BinaryExpression:this.recurse(a.left,w,w,function(a){g=a});this.recurse(a.right,w,w,function(a){l=a});p="+"===a.operator?this.plus(g,l):"-"===a.operator?this.ifDefined(g, +0)+a.operator+this.ifDefined(l,0):"("+g+")"+a.operator+"("+l+")";this.assign(c,p);e(p);break;case s.LogicalExpression:c=c||this.nextId();k.recurse(a.left,c);k.if_("&&"===a.operator?c:k.not(c),k.lazyRecurse(a.right,c));e(c);break;case s.ConditionalExpression:c=c||this.nextId();k.recurse(a.test,c);k.if_(c,k.lazyRecurse(a.alternate,c),k.lazyRecurse(a.consequent,c));e(c);break;case s.Identifier:c=c||this.nextId();d&&(d.context="inputs"===k.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l", +a.name)+"?l:s"),d.computed=!1,d.name=a.name);Xa(a.name);k.if_("inputs"===k.stage||k.not(k.getHasOwnProperty("l",a.name)),function(){k.if_("inputs"===k.stage||"s",function(){f&&1!==f&&k.if_(k.not(k.nonComputedMember("s",a.name)),k.lazyAssign(k.nonComputedMember("s",a.name),"{}"));k.assign(c,k.nonComputedMember("s",a.name))})},c&&k.lazyAssign(c,k.nonComputedMember("l",a.name)));(k.state.expensiveChecks||Fb(a.name))&&k.addEnsureSafeObject(c);e(c);break;case s.MemberExpression:g=d&&(d.context=this.nextId())|| +this.nextId();c=c||this.nextId();k.recurse(a.object,g,w,function(){k.if_(k.notNull(g),function(){if(a.computed)l=k.nextId(),k.recurse(a.property,l),k.getStringValue(l),k.addEnsureSafeMemberName(l),f&&1!==f&&k.if_(k.not(k.computedMember(g,l)),k.lazyAssign(k.computedMember(g,l),"{}")),p=k.ensureSafeObject(k.computedMember(g,l)),k.assign(c,p),d&&(d.computed=!0,d.name=l);else{Xa(a.property.name);f&&1!==f&&k.if_(k.not(k.nonComputedMember(g,a.property.name)),k.lazyAssign(k.nonComputedMember(g,a.property.name), +"{}"));p=k.nonComputedMember(g,a.property.name);if(k.state.expensiveChecks||Fb(a.property.name))p=k.ensureSafeObject(p);k.assign(c,p);d&&(d.computed=!1,d.name=a.property.name)}},function(){k.assign(c,"undefined")});e(c)},!!f);break;case s.CallExpression:c=c||this.nextId();a.filter?(l=k.filter(a.callee.name),n=[],m(a.arguments,function(a){var c=k.nextId();k.recurse(a,c);n.push(c)}),p=l+"("+n.join(",")+")",k.assign(c,p),e(c)):(l=k.nextId(),g={},n=[],k.recurse(a.callee,l,g,function(){k.if_(k.notNull(l), +function(){k.addEnsureSafeFunction(l);m(a.arguments,function(a){k.recurse(a,k.nextId(),w,function(a){n.push(k.ensureSafeObject(a))})});g.name?(k.state.expensiveChecks||k.addEnsureSafeObject(g.context),p=k.member(g.context,g.name,g.computed)+"("+n.join(",")+")"):p=l+"("+n.join(",")+")";p=k.ensureSafeObject(p);k.assign(c,p)},function(){k.assign(c,"undefined")});e(c)}));break;case s.AssignmentExpression:l=this.nextId();g={};if(!pd(a.left))throw Z("lval");this.recurse(a.left,w,g,function(){k.if_(k.notNull(g.context), +function(){k.recurse(a.right,l);k.addEnsureSafeObject(k.member(g.context,g.name,g.computed));k.addEnsureSafeAssignContext(g.context);p=k.member(g.context,g.name,g.computed)+a.operator+l;k.assign(c,p);e(c||p)})},1);break;case s.ArrayExpression:n=[];m(a.elements,function(a){k.recurse(a,k.nextId(),w,function(a){n.push(a)})});p="["+n.join(",")+"]";this.assign(c,p);e(p);break;case s.ObjectExpression:n=[];m(a.properties,function(a){k.recurse(a.value,k.nextId(),w,function(c){n.push(k.escape(a.key.type=== +s.Identifier?a.key.name:""+a.key.value)+":"+c)})});p="{"+n.join(",")+"}";this.assign(c,p);e(p);break;case s.ThisExpression:this.assign(c,"s");e("s");break;case s.NGValueParameter:this.assign(c,"v"),e("v")}},getHasOwnProperty:function(a,c){var d=a+"."+c,e=this.current().own;e.hasOwnProperty(d)||(e[d]=this.nextId(!1,a+"&&("+this.escape(c)+" in "+a+")"));return e[d]},assign:function(a,c){if(a)return this.current().body.push(a,"=",c,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]= +this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,c){return"ifDefined("+a+","+this.escape(c)+")"},plus:function(a,c){return"plus("+a+","+c+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,c,d){if(!0===a)c();else{var e=this.current().body;e.push("if(",a,"){");c();e.push("}");d&&(e.push("else{"),d(),e.push("}"))}},not:function(a){return"!("+a+")"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,c){return a+"."+c},computedMember:function(a, +c){return a+"["+c+"]"},member:function(a,c,d){return d?this.computedMember(a,c):this.nonComputedMember(a,c)},addEnsureSafeObject:function(a){this.current().body.push(this.ensureSafeObject(a),";")},addEnsureSafeMemberName:function(a){this.current().body.push(this.ensureSafeMemberName(a),";")},addEnsureSafeFunction:function(a){this.current().body.push(this.ensureSafeFunction(a),";")},addEnsureSafeAssignContext:function(a){this.current().body.push(this.ensureSafeAssignContext(a),";")},ensureSafeObject:function(a){return"ensureSafeObject("+ +a+",text)"},ensureSafeMemberName:function(a){return"ensureSafeMemberName("+a+",text)"},ensureSafeFunction:function(a){return"ensureSafeFunction("+a+",text)"},getStringValue:function(a){this.assign(a,"getStringValue("+a+",text)")},ensureSafeAssignContext:function(a){return"ensureSafeAssignContext("+a+",text)"},lazyRecurse:function(a,c,d,e,f,h){var g=this;return function(){g.recurse(a,c,d,e,f,h)}},lazyAssign:function(a,c){var d=this;return function(){d.assign(a,c)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g, +stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(G(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(V(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw Z("esc");},nextId:function(a,c){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(c?"="+c:""));return d},current:function(){return this.state[this.state.computing]}}; +td.prototype={compile:function(a,c){var d=this,e=this.astBuilder.ast(a);this.expression=a;this.expensiveChecks=c;U(e,d.$filter);var f,h;if(f=qd(e))h=this.recurse(f);f=od(e.body);var g;f&&(g=[],m(f,function(a,c){var e=d.recurse(a);a.input=e;g.push(e);a.watchId=c}));var l=[];m(e.body,function(a){l.push(d.recurse(a.expression))});f=0===e.body.length?function(){}:1===e.body.length?l[0]:function(a,c){var d;m(l,function(e){d=e(a,c)});return d};h&&(f.assign=function(a,c,d){return h(a,d,c)});g&&(f.inputs= +g);f.literal=rd(e);f.constant=e.constant;return f},recurse:function(a,c,d){var e,f,h=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case s.Literal:return this.value(a.value,c);case s.UnaryExpression:return f=this.recurse(a.argument),this["unary"+a.operator](f,c);case s.BinaryExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e,f,c);case s.LogicalExpression:return e=this.recurse(a.left),f=this.recurse(a.right),this["binary"+a.operator](e, +f,c);case s.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),c);case s.Identifier:return Xa(a.name,h.expression),h.identifier(a.name,h.expensiveChecks||Fb(a.name),c,d,h.expression);case s.MemberExpression:return e=this.recurse(a.object,!1,!!d),a.computed||(Xa(a.property.name,h.expression),f=a.property.name),a.computed&&(f=this.recurse(a.property)),a.computed?this.computedMember(e,f,c,d,h.expression):this.nonComputedMember(e,f, +h.expensiveChecks,c,d,h.expression);case s.CallExpression:return g=[],m(a.arguments,function(a){g.push(h.recurse(a))}),a.filter&&(f=this.$filter(a.callee.name)),a.filter||(f=this.recurse(a.callee,!0)),a.filter?function(a,d,e,h){for(var r=[],m=0;m":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)>c(e,f,h,g);return d?{value:e}:e}},"binary<=":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)<=c(e,f,h,g);return d?{value:e}:e}},"binary>=":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)>=c(e,f,h,g);return d?{value:e}:e}},"binary&&":function(a,c,d){return function(e, +f,h,g){e=a(e,f,h,g)&&c(e,f,h,g);return d?{value:e}:e}},"binary||":function(a,c,d){return function(e,f,h,g){e=a(e,f,h,g)||c(e,f,h,g);return d?{value:e}:e}},"ternary?:":function(a,c,d,e){return function(f,h,g,l){f=a(f,h,g,l)?c(f,h,g,l):d(f,h,g,l);return e?{value:f}:f}},value:function(a,c){return function(){return c?{context:w,name:w,value:a}:a}},identifier:function(a,c,d,e,f){return function(h,g,l,k){h=g&&a in g?g:h;e&&1!==e&&h&&!h[a]&&(h[a]={});g=h?h[a]:w;c&&Ba(g,f);return d?{context:h,name:a,value:g}: +g}},computedMember:function(a,c,d,e,f){return function(h,g,l,k){var n=a(h,g,l,k),p,m;null!=n&&(p=c(h,g,l,k),p=kd(p),Xa(p,f),e&&1!==e&&n&&!n[p]&&(n[p]={}),m=n[p],Ba(m,f));return d?{context:n,name:p,value:m}:m}},nonComputedMember:function(a,c,d,e,f,h){return function(g,l,k,n){g=a(g,l,k,n);f&&1!==f&&g&&!g[c]&&(g[c]={});l=null!=g?g[c]:w;(d||Fb(c))&&Ba(l,h);return e?{context:g,name:c,value:l}:l}},inputs:function(a,c){return function(d,e,f,h){return h?h[c]:a(d,e,f)}}};var fc=function(a,c,d){this.lexer= +a;this.$filter=c;this.options=d;this.ast=new s(this.lexer);this.astCompiler=d.csp?new td(this.ast,c):new sd(this.ast,c)};fc.prototype={constructor:fc,parse:function(a){return this.astCompiler.compile(a,this.options.expensiveChecks)}};fa();fa();var Yf=Object.prototype.valueOf,Ca=I("$sce"),oa={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},ga=I("$compile"),$=X.createElement("a"),xd=Aa(Q.location.href);yd.$inject=["$document"];Kc.$inject=["$provide"];zd.$inject=["$locale"];Bd.$inject= +["$locale"];var hc=".",hg={yyyy:aa("FullYear",4),yy:aa("FullYear",2,0,!0),y:aa("FullYear",1),MMMM:Hb("Month"),MMM:Hb("Month",!0),MM:aa("Month",2,1),M:aa("Month",1,1),dd:aa("Date",2),d:aa("Date",1),HH:aa("Hours",2),H:aa("Hours",1),hh:aa("Hours",2,-12),h:aa("Hours",1,-12),mm:aa("Minutes",2),m:aa("Minutes",1),ss:aa("Seconds",2),s:aa("Seconds",1),sss:aa("Milliseconds",3),EEEE:Hb("Day"),EEE:Hb("Day",!0),a:function(a,c){return 12>a.getHours()?c.AMPMS[0]:c.AMPMS[1]},Z:function(a,c,d){a=-1*d;return a=(0<= +a?"+":"")+(Gb(Math[0=a.getFullYear()?c.ERANAMES[0]:c.ERANAMES[1]}},gg=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,fg=/^\-?\d+$/;Ad.$inject=["$locale"];var cg=qa(F),dg=qa(sb);Cd.$inject=["$parse"];var he=qa({restrict:"E",compile:function(a,c){if(!c.href&&!c.xlinkHref)return function(a,c){if("a"===c[0].nodeName.toLowerCase()){var f="[object SVGAnimatedString]"=== +va.call(c.prop("href"))?"xlink:href":"href";c.on("click",function(a){c.attr(f)||a.preventDefault()})}}}}),tb={};m(Bb,function(a,c){function d(a,d,f){a.$watch(f[e],function(a){f.$set(c,!!a)})}if("multiple"!=a){var e=ya("ng-"+c),f=d;"checked"===a&&(f=function(a,c,f){f.ngModel!==f[e]&&d(a,c,f)});tb[e]=function(){return{restrict:"A",priority:100,link:f}}}});m($c,function(a,c){tb[c]=function(){return{priority:100,link:function(a,e,f){if("ngPattern"===c&&"/"==f.ngPattern.charAt(0)&&(e=f.ngPattern.match(jg))){f.$set("ngPattern", +new RegExp(e[1],e[2]));return}a.$watch(f[c],function(a){f.$set(c,a)})}}}});m(["src","srcset","href"],function(a){var c=ya("ng-"+a);tb[c]=function(){return{priority:99,link:function(d,e,f){var h=a,g=a;"href"===a&&"[object SVGAnimatedString]"===va.call(e.prop("href"))&&(g="xlinkHref",f.$attr[g]="xlink:href",h=null);f.$observe(c,function(c){c?(f.$set(g,c),Wa&&h&&e.prop(h,f[g])):"href"===a&&f.$set(g,null)})}}}});var Ib={$addControl:y,$$renameControl:function(a,c){a.$name=c},$removeControl:y,$setValidity:y, +$setDirty:y,$setPristine:y,$setSubmitted:y};Gd.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Od=function(a){return["$timeout","$parse",function(c,d){function e(a){return""===a?d('this[""]').assign:d(a).assign||y}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Gd,compile:function(d,h){d.addClass(Ya).addClass(mb);var g=h.name?"name":a&&h.ngForm?"ngForm":!1;return{pre:function(a,d,f,h){var m=h[0];if(!("action"in f)){var t=function(c){a.$apply(function(){m.$commitViewValue(); +m.$setSubmitted()});c.preventDefault()};d[0].addEventListener("submit",t,!1);d.on("$destroy",function(){c(function(){d[0].removeEventListener("submit",t,!1)},0,!1)})}(h[1]||m.$$parentForm).$addControl(m);var s=g?e(m.$name):y;g&&(s(a,m),f.$observe(g,function(c){m.$name!==c&&(s(a,w),m.$$parentForm.$$renameControl(m,c),s=e(m.$name),s(a,m))}));d.on("$destroy",function(){m.$$parentForm.$removeControl(m);s(a,w);P(m,Ib)})}}}}}]},ie=Od(),ve=Od(!0),ig=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/, +sg=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,tg=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,ug=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,Pd=/^(\d{4})-(\d{2})-(\d{2})$/,Qd=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,lc=/^(\d{4})-W(\d\d)$/,Rd=/^(\d{4})-(\d\d)$/,Sd=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Td={text:function(a,c,d,e,f,h){jb(a,c,d,e,f,h);jc(e)},date:kb("date", +Pd,Kb(Pd,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":kb("datetimelocal",Qd,Kb(Qd,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:kb("time",Sd,Kb(Sd,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:kb("week",lc,function(a,c){if(ea(a))return a;if(G(a)){lc.lastIndex=0;var d=lc.exec(a);if(d){var e=+d[1],f=+d[2],h=d=0,g=0,l=0,k=Ed(e),f=7*(f-1);c&&(d=c.getHours(),h=c.getMinutes(),g=c.getSeconds(),l=c.getMilliseconds());return new Date(e,0,k.getDate()+f,d,h,g,l)}}return NaN},"yyyy-Www"), +month:kb("month",Rd,Kb(Rd,["yyyy","MM"]),"yyyy-MM"),number:function(a,c,d,e,f,h){Id(a,c,d,e);jb(a,c,d,e,f,h);e.$$parserName="number";e.$parsers.push(function(a){return e.$isEmpty(a)?null:ug.test(a)?parseFloat(a):w});e.$formatters.push(function(a){if(!e.$isEmpty(a)){if(!V(a))throw lb("numfmt",a);a=a.toString()}return a});if(A(d.min)||d.ngMin){var g;e.$validators.min=function(a){return e.$isEmpty(a)||v(g)||a>=g};d.$observe("min",function(a){A(a)&&!V(a)&&(a=parseFloat(a,10));g=V(a)&&!isNaN(a)?a:w;e.$validate()})}if(A(d.max)|| +d.ngMax){var l;e.$validators.max=function(a){return e.$isEmpty(a)||v(l)||a<=l};d.$observe("max",function(a){A(a)&&!V(a)&&(a=parseFloat(a,10));l=V(a)&&!isNaN(a)?a:w;e.$validate()})}},url:function(a,c,d,e,f,h){jb(a,c,d,e,f,h);jc(e);e.$$parserName="url";e.$validators.url=function(a,c){var d=a||c;return e.$isEmpty(d)||sg.test(d)}},email:function(a,c,d,e,f,h){jb(a,c,d,e,f,h);jc(e);e.$$parserName="email";e.$validators.email=function(a,c){var d=a||c;return e.$isEmpty(d)||tg.test(d)}},radio:function(a,c, +d,e){v(d.name)&&c.attr("name",++nb);c.on("click",function(a){c[0].checked&&e.$setViewValue(d.value,a&&a.type)});e.$render=function(){c[0].checked=d.value==e.$viewValue};d.$observe("value",e.$render)},checkbox:function(a,c,d,e,f,h,g,l){var k=Jd(l,a,"ngTrueValue",d.ngTrueValue,!0),n=Jd(l,a,"ngFalseValue",d.ngFalseValue,!1);c.on("click",function(a){e.$setViewValue(c[0].checked,a&&a.type)});e.$render=function(){c[0].checked=e.$viewValue};e.$isEmpty=function(a){return!1===a};e.$formatters.push(function(a){return ka(a, +k)});e.$parsers.push(function(a){return a?k:n})},hidden:y,button:y,submit:y,reset:y,file:y},Ec=["$browser","$sniffer","$filter","$parse",function(a,c,d,e){return{restrict:"E",require:["?ngModel"],link:{pre:function(f,h,g,l){l[0]&&(Td[F(g.type)]||Td.text)(f,h,g,l[0],c,a,d,e)}}}}],vg=/^(true|false|\d+)$/,Ne=function(){return{restrict:"A",priority:100,compile:function(a,c){return vg.test(c.ngValue)?function(a,c,f){f.$set("value",a.$eval(f.ngValue))}:function(a,c,f){a.$watch(f.ngValue,function(a){f.$set("value", +a)})}}}},ne=["$compile",function(a){return{restrict:"AC",compile:function(c){a.$$addBindingClass(c);return function(c,e,f){a.$$addBindingInfo(e,f.ngBind);e=e[0];c.$watch(f.ngBind,function(a){e.textContent=v(a)?"":a})}}}}],pe=["$interpolate","$compile",function(a,c){return{compile:function(d){c.$$addBindingClass(d);return function(d,f,h){d=a(f.attr(h.$attr.ngBindTemplate));c.$$addBindingInfo(f,d.expressions);f=f[0];h.$observe("ngBindTemplate",function(a){f.textContent=v(a)?"":a})}}}}],oe=["$sce","$parse", +"$compile",function(a,c,d){return{restrict:"A",compile:function(e,f){var h=c(f.ngBindHtml),g=c(f.ngBindHtml,function(a){return(a||"").toString()});d.$$addBindingClass(e);return function(c,e,f){d.$$addBindingInfo(e,f.ngBindHtml);c.$watch(g,function(){e.html(a.getTrustedHtml(h(c))||"")})}}}}],Me=qa({restrict:"A",require:"ngModel",link:function(a,c,d,e){e.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),qe=kc("",!0),se=kc("Odd",0),re=kc("Even",1),te=Na({compile:function(a,c){c.$set("ngCloak", +w);a.removeClass("ng-cloak")}}),ue=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Jc={},wg={blur:!0,focus:!0};m("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(a){var c=ya("ng-"+a);Jc[c]=["$parse","$rootScope",function(d,e){return{restrict:"A",compile:function(f,h){var g=d(h[c],null,!0);return function(c,d){d.on(a,function(d){var f=function(){g(c,{$event:d})}; +wg[a]&&e.$$phase?c.$evalAsync(f):c.$apply(f)})}}}}]});var xe=["$animate",function(a){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(c,d,e,f,h){var g,l,k;c.$watch(e.ngIf,function(c){c?l||h(function(c,f){l=f;c[c.length++]=X.createComment(" end ngIf: "+e.ngIf+" ");g={clone:c};a.enter(c,d.parent(),d)}):(k&&(k.remove(),k=null),l&&(l.$destroy(),l=null),g&&(k=rb(g.clone),a.leave(k).then(function(){k=null}),g=null))})}}}],ye=["$templateRequest","$anchorScroll", +"$animate",function(a,c,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:da.noop,compile:function(e,f){var h=f.ngInclude||f.src,g=f.onload||"",l=f.autoscroll;return function(e,f,m,r,t){var s=0,v,u,q,z=function(){u&&(u.remove(),u=null);v&&(v.$destroy(),v=null);q&&(d.leave(q).then(function(){u=null}),u=q,q=null)};e.$watch(h,function(h){var m=function(){!A(l)||l&&!e.$eval(l)||c()},p=++s;h?(a(h,!0).then(function(a){if(p===s){var c=e.$new();r.template=a;a=t(c,function(a){z(); +d.enter(a,null,f).then(m)});v=c;q=a;v.$emit("$includeContentLoaded",h);e.$eval(g)}},function(){p===s&&(z(),e.$emit("$includeContentError",h))}),e.$emit("$includeContentRequested",h)):(z(),r.template=null)})}}}}],Pe=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(c,d,e,f){/SVG/.test(d[0].toString())?(d.empty(),a(Mc(f.template,X).childNodes)(c,function(a){d.append(a)},{futureParentElement:d})):(d.html(f.template),a(d.contents())(c))}}}],ze=Na({priority:450, +compile:function(){return{pre:function(a,c,d){a.$eval(d.ngInit)}}}}),Le=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,c,d,e){var f=c.attr(d.$attr.ngList)||", ",h="false"!==d.ngTrim,g=h?T(f):f;e.$parsers.push(function(a){if(!v(a)){var c=[];a&&m(a.split(g),function(a){a&&c.push(h?T(a):a)});return c}});e.$formatters.push(function(a){return J(a)?a.join(f):w});e.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",Kd="ng-invalid",Ya="ng-pristine",Jb="ng-dirty",Md= +"ng-pending",lb=I("ngModel"),xg=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(a,c,d,e,f,h,g,l,k,n){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=w;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending= +w;this.$name=n(d.name||"",!1)(a);this.$$parentForm=Ib;var p=f(d.ngModel),r=p.assign,t=p,s=r,K=null,u,q=this;this.$$setOptions=function(a){if((q.$options=a)&&a.getterSetter){var c=f(d.ngModel+"()"),g=f(d.ngModel+"($$$p)");t=function(a){var d=p(a);x(d)&&(d=c(a));return d};s=function(a,c){x(p(a))?g(a,{$$$p:q.$modelValue}):r(a,q.$modelValue)}}else if(!p.assign)throw lb("nonassign",d.ngModel,xa(e));};this.$render=y;this.$isEmpty=function(a){return v(a)||""===a||null===a||a!==a};var z=0;Hd({ctrl:this,$element:e, +set:function(a,c){a[c]=!0},unset:function(a,c){delete a[c]},$animate:h});this.$setPristine=function(){q.$dirty=!1;q.$pristine=!0;h.removeClass(e,Jb);h.addClass(e,Ya)};this.$setDirty=function(){q.$dirty=!0;q.$pristine=!1;h.removeClass(e,Ya);h.addClass(e,Jb);q.$$parentForm.$setDirty()};this.$setUntouched=function(){q.$touched=!1;q.$untouched=!0;h.setClass(e,"ng-untouched","ng-touched")};this.$setTouched=function(){q.$touched=!0;q.$untouched=!1;h.setClass(e,"ng-touched","ng-untouched")};this.$rollbackViewValue= +function(){g.cancel(K);q.$viewValue=q.$$lastCommittedViewValue;q.$render()};this.$validate=function(){if(!V(q.$modelValue)||!isNaN(q.$modelValue)){var a=q.$$rawModelValue,c=q.$valid,d=q.$modelValue,e=q.$options&&q.$options.allowInvalid;q.$$runValidators(a,q.$$lastCommittedViewValue,function(f){e||c===f||(q.$modelValue=f?a:w,q.$modelValue!==d&&q.$$writeModelToScope())})}};this.$$runValidators=function(a,c,d){function e(){var d=!0;m(q.$validators,function(e,f){var h=e(a,c);d=d&&h;g(f,h)});return d? +!0:(m(q.$asyncValidators,function(a,c){g(c,null)}),!1)}function f(){var d=[],e=!0;m(q.$asyncValidators,function(f,h){var k=f(a,c);if(!k||!x(k.then))throw lb("$asyncValidators",k);g(h,w);d.push(k.then(function(){g(h,!0)},function(a){e=!1;g(h,!1)}))});d.length?k.all(d).then(function(){h(e)},y):h(!0)}function g(a,c){l===z&&q.$setValidity(a,c)}function h(a){l===z&&d(a)}z++;var l=z;(function(){var a=q.$$parserName||"parse";if(v(u))g(a,null);else return u||(m(q.$validators,function(a,c){g(c,null)}),m(q.$asyncValidators, +function(a,c){g(c,null)})),g(a,u),u;return!0})()?e()?f():h(!1):h(!1)};this.$commitViewValue=function(){var a=q.$viewValue;g.cancel(K);if(q.$$lastCommittedViewValue!==a||""===a&&q.$$hasNativeValidators)q.$$lastCommittedViewValue=a,q.$pristine&&this.$setDirty(),this.$$parseAndValidate()};this.$$parseAndValidate=function(){var c=q.$$lastCommittedViewValue;if(u=v(c)?w:!0)for(var d=0;df||e.$isEmpty(c)||c.length<=f}}}}},Gc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=Y(a)||0;e.$validate()}); -e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};Q.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(ae(),ce(aa),aa.module("ngLocale",[],["$provide",function(a){function c(a){a+="";var c=a.indexOf(".");return-1==c?0:a.length-c-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "), +p.ngModelCtrl.$render()})}}}}}],le=qa({restrict:"E",terminal:!1}),Gc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){e&&(d.required=!0,e.$validators.required=function(a,c){return!d.required||!e.$isEmpty(c)},d.$observe("required",function(){e.$validate()}))}}},Fc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f,h=d.ngPattern||d.pattern;d.$observe("pattern",function(a){G(a)&&0f||e.$isEmpty(c)||c.length<=f}}}}},Hc=function(){return{restrict:"A",require:"?ngModel",link:function(a,c,d,e){if(e){var f=0;d.$observe("minlength",function(a){f=Y(a)||0;e.$validate()}); +e.$validators.minlength=function(a,c){return e.$isEmpty(c)||c.length>=f}}}}};Q.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(ce(),ee(da),da.module("ngLocale",[],["$provide",function(a){function c(a){a+="";var c=a.indexOf(".");return-1==c?0:a.length-c-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "), SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3, -maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",pluralCat:function(a,e){var f=a|0,g=e;w===g&&(g=Math.min(c(a),3));Math.pow(10,g);return 1==f&&0==g?"one":"other"}})}]),C(X).ready(function(){Xd(X,yc)}))})(window,document);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''); +maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",pluralCat:function(a,e){var f=a|0,h=e;w===h&&(h=Math.min(c(a),3));Math.pow(10,h);return 1==f&&0==h?"one":"other"}})}]),B(X).ready(function(){Zd(X,zc)}))})(window,document);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''); //# sourceMappingURL=angular.min.js.map diff --git a/UI/WebServerResources/js/vendor/angular.min.js.map b/UI/WebServerResources/js/vendor/angular.min.js.map index da1f429b9..a57c997f9 100644 --- a/UI/WebServerResources/js/vendor/angular.min.js.map +++ b/UI/WebServerResources/js/vendor/angular.min.js.map @@ -1,8 +1,8 @@ { "version":3, "file":"angular.min.js", -"lineCount":292, -"mappings":"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", +"lineCount":293, +"mappings":"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", "sources":["angular.js"], -"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","Object","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","isBlankObject","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","baseExtend","dst","objs","deep","ii","isObject","j","jj","src","isDate","Date","valueOf","isRegExp","RegExp","extend","slice","arguments","merge","toInt","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","hasCustomToString","toString","prototype","isUndefined","isDefined","getPrototypeOf","isNumber","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","TYPED_ARRAY_REGEXP","test","push","constructor","getTime","match","lastIndex","cloneNode","emptyObject","shallowCopy","charAt","equals","o1","o2","t1","t2","keySet","createMap","concat","array1","array2","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","timezoneToOffset","timezone","fallback","requestedTimezoneOffset","isNaN","convertTimezoneToLocal","date","reverse","timezoneOffset","getTimezoneOffset","setMinutes","getMinutes","minutes","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","splitPoint","substring","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","getAttribute","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jqName","jq","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","invokeLaterAndSetModuleName","recipeName","factoryFunction","$$moduleName","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","decorator","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$animateCss","$CoreAnimateCssProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$CoreAnimateRunnerProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$$forceReflow","$$ForceReflowProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","result","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","returnedValue","annotate","has","$injector","instanceCache","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","mergeClasses","b","splitClasses","klass","prepareAnimateOptions","options","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","cacheStateAndFireUrlChange","pendingLocation","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$applicationDestroyed","self.$$applicationDestroyed","off","$$checkUrlChange","baseHref","self.baseHref","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","bindToController","controllerAs","CNTRL_REG","$$bindings","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","destroyBindings","$new","$$destroyBindings","$on","transcludeOnThisElement","createBoundTranscludeFn","transclude","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","msie","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","inheritType","dataName","setupControllers","controllerDirectives","controllerKey","$scope","$attrs","$transclude","controllerInstance","hasElementTranscludeDirective","linkNode","thisLinkFn","controllersBoundTransclude","cloneAttachFn","scopeToChild","templateDirective","$$originalDirective","initializeDirectiveBindings","scopeDirective","newScopeDirective","controllerForBindings","identifier","controllerResult","invokeLinkFn","template","templateUrl","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","wrapModuleNameIfDefined","moduleName","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","$$observers","newValue","$$inter","$$scope","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","hasData","expando","k","kk","annotation","newScope","onNewScopeDestroyed","lastValue","parentGet","parentSet","compare","$observe","literal","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","ALIASED_ATTR","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","serializeValue","v","toISOString","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headerVal","headerKey","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","this.useApplyAsync","useLegacyPromise","useLegacyPromiseExtensions","this.useLegacyPromiseExtensions","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","$httpMinErrLegacyFn","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","serializedParams","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","rawDocument","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","unescapeText","escapedStartRegexp","escapedEndRegexp","mustHaveExpression","parseStringifyInterceptor","getTrusted","$interpolateMinErr","interr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","throwNoconcat","compute","interpolationFn","$$watchDelegate","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","interval","count","invokeApply","hasParams","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","LocationHtml5Url","appBase","appBaseNoFile","basePrefix","$$html5","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","base","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","lastIndexOf","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","warn","ensureSafeMemberName","fullExpression","$parseMinErr","ensureSafeObject","children","ensureSafeFunction","CALL","APPLY","BIND","ifDefined","plusFn","r","findConstantAndWatchExpressions","ast","allConstants","argsToWatch","AST","Program","expr","Literal","toWatch","UnaryExpression","argument","BinaryExpression","left","right","LogicalExpression","ConditionalExpression","alternate","consequent","Identifier","MemberExpression","object","computed","CallExpression","callee","AssignmentExpression","ArrayExpression","ObjectExpression","properties","ThisExpression","getInputs","lastExpression","isAssignable","assignableAST","NGValueParameter","operator","isLiteral","ASTCompiler","astBuilder","ASTInterpreter","isPossiblyDangerousMemberName","getValueOf","objectValueOf","cacheDefault","cacheExpensive","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","objectEquality","parsedExpression","prettyPrintExpression","inputExpressions","inputs","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","noUnsafeEval","$parseOptions","expensiveChecks","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","supported","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","incrementWatchersCount","current","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","getTrustedResourceUrl","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","$$CookieReader","safeDecodeURIComponent","lastCookies","lastCookieString","cookieArray","cookie","currentCookieString","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","getTypeForFilter","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","NUMBER_FORMATS","amount","currencySymbol","fractionSize","CURRENCY_SYM","PATTERNS","maxFrac","formatNumber","GROUP_SEP","DECIMAL_SEP","number","groupSep","decimalSep","isNegative","abs","isInfinity","Infinity","isFinite","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","minFrac","round","fraction","lgroup","lgSize","group","gSize","negPre","posPre","negSuf","posSuf","padNumber","num","digits","neg","dateGetter","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","ERAS","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","format","DATETIME_FORMATS","NUMBER_STRING","DATE_FORMATS_SPLIT","dateTimezoneOffset","DATE_FORMATS","spacing","limit","processPredicates","sortPredicate","reverseOrder","map","predicate","descending","predicates","compareValues","getComparisonObject","predicateValues","doComparison","v1","v2","ngDirective","FormController","controls","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$$parentForm","nullFormCtrl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","$addControl","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","ngModelMinErr","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","rules","ngCspElement","ngCspAttribute","noInlineStyle","Function","name_","el","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","jqLiteHasData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","AnimateRunner","end","resume","pause","complete","pass","fail","postDigestElements","updateData","handleCSSClassChanges","existing","pin","domOperation","from","to","classesAdded","add","classesRemoved","$$registeredAnimations","classNameFilter","this.classNameFilter","$$classNameFilter","reservedRegex","NG_ANIMATE_CLASSNAME","domInsert","parentElement","afterElement","afterNode","ELEMENT_NODE","previousElementSibling","runner","enter","move","leave","addclass","animate","tempClasses","RAFPromise","getPromise","f1","f2","closed","start","domNode","offsetWidth","APPLICATION_JSON","$httpMinErr","$interpolateMinErr.throwNoconcat","$interpolateMinErr.interr","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","OPERATORS","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","throwError","chars","isExpOperator","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ExpressionStatement","Property","program","expressionStatement","expect","filterChain","assignment","ternary","logicalOR","consume","logicalAND","equality","relational","additive","multiplicative","unary","primary","arrayDeclaration","constants","parseArguments","baseExpression","peekToken","kind","e1","e2","e3","e4","peekAhead","t","nextId","vars","own","assignable","stage","computing","recurse","return_","generateFunction","fnKey","intoId","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","addEnsureSafeObject","notNull","addEnsureSafeMemberName","addEnsureSafeFunction","member","filterName","defaultValue","stringEscapeRegex","stringEscapeFn","c","charCodeAt","skip","init","fn.assign","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","astCompiler","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","AMPMS","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","ERANAMES","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","getSetter","ngFormCompile","formElement","nameAttr","ngFormPreLink","ctrls","handleFormSubmission","setter","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","getStringValue","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","Option","selectValue","label","disabled","getOptionValuesKeys","optionValues","optionValuesKeys","keyName","itemKey","valueName","selectAs","trackBy","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","getWatchables","watchedArray","optionValuesLength","disableWhen","getOptions","optionItems","selectValueMap","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","updateOptionElement","addOrReuseElement","removeExcessElements","skipEmptyAndUnknownOptions","emptyOption_","emptyOption","unknownOption_","unknownOption","updateOptions","previousValue","selectCtrl","readValue","groupMap","providedEmptyOption","updateOption","optionElement","groupElement","currentOptionElement","ngModelCtrl","nextValue","ngModelCtrl.$isEmpty","writeValue","selectCtrl.writeValue","selectCtrl.readValue","selectedValues","selections","selectedOption","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","pluralCat","whenExpFn","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","noopNgModelController","SelectController","optionsMap","renderUnknownOption","self.renderUnknownOption","unknownVal","removeUnknownOption","self.removeUnknownOption","self.readValue","self.writeValue","hasOption","addOption","self.addOption","removeOption","self.removeOption","self.hasOption","ngModelCtrl.$render","lastView","lastViewRef","selectMultipleWatch","valueInterpolated","optionValue","selectCtrlName","valueAttributeObserveAction","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","getDecimals","opt_precision","pow","ONE","OTHER","$$csp","head"] +"names":["window","document","undefined","minErr","isArrayLike","obj","isWindow","length","Object","nodeType","NODE_TYPE_ELEMENT","isString","isArray","forEach","iterator","context","key","isFunction","hasOwnProperty","call","isPrimitive","isBlankObject","forEachSorted","keys","sort","i","reverseParams","iteratorFn","value","nextUid","uid","setHashKey","h","$$hashKey","baseExtend","dst","objs","deep","ii","isObject","j","jj","src","isDate","Date","valueOf","isRegExp","RegExp","extend","slice","arguments","merge","toInt","str","parseInt","inherit","parent","extra","create","noop","identity","$","valueFn","hasCustomToString","toString","prototype","isUndefined","isDefined","getPrototypeOf","isNumber","isScope","$evalAsync","$watch","isBoolean","isElement","node","nodeName","prop","attr","find","makeMap","items","split","nodeName_","element","lowercase","arrayRemove","array","index","indexOf","splice","copy","source","destination","stackSource","stackDest","ngMinErr","TYPED_ARRAY_REGEXP","test","push","constructor","getTime","match","lastIndex","cloneNode","emptyObject","shallowCopy","charAt","equals","o1","o2","t1","t2","keySet","createMap","concat","array1","array2","bind","self","fn","curryArgs","startIndex","apply","toJsonReplacer","val","toJson","pretty","JSON","stringify","fromJson","json","parse","timezoneToOffset","timezone","fallback","requestedTimezoneOffset","isNaN","convertTimezoneToLocal","date","reverse","timezoneOffset","getTimezoneOffset","setMinutes","getMinutes","minutes","startingTag","jqLite","clone","empty","e","elemHtml","append","html","NODE_TYPE_TEXT","replace","tryDecodeURIComponent","decodeURIComponent","parseKeyValue","keyValue","splitPoint","substring","toKeyValue","parts","arrayValue","encodeUriQuery","join","encodeUriSegment","pctEncodeSpaces","encodeURIComponent","getNgAttribute","ngAttr","ngAttrPrefixes","getAttribute","angularInit","bootstrap","appElement","module","config","prefix","name","hasAttribute","candidate","querySelector","strictDi","modules","defaultConfig","doBootstrap","injector","tag","unshift","$provide","debugInfoEnabled","$compileProvider","createInjector","invoke","bootstrapApply","scope","compile","$apply","data","NG_ENABLE_DEBUG_INFO","NG_DEFER_BOOTSTRAP","angular","resumeBootstrap","angular.resumeBootstrap","extraModules","resumeDeferredBootstrap","reloadWithDebugInfo","location","reload","getTestability","rootElement","get","snake_case","separator","SNAKE_CASE_REGEXP","letter","pos","toLowerCase","bindJQuery","originalCleanData","bindJQueryFired","jqName","jq","jQuery","on","JQLitePrototype","isolateScope","controller","inheritedData","cleanData","jQuery.cleanData","elems","events","skipDestroyOnNextJQueryCleanData","elem","_data","$destroy","triggerHandler","JQLite","assertArg","arg","reason","assertArgFn","acceptArrayAnnotation","assertNotHasOwnProperty","getter","path","bindFnToScope","lastInstance","len","getBlockNodes","nodes","endNode","blockNodes","nextSibling","setupModuleLoader","ensure","factory","$injectorMinErr","$$minErr","requires","configFn","invokeLater","provider","method","insertMethod","queue","invokeQueue","moduleInstance","invokeLaterAndSetModuleName","recipeName","factoryFunction","$$moduleName","configBlocks","runBlocks","_invokeQueue","_configBlocks","_runBlocks","service","constant","decorator","animation","filter","directive","run","block","publishExternalAPI","version","uppercase","counter","csp","angularModule","ngModule","$$sanitizeUri","$$SanitizeUriProvider","$CompileProvider","a","htmlAnchorDirective","input","inputDirective","textarea","form","formDirective","script","scriptDirective","select","selectDirective","style","styleDirective","option","optionDirective","ngBind","ngBindDirective","ngBindHtml","ngBindHtmlDirective","ngBindTemplate","ngBindTemplateDirective","ngClass","ngClassDirective","ngClassEven","ngClassEvenDirective","ngClassOdd","ngClassOddDirective","ngCloak","ngCloakDirective","ngController","ngControllerDirective","ngForm","ngFormDirective","ngHide","ngHideDirective","ngIf","ngIfDirective","ngInclude","ngIncludeDirective","ngInit","ngInitDirective","ngNonBindable","ngNonBindableDirective","ngPluralize","ngPluralizeDirective","ngRepeat","ngRepeatDirective","ngShow","ngShowDirective","ngStyle","ngStyleDirective","ngSwitch","ngSwitchDirective","ngSwitchWhen","ngSwitchWhenDirective","ngSwitchDefault","ngSwitchDefaultDirective","ngOptions","ngOptionsDirective","ngTransclude","ngTranscludeDirective","ngModel","ngModelDirective","ngList","ngListDirective","ngChange","ngChangeDirective","pattern","patternDirective","ngPattern","required","requiredDirective","ngRequired","minlength","minlengthDirective","ngMinlength","maxlength","maxlengthDirective","ngMaxlength","ngValue","ngValueDirective","ngModelOptions","ngModelOptionsDirective","ngIncludeFillContentDirective","ngAttributeAliasDirectives","ngEventDirectives","$anchorScroll","$AnchorScrollProvider","$animate","$AnimateProvider","$animateCss","$CoreAnimateCssProvider","$$animateQueue","$$CoreAnimateQueueProvider","$$AnimateRunner","$$CoreAnimateRunnerProvider","$browser","$BrowserProvider","$cacheFactory","$CacheFactoryProvider","$controller","$ControllerProvider","$document","$DocumentProvider","$exceptionHandler","$ExceptionHandlerProvider","$filter","$FilterProvider","$$forceReflow","$$ForceReflowProvider","$interpolate","$InterpolateProvider","$interval","$IntervalProvider","$http","$HttpProvider","$httpParamSerializer","$HttpParamSerializerProvider","$httpParamSerializerJQLike","$HttpParamSerializerJQLikeProvider","$httpBackend","$HttpBackendProvider","$xhrFactory","$xhrFactoryProvider","$location","$LocationProvider","$log","$LogProvider","$parse","$ParseProvider","$rootScope","$RootScopeProvider","$q","$QProvider","$$q","$$QProvider","$sce","$SceProvider","$sceDelegate","$SceDelegateProvider","$sniffer","$SnifferProvider","$templateCache","$TemplateCacheProvider","$templateRequest","$TemplateRequestProvider","$$testability","$$TestabilityProvider","$timeout","$TimeoutProvider","$window","$WindowProvider","$$rAF","$$RAFProvider","$$jqLite","$$jqLiteProvider","$$HashMap","$$HashMapProvider","$$cookieReader","$$CookieReaderProvider","camelCase","SPECIAL_CHARS_REGEXP","_","offset","toUpperCase","MOZ_HACK_REGEXP","jqLiteAcceptsData","NODE_TYPE_DOCUMENT","jqLiteBuildFragment","tmp","fragment","createDocumentFragment","HTML_REGEXP","appendChild","createElement","TAG_NAME_REGEXP","exec","wrap","wrapMap","_default","innerHTML","XHTML_TAG_REGEXP","lastChild","childNodes","firstChild","textContent","createTextNode","argIsString","trim","jqLiteMinErr","parsed","SINGLE_TAG_REGEXP","jqLiteAddNodes","jqLiteClone","jqLiteDealoc","onlyDescendants","jqLiteRemoveData","querySelectorAll","descendants","l","jqLiteOff","type","unsupported","expandoStore","jqLiteExpandoStore","handle","listenerFns","removeEventListener","expandoId","ng339","jqCache","createIfNecessary","jqId","jqLiteData","isSimpleSetter","isSimpleGetter","massGetter","jqLiteHasClass","selector","jqLiteRemoveClass","cssClasses","setAttribute","cssClass","jqLiteAddClass","existingClasses","root","elements","jqLiteController","jqLiteInheritedData","documentElement","names","parentNode","NODE_TYPE_DOCUMENT_FRAGMENT","host","jqLiteEmpty","removeChild","jqLiteRemove","keepData","jqLiteDocumentLoaded","action","win","readyState","setTimeout","getBooleanAttrName","booleanAttr","BOOLEAN_ATTR","BOOLEAN_ELEMENTS","createEventHandler","eventHandler","event","isDefaultPrevented","event.isDefaultPrevented","defaultPrevented","eventFns","eventFnsLength","immediatePropagationStopped","originalStopImmediatePropagation","stopImmediatePropagation","event.stopImmediatePropagation","stopPropagation","isImmediatePropagationStopped","event.isImmediatePropagationStopped","$get","this.$get","hasClass","classes","addClass","removeClass","hashKey","nextUidFn","objType","HashMap","isolatedUid","this.nextUid","put","anonFn","args","fnText","STRIP_COMMENTS","FN_ARGS","modulesToLoad","supportObject","delegate","provider_","providerInjector","instantiate","providerCache","providerSuffix","enforceReturnValue","enforcedReturnValue","result","instanceInjector","factoryFn","enforce","loadModules","moduleFn","runInvokeQueue","invokeArgs","loadedModules","message","stack","createInternalInjector","cache","getService","serviceName","caller","INSTANTIATING","err","shift","locals","$inject","$$annotate","Type","instance","returnedValue","annotate","has","$injector","instanceCache","decorFn","origProvider","orig$get","origProvider.$get","origInstance","$delegate","autoScrollingEnabled","disableAutoScrolling","this.disableAutoScrolling","getFirstAnchor","list","Array","some","scrollTo","scrollIntoView","scroll","yOffset","getComputedStyle","position","getBoundingClientRect","bottom","elemTop","top","scrollBy","hash","elm","getElementById","getElementsByName","autoScrollWatch","autoScrollWatchAction","newVal","oldVal","mergeClasses","b","splitClasses","klass","prepareAnimateOptions","options","Browser","completeOutstandingRequest","outstandingRequestCount","outstandingRequestCallbacks","pop","error","cacheStateAndFireUrlChange","pendingLocation","cacheState","fireUrlChange","history","state","cachedState","lastCachedState","lastBrowserUrl","url","lastHistoryState","urlChangeListeners","listener","clearTimeout","pendingDeferIds","isMock","$$completeOutstandingRequest","$$incOutstandingRequestCount","self.$$incOutstandingRequestCount","notifyWhenNoOutstandingRequests","self.notifyWhenNoOutstandingRequests","callback","href","baseElement","self.url","sameState","sameBase","stripHash","substr","self.state","urlChangeInit","onUrlChange","self.onUrlChange","$$applicationDestroyed","self.$$applicationDestroyed","off","$$checkUrlChange","baseHref","self.baseHref","defer","self.defer","delay","timeoutId","cancel","self.defer.cancel","deferId","cacheFactory","cacheId","refresh","entry","freshEnd","staleEnd","n","link","p","nextEntry","prevEntry","caches","size","stats","id","capacity","Number","MAX_VALUE","lruHash","lruEntry","remove","removeAll","destroy","info","cacheFactory.info","cacheFactory.get","$$sanitizeUriProvider","parseIsolateBindings","directiveName","isController","LOCAL_REGEXP","bindings","definition","scopeName","$compileMinErr","mode","collection","optional","attrName","assertValidDirectiveName","hasDirectives","COMMENT_DIRECTIVE_REGEXP","CLASS_DIRECTIVE_REGEXP","ALL_OR_NOTHING_ATTRS","REQUIRE_PREFIX_REGEXP","EVENT_HANDLER_ATTR_REGEXP","this.directive","registerDirective","directiveFactory","Suffix","directives","priority","require","restrict","bindToController","controllerAs","CNTRL_REG","$$bindings","$$isolateBindings","aHrefSanitizationWhitelist","this.aHrefSanitizationWhitelist","regexp","imgSrcSanitizationWhitelist","this.imgSrcSanitizationWhitelist","this.debugInfoEnabled","enabled","safeAddClass","$element","className","$compileNodes","transcludeFn","maxPriority","ignoreDirective","previousCompileContext","nodeValue","compositeLinkFn","compileNodes","$$addScopeClass","namespace","publicLinkFn","cloneConnectFn","parentBoundTranscludeFn","transcludeControllers","futureParentElement","$$boundTransclude","$linkNode","wrapTemplate","controllerName","$$addScopeInfo","nodeList","$rootElement","childLinkFn","childScope","childBoundTranscludeFn","stableNodeList","nodeLinkFnFound","linkFns","idx","nodeLinkFn","destroyBindings","$new","$$destroyBindings","$on","transcludeOnThisElement","createBoundTranscludeFn","transclude","templateOnThisElement","attrs","linkFnFound","Attributes","collectDirectives","applyDirectivesToNode","$$element","terminal","previousBoundTranscludeFn","boundTranscludeFn","transcludedScope","cloneFn","controllers","containingScope","$$transcluded","attrsMap","$attr","addDirective","directiveNormalize","isNgAttr","nAttrs","attributes","attrStartName","attrEndName","ngAttrName","NG_ATTR_BINDING","PREFIX_REGEXP","directiveNName","directiveIsMultiElement","nName","addAttrInterpolateDirective","animVal","msie","addTextInterpolateDirective","NODE_TYPE_COMMENT","byPriority","groupScan","attrStart","attrEnd","depth","groupElementsLinkFnWrapper","linkFn","compileNode","templateAttrs","jqCollection","originalReplaceDirective","preLinkFns","postLinkFns","addLinkFns","pre","post","newIsolateScopeDirective","$$isolateScope","cloneAndAnnotateFn","getControllers","elementControllers","inheritType","dataName","setupControllers","controllerDirectives","controllerKey","$scope","$attrs","$transclude","controllerInstance","hasElementTranscludeDirective","linkNode","thisLinkFn","controllersBoundTransclude","cloneAttachFn","scopeToChild","templateDirective","$$originalDirective","initializeDirectiveBindings","scopeDirective","newScopeDirective","controllerForBindings","identifier","controllerResult","invokeLinkFn","template","templateUrl","terminalPriority","nonTlbTranscludeDirective","hasTranscludeDirective","hasTemplate","$compileNode","$template","childTranscludeFn","$$start","$$end","directiveValue","assertNoDuplicate","$$tlb","createComment","replaceWith","replaceDirective","contents","denormalizeTemplate","removeComments","templateNamespace","newTemplateAttrs","templateDirectives","unprocessedDirectives","markDirectivesAsIsolate","mergeTemplateAttributes","compileTemplateUrl","Math","max","tDirectives","startAttrName","endAttrName","multiElement","srcAttr","dstAttr","$set","tAttrs","linkQueue","afterTemplateNodeLinkFn","afterTemplateChildLinkFn","beforeTemplateCompileNode","origAsyncDirective","derivedSyncDirective","then","content","tempTemplateAttrs","beforeTemplateLinkNode","linkRootElement","$$destroyed","oldClasses","delayedNodeLinkFn","ignoreChildLinkFn","diff","what","previousDirective","wrapModuleNameIfDefined","moduleName","text","interpolateFn","textInterpolateCompileFn","templateNode","templateNodeParent","hasCompileParent","$$addBindingClass","textInterpolateLinkFn","$$addBindingInfo","expressions","interpolateFnWatchAction","wrapper","getTrustedContext","attrNormalizedName","HTML","RESOURCE_URL","allOrNothing","trustedContext","attrInterpolatePreLinkFn","$$observers","newValue","$$inter","$$scope","oldValue","$updateClass","elementsToRemove","newNode","firstElementToRemove","removeCount","j2","replaceChild","hasData","expando","k","kk","annotation","newScope","onNewScopeDestroyed","lastValue","parentGet","parentSet","compare","$observe","literal","assign","parentValueWatch","parentValue","$stateful","unwatch","$watchCollection","attributesToCopy","$normalize","$addClass","classVal","$removeClass","newClasses","toAdd","tokenDifference","toRemove","writeAttr","booleanKey","aliasedKey","ALIASED_ATTR","observer","trimmedSrcset","srcPattern","rawUris","nbrUrisWith2parts","floor","innerIdx","lastTuple","removeAttr","listeners","startSymbol","endSymbol","binding","isolated","noTemplate","str1","str2","values","tokens1","tokens2","token","jqNodes","globals","register","this.register","allowGlobals","this.allowGlobals","addIdentifier","expression","later","ident","$controllerMinErr","controllerPrototype","exception","cause","serializeValue","v","toISOString","ngParamSerializer","params","jQueryLikeParamSerializer","serialize","toSerialize","topLevel","defaultHttpResponseTransform","headers","tempData","JSON_PROTECTION_PREFIX","contentType","jsonStart","JSON_START","JSON_ENDS","parseHeaders","line","headerVal","headerKey","headersGetter","headersObj","transformData","status","fns","defaults","transformResponse","transformRequest","d","common","CONTENT_TYPE_APPLICATION_JSON","patch","xsrfCookieName","xsrfHeaderName","paramSerializer","useApplyAsync","this.useApplyAsync","useLegacyPromise","useLegacyPromiseExtensions","this.useLegacyPromiseExtensions","interceptorFactories","interceptors","requestConfig","response","resp","reject","executeHeaderFns","headerContent","processedHeaders","headerFn","header","mergeHeaders","defHeaders","reqHeaders","defHeaderName","lowercaseDefHeaderName","reqHeaderName","chain","serverRequest","reqData","withCredentials","sendReq","promise","when","reversedInterceptors","interceptor","request","requestError","responseError","thenFn","rejectFn","success","promise.success","promise.error","$httpMinErrLegacyFn","done","headersString","statusText","resolveHttpPromise","resolvePromise","$applyAsync","$$phase","deferred","resolve","resolvePromiseWithResult","removePendingReq","pendingRequests","cachedResp","buildUrl","defaultCache","xsrfValue","urlIsSameOrigin","timeout","responseType","serializedParams","interceptorFactory","createShortMethods","createShortMethodsWithData","createXhr","XMLHttpRequest","createHttpBackend","callbacks","$browserDefer","rawDocument","jsonpReq","callbackId","async","body","called","addEventListener","timeoutRequest","jsonpDone","xhr","abort","completeRequest","open","setRequestHeader","onload","xhr.onload","responseText","urlResolve","protocol","getAllResponseHeaders","onerror","onabort","send","this.startSymbol","this.endSymbol","escape","ch","unescapeText","escapedStartRegexp","escapedEndRegexp","mustHaveExpression","parseStringifyInterceptor","getTrusted","$interpolateMinErr","interr","endIndex","parseFns","textLength","expressionPositions","startSymbolLength","exp","endSymbolLength","throwNoconcat","compute","interpolationFn","$$watchDelegate","$watchGroup","interpolateFnWatcher","oldValues","currValue","$interpolate.startSymbol","$interpolate.endSymbol","interval","count","invokeApply","hasParams","setInterval","clearInterval","iteration","skipApply","$$intervalId","tick","notify","intervals","interval.cancel","encodePath","segments","parseAbsoluteUrl","absoluteUrl","locationObj","parsedUrl","$$protocol","$$host","hostname","$$port","port","DEFAULT_PORTS","parseAppUrl","relativeUrl","prefixed","$$path","pathname","$$search","search","$$hash","beginsWith","begin","whole","trimEmptyHash","LocationHtml5Url","appBase","appBaseNoFile","basePrefix","$$html5","$$parse","this.$$parse","pathUrl","$locationMinErr","$$compose","this.$$compose","$$url","$$absUrl","$$parseLinkUrl","this.$$parseLinkUrl","relHref","appUrl","prevAppUrl","rewrittenUrl","LocationHashbangUrl","hashPrefix","withoutBaseUrl","withoutHashUrl","windowsFilePathExp","base","firstPathSegmentMatch","LocationHashbangInHtml5Url","locationGetter","property","locationGetterSetter","preprocess","html5Mode","requireBase","rewriteLinks","this.hashPrefix","this.html5Mode","setBrowserUrlWithFallback","oldUrl","oldState","$$state","afterLocationChange","$broadcast","absUrl","LocationMode","initialUrl","lastIndexOf","IGNORE_URI_REGEXP","ctrlKey","metaKey","shiftKey","which","button","target","absHref","preventDefault","initializing","newUrl","newState","$digest","$locationWatch","currentReplace","$$replace","urlOrStateChanged","debug","debugEnabled","this.debugEnabled","flag","formatError","Error","sourceURL","consoleLog","console","logFn","log","hasApply","arg1","arg2","warn","ensureSafeMemberName","fullExpression","$parseMinErr","getStringValue","ensureSafeObject","children","ensureSafeFunction","CALL","APPLY","BIND","ensureSafeAssignContext","Function","ifDefined","plusFn","r","findConstantAndWatchExpressions","ast","allConstants","argsToWatch","AST","Program","expr","Literal","toWatch","UnaryExpression","argument","BinaryExpression","left","right","LogicalExpression","ConditionalExpression","alternate","consequent","Identifier","MemberExpression","object","computed","CallExpression","callee","AssignmentExpression","ArrayExpression","ObjectExpression","properties","ThisExpression","getInputs","lastExpression","isAssignable","assignableAST","NGValueParameter","operator","isLiteral","ASTCompiler","astBuilder","ASTInterpreter","isPossiblyDangerousMemberName","getValueOf","objectValueOf","cacheDefault","cacheExpensive","expressionInputDirtyCheck","oldValueOfValue","inputsWatchDelegate","objectEquality","parsedExpression","prettyPrintExpression","inputExpressions","inputs","lastResult","oldInputValueOf","expressionInputWatch","newInputValue","oldInputValueOfValues","oldInputValues","expressionInputsWatch","changed","oneTimeWatchDelegate","oneTimeWatch","oneTimeListener","old","$$postDigest","oneTimeLiteralWatchDelegate","isAllDefined","allDefined","constantWatchDelegate","constantWatch","constantListener","addInterceptor","interceptorFn","watchDelegate","regularInterceptedExpression","oneTimeInterceptedExpression","noUnsafeEval","$parseOptions","expensiveChecks","$parseOptionsExpensive","oneTime","cacheKey","parseOptions","lexer","Lexer","parser","Parser","qFactory","nextTick","exceptionHandler","callOnce","resolveFn","Promise","simpleBind","scheduleProcessQueue","processScheduled","pending","Deferred","$qMinErr","TypeError","onFulfilled","onRejected","progressBack","catch","finally","handleCallback","$$reject","$$resolve","progress","makePromise","resolved","isResolved","callbackOutput","errback","$Q","Q","resolver","all","promises","results","requestAnimationFrame","webkitRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","webkitCancelRequestAnimationFrame","rafSupported","raf","timer","supported","createChildScopeClass","ChildScope","$$watchers","$$nextSibling","$$childHead","$$childTail","$$listeners","$$listenerCount","$$watchersCount","$id","$$ChildScope","TTL","$rootScopeMinErr","lastDirtyWatch","applyAsyncId","digestTtl","this.digestTtl","destroyChildScope","$event","currentScope","Scope","$parent","$$prevSibling","$root","beginPhase","phase","incrementWatchersCount","current","decrementListenerCount","initWatchVal","flushApplyAsync","applyAsyncQueue","scheduleApplyAsync","isolate","child","watchExp","watcher","last","eq","deregisterWatch","watchExpressions","watchGroupAction","changeReactionScheduled","firstRun","newValues","deregisterFns","shouldCall","deregisterWatchGroup","unwatchFn","watchGroupSubAction","$watchCollectionInterceptor","_value","bothNaN","newItem","oldItem","internalArray","oldLength","changeDetected","newLength","internalObject","veryOldValue","trackVeryOldValue","changeDetector","initRun","$watchCollectionAction","watch","watchers","dirty","ttl","watchLog","logIdx","asyncTask","asyncQueue","$eval","msg","next","postDigestQueue","eventName","this.$watchGroup","$applyAsyncExpression","namedListeners","indexOfListener","$emit","targetScope","listenerArgs","$$asyncQueue","$$postDigestQueue","$$applyAsyncQueue","sanitizeUri","uri","isImage","regex","normalizedVal","adjustMatcher","matcher","$sceMinErr","escapeForRegexp","adjustMatchers","matchers","adjustedMatchers","SCE_CONTEXTS","resourceUrlWhitelist","resourceUrlBlacklist","this.resourceUrlWhitelist","this.resourceUrlBlacklist","matchUrl","generateHolderType","Base","holderType","trustedValue","$$unwrapTrustedValue","this.$$unwrapTrustedValue","holderType.prototype.valueOf","holderType.prototype.toString","htmlSanitizer","trustedValueHolderBase","byType","CSS","URL","JS","trustAs","Constructor","maybeTrusted","allowed","this.enabled","sce","isEnabled","sce.isEnabled","sce.getTrusted","parseAs","sce.parseAs","enumValue","lName","eventSupport","android","userAgent","navigator","boxee","vendorPrefix","vendorRegex","bodyStyle","transitions","animations","webkitTransition","webkitAnimation","pushState","hasEvent","divElm","handleRequestFn","tpl","ignoreRequestError","totalPendingRequests","getTrustedResourceUrl","transformer","httpOptions","handleError","testability","testability.findBindings","opt_exactMatch","getElementsByClassName","matches","dataBinding","bindingName","testability.findModels","prefixes","attributeEquals","testability.getLocation","testability.setLocation","testability.whenStable","deferreds","$$timeoutId","timeout.cancel","urlParsingNode","requestUrl","originUrl","$$CookieReader","safeDecodeURIComponent","lastCookies","lastCookieString","cookieArray","cookie","currentCookieString","filters","suffix","currencyFilter","dateFilter","filterFilter","jsonFilter","limitToFilter","lowercaseFilter","numberFilter","orderByFilter","uppercaseFilter","comparator","matchAgainstAnyProp","getTypeForFilter","expressionType","predicateFn","createPredicateFn","shouldMatchPrimitives","actual","expected","item","deepCompare","dontMatchWholeObject","actualType","expectedType","expectedVal","matchAnyProperty","actualVal","$locale","formats","NUMBER_FORMATS","amount","currencySymbol","fractionSize","CURRENCY_SYM","PATTERNS","maxFrac","formatNumber","GROUP_SEP","DECIMAL_SEP","number","groupSep","decimalSep","isNegative","abs","isInfinity","Infinity","isFinite","numStr","formatedText","hasExponent","toFixed","parseFloat","fractionLen","min","minFrac","round","fraction","lgroup","lgSize","group","gSize","negPre","posPre","negSuf","posSuf","padNumber","num","digits","neg","dateGetter","dateStrGetter","shortForm","getFirstThursdayOfYear","year","dayOfWeekOnFirst","getDay","weekGetter","firstThurs","getFullYear","thisThurs","getMonth","getDate","eraGetter","ERAS","jsonStringToDate","string","R_ISO8601_STR","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","m","s","ms","format","DATETIME_FORMATS","NUMBER_STRING","DATE_FORMATS_SPLIT","dateTimezoneOffset","DATE_FORMATS","spacing","limit","processPredicates","sortPredicate","reverseOrder","map","predicate","descending","predicates","compareValues","getComparisonObject","predicateValues","doComparison","v1","v2","ngDirective","FormController","controls","$error","$$success","$pending","$name","$dirty","$pristine","$valid","$invalid","$submitted","$$parentForm","nullFormCtrl","$rollbackViewValue","form.$rollbackViewValue","control","$commitViewValue","form.$commitViewValue","$addControl","form.$addControl","$$renameControl","form.$$renameControl","newName","oldName","$removeControl","form.$removeControl","$setValidity","addSetValidityMethod","ctrl","set","unset","$setDirty","form.$setDirty","PRISTINE_CLASS","DIRTY_CLASS","$setPristine","form.$setPristine","setClass","SUBMITTED_CLASS","$setUntouched","form.$setUntouched","$setSubmitted","form.$setSubmitted","stringBasedInputType","$formatters","$isEmpty","baseInputType","composing","ev","ngTrim","$viewValue","$$hasNativeValidators","$setViewValue","deferListener","origValue","keyCode","$render","ctrl.$render","createDateParser","mapping","iso","ISO_DATE_REGEXP","yyyy","MM","dd","HH","getHours","mm","ss","getSeconds","sss","getMilliseconds","part","NaN","createDateInputType","parseDate","dynamicDateInputType","isValidDate","parseObservedDateValue","badInputChecker","$options","previousDate","$$parserName","$parsers","parsedDate","ngModelMinErr","ngMin","minVal","$validators","ctrl.$validators.min","$validate","ngMax","maxVal","ctrl.$validators.max","validity","VALIDITY_STATE_PROPERTY","badInput","typeMismatch","parseConstantExpr","parseFn","classDirective","arrayDifference","arrayClasses","digestClassCounts","classCounts","classesToUpdate","ngClassWatchAction","$index","old$index","mod","cachedToggleClass","switchValue","classCache","toggleValidationCss","validationErrorKey","isValid","VALID_CLASS","INVALID_CLASS","setValidity","isObjectEmpty","PENDING_CLASS","combinedState","REGEX_STRING_REGEXP","documentMode","rules","ngCspElement","ngCspAttribute","noInlineStyle","name_","el","full","major","minor","dot","codeName","JQLite._data","MOUSE_EVENT_MAP","mouseleave","mouseenter","optgroup","tbody","tfoot","colgroup","caption","thead","th","td","ready","trigger","fired","removeData","jqLiteHasData","removeAttribute","css","NODE_TYPE_ATTRIBUTE","lowercasedName","specified","getNamedItem","ret","getText","$dv","multiple","selected","nodeCount","jqLiteOn","types","related","relatedTarget","contains","one","onFn","replaceNode","insertBefore","contentDocument","prepend","wrapNode","detach","after","newElement","toggleClass","condition","classCondition","nextElementSibling","getElementsByTagName","extraParameters","dummyEvent","handlerArgs","eventFnsCopy","arg3","unbind","FN_ARG_SPLIT","FN_ARG","argDecl","underscore","$animateMinErr","AnimateRunner","end","resume","pause","complete","pass","fail","postDigestElements","updateData","handleCSSClassChanges","existing","pin","domOperation","from","to","classesAdded","add","classesRemoved","$$registeredAnimations","classNameFilter","this.classNameFilter","$$classNameFilter","reservedRegex","NG_ANIMATE_CLASSNAME","domInsert","parentElement","afterElement","afterNode","ELEMENT_NODE","previousElementSibling","runner","enter","move","leave","addclass","animate","tempClasses","RAFPromise","getPromise","f1","f2","closed","cleanupStyles","start","domNode","offsetWidth","APPLICATION_JSON","$httpMinErr","$interpolateMinErr.throwNoconcat","$interpolateMinErr.interr","PATH_MATCH","locationPrototype","paramValue","Location","Location.prototype.state","OPERATORS","ESCAPE","lex","tokens","readString","peek","readNumber","isIdent","readIdent","is","isWhitespace","ch2","ch3","op2","op3","op1","throwError","chars","isExpOperator","colStr","peekCh","quote","rawString","hex","String","fromCharCode","rep","ExpressionStatement","Property","program","expressionStatement","expect","filterChain","assignment","ternary","logicalOR","consume","logicalAND","equality","relational","additive","multiplicative","unary","primary","arrayDeclaration","constants","parseArguments","baseExpression","peekToken","kind","e1","e2","e3","e4","peekAhead","t","nextId","vars","own","assignable","stage","computing","recurse","return_","generateFunction","fnKey","intoId","watchId","fnString","USE","STRICT","filterPrefix","watchFns","varsPrefix","section","nameId","recursionFn","skipWatchIdCheck","if_","lazyAssign","computedMember","lazyRecurse","plus","not","getHasOwnProperty","nonComputedMember","addEnsureSafeObject","notNull","addEnsureSafeMemberName","addEnsureSafeFunction","member","addEnsureSafeAssignContext","filterName","defaultValue","stringEscapeRegex","stringEscapeFn","c","charCodeAt","skip","init","fn.assign","rhs","lhs","unary+","unary-","unary!","binary+","binary-","binary*","binary/","binary%","binary===","binary!==","binary==","binary!=","binary<","binary>","binary<=","binary>=","binary&&","binary||","ternary?:","astCompiler","yy","y","MMMM","MMM","M","H","hh","EEEE","EEE","ampmGetter","AMPMS","Z","timeZoneGetter","zone","paddedZone","ww","w","G","GG","GGG","GGGG","longEraGetter","ERANAMES","xlinkHref","propName","defaultLinkFn","normalized","ngBooleanAttrWatchAction","htmlAttr","ngAttrAliasWatchAction","nullFormRenameControl","formDirectiveFactory","isNgForm","getSetter","ngFormCompile","formElement","nameAttr","ngFormPreLink","ctrls","handleFormSubmission","setter","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","DATE_REGEXP","DATETIMELOCAL_REGEXP","WEEK_REGEXP","MONTH_REGEXP","TIME_REGEXP","inputType","textInputType","weekParser","isoWeek","existingDate","week","hours","seconds","milliseconds","addDays","numberInputType","urlInputType","ctrl.$validators.url","modelValue","viewValue","emailInputType","email","ctrl.$validators.email","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","CONSTANT_VALUE_REGEXP","tplAttr","ngValueConstantLink","ngValueLink","valueWatchAction","$compile","ngBindCompile","templateElement","ngBindLink","ngBindWatchAction","ngBindTemplateCompile","ngBindTemplateLink","ngBindHtmlCompile","tElement","ngBindHtmlGetter","ngBindHtmlWatch","ngBindHtmlLink","ngBindHtmlWatchAction","getTrustedHtml","$viewChangeListeners","forceAsyncEvents","ngEventHandler","previousElements","ngIfWatchAction","srcExp","onloadExp","autoScrollExp","autoscroll","changeCounter","previousElement","currentElement","cleanupLastIncludeContent","ngIncludeWatchAction","afterAnimation","thisChangeId","namespaceAdaptedClone","trimValues","NgModelController","$modelValue","$$rawModelValue","$asyncValidators","$untouched","$touched","parsedNgModel","parsedNgModelAssign","ngModelGet","ngModelSet","pendingDebounce","parserValid","$$setOptions","this.$$setOptions","getterSetter","invokeModelGetter","invokeModelSetter","$$$p","this.$isEmpty","currentValidationRunId","this.$setPristine","this.$setDirty","this.$setUntouched","UNTOUCHED_CLASS","TOUCHED_CLASS","$setTouched","this.$setTouched","this.$rollbackViewValue","$$lastCommittedViewValue","this.$validate","prevValid","prevModelValue","allowInvalid","$$runValidators","allValid","$$writeModelToScope","this.$$runValidators","doneCallback","processSyncValidators","syncValidatorsValid","validator","processAsyncValidators","validatorPromises","validationDone","localValidationRunId","processParseErrors","errorKey","this.$commitViewValue","$$parseAndValidate","this.$$parseAndValidate","this.$$writeModelToScope","this.$setViewValue","updateOnDefault","$$debounceViewValueCommit","this.$$debounceViewValueCommit","debounceDelay","debounce","ngModelWatch","formatters","ngModelCompile","ngModelPreLink","modelCtrl","formCtrl","ngModelPostLink","updateOn","DEFAULT_REGEXP","that","ngOptionsMinErr","NG_OPTIONS_REGEXP","parseOptionsExpression","optionsExp","selectElement","Option","selectValue","label","disabled","getOptionValuesKeys","optionValues","optionValuesKeys","keyName","itemKey","valueName","selectAs","trackBy","viewValueFn","trackByFn","getTrackByValueFn","getHashOfValue","getTrackByValue","getLocals","displayFn","groupByFn","disableWhenFn","valuesFn","getWatchables","watchedArray","optionValuesLength","disableWhen","getOptions","optionItems","selectValueMap","optionItem","getOptionFromViewValue","getViewValueFromOption","optionTemplate","optGroupTemplate","updateOptionElement","addOrReuseElement","removeExcessElements","skipEmptyAndUnknownOptions","emptyOption_","emptyOption","unknownOption_","unknownOption","updateOptions","previousValue","selectCtrl","readValue","groupMap","providedEmptyOption","updateOption","optionElement","groupElement","currentOptionElement","ngModelCtrl","nextValue","ngModelCtrl.$isEmpty","writeValue","selectCtrl.writeValue","selectCtrl.readValue","selectedValues","selections","selectedOption","BRACE","IS_WHEN","updateElementText","newText","numberExp","whenExp","whens","whensExpFns","braceReplacement","watchRemover","lastCount","attributeName","tmpMatch","whenKey","ngPluralizeWatchAction","countIsNaN","pluralCat","whenExpFn","ngRepeatMinErr","updateScope","valueIdentifier","keyIdentifier","arrayLength","$first","$last","$middle","$odd","$even","ngRepeatCompile","ngRepeatEndComment","aliasAs","trackByExp","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","hashFnLocals","ngRepeatLink","lastBlockMap","ngRepeatAction","previousNode","nextNode","nextBlockMap","collectionLength","trackById","collectionKeys","nextBlockOrder","trackByIdFn","blockKey","ngRepeatTransclude","ngShowWatchAction","NG_HIDE_CLASS","NG_HIDE_IN_PROGRESS_CLASS","ngHideWatchAction","ngStyleWatchAction","newStyles","oldStyles","ngSwitchController","cases","selectedTranscludes","selectedElements","previousLeaveAnimations","selectedScopes","spliceFactory","ngSwitchWatchAction","selectedTransclude","caseElement","selectedScope","anchor","noopNgModelController","SelectController","optionsMap","renderUnknownOption","self.renderUnknownOption","unknownVal","removeUnknownOption","self.removeUnknownOption","self.readValue","self.writeValue","hasOption","addOption","self.addOption","removeOption","self.removeOption","self.hasOption","ngModelCtrl.$render","lastView","lastViewRef","selectMultipleWatch","valueInterpolated","optionValue","selectCtrlName","valueAttributeObserveAction","interpolateWatchAction","ctrl.$validators.required","patternExp","ctrl.$validators.pattern","intVal","ctrl.$validators.maxlength","ctrl.$validators.minlength","getDecimals","opt_precision","pow","ONE","OTHER","$$csp","head"] }